From 4a1d1a5541818e831ba1de37626b0e842eaadb19 Mon Sep 17 00:00:00 2001 From: David Stainton Date: Mon, 19 Sep 2016 17:06:13 +0000 Subject: [PATCH] Add helper function CreateOnion --- src/allmydata/torutil.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/allmydata/torutil.py b/src/allmydata/torutil.py index 27ed76411..797bede23 100644 --- a/src/allmydata/torutil.py +++ b/src/allmydata/torutil.py @@ -6,12 +6,20 @@ from __future__ import with_statement from twisted.internet import reactor, defer +import txtorcon from txtorcon import torconfig from txtorcon import torcontrolprotocol +@defer.inlineCallbacks +def CreateOnion(tor_provider, key_file, onion_port): + local_port = yield txtorcon.util.available_tcp_port(reactor) + # XXX in the future we need to make it use UNIX domain sockets instead of TCP + hs_string = '%s 127.0.0.1:%d' % (onion_port, local_port) + service = txtorcon.EphemeralHiddenService([hs_string]) + tor_protocol = yield tor_provider.get_control_protocol() + yield service.add_to_tor(tor_protocol) class TorProvider: - def __init__(self, tor_binary=None, data_directory=None, control_endpoint=None): assert tor_binary is not None or control_endpoint is not None self.data_directory = data_directory