Connect to Tor hidden services by default

Adds 127.0.0.1:9050 for the .onion proxy if we can succesfully connect
to the control port.

Natural followup to creating hidden services automatically.
This commit is contained in:
Peter Todd 2015-11-24 10:27:38 -05:00 committed by Jack Grigg
parent 7f9e7a9872
commit 2b30758b2f
No known key found for this signature in database
GPG Key ID: 6A6914DAFBEA00DA
2 changed files with 12 additions and 2 deletions

View File

@ -100,8 +100,9 @@ Zcash has been updated to make use of this.
This means that if Tor is running (and proper authorization is available),
Zcash automatically creates a hidden service to listen on, without
manual configuration. This will positively affect the number of available
.onion nodes.
manual configuration. Zcash will also use Tor automatically to connect
to other .onion nodes if the control socket can be successfully opened. This
will positively affect the number of available .onion nodes and their usage.
This new feature is enabled by default if Zcash is listening, and
a connection to Tor can be made. It can be configured with the `-listenonion`,

View File

@ -449,6 +449,15 @@ void TorController::auth_cb(TorControlConnection& conn, const TorControlReply& r
{
if (reply.code == 250) {
LogPrint("tor", "tor: Authentication succesful\n");
// Now that we know Tor is running setup the proxy for onion addresses
// if -onion isn't set to something else.
if (GetArg("-onion", "") == "") {
proxyType addrOnion = proxyType(CService("127.0.0.1", 9050), true);
SetProxy(NET_TOR, addrOnion);
SetReachable(NET_TOR);
}
// Finally - now create the service
if (private_key.empty()) // No private key, generate one
private_key = "NEW:BEST";