📄 configurationchecker.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: ConfigurationChecker.java
package org.gudy.azureus2.core3.config.impl;
import com.aelitis.azureus.core.proxy.socks.AESocksProxy;
import com.aelitis.azureus.core.proxy.socks.AESocksProxyFactory;
import com.aelitis.azureus.core.util.FeatureAvailability;
import java.io.*;
import java.lang.reflect.Field;
import java.net.InetAddress;
import java.util.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.config.ParameterListener;
import org.gudy.azureus2.core3.logging.*;
import org.gudy.azureus2.core3.security.SESecurityManager;
import org.gudy.azureus2.core3.util.*;
// Referenced classes of package org.gudy.azureus2.core3.config.impl:
// ConfigurationDefaults, ConfigurationManager
public class ConfigurationChecker
{
private static final LogIDs LOGID;
private static boolean system_properties_set = false;
private static boolean checked = false;
private static boolean new_install = false;
private static AEMonitor class_mon = new AEMonitor("ConfigChecker");
private static boolean new_version = false;
public ConfigurationChecker()
{
}
protected static void setSystemProperties()
{
class_mon.enter();
if (system_properties_set)
{
class_mon.exit();
return;
}
COConfigurationManager.preInitialise();
String app_path = SystemProperties.getApplicationPath();
String user_path = SystemProperties.getUserPath();
loadProperties(app_path);
if (!app_path.equals(user_path))
loadProperties(user_path);
COConfigurationManager.addAndFireParameterListener("IPV6 Prefer Addresses", new ParameterListener() {
private boolean done_something;
public void parameterChanged(String name)
{
boolean prefer_ipv6 = COConfigurationManager.getBooleanParameter(name);
boolean existing = !System.getProperty("java.net.preferIPv6Addresses", "false").equalsIgnoreCase("false");
if (existing && !done_something)
return;
if (existing != prefer_ipv6)
{
done_something = true;
System.setProperty("java.net.preferIPv6Addresses", prefer_ipv6 ? "true" : "false");
try
{
Field field = java/net/InetAddress.getDeclaredField("preferIPv6Address");
field.setAccessible(true);
field.setBoolean(null, prefer_ipv6);
}
catch (Throwable e)
{
Debug.out("Failed to update 'preferIPv6Address'", e);
}
}
}
{
done_something = false;
}
});
int connect_timeout = COConfigurationManager.getIntParameter("Tracker Client Connect Timeout");
int read_timeout = COConfigurationManager.getIntParameter("Tracker Client Read Timeout");
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, (new StringBuilder()).append("TrackerClient: connect timeout = ").append(connect_timeout).append(", read timeout = ").append(read_timeout).toString()));
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(connect_timeout * 1000));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(read_timeout * 1000));
boolean TEST_PROXY = false;
if (TEST_PROXY)
try
{
AESocksProxy proxy = AESocksProxyFactory.create(16234, 0L, 0L);
System.setProperty("socksProxyHost", "127.0.0.1");
System.setProperty("socksProxyPort", (new StringBuilder()).append("").append(proxy.getPort()).toString());
}
catch (Throwable e)
{
Debug.printStackTrace(e);
}
else
if (COConfigurationManager.getBooleanParameter("Enable.Proxy"))
{
String host = COConfigurationManager.getStringParameter("Proxy.Host");
String port = COConfigurationManager.getStringParameter("Proxy.Port");
String user = COConfigurationManager.getStringParameter("Proxy.Username");
String pass = COConfigurationManager.getStringParameter("Proxy.Password");
if (user.trim().equalsIgnoreCase("<none>"))
user = "";
if (COConfigurationManager.getBooleanParameter("Enable.SOCKS"))
{
System.setProperty("socksProxyHost", host);
System.setProperty("socksProxyPort", port);
if (user.length() > 0)
{
System.setProperty("java.net.socks.username", user);
System.setProperty("java.net.socks.password", pass);
}
} else
{
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxyPort", port);
System.setProperty("https.proxyHost", host);
System.setProperty("https.proxyPort", port);
if (user.length() > 0)
{
System.setProperty("http.proxyUser", user);
System.setProperty("http.proxyPassword", pass);
}
}
}
SESecurityManager.initialise();
class_mon.exit();
break MISSING_BLOCK_LABEL_398;
Exception exception;
exception;
class_mon.exit();
throw exception;
}
protected static void loadProperties(String dir)
{
Properties props;
InputStream is;
File prop_file = new File(dir, "azureus.properties");
if (!prop_file.exists())
break MISSING_BLOCK_LABEL_206;
Logger.log(new LogEvent(LOGID, (new StringBuilder()).append("Loading properties file from ").append(prop_file.getAbsolutePath()).toString()));
props = new Properties();
is = new FileInputStream(prop_file);
props.load(is);
String key;
String value;
for (Iterator it = props.entrySet().iterator(); it.hasNext(); System.setProperty(key, value))
{
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
key = (String)entry.getKey();
value = (String)entry.getValue();
Logger.log(new LogEvent(LOGID, (new StringBuilder()).append(" ").append(key).append("=").append(value).toString()));
}
is.close();
break MISSING_BLOCK_LABEL_206;
Exception exception;
exception;
is.close();
throw exception;
Throwable e;
e;
}
public static void checkConfiguration()
{
class_mon.enter();
if (checked)
{
class_mon.exit();
return;
}
checked = true;
boolean changed = false;
String last_version = COConfigurationManager.getStringParameter("azureus.version", "");
String this_version = "4.2.0.0";
if (!last_version.equals(this_version))
{
if (!Constants.getBaseVersion(last_version).equals(Constants.getBaseVersion()))
{
COConfigurationManager.setParameter("Last Version", last_version);
new_version = true;
}
if (!COConfigurationManager.hasParameter("First Recorded Version", true))
{
COConfigurationManager.setParameter("First Recorded Version", last_version.length() != 0 ? last_version : this_version);
} else
{
String sFirstVersion = COConfigurationManager.getStringParameter("First Recorded Version");
String sMinVersion = Constants.compareVersions(sFirstVersion, this_version) <= 0 ? sFirstVersion : this_version;
if (last_version.length() > 0)
sMinVersion = Constants.compareVersions(sMinVersion, last_version) <= 0 ? sMinVersion : last_version;
COConfigurationManager.setParameter("First Recorded Version", sMinVersion);
}
COConfigurationManager.setParameter("azureus.version", this_version);
changed = true;
}
if (last_version.length() == 0)
{
new_install = true;
if (COConfigurationManager.doesParameterNonDefaultExist("diagnostics.tidy_close"))
{
if (!COConfigurationManager.doesParameterNonDefaultExist("Use default data dir"))
{
COConfigurationManager.setParameter("Use default data dir", true);
changed = true;
}
if (!COConfigurationManager.doesParameterNonDefaultExist("Tracker Port Enable"))
{
COConfigurationManager.setParameter("Tracker Port Enable", true);
changed = true;
}
}
if (COConfigurationManager.getBooleanParameter("Use default data dir") && !COConfigurationManager.doesParameterNonDefaultExist("Default save path"))
{
COConfigurationManager.setParameter("Default save path", (new StringBuilder()).append(SystemProperties.getUserPath()).append("downloads").toString());
changed = true;
}
if (!COConfigurationManager.doesParameterNonDefaultExist("User Mode"))
{
COConfigurationManager.setParameter("User Mode", 0);
changed = true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -