net.i2p.router.networkdb.reseed

## Class Reseeder

- java.lang.Object
- - net.i2p.router.networkdb.reseed.Reseeder

-     public class Reseeder
      extends Object

  Moved from ReseedHandler in routerconsole. See ReseedChecker for additional comments. Handler to deal with reseed requests. This will reseed from the URLs specified below unless the I2P configuration property "i2p.reseedURL" is set. It always writes to ./netDb/, so don't mess with that. This is somewhat complicated by trying to log to three places - the console, the router log, and the wrapper log.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_SEED_URL` NOTE - URLs that are in both the standard and SSL groups must use the same hostname, so the reseed process will not download from both.
    `static String` | `DEFAULT_SSL_SEED_URL` The I2P reseed servers are managed by backup (backup@mail.i2p).
    `static String` | `PROP_DISABLE`
    `static String` | `PROP_PROXY_AUTH_ENABLE`
    `static String` | `PROP_PROXY_ENABLE`
    `static String` | `PROP_PROXY_HOST`
    `static String` | `PROP_PROXY_PASSWORD`
    `static String` | `PROP_PROXY_PORT`
    `static String` | `PROP_PROXY_USERNAME` all these @since 0.8.9
    `static String` | `PROP_RESEED_URL`
    `static String` | `PROP_SPROXY_AUTH_ENABLE`
    `static String` | `PROP_SPROXY_ENABLE`
    `static String` | `PROP_SPROXY_HOST`
    `static String` | `PROP_SPROXY_PASSWORD`
    `static String` | `PROP_SPROXY_PORT`
    `static String` | `PROP_SPROXY_TYPE`
    `static String` | `PROP_SPROXY_USERNAME`
    `static String` | `PROP_SSL_DISABLE`
    `static String` | `PROP_SSL_REQUIRED`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Reseeder(RouterContext ctx, ReseedChecker rc)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `main(String[] args)`
    `(package private) void` | `requestReseed()` Start a reseed using the default reseed URLs.
    `(package private) int` | `requestReseed(InputStream in)` Start a reseed from a zip or su3 input stream.
    `(package private) void` | `requestReseed(URI url)` Start a reseed from a single zip or su3 URL only.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_SEED_URL

          public static final String DEFAULT_SEED_URL

      NOTE - URLs that are in both the standard and SSL groups must use the same hostname, so the reseed process will not download from both. Ports are supported as of 0.9.14. NOTE - Each seedURL must be a directory, it must end with a '/', it can't end with 'index.html', for example. Both because of how individual file URLs are constructed, and because SSLEepGet doesn't follow redirects.
      See Also:
        Constant Field Values

    - #### DEFAULT_SSL_SEED_URL

          public static final String DEFAULT_SSL_SEED_URL

      The I2P reseed servers are managed by backup (backup@mail.i2p). Please contact him for support, change requests, or issues. See also the reseed forum http://zzz.i2p/forums/18 and the reseed setup and testing guide https://geti2p.net/en/get-involved/guides/reseed All supported reseed hosts need a corresponding reseed (SU3) signing certificate installed in the router. All supported reseed hosts with selfsigned SSL certificates need the corresponding SSL certificate installed in the router. While this implementation supports SNI, others may not, so SNI requirements are noted.
      See Also:
        Constant Field Values

    - #### PROP_DISABLE

          public static final String PROP_DISABLE

      See Also:
        Constant Field Values

    - #### PROP_PROXY_AUTH_ENABLE

          public static final String PROP_PROXY_AUTH_ENABLE

      See Also:
        Constant Field Values

    - #### PROP_PROXY_ENABLE

          public static final String PROP_PROXY_ENABLE

      See Also:
        Constant Field Values

    - #### PROP_PROXY_HOST

          public static final String PROP_PROXY_HOST

      See Also:
        Constant Field Values

    - #### PROP_PROXY_PASSWORD

          public static final String PROP_PROXY_PASSWORD

      See Also:
        Constant Field Values

    - #### PROP_PROXY_PORT

          public static final String PROP_PROXY_PORT

      See Also:
        Constant Field Values

    - #### PROP_PROXY_USERNAME

          public static final String PROP_PROXY_USERNAME

      all these @since 0.8.9
      See Also:
        Constant Field Values

    - #### PROP_RESEED_URL

          public static final String PROP_RESEED_URL

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_AUTH_ENABLE

          public static final String PROP_SPROXY_AUTH_ENABLE

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_ENABLE

          public static final String PROP_SPROXY_ENABLE

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_HOST

          public static final String PROP_SPROXY_HOST

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_PASSWORD

          public static final String PROP_SPROXY_PASSWORD

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_PORT

          public static final String PROP_SPROXY_PORT

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_TYPE

          public static final String PROP_SPROXY_TYPE

      See Also:
        Constant Field Values

    - #### PROP_SPROXY_USERNAME

          public static final String PROP_SPROXY_USERNAME

      See Also:
        Constant Field Values

    - #### PROP_SSL_DISABLE

          public static final String PROP_SSL_DISABLE

      See Also:
        Constant Field Values

    - #### PROP_SSL_REQUIRED

          public static final String PROP_SSL_REQUIRED

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Reseeder

          Reseeder(RouterContext ctx,
                   ReseedChecker rc)

  - ### Method Detail

    - #### main

          public static void main(String[] args)
                           throws Exception

      Throws:
        `Exception`

    - #### requestReseed

          void requestReseed()

      Start a reseed using the default reseed URLs. Supports su3 and directories. Threaded, nonblocking.

    - #### requestReseed

          int requestReseed(InputStream in)
                     throws IOException

      Start a reseed from a zip or su3 input stream. Blocking, inline. Should be fast. This will close the stream.
      Returns:
        number of valid routerinfos imported
      Throws:
        `IOException` - on most errors

    - #### requestReseed

          void requestReseed(URI url)
                      throws IllegalArgumentException

      Start a reseed from a single zip or su3 URL only. Threaded, nonblocking.
      Throws:
        `IllegalArgumentException` - if it doesn't end with zip or su3