Files
i2p.i2p/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java
zzz 7aa9949332 * Reseeding / NetDb:
- Move reseeding from the routerconsole app to
        the router, so that we can bootstrap an embedded router lacking a routerconsole
        (iMule or android for example), without additional modifications.
        This allows better integration between the reseeding function
        and the netDb.
      - Call reseed from PersistentDataStore, not from the
        routerconsole init, and start seeding as soon as the netdb has read
        the netDb/ directory, not when the console starts.
      - Wake up the netdb reader as soon as reseeding is done,
        rather than waiting up to 60s.
      - Don't display the reseed button on the console until the
        netdb initialization is done.
    * NetDb:
      - Fix an NPE on early shutdown
    * RouterConsoleRunner:
      - Catch a class not found error better
2009-06-15 21:58:28 +00:00

35 lines
967 B
Java

package net.i2p.router.web;
import net.i2p.router.RouterContext;
import net.i2p.router.networkdb.reseed.Reseeder;
/**
* Handler to deal with reseed requests.
*/
public class ReseedHandler extends HelperBase {
private static Reseeder _reseedRunner;
public ReseedHandler() {
this(ContextHelper.getContext(null));
}
public ReseedHandler(RouterContext ctx) {
_context = ctx;
}
public void setReseedNonce(String nonce) {
if (nonce == null) return;
if (nonce.equals(System.getProperty("net.i2p.router.web.ReseedHandler.nonce")) ||
nonce.equals(System.getProperty("net.i2p.router.web.ReseedHandler.noncePrev"))) {
requestReseed();
}
}
public void requestReseed() {
synchronized (ReseedHandler.class) {
if (_reseedRunner == null)
_reseedRunner = new Reseeder(_context);
_reseedRunner.requestReseed();
}
}
}