"""
if T._debug: print '# rescan peers'
correct = {}
+ start = {}
for peer in S.list():
try:
info = peerinfo(peer)
continue
if boolean(info, 'watch', False):
if T._debug: print '# interesting peer %s' % peer
- correct[peer] = info
+ correct[peer] = start[peer] = info
+ elif startup:
+ if T._debug: print '# peer %s ready for adoption' % peer
+ start[peer] = info
for peer, obj in me._peers.items():
if peer in correct:
obj.update(correct[peer])
else:
if T._debug: print '# peer %s vanished' % peer
del me._peers[peer]
- for peer, info in correct.iteritems():
+ for peer, info in start.iteritems():
if peer not in me._peers:
if startup:
if T._debug: print '# setting up peer %s' % peer
env[prefix + r_bad.sub('_', k.upper())] = v
r_bad = RX.compile(r'[\W_]+')
-def envvars(info):
+def envvars(peer, info):
"""
- Translate the database INFO dictionary for a peer into a dictionary of
+ Translate the database INFO dictionary for a PEER into a dictionary of
environment variables with plausible upper-case names and a P_ prefix.
Also collect the crypto information into A_ variables.
"""
env = {}
encode_envvars(env, 'P_', info)
- encode_envvars(env, 'A_', S.algs())
+ encode_envvars(env, 'A_', S.algs(peer))
return env
def ifupdown(what, peer, info, *args):
c = Command([what, peer], q, what,
M.split(info[what], quotep = True)[0] +
[peer] + list(args),
- envvars(info))
+ envvars(peer, info))
potwatch(what, peer, q)
def addpeer(info, peer, ifname, *addr):