* I2CP: Clean up resources on 5-minute leaseset timeout at startup

This commit is contained in:
zzz
2010-01-10 16:38:34 +00:00
parent 76f11859b2
commit 9ec79f50fa

View File

@ -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"); if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After getDate / begin waiting for a response");
int waitcount = 0; int waitcount = 0;
while (!_dateReceived) { while (!_dateReceived) {
if (waitcount++ > 30) if (waitcount++ > 30) {
closeSocket();
throw new IOException("no date handshake"); throw new IOException("no date handshake");
}
try { try {
synchronized (_dateReceivedLock) { synchronized (_dateReceivedLock) {
_dateReceivedLock.wait(1000); _dateReceivedLock.wait(1000);
@ -307,8 +309,13 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
// wait until we have created a lease set // wait until we have created a lease set
waitcount = 0; waitcount = 0;
while (_leaseSet == null) { while (_leaseSet == null) {
if (waitcount++ > 5*60) if (waitcount++ > 5*60) {
try {
_producer.disconnect(this);
} catch (I2PSessionException ipe) {}
closeSocket();
throw new IOException("no leaseset"); throw new IOException("no leaseset");
}
synchronized (_leaseSetWait) { synchronized (_leaseSetWait) {
try { try {
_leaseSetWait.wait(1000); _leaseSetWait.wait(1000);