Changeset 671e9dd
- Timestamp:
- Jan 9, 2019 6:41:36 PM (2 years ago)
- Branches:
- master
- Children:
- 8cd7e7d
- Parents:
- 4ff9092
- Location:
- core/java/src/net/i2p/client/impl
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
core/java/src/net/i2p/client/impl/RequestLeaseSetMessageHandler.java
r4ff9092 r671e9dd 26 26 import net.i2p.data.DataHelper; 27 27 import net.i2p.data.Destination; 28 import net.i2p.data.EncryptedLeaseSet; 28 29 import net.i2p.data.Hash; 29 30 import net.i2p.data.Lease; … … 31 32 import net.i2p.data.LeaseSet; 32 33 import net.i2p.data.LeaseSet2; 34 import net.i2p.data.MetaLease; 35 import net.i2p.data.MetaLeaseSet; 33 36 import net.i2p.data.PrivateKey; 34 37 import net.i2p.data.PublicKey; … … 49 52 class RequestLeaseSetMessageHandler extends HandlerImpl { 50 53 private final Map<Destination, LeaseInfo> _existingLeaseSets; 54 protected int _ls2Type = DatabaseEntry.KEY_TYPE_LS2; 51 55 52 56 // LS 1 … … 75 79 /** 76 80 * Do we send a LeaseSet or a LeaseSet2? 81 * 82 * Side effect: sets _ls2Type 83 * 77 84 * @since 0.9.38 78 85 */ 79 protected staticboolean requiresLS2(I2PSessionImpl session) {86 protected boolean requiresLS2(I2PSessionImpl session) { 80 87 if (!session.supportsLS2()) 81 88 return false; … … 92 99 try { 93 100 int type = Integer.parseInt(s); 101 _ls2Type = type; 94 102 if (type != DatabaseEntry.KEY_TYPE_LEASESET) 95 103 return true; 96 } catch (NumberFormatException nfe) {} 104 } catch (NumberFormatException nfe) { 105 session.propogateError("Bad LS2 type", nfe); 106 return true; 107 } 97 108 } 98 109 return false; … … 104 115 RequestLeaseSetMessage msg = (RequestLeaseSetMessage) message; 105 116 boolean isLS2 = requiresLS2(session); 106 LeaseSet leaseSet = isLS2 ? new LeaseSet2() : new LeaseSet(); 117 LeaseSet leaseSet; 118 if (isLS2) { 119 if (_ls2Type == DatabaseEntry.KEY_TYPE_LS2) { 120 leaseSet = new LeaseSet2(); 121 } else if (_ls2Type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) { 122 leaseSet = new EncryptedLeaseSet(); 123 } else if (_ls2Type == DatabaseEntry.KEY_TYPE_META_LS2) { 124 leaseSet = new MetaLeaseSet(); 125 } else { 126 session.propogateError("Unsupported LS2 type", new Exception()); 127 return; 128 } 129 } else { 130 leaseSet = new LeaseSet(); 131 } 132 // Full Meta and Encrypted support TODO 107 133 for (int i = 0; i < msg.getEndpoints(); i++) { 108 Lease lease = isLS2 ? new Lease2() : new Lease(); 134 Lease lease; 135 if (_ls2Type == DatabaseEntry.KEY_TYPE_META_LS2) { 136 lease = new MetaLease(); 137 } else if (isLS2) { 138 lease = new Lease2(); 139 lease.setTunnelId(msg.getTunnelId(i)); 140 } else { 141 lease = new Lease(); 142 lease.setTunnelId(msg.getTunnelId(i)); 143 } 109 144 lease.setGateway(msg.getRouter(i)); 110 lease.setTunnelId(msg.getTunnelId(i));111 145 lease.setEndDate(msg.getEndDate()); 112 146 //lease.setStartDate(msg.getStartDate()); … … 219 253 } 220 254 221 leaseSet.setEncryptionKey(li.getPublicKey()); 255 if (_ls2Type != DatabaseEntry.KEY_TYPE_META_LS2) 256 leaseSet.setEncryptionKey(li.getPublicKey()); 222 257 leaseSet.setSigningKey(li.getSigningPublicKey()); 223 258 // SubSession options aren't updated via the gui, so use the primary options -
core/java/src/net/i2p/client/impl/RequestVariableLeaseSetMessageHandler.java
r4ff9092 r671e9dd 11 11 12 12 import net.i2p.I2PAppContext; 13 import net.i2p.data.DatabaseEntry; 14 import net.i2p.data.EncryptedLeaseSet; 13 15 import net.i2p.data.Lease; 14 16 import net.i2p.data.Lease2; 15 17 import net.i2p.data.LeaseSet; 16 18 import net.i2p.data.LeaseSet2; 19 import net.i2p.data.MetaLease; 20 import net.i2p.data.MetaLeaseSet; 17 21 import net.i2p.data.i2cp.I2CPMessage; 18 22 import net.i2p.data.i2cp.RequestVariableLeaseSetMessage; … … 37 41 RequestVariableLeaseSetMessage msg = (RequestVariableLeaseSetMessage) message; 38 42 boolean isLS2 = requiresLS2(session); 39 LeaseSet leaseSet = isLS2 ? new LeaseSet2() : new LeaseSet(); 43 LeaseSet leaseSet; 44 if (isLS2) { 45 if (_ls2Type == DatabaseEntry.KEY_TYPE_LS2) { 46 leaseSet = new LeaseSet2(); 47 } else if (_ls2Type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) { 48 leaseSet = new EncryptedLeaseSet(); 49 } else if (_ls2Type == DatabaseEntry.KEY_TYPE_META_LS2) { 50 leaseSet = new MetaLeaseSet(); 51 } else { 52 session.propogateError("Unsupported LS2 type", new Exception()); 53 return; 54 } 55 } else { 56 leaseSet = new LeaseSet(); 57 } 58 // Full Meta and Encrypted support TODO 40 59 for (int i = 0; i < msg.getEndpoints(); i++) { 41 60 Lease lease; … … 43 62 // convert Lease to Lease2 44 63 Lease old = msg.getEndpoint(i); 45 lease = new Lease2(); 64 if (_ls2Type == DatabaseEntry.KEY_TYPE_META_LS2) { 65 lease = new MetaLease(); 66 } else { 67 lease = new Lease2(); 68 lease.setTunnelId(old.getTunnelId()); 69 } 46 70 lease.setGateway(old.getGateway()); 47 lease.setTunnelId(old.getTunnelId());48 71 lease.setEndDate(old.getEndDate()); 49 72 } else {
Note: See TracChangeset
for help on using the changeset viewer.