package org.klomp.snark; import java.net.URI; import java.util.List; import net.i2p.I2PAppContext; import net.i2p.update.*; /** *
Handles the request to update the router by firing up a magnet. * {@link net.i2p.util.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 * {@link net.i2p.crypto.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. * * @since 0.9.4 */ class UpdateHandler implements Updater { private final I2PAppContext _context; private final UpdateManager _umgr; private final SnarkManager _smgr; public UpdateHandler(I2PAppContext ctx, UpdateManager umgr, SnarkManager smgr) { _context = ctx; _umgr = umgr; _smgr = smgr; } /** * Start a download and return a handle to the download task. * Should not block. * * @param id plugin name or ignored * @param maxTime how long you have * @return active task or null if unable to download */ public UpdateTask update(UpdateType type, UpdateMethod method, List