java.lang.Object
net.i2p.router.update.UpdateHandler
All Implemented Interfaces:
Updater
Direct Known Subclasses:
NewsHandler

class UpdateHandlerextends Object implements Updater

Handles the request to update the router by firing one or more EepGet calls to download the latest signed update file and displaying the status to anyone who asks.

After the download completes the signed update file is verified with TrustedUpdate, and if it's authentic the payload of the signed update file is unpacked and the router is restarted to complete the update process.

This does not do any checking, that is handled by the NewsFetcher.

  • Field Details

    • _context

      protected final RouterContext _context
      The router context for configuration access.
    • _mgr

      protected final ConsoleUpdateManager _mgr
      The update manager for coordinating updates.
  • Constructor Details

    • UpdateHandler

      public UpdateHandler(RouterContext ctx, ConsoleUpdateManager mgr)
      Stores the context and the manager that owns the update runner.
      Parameters:
      ctx - router context used to read the proxy setting and to run the download
      mgr - update manager that owns the runner and receives progress notifications
  • Method Details

    • update

      public UpdateTask update(UpdateType type, UpdateMethod method, List<URI> updateSources, String id, String newVersion, long maxTime)
      Start a download and return a handle to the download task. Should not block.
      Specified by:
      update in interface Updater
      Parameters:
      type - selects what is being fetched, e.g. UpdateType.ROUTER_SIGNED
      method - how it is fetched, e.g. UpdateMethod.HTTP over I2P
      updateSources - Where to get the new version from
      id - plugin name or ignored
      newVersion - new version to download
      maxTime - how long you have
      Returns:
      active task or null if unable to download