summaryrefslogtreecommitdiff
path: root/java/src/IceSSL/ConnectorI.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2007-11-27 11:58:35 +0100
committerBenoit Foucher <benoit@zeroc.com>2007-11-27 11:58:35 +0100
commit47f800495093fd7679a315e2d730fea22f6135b7 (patch)
treea7b8d3488f3841367dd03d10cae293f36fd10481 /java/src/IceSSL/ConnectorI.java
parentFixed SystemException to no longer derive from LocalException (diff)
downloadice-47f800495093fd7679a315e2d730fea22f6135b7.tar.bz2
ice-47f800495093fd7679a315e2d730fea22f6135b7.tar.xz
ice-47f800495093fd7679a315e2d730fea22f6135b7.zip
- Added support for non-blocking AMI/batch requests, connection
creation. - Added support for AMI oneway requests. - Changed collocation optimization to not perform any DNS lookups.
Diffstat (limited to 'java/src/IceSSL/ConnectorI.java')
-rw-r--r--java/src/IceSSL/ConnectorI.java81
1 files changed, 11 insertions, 70 deletions
diff --git a/java/src/IceSSL/ConnectorI.java b/java/src/IceSSL/ConnectorI.java
index 9836a78753a..e2d25283302 100644
--- a/java/src/IceSSL/ConnectorI.java
+++ b/java/src/IceSSL/ConnectorI.java
@@ -11,8 +11,6 @@ package IceSSL;
final class ConnectorI implements IceInternal.Connector, java.lang.Comparable
{
- final static short TYPE = 2;
-
public IceInternal.Transceiver
connect(int timeout)
{
@@ -35,73 +33,24 @@ final class ConnectorI implements IceInternal.Connector, java.lang.Comparable
java.nio.channels.SocketChannel fd = IceInternal.Network.createTcpSocket();
IceInternal.Network.setBlock(fd, false);
IceInternal.Network.setTcpBufSize(fd, _instance.communicator().getProperties(), _logger);
- IceInternal.Network.doConnect(fd, _addr, timeout);
+ boolean connected = IceInternal.Network.doConnect(fd, _addr, timeout);
- TransceiverI transceiver = null;
try
{
javax.net.ssl.SSLEngine engine = _instance.createSSLEngine(false);
-
- transceiver = new TransceiverI(_instance, engine, fd, _host, false, "");
-/*
- transceiver.waitForHandshake(timeout);
-
- //
- // Check IceSSL.VerifyPeer.
- //
- int verifyPeer =
- _instance.communicator().getProperties().getPropertyAsIntWithDefault("IceSSL.VerifyPeer", 2);
- if(verifyPeer > 0)
- {
- try
- {
- engine.getSession().getPeerCertificates();
- }
- catch(javax.net.ssl.SSLPeerUnverifiedException ex)
- {
- Ice.SecurityException e = new Ice.SecurityException();
- e.reason = "IceSSL: server did not supply a certificate";
- e.initCause(ex);
- throw e;
- }
- }
-*/
-
-/*
- if(!ctx.verifyPeer(fd, _host, false))
- {
- Ice.SecurityException ex = new Ice.SecurityException();
- ex.reason = "IceSSL: outgoing connection rejected by certificate verifier";
- throw ex;
- }
-*/
+ return new TransceiverI(_instance, engine, fd, _host, connected, false, "");
}
catch(RuntimeException ex)
{
- try
- {
- fd.close();
- }
- catch(java.io.IOException e)
- {
- // Ignore.
- }
+ IceInternal.Network.closeSocketNoThrow(fd);
throw ex;
}
-
- if(_instance.networkTraceLevel() >= 1)
- {
- String s = "ssl connection established\n" + IceInternal.Network.fdToString(fd);
- _logger.trace(_instance.networkTraceCategory(), s);
- }
-
- return transceiver;
}
public short
type()
{
- return TYPE;
+ return EndpointI.TYPE;
}
public String
@@ -116,21 +65,6 @@ final class ConnectorI implements IceInternal.Connector, java.lang.Comparable
return _hashCode;
}
- final boolean
- equivalent(String host, int port)
- {
- java.net.InetSocketAddress addr;
- try
- {
- addr = IceInternal.Network.getAddress(host, port);
- }
- catch(Ice.DNSException ex)
- {
- return false;
- }
- return addr.equals(_addr);
- }
-
//
// Only for use by EndpointI.
//
@@ -211,6 +145,13 @@ final class ConnectorI implements IceInternal.Connector, java.lang.Comparable
return IceInternal.Network.compareAddress(_addr, p._addr);
}
+ protected synchronized void
+ finalize()
+ throws Throwable
+ {
+ super.finalize();
+ }
+
private Instance _instance;
private Ice.Logger _logger;
private String _host;