forked from I2P_Developers/i2p.i2p
SSU: Publish introducer expiration (proposal 133)
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2017-04-13 zzz
|
||||||
|
* SSU: Publish introducer expiration (proposal 133)
|
||||||
|
|
||||||
|
2017-04-06 zzz
|
||||||
|
* Debian: Add bash-completion scripts
|
||||||
|
|
||||||
|
2017-04-04 zzz
|
||||||
|
* Router: Fix config dir location in Gentoo
|
||||||
|
|
||||||
2017-04-02 zzz
|
2017-04-02 zzz
|
||||||
* Context: Fix ClientAppManagerImpl in AppContext
|
* Context: Fix ClientAppManagerImpl in AppContext
|
||||||
* i2psnark: Fix standalone configuration for Jetty 9
|
* i2psnark: Fix standalone configuration for Jetty 9
|
||||||
|
@ -18,10 +18,10 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 15;
|
public final static long BUILD = 16;
|
||||||
|
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "";
|
public final static String EXTRA = "-rc";
|
||||||
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Router version: " + FULL_VERSION);
|
System.out.println("I2P Router version: " + FULL_VERSION);
|
||||||
|
@ -99,6 +99,7 @@ class IntroductionManager {
|
|||||||
private static final long PUNCH_CLEAN_TIME = 5*1000;
|
private static final long PUNCH_CLEAN_TIME = 5*1000;
|
||||||
/** Max for all targets per PUNCH_CLEAN_TIME */
|
/** Max for all targets per PUNCH_CLEAN_TIME */
|
||||||
private static final int MAX_PUNCHES = 8;
|
private static final int MAX_PUNCHES = 8;
|
||||||
|
private static final long INTRODUCER_EXPIRATION = 80*60*1000L;
|
||||||
|
|
||||||
public IntroductionManager(RouterContext ctx, UDPTransport transport) {
|
public IntroductionManager(RouterContext ctx, UDPTransport transport) {
|
||||||
_context = ctx;
|
_context = ctx;
|
||||||
@ -178,7 +179,8 @@ class IntroductionManager {
|
|||||||
int sz = peers.size();
|
int sz = peers.size();
|
||||||
start = start % sz;
|
start = start % sz;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
long inactivityCutoff = _context.clock().now() - (UDPTransport.EXPIRE_TIMEOUT / 2); // 15 min
|
long now = _context.clock().now();
|
||||||
|
long inactivityCutoff = now - (UDPTransport.EXPIRE_TIMEOUT / 2); // 15 min
|
||||||
// if not too many to choose from, be less picky
|
// if not too many to choose from, be less picky
|
||||||
if (sz <= howMany + 2)
|
if (sz <= howMany + 2)
|
||||||
inactivityCutoff -= UDPTransport.EXPIRE_TIMEOUT / 4;
|
inactivityCutoff -= UDPTransport.EXPIRE_TIMEOUT / 4;
|
||||||
@ -235,12 +237,14 @@ class IntroductionManager {
|
|||||||
|
|
||||||
// we sort them so a change in order only won't happen, and won't cause a republish
|
// we sort them so a change in order only won't happen, and won't cause a republish
|
||||||
Collections.sort(introducers);
|
Collections.sort(introducers);
|
||||||
|
String exp = Long.toString((now + INTRODUCER_EXPIRATION) / 1000);
|
||||||
for (int i = 0; i < found; i++) {
|
for (int i = 0; i < found; i++) {
|
||||||
Introducer in = introducers.get(i);
|
Introducer in = introducers.get(i);
|
||||||
ssuOptions.setProperty(UDPAddress.PROP_INTRO_HOST_PREFIX + i, in.sip);
|
ssuOptions.setProperty(UDPAddress.PROP_INTRO_HOST_PREFIX + i, in.sip);
|
||||||
ssuOptions.setProperty(UDPAddress.PROP_INTRO_PORT_PREFIX + i, in.sport);
|
ssuOptions.setProperty(UDPAddress.PROP_INTRO_PORT_PREFIX + i, in.sport);
|
||||||
ssuOptions.setProperty(UDPAddress.PROP_INTRO_KEY_PREFIX + i, in.skey);
|
ssuOptions.setProperty(UDPAddress.PROP_INTRO_KEY_PREFIX + i, in.skey);
|
||||||
ssuOptions.setProperty(UDPAddress.PROP_INTRO_TAG_PREFIX + i, in.stag);
|
ssuOptions.setProperty(UDPAddress.PROP_INTRO_TAG_PREFIX + i, in.stag);
|
||||||
|
ssuOptions.setProperty(UDPAddress.PROP_INTRO_EXP_PREFIX + i, exp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME failsafe if found == 0, relax inactivityCutoff and try again?
|
// FIXME failsafe if found == 0, relax inactivityCutoff and try again?
|
||||||
|
Reference in New Issue
Block a user