package org.torproject.jtor.config.impl; import java.io.File; import java.net.InetAddress; import java.net.UnknownHostException; public class TorConfigDefaults { private String configFile = "torrc"; private File dataDirectory = new File(new File(System.getProperty("user.home")), ".jtor"); private long bandwidthRate = 2097152; // 2 MB private long bandwidthBurst = 5242880; // 5 MB private long maxAdvertisedBandwidth; private short controlPort; private String hashedControlPassword; private boolean cookieAuthentication = false; private long dirFetchPeriod = 3600; private String[] dirServer = { "moria1 v1 18.244.0.188:9031 FFCB 46DB 1339 DA84 674C 70D7 CB58 6434 C437 0441", "moria2 v1 18.244.0.114:80 719B E45D E224 B607 C537 07D0 E214 3E2D 423E 74CF", "tor26 v1 86.59.21.38:80 847B 1F85 0344 D787 6491 A548 92F9 0493 4E4E B85D", }; private boolean tunnelDirConns = true; private boolean preferTunneledDirConns = true; private boolean disableAllSwap = false; private String group; private String httpProxy; private String httpProxyAuthenticator; private String httpsProxy; private String httpsProxyAuthenticator; private int keepalivePeriod = 300; private String[] log = new String[0]; private int maxConn = 1024; private InetAddress outboundBindAddress; private String pidFile; private boolean runAsDaemon = false; private boolean safeLogging = true; private long statusFetchPeriod = 1800; private String user; private boolean hardwareAccel = true; private String allowUnverifiedNodes = "middle,rendezvous"; private boolean clientOnly = false; private String[] entryNodes = new String[0]; private String[] exitNodes = new String[0]; private String[] excludeNodes = new String[0]; private boolean strictExitNodes = false; private boolean strictEntryNodes = false; private boolean fascistFirewall = false; private short[] firewallPorts = { 80, 443 }; private String[] firewallIPs = new String[0]; private String reachableAddresses = "accept *:*"; private short[] longLivedPorts = { 21, 22, 706, 1863, 5050, 5190, 5222, 5223, 6667, 8300, 8888 }; private String[] mapAddress = new String[0]; private long newCircuitPeriod = 30; private long maxCircuitDirtiness = 600; private String[] nodeFamily = new String[0]; private String[] rendNodes = new String[0]; private String[] rendExcludeNodes = new String[0]; private short socksPort = 9050; private String socksBindAddress = "127.0.0.1"; private String socksPolicy; private String[] trackHostExits = new String[0]; private long trackHostExitsExpire = 1800; private boolean useHelperNodes = true; private int numHelperNodes = 3; private String[] hiddenServiceDir = new String[0]; private String[] hiddenServicePort = new String[0]; private String[] hiddenServiceNodes = new String[0]; private String[] hiddenServiceExcludeNodes = new String[0]; private String hiddenServiceVersion = "0,2"; private long rendPostPeriod = 1200; // hidden (not saved) options private boolean __AllDirOptionsPrivate = false; private boolean __DisablePredictedCircuits = false; private boolean __LeaveStreamsUnattached = false; private String __HashedControlSessionPassword; private boolean __ReloadTorrcOnSIGHUP = true; public TorConfigDefaults() { try { outboundBindAddress = InetAddress.getLocalHost(); } catch (UnknownHostException e) {} } public boolean isTunnelDirConns() { return tunnelDirConns; } public boolean isPreferTunneledDirConns() { return preferTunneledDirConns; } public boolean is__AllDirOptionsPrivate() { return __AllDirOptionsPrivate; } public boolean is__DisablePredictedCircuits() { return __DisablePredictedCircuits; } public boolean is__LeaveStreamsUnattached() { return __LeaveStreamsUnattached; } public String get__HashedControlSessionPassword() { return __HashedControlSessionPassword; } public boolean is__ReloadTorrcOnSIGHUP() { return __ReloadTorrcOnSIGHUP; } public String getConfigFile() { return configFile; } public File getDataDirectory() { return dataDirectory; } public long getBandwidthRate() { return bandwidthRate; } public long getBandwidthBurst() { return bandwidthBurst; } public long getMaxAdvertisedBandwidth() { return maxAdvertisedBandwidth; } public short getControlPort() { return controlPort; } public String getHashedControlPassword() { return hashedControlPassword; } public boolean isCookieAuthentication() { return cookieAuthentication; } public long getDirFetchPeriod() { return dirFetchPeriod; } public String[] getDirServer() { return dirServer; } public boolean isDisableAllSwap() { return disableAllSwap; } public String getGroup() { return group; } public String getHttpProxy() { return httpProxy; } public String getHttpProxyAuthenticator() { return httpProxyAuthenticator; } public String getHttpsProxy() { return httpsProxy; } public String getHttpsProxyAuthenticator() { return httpsProxyAuthenticator; } public int getKeepalivePeriod() { return keepalivePeriod; } public String[] getLog() { return log; } public int getMaxConn() { return maxConn; } public InetAddress getOutboundBindAddress() { return outboundBindAddress; } public String getPidFile() { return pidFile; } public boolean isRunAsDaemon() { return runAsDaemon; } public boolean isSafeLogging() { return safeLogging; } public long getStatusFetchPeriod() { return statusFetchPeriod; } public String getUser() { return user; } public boolean isHardwareAccel() { return hardwareAccel; } public String getAllowUnverifiedNodes() { return allowUnverifiedNodes; } public boolean isClientOnly() { return clientOnly; } public String[] getEntryNodes() { return entryNodes; } public String[] getExitNodes() { return exitNodes; } public String[] getExcludeNodes() { return excludeNodes; } public boolean isStrictExitNodes() { return strictExitNodes; } public boolean isStrictEntryNodes() { return strictEntryNodes; } public boolean isFascistFirewall() { return fascistFirewall; } public short[] getFirewallPorts() { return firewallPorts; } public String[] getFirewallIPs() { return firewallIPs; } public String getReachableAddresses() { return reachableAddresses; } public short[] getLongLivedPorts() { return longLivedPorts; } public String[] getMapAddress() { return mapAddress; } public long getNewCircuitPeriod() { return newCircuitPeriod; } public long getMaxCircuitDirtiness() { return maxCircuitDirtiness; } public String[] getNodeFamily() { return nodeFamily; } public String[] getRendNodes() { return rendNodes; } public String[] getRendExcludeNodes() { return rendExcludeNodes; } public short getSocksPort() { return socksPort; } public String getSocksBindAddress() { return socksBindAddress; } public String getSocksPolicy() { return socksPolicy; } public String[] getTrackHostExits() { return trackHostExits; } public long getTrackHostExitsExpire() { return trackHostExitsExpire; } public boolean isUseHelperNodes() { return useHelperNodes; } public int getNumHelperNodes() { return numHelperNodes; } public String[] getHiddenServiceDir() { return hiddenServiceDir; } public String[] getHiddenServicePort() { return hiddenServicePort; } public String[] getHiddenServiceNodes() { return hiddenServiceNodes; } public String[] getHiddenServiceExcludeNodes() { return hiddenServiceExcludeNodes; } public String getHiddenServiceVersion() { return hiddenServiceVersion; } public long getRendPostPeriod() { return rendPostPeriod; } }