/*
- * jSite - UpdateChecker.java - Copyright © 2008–2012 David Roden
+ * jSite - UpdateChecker.java - Copyright © 2008–2014 David Roden
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
import java.util.logging.Level;
import java.util.logging.Logger;
-import de.todesbaum.jsite.main.Main;
+import net.pterodactylus.util.io.Closer;
import de.todesbaum.jsite.main.Version;
import de.todesbaum.util.freenet.fcp2.Client;
import de.todesbaum.util.freenet.fcp2.ClientGet;
import de.todesbaum.util.freenet.fcp2.Persistence;
import de.todesbaum.util.freenet.fcp2.ReturnType;
import de.todesbaum.util.freenet.fcp2.Verbosity;
-import de.todesbaum.util.io.Closer;
/**
* Checks for newer versions of jSite.
private static int counter = 0;
/** The edition for the update check URL. */
- private static final int UPDATE_EDITION = 17;
+ private static final int UPDATE_EDITION = 11;
/** The URL for update checks. */
- private static final String UPDATE_KEY = "USK@e3myoFyp5avg6WYN16ImHri6J7Nj8980Fm~aQe4EX1U,QvbWT0ImE0TwLODTl7EoJx2NBnwDxTbLTE6zkB-eGPs,AQACAAE";
+ private static final String UPDATE_KEY = "USK@1waTsw46L9-JEQ8yX1khjkfHcn--g0MlMsTlYHax9zQ,oYyxr5jyFnaTsVGDQWk9e3ddOWGKnqEASxAk08MHT2Y,AQACAAE";
/** Object used for synchronization. */
private final Object syncObject = new Object();
private int lastUpdateEdition = UPDATE_EDITION;
/** Last found version. */
- private Version lastVersion = Main.getVersion();
+ private Version lastVersion;
/** The freenet interface. */
private final Freenet7Interface freenetInterface;
* @param freenetInterface
* The freenet interface
*/
- public UpdateChecker(Freenet7Interface freenetInterface) {
+ public UpdateChecker(Freenet7Interface freenetInterface, Version currentVersion) {
this.freenetInterface = freenetInterface;
+ this.lastVersion = currentVersion;
}
//
* The edition number
* @return The URI for the update file for the given edition
*/
- private String constructUpdateKey(int edition) {
+ private static String constructUpdateKey(int edition) {
return UPDATE_KEY + "/jSite/" + edition + "/jSite.properties";
}
/**
* {@inheritDoc}
*/
+ @Override
public void run() {
- Connection connection = freenetInterface.getConnection("jSite-" + ++counter + "-UpdateChecker");
- try {
- connection.connect();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- Client client = new Client(connection);
- boolean checkNow = false;
int currentEdition = lastUpdateEdition;
while (!shouldStop()) {
- checkNow = false;
+
+ /* try to connect. */
+ Client client;
+ while (true) {
+ Connection connection = freenetInterface.getConnection("jSite-" + ++counter + "-UpdateChecker");
+ try {
+ connection.connect();
+ logger.log(Level.INFO, "Connected to " + freenetInterface.getNode() + ".");
+ client = new Client(connection);
+ break;
+ } catch (IOException ioe1) {
+ logger.log(Level.INFO, "Could not connect to " + freenetInterface.getNode() + ".", ioe1);
+ }
+ if (!connection.isConnected()) {
+ try {
+ Thread.sleep(60 * 1000);
+ } catch (InterruptedException ie1) {
+ /* ignore, we’re looping. */
+ }
+ }
+ }
+
+ boolean checkNow = false;
logger.log(Level.FINE, "Trying " + constructUpdateKey(currentEdition));
ClientGet clientGet = new ClientGet("get-update-key");
clientGet.setUri(constructUpdateKey(currentEdition));