[tor-commits] [chutney/main] update support for arti
nickm at torproject.org
nickm at torproject.org
Mon Sep 27 12:49:49 UTC 2021
commit 043c3b1ec545715cfb9a1bfef9aaf21daa4fe33f
Author: Trinity Pointard <trinity.pointard at gmail.com>
Date: Sun Sep 26 15:24:32 2021 +0200
update support for arti
---
lib/chutney/TorNet.py | 47 +++++++++++++++++++++++++++++------------------
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/lib/chutney/TorNet.py b/lib/chutney/TorNet.py
index 950806e..873681d 100644
--- a/lib/chutney/TorNet.py
+++ b/lib/chutney/TorNet.py
@@ -795,7 +795,7 @@ class LocalNodeBuilder(NodeBuilder):
and AlternateBridgeAuthority lines for
this Node, appropriately. Non-authorities return ""."""
if not self._env['authority']:
- return ("","")
+ return ("",("", ""))
datadir = self._env['dir']
certfile = Path(datadir, 'keys', "authority_certificate")
@@ -841,7 +841,7 @@ class LocalNodeBuilder(NodeBuilder):
self._env['dirport'], self._env['fingerprint'])
# generate arti configuartion if supported
- arti_lines = ""
+ arti_lines = ("","")
if arti:
addrs = '"%s:%s"' % (self._env['ip'], self._env['orport'])
if self._env['ipv6_addr'] is not None:
@@ -852,18 +852,10 @@ class LocalNodeBuilder(NodeBuilder):
"orports": addrs,
"nick": self._env['nick'],
"v3id": v3id }
- arti_lines = """
-[[network.fallback_cache]]
-rsa_identity = "{fp}"
-ed_identity = "{ed_fp}"
-orports = [ {orports} ]
-
-[[network.authority]]
-name = "{nick}"
-v3ident = "{v3id}"
-
-""".format(**elts)
-
+ arti_lines = (
+ """ {{rsa_identity = "{fp}", ed_identity = "{ed_fp}", orports = [{orports}]}},\n""".format(**elts),
+ """ {{name = "{nick}", v3ident = "{v3id}"}},\n""".format(**elts),
+ )
return (authlines, arti_lines)
def _getBridgeLines(self):
@@ -2233,6 +2225,7 @@ class Network(object):
self._requirements = []
self._dfltEnv = defaultEnviron
self._nextnodenum = 0
+ self.dir = ""
def _addNode(self, n):
n.setNodenum(self._nextnodenum)
@@ -2301,6 +2294,7 @@ class Network(object):
else:
raise
nodeslink.symlink_to(newnodesdir)
+ self.dir = newnodesdir
def _checkConfig(self):
for n in self._nodes:
@@ -2332,7 +2326,8 @@ class Network(object):
network = self
altauthlines = []
bridgelines = []
- artilines = []
+ arti_fallback_lines = []
+ arti_auth_lines = []
all_builders = [ n.getBuilder() for n in self._nodes ]
builders = [ b for b in all_builders
if b._env['config_phase'] == phase ]
@@ -2343,10 +2338,11 @@ class Network(object):
for b in all_builders:
b.preConfig(network)
- tor_auth_line, arti_auth = b._getAltAuthLines(
+ tor_auth_line, (arti_fallback, arti_auth) = b._getAltAuthLines(
self._dfltEnv['hasbridgeauth'])
altauthlines.append(tor_auth_line)
- artilines.append(arti_auth)
+ arti_fallback_lines.append(arti_fallback)
+ arti_auth_lines.append(arti_auth)
bridgelines.append(b._getBridgeLines())
self._dfltEnv['authorities'] = "".join(altauthlines)
@@ -2356,7 +2352,22 @@ class Network(object):
b.config(network)
with open(os.path.join(get_absolute_nodes_path(),"arti.toml"), 'w') as f:
- f.write("".join(artilines))
+ f.write("""[storage]
+cache_dir = "{path}/arti/cache"
+state_dir = "{path}/arti/state"
+
+[path_rules]
+enforce_distance = {{ "subnets_family_v4" = 33, "subnets_family_v6" = 129 }}
+
+""".format(path=self.dir))
+ f.write("""[network]
+fallback_caches = [
+""")
+ f.write("".join(arti_fallback_lines))
+ f.write("]\n")
+ f.write("authorities = [\n")
+ f.write("".join(arti_auth_lines))
+ f.write("]")
for b in builders:
b.postConfig(network)
More information about the tor-commits
mailing list