diff -c -r ../IceAndroid-0.1.0.orig/java/src/IceInternal/TcpAcceptor.java ./java/src/IceInternal/TcpAcceptor.java *** ../IceAndroid-0.1.0.orig/java/src/IceInternal/TcpAcceptor.java 2008-12-22 15:26:51.000000000 -0330 --- ./java/src/IceInternal/TcpAcceptor.java 2009-03-28 18:20:11.000000000 -0230 *************** *** 49,55 **** _logger.trace(_traceLevels.networkCat, s); } ! return new TcpTransceiver(_instance, fd, true); } public void --- 49,55 ---- _logger.trace(_traceLevels.networkCat, s); } ! return new TcpTransceiver(_instance, fd); } public void diff -c -r ../IceAndroid-0.1.0.orig/java/src/IceInternal/TcpConnector.java ./java/src/IceInternal/TcpConnector.java *** ../IceAndroid-0.1.0.orig/java/src/IceInternal/TcpConnector.java 2008-12-22 15:26:51.000000000 -0330 --- ./java/src/IceInternal/TcpConnector.java 2009-03-28 17:52:27.000000000 -0230 *************** *** 19,51 **** String s = "trying to establish tcp connection to " + toString(); _logger.trace(_traceLevels.networkCat, s); } ! ! try ! { ! java.nio.channels.SocketChannel fd = Network.createTcpSocket(); ! // The connection should be established non-blocking. ! Network.setBlock(fd, false); ! Network.setTcpBufSize(fd, _instance.initializationData().properties, _logger); ! boolean connected = Network.doConnect(fd, _addr); ! if(connected) ! { ! if(_traceLevels.network >= 1) ! { ! String s = "tcp connection established\n" + Network.fdToString(fd); ! _logger.trace(_traceLevels.networkCat, s); ! } ! } ! return new TcpTransceiver(_instance, fd, connected); ! } ! catch(Ice.LocalException ex) ! { ! if(_traceLevels.network >= 2) ! { ! String s = "failed to establish tcp connection to " + toString() + "\n" + ex; ! _logger.trace(_traceLevels.networkCat, s); ! } ! throw ex; ! } } public short --- 19,25 ---- String s = "trying to establish tcp connection to " + toString(); _logger.trace(_traceLevels.networkCat, s); } ! return new TcpTransceiver(_instance, _addr); } public short diff -c -r ../IceAndroid-0.1.0.orig/java/src/IceInternal/TcpTransceiver.java ./java/src/IceInternal/TcpTransceiver.java *** ../IceAndroid-0.1.0.orig/java/src/IceInternal/TcpTransceiver.java 2008-12-22 15:26:51.000000000 -0330 --- ./java/src/IceInternal/TcpTransceiver.java 2009-03-28 18:20:58.000000000 -0230 *************** *** 32,38 **** // thrown. try { ! Network.doFinishConnect(fd); } catch(RuntimeException ex) { --- 32,38 ---- // thrown. try { ! Network.doConnect(fd, _addr); } catch(RuntimeException ex) { *************** *** 334,375 **** } // ! // Only for use by TcpConnector, TcpAcceptor // ! TcpTransceiver(Instance instance, java.nio.channels.SocketChannel fd, boolean connected) { _fd = fd; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; _desc = Network.fdToString(_fd); ! _state = (connected) ? StateConnecting : StateNeedConnect; ! ! // If we're already connected, then start the read/write threads. ! if(connected) ! { ! _state = StateConnected; ! startThreads(); ! } ! else ! { ! _state = StateNeedConnect; ! } ! _maxPacketSize = 0; ! if(System.getProperty("os.name").startsWith("Windows")) ! { ! // ! // On Windows, limiting the buffer size is important to prevent ! // poor throughput performances when transfering large amount of ! // data. See Microsoft KB article KB823764. ! // ! _maxPacketSize = Network.getSendBufferSize(_fd) / 2; ! if(_maxPacketSize < 512) ! { ! _maxPacketSize = 0; ! } ! } } protected synchronized void --- 334,364 ---- } // ! // Only for use by TcpAcceptor // ! TcpTransceiver(Instance instance, java.nio.channels.SocketChannel fd) { _fd = fd; _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; _desc = Network.fdToString(_fd); ! _state = StateConnected; ! startThreads(); ! } ! // ! // Only for use by TcpConnector ! // ! TcpTransceiver(Instance instance, java.net.InetSocketAddress addr) ! { ! _fd = Network.createTcpSocket(); ! _addr = addr; ! _traceLevels = instance.traceLevels(); ! _logger = instance.initializationData().logger; ! _stats = instance.initializationData().stats; ! _desc = Network.addressesToString(_addr.getAddress(), 0, null, 0); ! _state = StateNeedConnect; } protected synchronized void *************** *** 390,396 **** private Ice.Stats _stats; private String _desc; private int _state; ! private int _maxPacketSize; private static final int StateNeedConnect = 0; private static final int StateConnecting = 1; --- 379,387 ---- private Ice.Stats _stats; private String _desc; private int _state; ! private int _maxPacketSize = 0; ! ! private java.net.InetSocketAddress _addr; private static final int StateNeedConnect = 0; private static final int StateConnecting = 1;