
commit 9d473588c4aedcbc6832a4c3927210b876c5d4c9 Author: Damian Johnson <atagar@torproject.org> Date: Sun Jul 10 17:29:31 2011 -0700 Copying exit notice to data dir when needed If running an exit with an exit notice then copies the notice (an html file and image) to the data directory. --- src/cli/wizard.py | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/cli/wizard.py b/src/cli/wizard.py index 6539a82..9b8c1d7 100644 --- a/src/cli/wizard.py +++ b/src/cli/wizard.py @@ -295,12 +295,26 @@ def showWizard(): torrcFile.write(generatedTorrc) torrcFile.close() + # copies exit notice into data directory if it's being used + if Options.NOTICE in RelayOptions[relayType] and config[Options.NOTICE].getValue() and config[Options.LOWPORTS].getValue(): + dataDir = cli.controller.getController().getDataDirectory() + + pathPrefix = os.path.dirname(sys.argv[0]) + if pathPrefix and not pathPrefix.endswith("/"): + pathPrefix = pathPrefix + "/" + + src = "%sresources/exitNotice" % pathPrefix + dst = "%sexitNotice" % dataDir + + if not os.path.exists(dst): + shutil.copytree(src, dst) + # If we're connected to a managed instance then just need to # issue a sighup to pick up the new settings. Otherwise starts # a new tor instance. conn = torTools.getConn() - if manager.isManaged(conn): conn.reset() + if manager.isManaged(conn): conn.reload() else: manager.startManagedInstance() break @@ -490,9 +504,12 @@ def getTorrc(relayType, config): if isinstance(value, ConfigOption): value = value.getValue() - # truncates "/s" from the rate for RelayBandwidthRate entry if key == Options.BANDWIDTH and value.endswith("/s"): + # truncates "/s" from the rate for RelayBandwidthRate entry value = value[:-2] + elif key == Options.NOTICE: + # notice option is only applied if using low ports + value &= config[Options.LOWPORTS].getValue() templateOptions[key.upper()] = value @@ -508,7 +525,7 @@ def getTorrc(relayType, config): # exit notice will be in our data directory dataDir = cli.controller.getController().getDataDirectory() - templateOptions["NOTICE_PATH"] = dataDir + "exit-notice.html" + templateOptions["NOTICE_PATH"] = dataDir + "exitNotice/exit-notice.html" templateOptions["LOG_ENTRY"] = "notice file %stor_log" % dataDir policyCategories = []