Merge pull request 'I2CP: Add support for service records (proposal 167)' (#501) from zzz/i2p.i2p:prop167 into master
Some checks failed
Java CI / build (push) Has been cancelled
Java CI / javadoc-latest (push) Has been cancelled
Java CI / build-java7 (push) Has been cancelled
Dockerhub / docker (push) Has been cancelled
Java with IzPack Snapshot Setup / setup (push) Has been cancelled
Sync Primary Repository to GitHub Mirror / sync (push) Has been cancelled
Some checks failed
Java CI / build (push) Has been cancelled
Java CI / javadoc-latest (push) Has been cancelled
Java CI / build-java7 (push) Has been cancelled
Dockerhub / docker (push) Has been cancelled
Java with IzPack Snapshot Setup / setup (push) Has been cancelled
Sync Primary Repository to GitHub Mirror / sync (push) Has been cancelled
Reviewed-on: #501 Reviewed-by: idk <idki2p@mail.i2p>
This commit is contained in:
@ -48,6 +48,7 @@ import net.i2p.data.SimpleDataStructure;
|
||||
import net.i2p.data.i2cp.I2CPMessage;
|
||||
import net.i2p.data.i2cp.RequestLeaseSetMessage;
|
||||
import net.i2p.util.Log;
|
||||
import net.i2p.util.OrderedProperties;
|
||||
|
||||
/**
|
||||
* Handle I2CP RequestLeaseSetMessage from the router by granting all leases,
|
||||
@ -144,6 +145,25 @@ class RequestLeaseSetMessageHandler extends HandlerImpl {
|
||||
}
|
||||
if (Boolean.parseBoolean(session.getOptions().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);
|
||||
if (v == null)
|
||||
break;
|
||||
String[] vs = DataHelper.split(v, "=", 2);
|
||||
if (vs.length < 2)
|
||||
continue;
|
||||
if (props == null)
|
||||
props = new OrderedProperties();
|
||||
props.setProperty(vs[0], vs[1]);
|
||||
k = "i2cp.leaseSetOption." + (i + 1);
|
||||
}
|
||||
if (props != null)
|
||||
ls2.setOptions(props);
|
||||
|
||||
// ensure 1-second resolution timestamp is higher than last one
|
||||
long now = Math.max(_context.clock().now(), session.getLastLS2SignTime() + 1000);
|
||||
ls2.setPublished(now);
|
||||
|
@ -9,8 +9,11 @@ package net.i2p.client.impl;
|
||||
*
|
||||
*/
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DatabaseEntry;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.EncryptedLeaseSet;
|
||||
import net.i2p.data.Lease;
|
||||
import net.i2p.data.Lease2;
|
||||
@ -21,6 +24,7 @@ import net.i2p.data.MetaLeaseSet;
|
||||
import net.i2p.data.i2cp.I2CPMessage;
|
||||
import net.i2p.data.i2cp.RequestVariableLeaseSetMessage;
|
||||
import net.i2p.util.Log;
|
||||
import net.i2p.util.OrderedProperties;
|
||||
|
||||
/**
|
||||
* Handle I2CP RequestVariableLeaseSetMessage from the router by granting all leases,
|
||||
@ -56,6 +60,25 @@ class RequestVariableLeaseSetMessageHandler extends RequestLeaseSetMessageHandle
|
||||
}
|
||||
if (Boolean.parseBoolean(session.getOptions().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);
|
||||
if (v == null)
|
||||
break;
|
||||
String[] vs = DataHelper.split(v, "=", 2);
|
||||
if (vs.length < 2)
|
||||
continue;
|
||||
if (props == null)
|
||||
props = new OrderedProperties();
|
||||
props.setProperty(vs[0], vs[1]);
|
||||
k = "i2cp.leaseSetOption." + (i + 1);
|
||||
}
|
||||
if (props != null)
|
||||
ls2.setOptions(props);
|
||||
|
||||
// ensure 1-second resolution timestamp is higher than last one
|
||||
long now = Math.max(_context.clock().now(), session.getLastLS2SignTime() + 1000);
|
||||
ls2.setPublished(now);
|
||||
|
Reference in New Issue
Block a user