138 lines
3.2 KiB
Markdown
138 lines
3.2 KiB
Markdown
# RPC Functions
|
|
|
|
The following functions are available via the RPC
|
|
|
|
## queryInstances()
|
|
|
|
Returns an array containing information on the instances currently running under the router.
|
|
|
|
## queryInstanceByName(String)
|
|
|
|
Returns information on an instance identified by name
|
|
|
|
## queryInstanceAt(Integer)
|
|
|
|
Returns information on an instance identified by index
|
|
|
|
## createInstances(Array or Integer)
|
|
|
|
If passed an Integer, creates that many Tor instances. An array can also be passed describing the names, weights and configurations of prospective instances. :
|
|
|
|
```
|
|
var rpcRequest = {
|
|
"method": "createInstances",
|
|
"params": [
|
|
{
|
|
"Config": {
|
|
|
|
},
|
|
"Name": "instance-1",
|
|
"Weight": 10
|
|
},
|
|
...
|
|
],
|
|
"jsonrpc":"2.0",
|
|
"id": 1
|
|
};
|
|
```
|
|
|
|
Will wait until the Tor Instance has fully connected to the network before returning
|
|
|
|
## addInstances(Array)
|
|
|
|
Serves the same purpose as "createInstances" but only takes an Array
|
|
|
|
## removeInstances(Integer)
|
|
|
|
Removes a number of instances
|
|
|
|
## removeInstanceAt(Integer)
|
|
|
|
Remove a specific instance from the pool by its index
|
|
|
|
## removeInstanceByName(String)
|
|
|
|
Remove a specific instance from the pool by its name
|
|
|
|
## newIdentites()
|
|
|
|
Get new identites for all instances
|
|
|
|
## newIdentityAt(Integer)
|
|
|
|
Get a new identity for a specific instance by its index
|
|
|
|
## newIdentityByName(String)
|
|
|
|
Get a new identity for a specific instance by its name
|
|
|
|
## nextInstance()
|
|
|
|
Cycle to the next instance using the load balancing method
|
|
|
|
## closeInstances()
|
|
|
|
Shutdown all Tor instances
|
|
|
|
## setTorConfig(Object)
|
|
|
|
Applies the configuration to all active instances
|
|
|
|
## getDefaultTorConfig()
|
|
|
|
Retrieve the default Tor Config for all future instances
|
|
|
|
## setDefaultTorConfig(Object)
|
|
|
|
Set the default Tor Config for all future instances
|
|
|
|
## getLoadBalanceMethod()
|
|
|
|
Get the current load balance method
|
|
|
|
## setLoadBalanceMethod(String)
|
|
|
|
Set the current load balance method
|
|
|
|
## getInstanceConfigAt(Integer: index, String: keyword)
|
|
|
|
Retrieves the current value of an option set in the configuration by the index of the instance using the control protocol.
|
|
|
|
Example:
|
|
|
|
The following would retrieve the path to the data directory of the instance
|
|
|
|
```
|
|
var rpcRequest = {
|
|
"method": "getInstanceConfigAt",
|
|
"params": [0, "DataDirectory"],
|
|
"jsonrpc":"2.0",
|
|
"id": 1
|
|
};
|
|
```
|
|
|
|
## getInstanceConfigByName(String: name, String: keyword)
|
|
|
|
Works the same way as `getInstanceConfigAt` except takes an instance name instead of an index
|
|
|
|
## setInstanceConfigAt(Integer: index, String: keyword, String: value)
|
|
|
|
Sets the value in the configuration of an instance using the control protocol. Changes will be applied immediately.
|
|
|
|
## setInstanceConfigByName(Integer: index, String: keyword, String: value)
|
|
|
|
Works the same way as `setInstanceConfigAt` except takes an instance name instead of an index
|
|
|
|
## signalAllInstances(String)
|
|
|
|
Sends a signal using the control protocol to all instances
|
|
|
|
A list of all signals can be [found here](https://gitweb.torproject.org/torspec.git/tree/control-spec.txt)
|
|
|
|
## signalInstanceAt(Integer: index, String: signal)
|
|
|
|
Sends a signal using the control protocol to an instance identified by its index
|
|
|
|
## signalInstanceByName(String: name, String: signal)
|
|
|
|
Sends a signal using the control protocol to an instance identified by its name |