chiark
/
gitweb
/
~mdw
/
tripe
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
svc/conntrack{,.8}.in: Better diagnostics.
[tripe]
/
mon
/
tripemon.in
diff --git
a/mon/tripemon.in
b/mon/tripemon.in
index 413c8abbf531fd41955ca455846b06b96b076acc..4b8dd24fb6d7d8a6fe527af6f4fc61fe41c633f3 100644
(file)
--- a/
mon/tripemon.in
+++ b/
mon/tripemon.in
@@
-293,7
+293,13
@@
class Peer (MonitorObject):
def update(me, hunoz = None):
"""Update the peer, fetching information about it from the server."""
def update(me, hunoz = None):
"""Update the peer, fetching information about it from the server."""
- addr = conn.addr(me.name)
+ me._setaddr(me, conn.addr(me.name))
+ me.ifname = conn.ifname(me.name)
+ me.__dict__.update(conn.peerinfo(me.name))
+ me.changehook.run()
+
+ def _setaddr(me, addr):
+ """Set the peer's address."""
if addr[0] == 'INET':
ipaddr, port = addr[1:]
try:
if addr[0] == 'INET':
ipaddr, port = addr[1:]
try:
@@
-303,8
+309,10
@@
class Peer (MonitorObject):
me.addr = 'INET %s:%s' % (ipaddr, port)
else:
me.addr = ' '.join(addr)
me.addr = 'INET %s:%s' % (ipaddr, port)
else:
me.addr = ' '.join(addr)
- me.ifname = conn.ifname(me.name)
- me.__dict__.update(conn.peerinfo(me.name))
+
+ def setaddr(me, addr):
+ """Informs the object of a change to its address to ADDR."""
+ me._setaddr(addr)
me.changehook.run()
def setifname(me, newname):
me.changehook.run()
def setifname(me, newname):
@@
-476,6
+484,11
@@
class Monitor (HookClient):
me.peers[rest[0]].setifname(rest[2])
except KeyError:
pass
me.peers[rest[0]].setifname(rest[2])
except KeyError:
pass
+ elif code == 'NEWADDR':
+ try:
+ me.peers[rest[0]].setaddr(rest[1:])
+ except KeyError:
+ pass
elif code == 'SVCCLAIM':
T.aside(me.services.add, rest[0], rest[1])
if rest[0] == 'connect':
elif code == 'SVCCLAIM':
T.aside(me.services.add, rest[0], rest[1])
if rest[0] == 'connect':