diff options
author | Jose <jose@zeroc.com> | 2011-05-17 20:34:28 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2011-05-17 20:34:28 +0200 |
commit | 25a954efbc8205cf0465df8c43e50ff32fa535a0 (patch) | |
tree | 9a1819a226076724099392e7a6cba06538a7760f /java/src | |
parent | SLES x86 Java fix (diff) | |
download | ice-25a954efbc8205cf0465df8c43e50ff32fa535a0.tar.bz2 ice-25a954efbc8205cf0465df8c43e50ff32fa535a0.tar.xz ice-25a954efbc8205cf0465df8c43e50ff32fa535a0.zip |
5082 - Network tracing shows remote address = <not connected>
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/Network.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/TcpAcceptor.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/TcpConnector.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/TcpTransceiver.java | 16 | ||||
-rw-r--r-- | java/src/IceSSL/AcceptorI.java | 2 | ||||
-rw-r--r-- | java/src/IceSSL/ConnectorI.java | 2 | ||||
-rw-r--r-- | java/src/IceSSL/TransceiverI.java | 16 |
7 files changed, 31 insertions, 11 deletions
diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java index 2e12900545f..1d5d1c65491 100644 --- a/java/src/IceInternal/Network.java +++ b/java/src/IceInternal/Network.java @@ -1066,7 +1066,7 @@ public final class Network (bytes.length == 4 && protocol == EnableIPv4)); } - private static String + public static String addrToString(java.net.InetAddress addr, int port) { StringBuffer s = new StringBuffer(); diff --git a/java/src/IceInternal/TcpAcceptor.java b/java/src/IceInternal/TcpAcceptor.java index 9c972306982..1833b4c10df 100644 --- a/java/src/IceInternal/TcpAcceptor.java +++ b/java/src/IceInternal/TcpAcceptor.java @@ -66,7 +66,7 @@ class TcpAcceptor implements Acceptor _logger.trace(_traceLevels.networkCat, s); } - return new TcpTransceiver(_instance, fd, true); + return new TcpTransceiver(_instance, fd, true, null); } public String diff --git a/java/src/IceInternal/TcpConnector.java b/java/src/IceInternal/TcpConnector.java index 7d0cccc149f..e0c4139215b 100644 --- a/java/src/IceInternal/TcpConnector.java +++ b/java/src/IceInternal/TcpConnector.java @@ -34,7 +34,7 @@ final class TcpConnector implements Connector _logger.trace(_traceLevels.networkCat, s); } } - return new TcpTransceiver(_instance, fd, connected); + return new TcpTransceiver(_instance, fd, connected, _addr); } catch(Ice.LocalException ex) { diff --git a/java/src/IceInternal/TcpTransceiver.java b/java/src/IceInternal/TcpTransceiver.java index 8c10fea5ea8..3a5e9c7f676 100644 --- a/java/src/IceInternal/TcpTransceiver.java +++ b/java/src/IceInternal/TcpTransceiver.java @@ -38,8 +38,15 @@ final class TcpTransceiver implements Transceiver { if(_traceLevels.network >= 2) { - String s = "failed to establish tcp connection\n" + _desc + "\n" + ex; - _logger.trace(_traceLevels.networkCat, s); + java.net.Socket fd = (java.net.Socket)_fd.socket(); + StringBuilder s = new StringBuilder(128); + s.append("failed to establish tcp connection\n"); + s.append("local address = "); + s.append(Network.addrToString(fd.getLocalAddress(), fd.getLocalPort())); + s.append("\nremote address = "); + assert(_connectAddr != null); + s.append(Network.addrToString(_connectAddr)); + _logger.trace(_traceLevels.networkCat, s.toString()); } throw ex; } @@ -248,9 +255,11 @@ final class TcpTransceiver implements Transceiver // // Only for use by TcpConnector, TcpAcceptor // - TcpTransceiver(Instance instance, java.nio.channels.SocketChannel fd, boolean connected) + TcpTransceiver(Instance instance, java.nio.channels.SocketChannel fd, boolean connected, + java.net.InetSocketAddress connectAddr) { _fd = fd; + _connectAddr = connectAddr; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; @@ -283,6 +292,7 @@ final class TcpTransceiver implements Transceiver } private java.nio.channels.SocketChannel _fd; + private java.net.InetSocketAddress _connectAddr; private TraceLevels _traceLevels; private Ice.Logger _logger; private Ice.Stats _stats; diff --git a/java/src/IceSSL/AcceptorI.java b/java/src/IceSSL/AcceptorI.java index db6cf781002..d2bd3ed4792 100644 --- a/java/src/IceSSL/AcceptorI.java +++ b/java/src/IceSSL/AcceptorI.java @@ -89,7 +89,7 @@ final class AcceptorI implements IceInternal.Acceptor IceInternal.Network.fdToString(fd)); } - return new TransceiverI(_instance, engine, fd, "", true, true, _adapterName); + return new TransceiverI(_instance, engine, fd, "", true, true, _adapterName, null); } public String diff --git a/java/src/IceSSL/ConnectorI.java b/java/src/IceSSL/ConnectorI.java index fe85a2c4e0a..5b50a79e1db 100644 --- a/java/src/IceSSL/ConnectorI.java +++ b/java/src/IceSSL/ConnectorI.java @@ -39,7 +39,7 @@ final class ConnectorI implements IceInternal.Connector try { javax.net.ssl.SSLEngine engine = _instance.createSSLEngine(false, _addr); - return new TransceiverI(_instance, engine, fd, _host, connected, false, ""); + return new TransceiverI(_instance, engine, fd, _host, connected, false, "", _addr); } catch(RuntimeException ex) { diff --git a/java/src/IceSSL/TransceiverI.java b/java/src/IceSSL/TransceiverI.java index eec1f3c7d00..f94c90e4876 100644 --- a/java/src/IceSSL/TransceiverI.java +++ b/java/src/IceSSL/TransceiverI.java @@ -50,8 +50,15 @@ final class TransceiverI implements IceInternal.Transceiver { if(_instance.networkTraceLevel() >= 2) { - String s = "failed to establish ssl connection\n" + _desc + "\n" + ex; - _logger.trace(_instance.networkTraceCategory(), s); + java.net.Socket fd = (java.net.Socket)_fd.socket(); + StringBuilder s = new StringBuilder(128); + s.append("failed to establish ssl connection\n"); + s.append("local address = "); + s.append(IceInternal.Network.addrToString(fd.getLocalAddress(), fd.getLocalPort())); + s.append("\nremote address = "); + assert(_connectAddr != null); + s.append(IceInternal.Network.addrToString(_connectAddr)); + _logger.trace(_instance.networkTraceCategory(), s.toString()); } throw ex; } @@ -289,7 +296,8 @@ final class TransceiverI implements IceInternal.Transceiver // Only for use by ConnectorI, AcceptorI. // TransceiverI(Instance instance, javax.net.ssl.SSLEngine engine, java.nio.channels.SocketChannel fd, - String host, boolean connected, boolean incoming, String adapterName) + String host, boolean connected, boolean incoming, String adapterName, + java.net.InetSocketAddress connectAddr) { _instance = instance; _engine = engine; @@ -297,6 +305,7 @@ final class TransceiverI implements IceInternal.Transceiver _host = host; _incoming = incoming; _adapterName = adapterName; + _connectAddr = connectAddr; _state = connected ? StateConnected : StateNeedConnect; _logger = instance.communicator().getLogger(); try @@ -791,6 +800,7 @@ final class TransceiverI implements IceInternal.Transceiver private String _host; private boolean _incoming; private String _adapterName; + private java.net.InetSocketAddress _connectAddr; private int _state; private Ice.Logger _logger; private Ice.Stats _stats; |