selektor/javadoc/client/TorController.html

1548 lines
60 KiB
HTML
Raw Normal View History

2022-11-02 08:12:45 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_171) on Fri May 25 11:54:51 EDT 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TorController (SelekTOR Java Documentation)</title>
<meta name="date" content="2018-05-25">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TorController (SelekTOR Java Documentation)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TorController.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-files/index-1.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../client/TorCircuit.html" title="class in client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../client/TorMonFrame.html" title="class in client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?client/TorController.html" target="_top">Frames</a></li>
<li><a href="TorController.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">client</div>
<h2 title="Class TorController" class="title">Class TorController</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../lib/ClientProcess.html" title="class in lib">lib.ClientProcess</a></li>
<li>
<ul class="inheritance">
<li><a href="../client/TorProcess.html" title="class in client">client.TorProcess</a></li>
<li>
<ul class="inheritance">
<li>client.TorController</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">TorController</span>
extends <a href="../client/TorProcess.html" title="class in client">TorProcess</a></pre>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Alistair Neil <info@dazzleships.net></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_ABORTED">EVENT_ABORTED</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_CIRCUIT_BUILT">EVENT_CIRCUIT_BUILT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_CIRCUIT_CHANGED">EVENT_CIRCUIT_CHANGED</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_CIRCUIT_FAILED">EVENT_CIRCUIT_FAILED</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_CIRCUITS_BUILT">EVENT_CIRCUITS_BUILT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_CIRCUITS_FAILED">EVENT_CIRCUITS_FAILED</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_LATENCY_DONE">EVENT_LATENCY_DONE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#EVENT_TESTING_DONE">EVENT_TESTING_DONE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#LATENCY_FAIL">LATENCY_FAIL</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#NODE_EXIT">NODE_EXIT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#NODE_GUARD">NODE_GUARD</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#NODE_MIDDLE">NODE_MIDDLE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#STATUS_BOOTING">STATUS_BOOTING</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#STATUS_CIRCUIT_CREATION">STATUS_CIRCUIT_CREATION</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#STATUS_DEAD">STATUS_DEAD</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#STATUS_IDLE">STATUS_IDLE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#STATUS_LATENCY_CHECKING">STATUS_LATENCY_CHECKING</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#STREAM_IP">STREAM_IP</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.client.TorProcess">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;client.<a href="../client/TorProcess.html" title="class in client">TorProcess</a></h3>
<code><a href="../client/TorProcess.html#EMPTYSTRING">EMPTYSTRING</a>, <a href="../client/TorProcess.html#LOG_DEBUG">LOG_DEBUG</a>, <a href="../client/TorProcess.html#LOG_INFO">LOG_INFO</a>, <a href="../client/TorProcess.html#LOG_NOTICE">LOG_NOTICE</a>, <a href="../client/TorProcess.html#TOR_BOOT_ERROR">TOR_BOOT_ERROR</a>, <a href="../client/TorProcess.html#TOR_BOOT_FATAL">TOR_BOOT_FATAL</a>, <a href="../client/TorProcess.html#TOR_BOOT_TIMEOUT">TOR_BOOT_TIMEOUT</a>, <a href="../client/TorProcess.html#TOR_BOOTED">TOR_BOOTED</a>, <a href="../client/TorProcess.html#TOR_BRIDGE">TOR_BRIDGE</a>, <a href="../client/TorProcess.html#TOR_CLOCK_ERROR">TOR_CLOCK_ERROR</a>, <a href="../client/TorProcess.html#TOR_DIRINFO_STALE">TOR_DIRINFO_STALE</a>, <a href="../client/TorProcess.html#TOR_MESSAGE">TOR_MESSAGE</a>, <a href="../client/TorProcess.html#TOR_NEWCIRC">TOR_NEWCIRC</a>, <a href="../client/TorProcess.html#TOR_NOEXITS">TOR_NOEXITS</a>, <a href="../client/TorProcess.html#TOR_NOHOP0">TOR_NOHOP0</a>, <a href="../client/TorProcess.html#TOR_NONET_ACTIVITY">TOR_NONET_ACTIVITY</a>, <a href="../client/TorProcess.html#TOR_NOROUTE">TOR_NOROUTE</a>, <a href="../client/TorProcess.html#TOR_RESTARTED">TOR_RESTARTED</a>, <a href="../client/TorProcess.html#TOR_STOPPED">TOR_STOPPED</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.lib.ClientProcess">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;lib.<a href="../lib/ClientProcess.html" title="class in lib">ClientProcess</a></h3>
<code><a href="../lib/ClientProcess.html#CLIENT_RUNNING">CLIENT_RUNNING</a>, <a href="../lib/ClientProcess.html#CLIENT_STOPPED">CLIENT_STOPPED</a>, <a href="../lib/ClientProcess.html#CLIENT_TIMEDOUT">CLIENT_TIMEDOUT</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../client/TorController.html#TorController-java.lang.String-java.lang.String-">TorController</a></span>(java.lang.String&nbsp;clientpath,
java.lang.String&nbsp;configfolder)</code>
<div class="block">Constructor</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#abortActions--">abortActions</a></span>()</code>
<div class="block">Abort all current actions</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#abortLatencyCheck--">abortLatencyCheck</a></span>()</code>
<div class="block">Abort latency checking</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#activateCircuit-java.lang.String-">activateCircuit</a></span>(java.lang.String&nbsp;hops)</code>
<div class="block">Activate given circuit, does not block</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#activateNodes-java.lang.String-int-">activateNodes</a></span>(java.lang.String&nbsp;fingers,
int&nbsp;nocircs)</code>
<div class="block">Set the csv list of exit node fingers to be used by tor, a single exit
node may also be specified, this does not block</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#activateNodesBlocking-java.lang.String-int-">activateNodesBlocking</a></span>(java.lang.String&nbsp;fingers,
int&nbsp;nocircs)</code>
<div class="block">Set the csv list of exit node fingers to be used by tor, a single exit
node may also be specified, this blocks</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#closeCircuit-java.lang.String-">closeCircuit</a></span>(java.lang.String&nbsp;id)</code>
<div class="block">Close a circuit with ID</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#closeCircuitsExcept-java.lang.String-boolean-">closeCircuitsExcept</a></span>(java.lang.String&nbsp;id,
boolean&nbsp;filtered)</code>
<div class="block">Close open circuits except circuit specified by id</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#controllerEventFired-int-java.lang.Object-">controllerEventFired</a></span>(int&nbsp;event,
java.lang.Object&nbsp;data)</code>
<div class="block">Handle for controllerEventFired should be overridden by parent class</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.net.Socket</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#createSocks4aSocket-java.lang.String-int-java.lang.String-int-">createSocks4aSocket</a></span>(java.lang.String&nbsp;socksaddr,
int&nbsp;socksport,
java.lang.String&nbsp;remotehost,
int&nbsp;remoteport)</code>
<div class="block">Create a Socks4a socket Taken from Wikipedia SOCKS4a is a simple
extension to SOCKS4 protocol that allows a client that cannot resolve the
destination host's domain name to specify it.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.net.Socket</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#createTorSocketToURL-java.lang.String-boolean-">createTorSocketToURL</a></span>(java.lang.String&nbsp;url,
boolean&nbsp;nowww)</code>
<div class="block">Create a socks4a socket to this URL on this tor connection, if nowww is
true then remove www.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#doLatencyCheck-int-">doLatencyCheck</a></span>(int&nbsp;timeout)</code>
<div class="block">Triggers a socks latency check, EVENT_LATENCY_CHECK is fired on
completion</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#enablePredictiveCircuits-boolean-">enablePredictiveCircuits</a></span>(boolean&nbsp;enabled)</code>
<div class="block">Enable/Disable predictive circuit building</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.util.ArrayList&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getActiveStreams--">getActiveStreams</a></span>()</code>
<div class="block">Get list of active streams</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getBestHops--">getBestHops</a></span>()</code>
<div class="block">Get best hops</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getBestLatency--">getBestLatency</a></span>()</code>
<div class="block">Get best latency</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.util.HashMap&lt;java.lang.String,<a href="../client/TorCircuit.html" title="class in client">TorCircuit</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getBuiltCircuits-boolean-">getBuiltCircuits</a></span>(boolean&nbsp;filtered)</code>
<div class="block">Get built circuits</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getCountryFromIP-java.lang.String-">getCountryFromIP</a></span>(java.lang.String&nbsp;ip)</code>
<div class="block">Attempts to return the Country associated with an ip address</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getEntryGuardsAsCSV--">getEntryGuardsAsCSV</a></span>()</code>
<div class="block">Get entry guards chosen by tor client</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getEntryNodes--">getEntryNodes</a></span>()</code>
<div class="block">Get configured entry nodes</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getEventMessage-int-">getEventMessage</a></span>(int&nbsp;event)</code>
<div class="block">Get textual representation on an event</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>java.util.ArrayList&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getInfo-java.lang.String-">getInfo</a></span>(java.lang.String&nbsp;property)</code>
<div class="block">Get tor status information for a given property.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getLatency--">getLatency</a></span>()</code>
<div class="block">Get current latency</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../client/TorCircuit.html" title="class in client">TorCircuit</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getLatestCircuit--">getLatestCircuit</a></span>()</code>
<div class="block">Get the latest circuit</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getStatus--">getStatus</a></span>()</code>
<div class="block">Get current status</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#getTorLatency-int-">getTorLatency</a></span>(int&nbsp;timeout)</code>
<div class="block">Returns measured latency for the active circuit without creating a
stream, this blocks so be careful</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#haveValidEntryNode--">haveValidEntryNode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#isIdle--">isIdle</a></span>()</code>
<div class="block">Convenience test for idle status</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#loadConf--">loadConf</a></span>()</code>
<div class="block">Load configuration file</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>java.util.ArrayList&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#resetConf-java.lang.String-">resetConf</a></span>(java.lang.String&nbsp;property)</code>
<div class="block">reset a tor configuration property</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#saveConf--">saveConf</a></span>()</code>
<div class="block">Save configuration file</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>java.util.ArrayList&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#sendCommand-java.lang.String-">sendCommand</a></span>(java.lang.String&nbsp;command)</code>
<div class="block">Send a command to tor client</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>java.util.ArrayList&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#setConf-java.lang.String-">setConf</a></span>(java.lang.String&nbsp;property)</code>
<div class="block">Set a tor configuration property</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#setEntryNodes-java.lang.String-">setEntryNodes</a></span>(java.lang.String&nbsp;fingers)</code>
<div class="block">Set entry nodes</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#setStatus-int-">setStatus</a></span>(int&nbsp;status)</code>
<div class="block">Set status flag</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#setTestingURL-java.lang.String-">setTestingURL</a></span>(java.lang.String&nbsp;url)</code>
<div class="block">Set the url used for latency checking</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>java.util.ArrayList&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#signal-java.lang.String-">signal</a></span>(java.lang.String&nbsp;cmd)</code>
<div class="block">Send signal to tor</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#start--">start</a></span>()</code>
<div class="block">Start tor controller process and issue the TOR_BOOTED event</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#start-int-">start</a></span>(int&nbsp;bootevent)</code>
<div class="block">Start tor controller process and issue the given event</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#stop--">stop</a></span>()</code>
<div class="block">Stop the tor controller process completely</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#testNode-java.lang.String-">testNode</a></span>(java.lang.String&nbsp;finger)</code>
<div class="block">Test specified node, non blocking</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#torProcessEventFired-int-java.lang.String-">torProcessEventFired</a></span>(int&nbsp;event,
java.lang.String&nbsp;data)</code>
<div class="block">Tor process event</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../client/TorController.html#verifyControlComms--">verifyControlComms</a></span>()</code>
<div class="block">Verify we have comms on the control socket</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.client.TorProcess">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;client.<a href="../client/TorProcess.html" title="class in client">TorProcess</a></h3>
<code><a href="../client/TorProcess.html#clearCLIOption-java.lang.String-">clearCLIOption</a>, <a href="../client/TorProcess.html#clearStdout--">clearStdout</a>, <a href="../client/TorProcess.html#clearTorrcOption-java.lang.String-">clearTorrcOption</a>, <a href="../client/TorProcess.html#clientProcessEventFired-java.lang.String-">clientProcessEventFired</a>, <a href="../client/TorProcess.html#createDataFolder--">createDataFolder</a>, <a href="../client/TorProcess.html#createDefaultConfig--">createDefaultConfig</a>, <a href="../client/TorProcess.html#deleteCacheData--">deleteCacheData</a>, <a href="../client/TorProcess.html#deleteConfigFile--">deleteConfigFile</a>, <a href="../client/TorProcess.html#getBridges--">getBridges</a>, <a href="../client/TorProcess.html#getCacheAge--">getCacheAge</a>, <a href="../client/TorProcess.html#getCachedDataFolder--">getCachedDataFolder</a>, <a href="../client/TorProcess.html#getClientLocation--">getClientLocation</a>, <a href="../client/TorProcess.html#getCLIOptionBool-java.lang.String-">getCLIOptionBool</a>, <a href="../client/TorProcess.html#getCLIOptions-java.lang.String-">getCLIOptions</a>, <a href="../client/TorProcess.html#getCLIOptionsAsString--">getCLIOptionsAsString</a>, <a href="../client/TorProcess.html#getConfigFilePath--">getConfigFilePath</a>, <a href="../client/TorProcess.html#getControlPort--">getControlPort</a>, <a href="../client/TorProcess.html#getDataFolder--">getDataFolder</a>, <a href="../client/TorProcess.html#getListenPort--">getListenPort</a>, <a href="../client/TorProcess.html#getOwnershipID--">getOwnershipID</a>, <a href="../client/TorProcess.html#getSecret--">getSecret</a>, <a href="../client/TorProcess.html#getTorrcOption-java.lang.String-">getTorrcOption</a>, <a href="../client/TorProcess.html#getTorrcOptionsAsString--">getTorrcOptionsAsString</a>, <a href="../client/TorProcess.html#getVersion--">getVersion</a>, <a href="../client/TorProcess.html#setBoolTorOption-java.lang.String-boolean-">setBoolTorOption</a>, <a href="../client/TorProcess.html#setBridges-java.lang.String-">setBridges</a>, <a href="../client/TorProcess.html#setCachedDataFolder-int-">setCachedDataFolder</a>, <a href="../client/TorProcess.html#setCLIOption-java.lang.String-java.lang.String-">setCLIOption</a>, <a href="../client/TorProcess.html#setControlPassword-java.lang.String-java.lang.String-">setControlPassword</a>, <a href="../client/TorProcess.html#setExternalArgs-java.lang.String-">setExternalArgs</a>, <a href="../client/TorProcess.html#setGeoIP4-java.lang.String-">setGeoIP4</a>, <a href="../client/TorProcess.html#setGeoIP6-java.lang.String-">setGeoIP6</a>, <a href="../client/TorProcess.html#setInitialBootEvent-int-">setInitialBootEvent</a>, <a href="../client/TorProcess.html#setListenPort-int-">setListenPort</a>, <a href="../client/TorProcess.html#setLogLevel-int-">setLogLevel</a>, <a href="../client/TorProcess.html#setMaxHistory-int-">setMaxHistory</a>, <a href="../client/TorProcess.html#setOwnershipID-java.lang.String-">setOwnershipID</a>, <a href="../client/TorProcess.html#setSilentBootEnabled-boolean-">setSilentBootEnabled</a>, <a href="../client/TorProcess.html#setStdoutTextArea-javax.swing.JTextArea-">setStdoutTextArea</a>, <a href="../client/TorProcess.html#setTorrcOption-java.lang.String-java.lang.String-">setTorrcOption</a>, <a href="../client/TorProcess.html#startProcess--">startProcess</a>, <a href="../client/TorProcess.html#validateBridges-java.lang.String-">validateBridges</a>, <a href="../client/TorProcess.html#validateHostPort-java.lang.String-">validateHostPort</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.lib.ClientProcess">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;lib.<a href="../lib/ClientProcess.html" title="class in lib">ClientProcess</a></h3>
<code><a href="../lib/ClientProcess.html#getClientStatus--">getClientStatus</a>, <a href="../lib/ClientProcess.html#getProcess--">getProcess</a>, <a href="../lib/ClientProcess.html#sendMessage-java.lang.String-">sendMessage</a>, <a href="../lib/ClientProcess.html#setStartupDelay-long-">setStartupDelay</a>, <a href="../lib/ClientProcess.html#setStartupTimeout-long-">setStartupTimeout</a>, <a href="../lib/ClientProcess.html#start-java.lang.String-">start</a>, <a href="../lib/ClientProcess.html#stopProcess--">stopProcess</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="EVENT_CIRCUITS_BUILT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_CIRCUITS_BUILT</h4>
<pre>public static final&nbsp;int EVENT_CIRCUITS_BUILT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_CIRCUITS_BUILT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_CIRCUITS_FAILED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_CIRCUITS_FAILED</h4>
<pre>public static final&nbsp;int EVENT_CIRCUITS_FAILED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_CIRCUITS_FAILED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_CIRCUIT_BUILT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_CIRCUIT_BUILT</h4>
<pre>public static final&nbsp;int EVENT_CIRCUIT_BUILT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_CIRCUIT_BUILT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_CIRCUIT_FAILED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_CIRCUIT_FAILED</h4>
<pre>public static final&nbsp;int EVENT_CIRCUIT_FAILED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_CIRCUIT_FAILED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_LATENCY_DONE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_LATENCY_DONE</h4>
<pre>public static final&nbsp;int EVENT_LATENCY_DONE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_LATENCY_DONE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_TESTING_DONE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_TESTING_DONE</h4>
<pre>public static final&nbsp;int EVENT_TESTING_DONE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_TESTING_DONE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_CIRCUIT_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_CIRCUIT_CHANGED</h4>
<pre>public static final&nbsp;int EVENT_CIRCUIT_CHANGED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_CIRCUIT_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVENT_ABORTED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_ABORTED</h4>
<pre>public static final&nbsp;int EVENT_ABORTED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.EVENT_ABORTED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATUS_DEAD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATUS_DEAD</h4>
<pre>public static final&nbsp;int STATUS_DEAD</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.STATUS_DEAD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATUS_BOOTING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATUS_BOOTING</h4>
<pre>public static final&nbsp;int STATUS_BOOTING</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.STATUS_BOOTING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATUS_IDLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATUS_IDLE</h4>
<pre>public static final&nbsp;int STATUS_IDLE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.STATUS_IDLE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATUS_CIRCUIT_CREATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATUS_CIRCUIT_CREATION</h4>
<pre>public static final&nbsp;int STATUS_CIRCUIT_CREATION</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.STATUS_CIRCUIT_CREATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATUS_LATENCY_CHECKING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATUS_LATENCY_CHECKING</h4>
<pre>public static final&nbsp;int STATUS_LATENCY_CHECKING</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.STATUS_LATENCY_CHECKING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LATENCY_FAIL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LATENCY_FAIL</h4>
<pre>public static final&nbsp;long LATENCY_FAIL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.LATENCY_FAIL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STREAM_IP">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STREAM_IP</h4>
<pre>public static final&nbsp;int STREAM_IP</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.STREAM_IP">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NODE_GUARD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NODE_GUARD</h4>
<pre>public static final&nbsp;int NODE_GUARD</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.NODE_GUARD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NODE_MIDDLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NODE_MIDDLE</h4>
<pre>public static final&nbsp;int NODE_MIDDLE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.NODE_MIDDLE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NODE_EXIT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NODE_EXIT</h4>
<pre>public static final&nbsp;int NODE_EXIT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../constant-values.html#client.TorController.NODE_EXIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TorController-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TorController</h4>
<pre>public&nbsp;TorController(java.lang.String&nbsp;clientpath,
java.lang.String&nbsp;configfolder)</pre>
<div class="block">Constructor</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clientpath</code> - Path to Tor client</dd>
<dd><code>configfolder</code> - Location of configuration file torrc</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="torProcessEventFired-int-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>torProcessEventFired</h4>
<pre>public final&nbsp;void&nbsp;torProcessEventFired(int&nbsp;event,
java.lang.String&nbsp;data)</pre>
<div class="block">Tor process event</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../client/TorProcess.html#torProcessEventFired-int-java.lang.String-">torProcessEventFired</a></code>&nbsp;in class&nbsp;<code><a href="../client/TorProcess.html" title="class in client">TorProcess</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - </dd>
<dd><code>data</code> - </dd>
</dl>
</li>
</ul>
<a name="getEventMessage-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventMessage</h4>
<pre>public&nbsp;java.lang.String&nbsp;getEventMessage(int&nbsp;event)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../client/TorProcess.html#getEventMessage-int-">TorProcess</a></code></span></div>
<div class="block">Get textual representation on an event</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../client/TorProcess.html#getEventMessage-int-">getEventMessage</a></code>&nbsp;in class&nbsp;<code><a href="../client/TorProcess.html" title="class in client">TorProcess</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Event as text</dd>
</dl>
</li>
</ul>
<a name="controllerEventFired-int-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controllerEventFired</h4>
<pre>public&nbsp;void&nbsp;controllerEventFired(int&nbsp;event,
java.lang.Object&nbsp;data)</pre>
<div class="block">Handle for controllerEventFired should be overridden by parent class</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - </dd>
<dd><code>data</code> - </dd>
</dl>
</li>
</ul>
<a name="setStatus-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStatus</h4>
<pre>public&nbsp;void&nbsp;setStatus(int&nbsp;status)</pre>
<div class="block">Set status flag</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - </dd>
</dl>
</li>
</ul>
<a name="getStatus--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatus</h4>
<pre>public&nbsp;int&nbsp;getStatus()</pre>
<div class="block">Get current status</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>status integer constant, see defined status constants</dd>
</dl>
</li>
</ul>
<a name="isIdle--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIdle</h4>
<pre>public&nbsp;boolean&nbsp;isIdle()</pre>
<div class="block">Convenience test for idle status</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if idle</dd>
</dl>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public final&nbsp;void&nbsp;stop()</pre>
<div class="block">Stop the tor controller process completely</div>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public final&nbsp;void&nbsp;start()</pre>
<div class="block">Start tor controller process and issue the TOR_BOOTED event</div>
</li>
</ul>
<a name="start-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public final&nbsp;void&nbsp;start(int&nbsp;bootevent)</pre>
<div class="block">Start tor controller process and issue the given event</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bootevent</code> - </dd>
</dl>
</li>
</ul>
<a name="abortActions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>abortActions</h4>
<pre>public final&nbsp;void&nbsp;abortActions()</pre>
<div class="block">Abort all current actions</div>
</li>
</ul>
<a name="abortLatencyCheck--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>abortLatencyCheck</h4>
<pre>public final&nbsp;void&nbsp;abortLatencyCheck()</pre>
<div class="block">Abort latency checking</div>
</li>
</ul>
<a name="saveConf--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveConf</h4>
<pre>public&nbsp;void&nbsp;saveConf()</pre>
<div class="block">Save configuration file</div>
</li>
</ul>
<a name="loadConf--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadConf</h4>
<pre>public&nbsp;void&nbsp;loadConf()</pre>
<div class="block">Load configuration file</div>
</li>
</ul>
<a name="getCountryFromIP-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCountryFromIP</h4>
<pre>public&nbsp;java.lang.String&nbsp;getCountryFromIP(java.lang.String&nbsp;ip)</pre>
<div class="block">Attempts to return the Country associated with an ip address</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ip</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Country or null if not found</dd>
</dl>
</li>
</ul>
<a name="setTestingURL-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTestingURL</h4>
<pre>public&nbsp;void&nbsp;setTestingURL(java.lang.String&nbsp;url)</pre>
<div class="block">Set the url used for latency checking</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>url</code> - </dd>
</dl>
</li>
</ul>
<a name="enablePredictiveCircuits-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enablePredictiveCircuits</h4>
<pre>public&nbsp;void&nbsp;enablePredictiveCircuits(boolean&nbsp;enabled)</pre>
<div class="block">Enable/Disable predictive circuit building</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabled</code> - </dd>
</dl>
</li>
</ul>
<a name="getInfo-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInfo</h4>
<pre>public final&nbsp;java.util.ArrayList&lt;java.lang.String&gt;&nbsp;getInfo(java.lang.String&nbsp;property)</pre>
<div class="block">Get tor status information for a given property. See TOR control-spec
documentation for valid properties</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>property</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Arraylist containg the result of the command</dd>
</dl>
</li>
</ul>
<a name="closeCircuit-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeCircuit</h4>
<pre>public final&nbsp;void&nbsp;closeCircuit(java.lang.String&nbsp;id)</pre>
<div class="block">Close a circuit with ID</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - </dd>
</dl>
</li>
</ul>
<a name="setConf-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConf</h4>
<pre>public final&nbsp;java.util.ArrayList&lt;java.lang.String&gt;&nbsp;setConf(java.lang.String&nbsp;property)</pre>
<div class="block">Set a tor configuration property</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>property</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Arraylist containg the result of the command</dd>
</dl>
</li>
</ul>
<a name="resetConf-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetConf</h4>
<pre>public final&nbsp;java.util.ArrayList&lt;java.lang.String&gt;&nbsp;resetConf(java.lang.String&nbsp;property)</pre>
<div class="block">reset a tor configuration property</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>property</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Arraylist containing the result of the command</dd>
</dl>
</li>
</ul>
<a name="signal-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>signal</h4>
<pre>public final&nbsp;java.util.ArrayList&lt;java.lang.String&gt;&nbsp;signal(java.lang.String&nbsp;cmd)</pre>
<div class="block">Send signal to tor</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cmd</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Arraylist containing the result of the command</dd>
</dl>
</li>
</ul>
<a name="getEntryGuardsAsCSV--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntryGuardsAsCSV</h4>
<pre>public&nbsp;java.lang.String&nbsp;getEntryGuardsAsCSV()</pre>
<div class="block">Get entry guards chosen by tor client</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>entry guards as comma separated fingerprints</dd>
</dl>
</li>
</ul>
<a name="doLatencyCheck-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doLatencyCheck</h4>
<pre>public final&nbsp;void&nbsp;doLatencyCheck(int&nbsp;timeout)</pre>
<div class="block">Triggers a socks latency check, EVENT_LATENCY_CHECK is fired on
completion</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - </dd>
</dl>
</li>
</ul>
<a name="getLatency--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLatency</h4>
<pre>public final&nbsp;long&nbsp;getLatency()</pre>
<div class="block">Get current latency</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>latency in ms as long</dd>
</dl>
</li>
</ul>
<a name="getTorLatency-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTorLatency</h4>
<pre>public&nbsp;long&nbsp;getTorLatency(int&nbsp;timeout)</pre>
<div class="block">Returns measured latency for the active circuit without creating a
stream, this blocks so be careful</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>latency</dd>
</dl>
</li>
</ul>
<a name="closeCircuitsExcept-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeCircuitsExcept</h4>
<pre>public&nbsp;void&nbsp;closeCircuitsExcept(java.lang.String&nbsp;id,
boolean&nbsp;filtered)</pre>
<div class="block">Close open circuits except circuit specified by id</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - </dd>
<dd><code>filtered</code> - </dd>
</dl>
</li>
</ul>
<a name="getActiveStreams--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActiveStreams</h4>
<pre>public final&nbsp;java.util.ArrayList&lt;java.lang.String&gt;&nbsp;getActiveStreams()</pre>
<div class="block">Get list of active streams</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>active streams as a list</dd>
</dl>
</li>
</ul>
<a name="activateNodes-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activateNodes</h4>
<pre>public final&nbsp;void&nbsp;activateNodes(java.lang.String&nbsp;fingers,
int&nbsp;nocircs)</pre>
<div class="block">Set the csv list of exit node fingers to be used by tor, a single exit
node may also be specified, this does not block</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fingers</code> - </dd>
<dd><code>nocircs</code> - </dd>
</dl>
</li>
</ul>
<a name="activateCircuit-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activateCircuit</h4>
<pre>public final&nbsp;void&nbsp;activateCircuit(java.lang.String&nbsp;hops)</pre>
<div class="block">Activate given circuit, does not block</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hops</code> - </dd>
</dl>
</li>
</ul>
<a name="setEntryNodes-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEntryNodes</h4>
<pre>public&nbsp;void&nbsp;setEntryNodes(java.lang.String&nbsp;fingers)</pre>
<div class="block">Set entry nodes</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fingers</code> - </dd>
</dl>
</li>
</ul>
<a name="getEntryNodes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntryNodes</h4>
<pre>public&nbsp;java.lang.String&nbsp;getEntryNodes()</pre>
<div class="block">Get configured entry nodes</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>entry nodes in CSV format</dd>
</dl>
</li>
</ul>
<a name="activateNodesBlocking-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activateNodesBlocking</h4>
<pre>public&nbsp;void&nbsp;activateNodesBlocking(java.lang.String&nbsp;fingers,
int&nbsp;nocircs)</pre>
<div class="block">Set the csv list of exit node fingers to be used by tor, a single exit
node may also be specified, this blocks</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fingers</code> - </dd>
<dd><code>nocircs</code> - </dd>
</dl>
</li>
</ul>
<a name="haveValidEntryNode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>haveValidEntryNode</h4>
<pre>public&nbsp;boolean&nbsp;haveValidEntryNode()</pre>
</li>
</ul>
<a name="testNode-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testNode</h4>
<pre>public&nbsp;void&nbsp;testNode(java.lang.String&nbsp;finger)</pre>
<div class="block">Test specified node, non blocking</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>finger</code> - </dd>
</dl>
</li>
</ul>
<a name="getBestLatency--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBestLatency</h4>
<pre>public final&nbsp;long&nbsp;getBestLatency()</pre>
<div class="block">Get best latency</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>best latency value in ms as long</dd>
</dl>
</li>
</ul>
<a name="getBestHops--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBestHops</h4>
<pre>public final&nbsp;java.lang.String&nbsp;getBestHops()</pre>
<div class="block">Get best hops</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>hops info as string</dd>
</dl>
</li>
</ul>
<a name="getBuiltCircuits-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBuiltCircuits</h4>
<pre>public final&nbsp;java.util.HashMap&lt;java.lang.String,<a href="../client/TorCircuit.html" title="class in client">TorCircuit</a>&gt;&nbsp;getBuiltCircuits(boolean&nbsp;filtered)</pre>
<div class="block">Get built circuits</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filtered</code> - Filter out unwanted circuits</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>HashMap of built circuits keyed to their circuit id</dd>
</dl>
</li>
</ul>
<a name="verifyControlComms--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyControlComms</h4>
<pre>public final&nbsp;boolean&nbsp;verifyControlComms()</pre>
<div class="block">Verify we have comms on the control socket</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if its good</dd>
</dl>
</li>
</ul>
<a name="getLatestCircuit--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLatestCircuit</h4>
<pre>public final&nbsp;<a href="../client/TorCircuit.html" title="class in client">TorCircuit</a>&nbsp;getLatestCircuit()</pre>
<div class="block">Get the latest circuit</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>circuit</dd>
</dl>
</li>
</ul>
<a name="sendCommand-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendCommand</h4>
<pre>public final&nbsp;java.util.ArrayList&lt;java.lang.String&gt;&nbsp;sendCommand(java.lang.String&nbsp;command)</pre>
<div class="block">Send a command to tor client</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>command</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Arraylist containing the result of the command</dd>
</dl>
</li>
</ul>
<a name="createTorSocketToURL-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTorSocketToURL</h4>
<pre>public&nbsp;java.net.Socket&nbsp;createTorSocketToURL(java.lang.String&nbsp;url,
boolean&nbsp;nowww)</pre>
<div class="block">Create a socks4a socket to this URL on this tor connection, if nowww is
true then remove www. from domain</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>url</code> - </dd>
<dd><code>nowww</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>socket</dd>
</dl>
</li>
</ul>
<a name="createSocks4aSocket-java.lang.String-int-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createSocks4aSocket</h4>
<pre>public&nbsp;java.net.Socket&nbsp;createSocks4aSocket(java.lang.String&nbsp;socksaddr,
int&nbsp;socksport,
java.lang.String&nbsp;remotehost,
int&nbsp;remoteport)</pre>
<div class="block">Create a Socks4a socket Taken from Wikipedia SOCKS4a is a simple
extension to SOCKS4 protocol that allows a client that cannot resolve the
destination host's domain name to specify it.
The client should set the first three bytes of DSTIP to NULL and the last
byte to a non-zero value. (This corresponds to IP address 0.0.0.x, with x
nonzero, an inadmissible destination address and thus should never occur
if the client can resolve the domain name.) Following the NULL byte
terminating USERID, the client must send the destination domain name and
terminate it with another NULL byte. This is used for both "connect" and
"bind" requests.
Client to SOCKS server: field 1: SOCKS version number, 1 byte, must be
0x04 for this version field 2: command code, 1 byte: 0x01 = establish a
TCP/IP stream connection 0x02 = establish a TCP/IP port binding field 3:
network byte order port number, 2 bytes field 4: deliberate invalid IP
address, 4 bytes, first three must be 0x00 and the last one must not be
0x00 field 5: the user ID string, variable length, terminated with a null
(0x00) field 6: the domain name of the host we want to contact, variable
length, terminated with a null (0x00)
Server to SOCKS client: field 1: null byte field 2: status, 1 byte: 0x5a
= request granted 0x5b = request rejected or failed 0x5c = request failed
because client is not running identd (or not reachable from the server)
0x5d = request failed because client's identd could not confirm the user
ID string in the request field 3: network byte order port number, 2 bytes
field 4: network byte order IP address, 4 bytes
A server using protocol SOCKS4A must check the DSTIP in the request
packet. If it represents address 0.0.0.x with nonzero x, the server must
read in the domain name that the client sends in the packet. The server
should resolve the domain name and make connection to the destination
host if it can.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>socksaddr</code> - Socks ip address</dd>
<dd><code>socksport</code> - Socks port</dd>
<dd><code>remotehost</code> - Remote host</dd>
<dd><code>remoteport</code> - Remote port</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Socket</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TorController.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-files/index-1.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../client/TorCircuit.html" title="class in client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../client/TorMonFrame.html" title="class in client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?client/TorController.html" target="_top">Frames</a></li>
<li><a href="TorController.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>