Class PluginUpdateRunner

  • All Implemented Interfaces:
    Runnable, UpdateTask, EepGet.StatusListener

    class PluginUpdateRunner
    extends UpdateRunner
    Check for an updated version of a plugin. A plugin is a standard .sud file with a 40-byte signature, a 16-byte version, and a .zip file. So we get the current version and update URL for the installed plugin, then fetch the first 56 bytes of the URL, extract the version, and compare. uri list must not be empty. Moved from web/ and turned into an UpdateTask.
    Since:
    0.9.4 moved from PluginUpdateHandler
    • Method Detail

      • getURI

        public URI getURI()
        Description copied from interface: UpdateTask
        The current URI being checked or downloaded from. Can change if there are multiple URIs to try.
        Specified by:
        getURI in interface UpdateTask
        Overrides:
        getURI in class UpdateRunner
      • update

        protected void update()
        Description copied from class: UpdateRunner
        Loop through the entire list of update URLs. For each one, first get the version from the first 56 bytes and see if it is newer than what we are running now. If it is, get the whole thing.
        Overrides:
        update in class UpdateRunner
      • bytesTransferred

        public void bytesTransferred​(long alreadyTransferred,
                                     int currentWrite,
                                     long bytesTransferred,
                                     long bytesRemaining,
                                     String url)
        Overridden to change the "Updating I2P" text in super
        Specified by:
        bytesTransferred in interface EepGet.StatusListener
        Overrides:
        bytesTransferred in class UpdateRunner
        Parameters:
        alreadyTransferred - total of all attempts, not including currentWrite If nonzero on the first call, a partial file of that length was found, _and_ the server supports resume. If zero on a subsequent call after some bytes are transferred (and presumably after an attemptFailed), the server does _not_ support resume and we had to start over. To track _actual_ transfer if the output file could already exist, the listener should keep its own counter, or subtract the initial alreadyTransferred value. And watch out for alreadyTransferred resetting if a resume failed...
        currentWrite - since last call to the listener
        bytesTransferred - includes headers, retries, redirects, discarded partial downloads, ...
        bytesRemaining - on this attempt only, currentWrite already subtracted - or -1 if chunked encoding or server does not return a length
        Since:
        0.9.35