I2CP Multisession - Work in progress:

Stub out hardcoded list of DSA-only destinations
Tweak client name length in summary bar
Force initial leaseset request for subsession
Send SessionStatus msg before LS request for subsession
This commit is contained in:
zzz
2015-04-19 03:11:37 +00:00
parent be8f7f9676
commit d8baf62966
6 changed files with 48 additions and 8 deletions

View File

@ -401,7 +401,7 @@ class ClientManager {
public void requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob) {
ClientConnectionRunner runner = getRunner(dest);
if (runner == null) {
if (_log.shouldLog(Log.ERROR))
if (_log.shouldLog(Log.WARN))
_log.warn("Cannot request the lease set, as we can't find a client runner for "
+ dest.calculateHash().toBase64() + ". disconnected?");
_ctx.jobQueue().addJob(onFailedJob);
@ -424,6 +424,10 @@ class ClientManager {
if (runner != null) {
// no need to fire off any jobs...
runner.requestLeaseSet(dest, ls, REQUEST_LEASESET_TIMEOUT, null, null);
} else {
if (_log.shouldLog(Log.WARN))
_log.warn("Cannot request the lease set, as we can't find a client runner for "
+ dest + ". disconnected?");
}
}

View File

@ -289,16 +289,19 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi
if (pcfg != null) {
ClientTunnelSettings settings = new ClientTunnelSettings(dest.calculateHash());
settings.readFromProperties(props);
// addAlias() sends the create lease set msg, so we have to send the SMS first
sendStatusMessage(id, status);
boolean ok = _context.tunnelManager().addAlias(dest, settings, pcfg.getDestination());
if (!ok) {
_log.error("Add alias failed");
status = SessionStatusMessage.STATUS_REFUSED;
// FIXME cleanup
}
} else {
_log.error("no primary config?");
status = SessionStatusMessage.STATUS_INVALID;
sendStatusMessage(id, status);
// FIXME cleanup
}
sendStatusMessage(id, status);
}
}

View File

@ -34,6 +34,7 @@ public class AliasedTunnelPool extends TunnelPool {
if (_log.shouldLog(Log.INFO))
_log.info(toString() + ": Startup() called, was already alive? " + _alive, new Exception());
_alive = true;
super.refreshLeaseSet();
}
@Override

View File

@ -607,7 +607,7 @@ public class TunnelPool {
if (_settings.isInbound() && !_settings.isExploratory()) {
if (_log.shouldLog(Log.DEBUG))
_log.debug(toString() + ": refreshing leaseSet on tunnel expiration (but prior to grace timeout)");
LeaseSet ls = null;
LeaseSet ls;
synchronized (_tunnels) {
ls = locked_buildNewLeaseSet();
}