* Client:
- Fail if no date handshake after 30s or no leaseset after 5m, rather than hanging forever.
This commit is contained in:
@ -283,7 +283,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
|||||||
if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "Before getDate");
|
if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "Before getDate");
|
||||||
sendMessage(new GetDateMessage());
|
sendMessage(new GetDateMessage());
|
||||||
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;
|
||||||
while (!_dateReceived) {
|
while (!_dateReceived) {
|
||||||
|
if (waitcount++ > 30)
|
||||||
|
throw new IOException("no date handshake");
|
||||||
try {
|
try {
|
||||||
synchronized (_dateReceivedLock) {
|
synchronized (_dateReceivedLock) {
|
||||||
_dateReceivedLock.wait(1000);
|
_dateReceivedLock.wait(1000);
|
||||||
@ -298,7 +301,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
|||||||
if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After producer.connect()");
|
if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After producer.connect()");
|
||||||
|
|
||||||
// wait until we have created a lease set
|
// wait until we have created a lease set
|
||||||
|
waitcount = 0;
|
||||||
while (_leaseSet == null) {
|
while (_leaseSet == null) {
|
||||||
|
if (waitcount++ > 5*60)
|
||||||
|
throw new IOException("no leaseset");
|
||||||
synchronized (_leaseSetWait) {
|
synchronized (_leaseSetWait) {
|
||||||
try {
|
try {
|
||||||
_leaseSetWait.wait(1000);
|
_leaseSetWait.wait(1000);
|
||||||
|
Reference in New Issue
Block a user