diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java index b1fc2b2266e12d9bf1dc8757e7f350d1c744e5d7..7fdb17d004c4013f5271b3e151bdca16f1f39fac 100644 --- a/core/java/src/net/i2p/client/I2PSessionImpl.java +++ b/core/java/src/net/i2p/client/I2PSessionImpl.java @@ -289,8 +289,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After getDate / begin waiting for a response"); int waitcount = 0; while (!_dateReceived) { - if (waitcount++ > 30) + if (waitcount++ > 30) { + closeSocket(); throw new IOException("no date handshake"); + } try { synchronized (_dateReceivedLock) { _dateReceivedLock.wait(1000); @@ -307,8 +309,13 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa // wait until we have created a lease set waitcount = 0; while (_leaseSet == null) { - if (waitcount++ > 5*60) + if (waitcount++ > 5*60) { + try { + _producer.disconnect(this); + } catch (I2PSessionException ipe) {} + closeSocket(); throw new IOException("no leaseset"); + } synchronized (_leaseSetWait) { try { _leaseSetWait.wait(1000);