From 39042c528375f3a14fa109e2379f0f3cae65bdfe Mon Sep 17 00:00:00 2001 From: caryoscelus Date: Wed, 7 Sep 2022 19:31:23 +0000 Subject: [PATCH] allow only passing port as tor_* parameters fixes #153 --- src/Config.py | 24 +++++++++++++++++++++++- src/Tor/TorManager.py | 7 ++----- src/main.py | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/Config.py b/src/Config.py index 8ee6da06..4484ae60 100644 --- a/src/Config.py +++ b/src/Config.py @@ -16,7 +16,7 @@ class Config(object): self.version = "0.7.7+" self.user_agent = "conservancy" # DEPRECATED ; replace with git-generated commit - self.rev = 5035 + self.rev = 5036 self.argv = argv self.action = None self.test_parser = None @@ -754,6 +754,28 @@ class Config(object): if file_logging: self.initFileLogger() + def tor_proxy_split(self): + if self.tor_proxy: + if ':' in config.tor_proxy: + ip, port = config.tor_proxy.rsplit(":", 1) + else: + ip = 'localhost' + port = config.tor_proxy + return ip, int(port) + else: + return 'localhost', 9050 + + def tor_controller_split(self): + if self.tor_controller: + if ':' in config.tor_controller: + ip, port = config.tor_controller.rsplit(":", 1) + else: + ip = 'localhost' + port = config.tor_controller + return ip, int(port) + else: + return 'localhost', 9051 + class ErrorLogHandler(logging.StreamHandler): def __init__(self): diff --git a/src/Tor/TorManager.py b/src/Tor/TorManager.py index 2fbca8c9..e2a945e7 100644 --- a/src/Tor/TorManager.py +++ b/src/Tor/TorManager.py @@ -51,11 +51,8 @@ class TorManager(object): else: self.fileserver_port = config.fileserver_port - self.ip, self.port = config.tor_controller.rsplit(":", 1) - self.port = int(self.port) - - self.proxy_ip, self.proxy_port = config.tor_proxy.rsplit(":", 1) - self.proxy_port = int(self.proxy_port) + self.ip, self.port = config.tor_controller_split() + self.proxy_ip, self.proxy_port = config.tor_proxy_split() def start(self): self.log.debug("Starting (Tor: %s)" % config.tor) diff --git a/src/main.py b/src/main.py index 47701b99..61bbb7b9 100644 --- a/src/main.py +++ b/src/main.py @@ -122,7 +122,7 @@ elif config.tor == "always": logging.info("Patching sockets to tor socks proxy: %s" % config.tor_proxy) if config.fileserver_ip == "*": config.fileserver_ip = '127.0.0.1' # Do not accept connections anywhere but localhost - SocksProxy.monkeyPatch(*config.tor_proxy.split(":")) + SocksProxy.monkeyPatch(*config.tor_proxy_split()) config.disable_udp = True elif config.bind: bind = config.bind