From f0fdb35ba6874abed4bcda01596503102f37c16e Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 19 Apr 2015 03:35:40 +0000 Subject: [PATCH] I2CP Multisession - Work in progress: Fix creating subsession LS from primary LS --- .../router/tunnel/pool/AliasedTunnelPool.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/tunnel/pool/AliasedTunnelPool.java b/router/java/src/net/i2p/router/tunnel/pool/AliasedTunnelPool.java index d4d6ccc23..03b8f0563 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/AliasedTunnelPool.java +++ b/router/java/src/net/i2p/router/tunnel/pool/AliasedTunnelPool.java @@ -3,6 +3,7 @@ package net.i2p.router.tunnel.pool; import java.util.List; import net.i2p.data.Hash; +import net.i2p.data.Lease; import net.i2p.data.LeaseSet; import net.i2p.data.TunnelId; import net.i2p.router.RouterContext; @@ -114,7 +115,20 @@ public class AliasedTunnelPool extends TunnelPool { @Override protected LeaseSet locked_buildNewLeaseSet() { - return _context.netDb().lookupLeaseSetLocally(_aliasOf.getSettings().getDestination()); + LeaseSet ls = _context.netDb().lookupLeaseSetLocally(_aliasOf.getSettings().getDestination()); + if (ls == null) + return null; + // copy everything so it isn't corrupted + LeaseSet rv = new LeaseSet(); + for (int i = 0; i < ls.getLeaseCount(); i++) { + Lease old = ls.getLease(i); + Lease lease = new Lease(); + lease.setEndDate(old.getEndDate()); + lease.setTunnelId(old.getTunnelId()); + lease.setGateway(old.getGateway()); + rv.addLease(lease); + } + return rv; } @Override