I2CP: Fix LS2 options not being updated on subsession

This commit is contained in:
zzz
2026-03-25 13:09:47 -04:00
parent 44263ae960
commit 9a0f22c0d7
2 changed files with 16 additions and 4 deletions

View File

@@ -138,6 +138,12 @@ class RequestLeaseSetMessageHandler extends HandlerImpl {
_log.debug("Handle message " + message);
RequestLeaseSetMessage msg = (RequestLeaseSetMessage) message;
boolean isLS2 = requiresLS2(session);
// SubSession options aren't updated via the gui, so use the primary options
Properties opts;
if (session instanceof SubSession)
opts = ((SubSession) session).getPrimaryOptions();
else
opts = session.getOptions();
LeaseSet leaseSet;
if (isLS2) {
LeaseSet2 ls2;
@@ -152,14 +158,14 @@ class RequestLeaseSetMessageHandler extends HandlerImpl {
session.destroySession();
return;
}
if (Boolean.parseBoolean(session.getOptions().getProperty("i2cp.dontPublishLeaseSet")))
if (Boolean.parseBoolean(opts.getProperty("i2cp.dontPublishLeaseSet")))
ls2.setUnpublished();
// Service records, proposal 167
String k = "i2cp.leaseSetOption.0";
Properties props = null;
for (int i = 0; i < 10; i++) {
String v = session.getOptions().getProperty(k);
String v = opts.getProperty(k);
if (v == null)
break;
String[] vs = DataHelper.split(v, "=", 2);

View File

@@ -44,6 +44,12 @@ class RequestVariableLeaseSetMessageHandler extends RequestLeaseSetMessageHandle
_log.debug("Handle message " + message);
RequestVariableLeaseSetMessage msg = (RequestVariableLeaseSetMessage) message;
boolean isLS2 = requiresLS2(session);
// SubSession options aren't updated via the gui, so use the primary options
Properties opts;
if (session instanceof SubSession)
opts = ((SubSession) session).getPrimaryOptions();
else
opts = session.getOptions();
LeaseSet leaseSet;
if (isLS2) {
LeaseSet2 ls2;
@@ -58,14 +64,14 @@ class RequestVariableLeaseSetMessageHandler extends RequestLeaseSetMessageHandle
session.destroySession();
return;
}
if (Boolean.parseBoolean(session.getOptions().getProperty("i2cp.dontPublishLeaseSet")))
if (Boolean.parseBoolean(opts.getProperty("i2cp.dontPublishLeaseSet")))
ls2.setUnpublished();
// Service records, proposal 167
String k = "i2cp.leaseSetOption.0";
Properties props = null;
for (int i = 0; i < 10; i++) {
String v = session.getOptions().getProperty(k);
String v = opts.getProperty(k);
if (v == null)
break;
String[] vs = DataHelper.split(v, "=", 2);