diff --git a/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java b/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java index fc4cafd43..8647e54c0 100644 --- a/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java +++ b/core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java @@ -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); diff --git a/core/java/src/net/i2p/client/impl/RequestVariableLeaseSetMessageHandler.java b/core/java/src/net/i2p/client/impl/RequestVariableLeaseSetMessageHandler.java index 7dc462f1e..45769ee3f 100644 --- a/core/java/src/net/i2p/client/impl/RequestVariableLeaseSetMessageHandler.java +++ b/core/java/src/net/i2p/client/impl/RequestVariableLeaseSetMessageHandler.java @@ -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);