build>full

fixes #6890

Reconnect test works better now
UPNP Reconnect Scanner is Cling based now.



git-svn-id: svn://svn.jdownloader.org/jdownloader/trunk@21511 ebf7c1c2-ba36-0410-9fe8-c592906822b4
This commit is contained in:
coalado 2013-06-28 14:50:21 +00:00
parent 9b1a90ab04
commit f380c4fad7
15 changed files with 463 additions and 517 deletions

View File

@ -1,118 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="jd/plugins/optional/neembuu/|jd/plugins/optional/remoteserv/|jd/plugins/optional/remoteserv/|org/jdownloader/extensions/langfileeditor/" kind="src" path="src"/>
<classpathentry kind="src" path="translations"/>
<classpathentry kind="src" path="themes"/>
<classpathentry kind="src" path="tests"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="jd/ressourcen/libs/dbus"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/irclib.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/js.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/savemytube.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/cobra.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/swingworker.jar" sourcepath="ressourcen/code-ressourcen/swing-worker-src-1.2.zip">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/jd/ressourcen/code-ressourcen/swing-worker-doc-1.2.zip!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/clink170.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/mail.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/debug-1.0.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/jcip-annotations-1.0.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/Filters.jar" sourcepath="ressourcen/code-ressourcen/Filter_src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/looks.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/synthetica.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/jd/ressourcen/code-ressourcen/synthetica_docs.zip!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlackMoon.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlackStar.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlueIce.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlueMoon.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlueSteel.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaMauveMetallic.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaOrangeMetallic.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaSilverMoon.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaSimple2D.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaSkyMetallic.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaWhiteVision.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/jna.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlackEye.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaGreenDream.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/image4j.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/debug-disable.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/hexdump.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/libdbus-java.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/unix.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-assert-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-assert-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-reflect-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-reflect-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-swing-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-swing-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-swing-junit-4.5-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-swing-junit-4.5-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-util-1.1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-util-1.1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/svnkit.jar" sourcepath="ressourcen/code-ressourcen/svnkitsrc.zip"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/junit-4.8.2.jar" sourcepath="ressourcen/code-ressourcen/junit-4.8.2-src.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbinding.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/jpathwatch-0-93-rc1.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/AppleJavaExtensions.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/asc.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/swfutils.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/JDBrowser"/>
<classpathentry combineaccessrules="false" kind="src" path="/AppWorkUtils"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbindingWin.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/swingx.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/mqtt.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/jpfm.jar" sourcepath="ressourcen/code-ressourcen/neembuu/jpfm.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/jpfm-fs.jar" sourcepath="ressourcen/code-ressourcen/neembuu/jpfm-fs.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-config.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-config.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-diskmanager.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-diskmanager.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-swing.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-swing.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-util.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-util.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-util-logging.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-util-logging.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-util-weaklisteners.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-util-weaklisteners.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-vfs.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-vfs.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/rangearray.jar" sourcepath="ressourcen/code-ressourcen/neembuu/rangearray.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/com-sun-tools-visualvm-charts.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/com-sun-tools-visualvm-uisupport.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-netbeans-lib-profiler-charts.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-netbeans-lib-profiler-ui.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-openide-util.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-openide-util-lookup.jar"/>
<classpathentry kind="lib" path="/AppWorkUtils/libs/jackson-core.jar"/>
<classpathentry kind="lib" path="/AppWorkUtils/libs/jackson-mapper.jar"/>
<classpathentry kind="lib" path="/AppWorkUtils/libs/miglayout.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/bcprov-jdk15on-147.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbindingLinux.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbindingMac.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/cling-core-2.0-SNAPSHOT.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/src/main/java">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/apidocs/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/cling-support-2.0-SNAPSHOT.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/support/src/main/java">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/support/apidocs/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-http-1.0-SNAPSHOT.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/src/main/java">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/apidocs/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-util-1.0-20111017.170503-1.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/src/main/java">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/apidocs/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-xml-1.0-SNAPSHOT.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/src/main/java">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Users/Thomas/Downloads/cling-distribution-2.0-SNAPSHOT/core/apidocs/"/>
</attributes>
</classpathentry>
<classpathentry combineaccessrules="false" kind="src" path="/MyJDownloaderClient"/>
<classpathentry kind="lib" path="ressourcen/libs/jna_platform.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="jd/plugins/optional/neembuu/|jd/plugins/optional/remoteserv/|jd/plugins/optional/remoteserv/|org/jdownloader/extensions/langfileeditor/" kind="src" path="src"/>
<classpathentry kind="src" path="translations"/>
<classpathentry kind="src" path="themes"/>
<classpathentry kind="src" path="tests"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="jd/ressourcen/libs/dbus"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/irclib.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/js.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/savemytube.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/cobra.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/swingworker.jar" sourcepath="ressourcen/code-ressourcen/swing-worker-src-1.2.zip">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/jd/ressourcen/code-ressourcen/swing-worker-doc-1.2.zip!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs_ext/mail.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/debug-1.0.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/jcip-annotations-1.0.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/Filters.jar" sourcepath="ressourcen/code-ressourcen/Filter_src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/looks.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/synthetica.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/jd/ressourcen/code-ressourcen/synthetica_docs.zip!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlackMoon.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlackStar.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlueIce.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlueMoon.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlueSteel.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaMauveMetallic.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaOrangeMetallic.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaSilverMoon.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaSimple2D.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaSkyMetallic.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaWhiteVision.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/jna.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaBlackEye.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/laf/syntheticaGreenDream.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/image4j.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/debug-disable.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/hexdump.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/libdbus-java.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/dbus/unix.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-assert-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-assert-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-reflect-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-reflect-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-swing-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-swing-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-swing-junit-4.5-1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-swing-junit-4.5-1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/fest-util-1.1.2.jar" sourcepath="ressourcen/code-ressourcen/fest-util-1.1.2-sources.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/svnkit.jar" sourcepath="ressourcen/code-ressourcen/svnkitsrc.zip"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/junit-4.8.2.jar" sourcepath="ressourcen/code-ressourcen/junit-4.8.2-src.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbinding.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/jpathwatch-0-93-rc1.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/AppleJavaExtensions.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/asc.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/swfutils.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/JDBrowser"/>
<classpathentry combineaccessrules="false" kind="src" path="/AppWorkUtils"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbindingWin.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/swingx.jar"/>
<classpathentry kind="lib" path="ressourcen/libs_ext/mqtt.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/jpfm.jar" sourcepath="ressourcen/code-ressourcen/neembuu/jpfm.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/jpfm-fs.jar" sourcepath="ressourcen/code-ressourcen/neembuu/jpfm-fs.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-config.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-config.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-diskmanager.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-diskmanager.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-swing.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-swing.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-util.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-util.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-util-logging.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-util-logging.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-util-weaklisteners.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-util-weaklisteners.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/neembuu-vfs.jar" sourcepath="ressourcen/code-ressourcen/neembuu/neembuu-vfs.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/rangearray.jar" sourcepath="ressourcen/code-ressourcen/neembuu/rangearray.src.zip"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/com-sun-tools-visualvm-charts.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/com-sun-tools-visualvm-uisupport.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-netbeans-lib-profiler-charts.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-netbeans-lib-profiler-ui.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-openide-util.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/neembuu/org-openide-util-lookup.jar"/>
<classpathentry kind="lib" path="/AppWorkUtils/libs/jackson-core.jar"/>
<classpathentry kind="lib" path="/AppWorkUtils/libs/jackson-mapper.jar"/>
<classpathentry kind="lib" path="/AppWorkUtils/libs/miglayout.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/bcprov-jdk15on-147.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbindingLinux.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/sevenzipjbindingMac.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/MyJDownloaderClient"/>
<classpathentry kind="lib" path="ressourcen/libs/jna_platform.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/cling-core.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-alpha2/core/cling-core-2.0-alpha2-sources.jar">
<attributes>
<attribute name="source_encoding" value="UTF-8"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/cling-support.jar" sourcepath="C:/Users/Thomas/Downloads/cling-distribution-2.0-alpha2/support/cling-support-2.0-alpha2-sources.jar">
<attributes>
<attribute name="source_encoding" value="UTF-8"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-http.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-util.jar"/>
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-xml.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

Binary file not shown.

View File

@ -1,5 +1,6 @@
package jd.controlling.reconnect.ipcheck;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.regex.Matcher;
@ -24,7 +25,7 @@ public class BalancedWebIPCheck implements IPCheckProvider {
return BalancedWebIPCheck.INSTANCE;
}
private static final java.util.List<String> SERVICES = new ArrayList<String>();
private static final java.util.List<String> SERVICES = new ArrayList<String>();
static {
SERVICES.add("http://ipcheck3.jdownloader.org");
SERVICES.add("http://ipcheck2.jdownloader.org");
@ -34,16 +35,16 @@ public class BalancedWebIPCheck implements IPCheckProvider {
/**
* All registered ip check urls
*/
private final java.util.List<String> servicesInUse;
private final java.util.List<String> servicesInUse;
private final Browser br;
private final Browser br;
private final Pattern pattern;
private final Pattern pattern;
private static final BalancedWebIPCheck INSTANCE = new BalancedWebIPCheck(false);
private final Object LOCK = new Object();
private static final BalancedWebIPCheck INSTANCE = new BalancedWebIPCheck(false);
private final Object LOCK = new Object();
private boolean checkOnlyOnce;
private boolean checkOnlyOnce;
public BalancedWebIPCheck(boolean useGlobalProxy) {
this.servicesInUse = new ArrayList<String>();
@ -81,6 +82,11 @@ public class BalancedWebIPCheck implements IPCheckProvider {
return IP.getInstance(matcher.group(1));
}
}
} catch (final IOException e2) {
try {
br.disconnect();
} catch (final Throwable e) {
}
} catch (final Throwable e2) {
try {
br.disconnect();

View File

@ -28,7 +28,7 @@ import jd.controlling.reconnect.pluginsinc.liveheader.recoll.RecollController;
import jd.controlling.reconnect.pluginsinc.liveheader.remotecall.RouterData;
import jd.controlling.reconnect.pluginsinc.liveheader.translate.T;
import jd.controlling.reconnect.pluginsinc.upnp.UPNPRouterPlugin;
import jd.controlling.reconnect.pluginsinc.upnp.UpnpRouterDevice;
import jd.controlling.reconnect.pluginsinc.upnp.cling.UpnpRouterDevice;
import jd.http.Browser;
import jd.http.URLConnectionAdapter;
import jd.utils.JDUtilities;

View File

@ -21,6 +21,8 @@ import jd.controlling.reconnect.ipcheck.IPCheckException;
import jd.controlling.reconnect.ipcheck.IPCheckProvider;
import jd.controlling.reconnect.ipcheck.InvalidIPRangeException;
import jd.controlling.reconnect.ipcheck.InvalidProviderException;
import jd.controlling.reconnect.pluginsinc.upnp.cling.UPNPDeviceScanner;
import jd.controlling.reconnect.pluginsinc.upnp.cling.UpnpRouterDevice;
import jd.controlling.reconnect.pluginsinc.upnp.translate.T;
import net.miginfocom.swing.MigLayout;
@ -79,7 +81,7 @@ public class UPNPRouterPlugin extends RouterPlugin implements IPCheckProvider {
ReconnectResult res;
try {
processCallBack.setStatusString(this, T._.try_reconnect(device.getFriendlyname() == null ? device.getModelname() : device.getFriendlyname()));
processCallBack.setStatusString(this, T._.try_reconnect(device.getModelname()));
logger.info("Try " + device);
res = new UPNPReconnectInvoker(this, device.getServiceType(), device.getControlURL()).validate();
logger.info("REsult " + res);
@ -292,9 +294,8 @@ public class UPNPRouterPlugin extends RouterPlugin implements IPCheckProvider {
public synchronized java.util.List<UpnpRouterDevice> getDevices() throws InterruptedException {
if (devices == null || devices.size() == 0) {
// upnp somtimes works, sometimes not - no idea why. that's why we
// do a scan if we have no responses
devices = UPNPScanner.scanDevices();
// This will create necessary network resources for UPnP right away
devices = new UPNPDeviceScanner().scan();
}
return devices;
}

View File

@ -1,261 +0,0 @@
package jd.controlling.reconnect.pluginsinc.upnp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.URL;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import jd.controlling.reconnect.pluginsinc.upnp.translate.T;
import org.appwork.storage.JSonStorage;
import org.appwork.utils.Regex;
import org.appwork.utils.logging.Log;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class UPNPScanner implements Runnable {
private java.util.List<UpnpRouterDevice> foundDevices;
private UPNPScanner() {
// ThreadGroup grp = new
// ThreadGroup(Thread.currentThread().getThreadGroup(), "UPNPScanner");
}
final static String MSG = "M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\nMAN: \"ssdp:discover\"\r\nMX: 3\r\n\r\n";
public synchronized java.util.List<UpnpRouterDevice> scan() throws InterruptedException {
foundDevices = new ArrayList<UpnpRouterDevice>();
/*
* TODO (NOT IMPORTANT) To simplify will not make a request for every network interface, let java decide the network interface.
*/
Thread th = new Thread(this, "UPNPScanner");
th.start();
try {
th.join();
} catch (InterruptedException e) {
close();
throw e;
}
return foundDevices;
}
private void close() {
try {
socket.close();
} catch (Throwable e1) {
}
}
private MulticastSocket socket;
public void run() {
try {
socket = new MulticastSocket();
socket.setSoTimeout(5000);
DatagramPacket packet = new DatagramPacket(MSG.getBytes("UTF-8"), MSG.length(), InetAddress.getByName("239.255.255.250"), 1900);
socket.send(packet);
// we need a bigger receive buffer.
final byte[] buffer = new byte[500 * 1024];
packet = new DatagramPacket(buffer, buffer.length);
String response = null;
while (true) {
socket.receive(packet);
response = new String(packet.getData(), "UTF-8");
Log.L.fine(response);
URL url;
for (final String location : new Regex(response, "LOCATION\\s*:\\s*([^\\s]+)").getColumn(0)) {
if (Thread.currentThread().isInterrupted()) throw new InterruptedException();
try {
url = new URL(location);
// put(UPNPRouterPlugin.LOCATION, location);
final BufferedReader stream = new BufferedReader(new InputStreamReader(url.openStream()));
String xmlStr = "";
String ln;
while ((ln = stream.readLine()) != null) {
xmlStr += ln;
}
stream.close();
final Matcher m = Pattern.compile("(<.*?>)").matcher(xmlStr);
// lowercase all tags
final StringBuilder sb = new StringBuilder();
int last = 0;
while (m.find()) {
sb.append(xmlStr.substring(last, m.start()));
sb.append(m.group(0).toLowerCase());
last = m.end();
}
sb.append(xmlStr.substring(last));
xmlStr = sb.toString();
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
builder = factory.newDocumentBuilder();
final Document document = builder.parse(new InputSource(new StringReader(xmlStr)));
// ############## urlbase ##############
final Node base = document.getElementsByTagName(UpnpRouterDevice.URLBASE).item(0);
String urlbase = null;
if (base != null) {
urlbase = base.getTextContent().trim();
if (urlbase != null) {
urlbase = urlbase.trim();
}
}
if (urlbase == null) {
urlbase = url.getProtocol() + "://" + url.getHost();
if (url.getPort() != -1) {
urlbase += ":" + url.getPort();
}
} else if (urlbase.endsWith("/")) {
urlbase = urlbase.substring(0, urlbase.length() - 1);
}
// .put(UPNPRouterPlugin.URLBASE, urlbase);
// ############## Modelname ##############
Element el = null;
String friendname = null;
String modelname = null;
String manufactor = null;
NodeList nodes = document.getElementsByTagName("devicetype");
for (int i = 0; i < nodes.getLength(); i++) {
if (Thread.currentThread().isInterrupted()) throw new InterruptedException();
if (nodes.item(i).getTextContent().toLowerCase().matches("urn:schemas-upnp-org:device:internetgatewaydevice:1")) {
el = (Element) nodes.item(i).getParentNode();
final NodeList nodes2 = nodes.item(i).getParentNode().getChildNodes();
for (int j = 0; j < nodes2.getLength(); j++) {
if (nodes2.item(j).getNodeName().matches(UpnpRouterDevice.FRIENDLYNAME)) {
friendname = nodes2.item(j).getTextContent();
// no sure why we do not use
// break here
// device.put(UPNPRouterPlugin.ModelNAME,
// Modelname);
}
if (nodes2.item(j).getNodeName().matches(UpnpRouterDevice.MODELNAME)) {
modelname = nodes2.item(j).getTextContent();
// no sure why we do not use
// break here
// device.put(UPNPRouterPlugin.ModelNAME,
// Modelname);
}
if (nodes2.item(j).getNodeName().matches(UpnpRouterDevice.MANUFACTOR)) {
manufactor = nodes2.item(j).getTextContent();
// no sure why we do not use
// break here
// device.put(UPNPRouterPlugin.ModelNAME,
// Modelname);
}
}
}
}
// ############## controlurl ##############
// ############## servicetype #############
// ################# wanip ################
nodes = el.getElementsByTagName(UpnpRouterDevice.SERVICETYPE);
for (int i = 0; i < nodes.getLength(); i++) {
if (nodes.item(i).getTextContent().toLowerCase().matches("urn:schemas-upnp-org:service:wan[i|p]pp?connection:1")) {
/* add device to found list */
final UpnpRouterDevice device = new UpnpRouterDevice();
device.setUrlBase(urlbase);
device.setModelname(friendname);
device.setModelname(modelname);
device.setManufactor(manufactor);
device.setLocation(location);
final String servicetype = nodes.item(i).getTextContent();
device.setServiceType(servicetype);
// .put(UPNPRouterPlugin.SERVICETYPE,
// servicetype);
final NodeList nodes2 = nodes.item(i).getParentNode().getChildNodes();
for (int j = 0; j < nodes2.getLength(); j++) {
if (nodes2.item(j).getNodeName().matches(UpnpRouterDevice.CONTROLURL)) {
String controlurl = nodes2.item(j).getTextContent().trim();
if (!controlurl.startsWith("/")) {
controlurl = "/" + controlurl;
}
controlurl = urlbase + controlurl;
device.setHost(url.getHost());
// .put(UPNPRouterPlugin.HOST,
// url.getHost());
device.setControlURL(controlurl);
// device.put(UPNPRouterPlugin.CONTROLURL,
// controlurl);
final Matcher service = Pattern.compile("wan([i|p]pp?)connection", Pattern.CASE_INSENSITIVE).matcher(servicetype);
if (service.find()) {
if (service.group(1).toLowerCase().equals("ppp")) {
device.setWanservice(T._.interaction_UpnpReconnect_wanservice_ppp());
} else {
device.setWanservice(T._.interaction_UpnpReconnect_wanservice_ip());
}
}
break;
}
}
foundDevices.add(device);
}
}
} catch (final ParserConfigurationException e) {
Log.exception(e);
} catch (final SAXException e) {
Log.exception(e);
}
}
}
} catch (IOException e) {
Log.exception(e);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
close();
}
}
public static void main(String[] args) {
try {
Log.L.setLevel(Level.ALL);
System.out.println(JSonStorage.toString(INSTANCE.scan()));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static UPNPScanner INSTANCE = new UPNPScanner();
public static java.util.List<UpnpRouterDevice> scanDevices() throws InterruptedException {
return INSTANCE.scan();
}
}

View File

@ -2,12 +2,13 @@ package jd.controlling.reconnect.pluginsinc.upnp;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import jd.controlling.reconnect.pluginsinc.upnp.cling.UPNPDeviceScanner;
import jd.controlling.reconnect.pluginsinc.upnp.cling.UpnpRouterDevice;
import jd.controlling.reconnect.pluginsinc.upnp.translate.T;
import org.appwork.swing.action.BasicAction;
@ -45,7 +46,7 @@ public class UPNPScannerAction extends BasicAction {
public void run() throws Exception {
final java.util.List<UpnpRouterDevice> devices = UPNPScanner.scanDevices();
final java.util.List<UpnpRouterDevice> devices = new UPNPDeviceScanner().scan();
if (devices.size() == 0) {
Dialog.getInstance().showErrorDialog(T._.UPNPRouterPlugin_run_error());

View File

@ -1,97 +0,0 @@
package jd.controlling.reconnect.pluginsinc.upnp;
import java.util.HashMap;
public class UpnpRouterDevice extends HashMap<String, String> {
/**
* These constancs are not only storage keys, but are used by the Parser in
* UPNPRouterPlugin. So <b>DO NEVER CHANGE THEM WITHOUT KNOWING 100% what
* you are doing</b>
*/
public static final String LOCATION = "location";
public static final String URLBASE = "urlbase";
public static final String FRIENDLYNAME = "friendlyname";
public static final String HOST = "host";
public static final String CONTROLURL = "controlurl";
public static final String WANSERVICE = "wanservice";
public static final String SERVICETYPE = "servicetype";
/**
*
*/
private static final long serialVersionUID = 1L;
public static final String MODELNAME = "modelname";
public static final String MANUFACTOR = "manufacturer";
public String getControlURL() {
return this.get(UpnpRouterDevice.CONTROLURL);
}
public String getFriendlyname() {
return this.get(UpnpRouterDevice.FRIENDLYNAME);
}
public String getHost() {
return this.get(UpnpRouterDevice.HOST);
}
public String getLocation() {
return this.get(UpnpRouterDevice.LOCATION);
}
public String getManufactor() {
return this.get(UpnpRouterDevice.MANUFACTOR);
}
public String getModelname() {
return this.get(UpnpRouterDevice.MODELNAME);
}
public String getServiceType() {
return this.get(UpnpRouterDevice.SERVICETYPE);
}
public String getUrlBase() {
return this.get(UpnpRouterDevice.URLBASE);
}
public String getWanservice() {
return this.get(UpnpRouterDevice.WANSERVICE);
}
public void setControlURL(final String controlURL) {
this.put(UpnpRouterDevice.CONTROLURL, controlURL);
}
public void setFriendlyname(final String friendlyname) {
this.put(UpnpRouterDevice.FRIENDLYNAME, friendlyname);
}
public void setHost(final String host) {
this.put(UpnpRouterDevice.HOST, host);
}
public void setLocation(final String location) {
this.put(UpnpRouterDevice.LOCATION, location);
}
public void setManufactor(final String manufactor2) {
this.put(UpnpRouterDevice.MANUFACTOR, manufactor2);
}
public void setModelname(final String modelname2) {
this.put(UpnpRouterDevice.MODELNAME, modelname2);
}
public void setServiceType(final String servicyType) {
this.put(UpnpRouterDevice.SERVICETYPE, servicyType);
}
public void setUrlBase(final String urlBase) {
this.put(UpnpRouterDevice.URLBASE, urlBase);
}
public void setWanservice(final String wanservice) {
this.put(UpnpRouterDevice.WANSERVICE, wanservice);
}
}

View File

@ -0,0 +1,15 @@
package jd.controlling.reconnect.pluginsinc.upnp.cling;
import org.fourthline.cling.controlpoint.ActionCallback;
import org.fourthline.cling.model.action.ActionInvocation;
import org.fourthline.cling.model.meta.Service;
public abstract class ForceTermination extends ActionCallback {
public static final String FORCE_TERMINATION = "ForceTermination";
public ForceTermination(Service service) {
super(new ActionInvocation(service.getAction(FORCE_TERMINATION)));
}
}

View File

@ -0,0 +1,23 @@
package jd.controlling.reconnect.pluginsinc.upnp.cling;
import org.fourthline.cling.controlpoint.ActionCallback;
import org.fourthline.cling.model.action.ActionInvocation;
import org.fourthline.cling.model.message.UpnpResponse;
import org.fourthline.cling.model.meta.Service;
public class RequestConnection extends ActionCallback {
protected RequestConnection(Service service) {
super(new ActionInvocation(service.getAction("RequestConnection")));
}
@Override
public void success(ActionInvocation invocation) {
}
@Override
public void failure(ActionInvocation invocation, UpnpResponse operation, String defaultMsg) {
}
}

View File

@ -0,0 +1,160 @@
package jd.controlling.reconnect.pluginsinc.upnp.cling;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import jd.controlling.reconnect.pluginsinc.upnp.translate.T;
import org.appwork.utils.logging2.LogSource;
import org.fourthline.cling.UpnpServiceImpl;
import org.fourthline.cling.model.meta.Action;
import org.fourthline.cling.model.meta.Device;
import org.fourthline.cling.model.meta.LocalDevice;
import org.fourthline.cling.model.meta.RemoteDevice;
import org.fourthline.cling.model.meta.RemoteService;
import org.fourthline.cling.model.meta.Service;
import org.fourthline.cling.model.types.UDAServiceType;
import org.fourthline.cling.registry.Registry;
import org.fourthline.cling.registry.RegistryListener;
import org.jdownloader.logging.LogController;
public class UPNPDeviceScanner {
private LogSource logger;
public UPNPDeviceScanner() {
logger = LogController.getInstance().getLogger(UPNPDeviceScanner.class.getName());
}
public List<UpnpRouterDevice> scan() throws InterruptedException {
System.out.println("Starting Cling...");
// final HashSet<RemoteDevice> devices = new HashSet<UpnpRouterDevice>();
final UpnpServiceImpl upnpService = new UpnpServiceImpl(new RegistryListener() {
public void remoteDeviceDiscoveryStarted(Registry registry, RemoteDevice device) {
System.out.println("Discovery started: " + device.getDisplayString() + " - " + device.getType());
}
public void remoteDeviceDiscoveryFailed(Registry registry, RemoteDevice device, Exception ex) {
System.out.println("Discovery failed: " + device.getDisplayString() + " => " + ex);
}
public void remoteDeviceAdded(Registry registry, RemoteDevice device) {
System.out.println("Remote device available: " + device.getDisplayString() + " - " + device.getType());
// UpnpRouterDevice d = new UpnpRouterDevice();
// DeviceDetails detail = device.getDetails();
// // d.setControlURL(device.getDetails().g);
// d.setFriendlyname(device.getDetails().getFriendlyName());
// d.setHost(device.getIdentity().getDescriptorURL().getHost());
// // d.setLocation(location);
// d.setManufactor(detail.getManufacturerDetails().getManufacturer());
// d.setModelname(detail.getModelDetails().getModelName());
// // d.setServiceType(servicyType);
// d.setUrlBase(detail.getBaseURL() + "");
// // d.setWanservice(wanservice);
// devices.add(d);
}
public void remoteDeviceUpdated(Registry registry, RemoteDevice device) {
System.out.println("Remote device updated: " + device.getDisplayString() + " - " + device.getType());
}
public void remoteDeviceRemoved(Registry registry, RemoteDevice device) {
System.out.println("Remote device removed: " + device.getDisplayString());
}
public void localDeviceAdded(Registry registry, LocalDevice device) {
System.out.println("Local device added: " + device.getDisplayString());
}
public void localDeviceRemoved(Registry registry, LocalDevice device) {
System.out.println("Local device removed: " + device.getDisplayString());
}
public void beforeShutdown(Registry registry) {
System.out.println("Before shutdown, the registry has devices: " + registry.getDevices().size());
}
public void afterShutdown() {
System.out.println("Shutdown of registry complete!");
}
});
// Send a search message to all devices and services, they should respond soon
upnpService.getControlPoint().search();
try {
// Let's wait 10 seconds for them to respond
System.out.println("Waiting 10 seconds before shutting down...");
Thread.sleep(5000);
HashSet<UpnpRouterDevice> ret = new HashSet<UpnpRouterDevice>();
UDAServiceType serviceType = new UDAServiceType("WANIPConnection", 1);
for (Device device : upnpService.getRegistry().getDevices(serviceType)) {
try {
final Service service = device.findService(serviceType);
if (service != null && service instanceof RemoteService) {
Action action = service.getAction(ForceTermination.FORCE_TERMINATION);
if (action != null) {
UpnpRouterDevice d = new UpnpRouterDevice();
d.setModelname(device.getDisplayString());
d.setWanservice(T._.interaction_UpnpReconnect_wanservice_ip());
URL url = ((RemoteService) service).getDevice().normalizeURI(((RemoteService) service).getControlURI());
d.setControlURL(url + "");
d.setServiceType(((RemoteService) service).getServiceType() + "");
d.setFriendlyname(device.getDetails().getFriendlyName());
d.setManufactor(device.getDetails().getManufacturerDetails().getManufacturer());
ret.add(d);
}
}
} catch (Exception e) {
logger.log(e);
}
}
serviceType = new UDAServiceType("WANPPPConnection", 1);
for (Device device : upnpService.getRegistry().getDevices(serviceType)) {
try {
final Service service = device.findService(serviceType);
if (service != null) {
Action action = service.getAction(ForceTermination.FORCE_TERMINATION);
if (action != null) {
UpnpRouterDevice d = new UpnpRouterDevice();
d.setModelname(device.getDisplayString());
d.setWanservice(T._.interaction_UpnpReconnect_wanservice_ppp());
URL url = ((RemoteService) service).getDevice().normalizeURI(((RemoteService) service).getControlURI());
d.setControlURL(url + "");
d.setFriendlyname(device.getDetails().getFriendlyName());
d.setManufactor(device.getDetails().getManufacturerDetails().getManufacturer());
ret.add(d);
}
}
} catch (Exception e) {
logger.log(e);
}
}
// Release all resources and advertise BYEBYE to other UPnP devices
return new ArrayList<UpnpRouterDevice>(ret);
} finally {
System.out.println("Stopping Cling...");
upnpService.shutdown();
}
}
public static void main(String[] args) throws InterruptedException {
new UPNPDeviceScanner().scan();
}
}

View File

@ -0,0 +1,76 @@
package jd.controlling.reconnect.pluginsinc.upnp.cling;
import java.net.MalformedURLException;
import java.net.URL;
import org.appwork.storage.Storable;
public class UpnpRouterDevice implements Storable {
private String wanservice;
private String modelname;
private String controlURL;
private String serviceType;
private String manufactor;
private String friendlyname;
public void setWanservice(String wanservice) {
this.wanservice = wanservice;
}
public void setModelname(String modelname) {
this.modelname = modelname;
}
public UpnpRouterDevice(/* storable */) {
}
public String getWanservice() {
return wanservice;
}
public String getModelname() {
return modelname;
}
public void setControlURL(String string) {
controlURL = string;
}
public String getControlURL() {
return controlURL;
}
public void setServiceType(String string) {
serviceType = string;
}
public String getServiceType() {
return serviceType;
}
public String getHost() {
try {
return new URL(getControlURL()).getHost();
} catch (MalformedURLException e) {
return null;
}
}
public String getManufactor() {
return manufactor;
}
public String getFriendlyname() {
return friendlyname;
}
public void setManufactor(String manufactor) {
this.manufactor = manufactor;
}
public void setFriendlyname(String friendlyname) {
this.friendlyname = friendlyname;
}
}

View File

@ -2,10 +2,15 @@ package jd.gui.swing.jdgui.components.toolbar.actions;
import java.awt.event.ActionEvent;
import jd.gui.swing.jdgui.views.settings.panels.reconnect.ReconnectTestAction;
import jd.controlling.reconnect.ReconnectException;
import jd.controlling.reconnect.Reconnecter;
import jd.gui.swing.jdgui.views.settings.panels.reconnect.ReconnectDialog;
import org.appwork.uio.UIOManager;
import org.appwork.utils.logging2.LogSource;
import org.appwork.utils.swing.dialog.Dialog;
import org.appwork.utils.swing.dialog.DialogCanceledException;
import org.appwork.utils.swing.dialog.DialogClosedException;
import org.jdownloader.gui.toolbar.action.ToolBarAction;
import org.jdownloader.gui.translate._GUI;
import org.jdownloader.gui.views.SelectionInfo;
@ -23,7 +28,23 @@ public class ReconnectAction extends ToolBarAction {
if (UIOManager.I().showConfirmDialog(Dialog.STYLE_SHOW_DO_NOT_DISPLAY_AGAIN, _GUI._.lit_are_you_sure(), _GUI._.gui_reconnect_confirm(), NewTheme.I().getIcon("reconnect", 32), _GUI._.lit_yes(), _GUI._.lit_no())) {
new ReconnectTestAction().actionPerformed(e);
try {
Dialog.getInstance().showDialog(new ReconnectDialog() {
protected boolean startReconnectAndWait(LogSource logger) throws ReconnectException, InterruptedException {
return Reconnecter.getInstance().forceReconnect();
}
});
} catch (DialogClosedException e1) {
e1.printStackTrace();
} catch (DialogCanceledException e1) {
e1.printStackTrace();
}
//
// new Thread(new Runnable() {
// public void run() {
// Reconnecter.getInstance().forceReconnect();
// }
// }).start();
}
}

View File

@ -116,26 +116,8 @@ public class ReconnectDialog extends AbstractDialog<Object> implements IPControl
LogSource logger = LogController.CL();
try {
logger.setAllowTimeoutFlush(false);
ReconnectInvoker plg = ReconnectPluginController.getInstance().getActivePlugin().getReconnectInvoker();
if (plg == null) throw new ReconnectException(_GUI._.ReconnectDialog_run_failed_not_setup_());
plg.setLogger(logger);
// if (IPController.getInstance().getIpState().isOffline()) {
// ((ImagePainter) progress.getNonvalueClipPainter()).setBackground(Color.GRAY);
// ((ImagePainter) progress.getNonvalueClipPainter()).setForeground(Color.RED);
// progress.setValue(0);
// Dialog.getInstance().showMessageDialog(_GUI._.reconnect_test_offline());
// new EDTRunner() {
//
// @Override
// protected void runInEDT() {
// dispose();
// }
// };
// return;
// }
ReconnectResult result = plg.validate();
if (result.isSuccess()) {
if (startReconnectAndWait(logger)) {
logger.clear();
new EDTRunner() {
@ -153,6 +135,7 @@ public class ReconnectDialog extends AbstractDialog<Object> implements IPControl
}
};
}
update();
progress.setIndeterminate(false);
if (IPController.getInstance().isInvalidated()) {
((ImagePainter) progress.getNonvalueClipPainter()).setBackground(Color.GRAY);
@ -197,11 +180,7 @@ public class ReconnectDialog extends AbstractDialog<Object> implements IPControl
updateTimer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
duration.setText(TimeFormatter.formatMilliSeconds(System.currentTimeMillis() - startTime, 0));
// if (!IPController.getInstance().isInvalidated()) {
newIP.setText(IPController.getInstance().getIP().toString());
// updateTimer.stop();
// }
update();
}
});
@ -277,4 +256,39 @@ public class ReconnectDialog extends AbstractDialog<Object> implements IPControl
public void onIPStateChanged(IPConnectionState parameter, IPConnectionState parameter2) {
}
protected boolean startReconnectAndWait(LogSource logger) throws ReconnectException, InterruptedException {
ReconnectInvoker plg = ReconnectPluginController.getInstance().getActivePlugin().getReconnectInvoker();
if (plg == null) throw new ReconnectException(_GUI._.ReconnectDialog_run_failed_not_setup_());
plg.setLogger(logger);
// if (IPController.getInstance().getIpState().isOffline()) {
// ((ImagePainter) progress.getNonvalueClipPainter()).setBackground(Color.GRAY);
// ((ImagePainter) progress.getNonvalueClipPainter()).setForeground(Color.RED);
// progress.setValue(0);
// Dialog.getInstance().showMessageDialog(_GUI._.reconnect_test_offline());
// new EDTRunner() {
//
// @Override
// protected void runInEDT() {
// dispose();
// }
// };
// return;
// }
ReconnectResult result = plg.validate();
return result.isSuccess();
}
protected void update() {
duration.setText(TimeFormatter.formatMilliSeconds(System.currentTimeMillis() - startTime, 0));
// if (!IPController.getInstance().isInvalidated()) {
IPConnectionState ip = IPController.getInstance().getIpState();
newIP.setText(ip.toString());
// updateTimer.stop();
// }
}
}

View File

@ -77,7 +77,7 @@ public class AddLinksProgress extends AbstractDialog<Object> {
header.setText(_GUI._.AddLinksProgress_layoutDialogContent_header_(stz.substring(0, Math.min(45, stz.length()))));
p.add(label(_GUI._.AddLinksProgress_layoutDialogContent_duration()));
p.add(duration = new JLabel(), "width 50!");
p.add(duration = new JLabel(), "width 50:n:n,growx");
p.add(new JLabel(NewTheme.I().getIcon("go-next", 18)));
p.add(label(_GUI._.AddLinksProgress_found()));
p.add(old = new JLabel());