diff --git a/tv/recup_sap.py b/tv/recup_sap.py index 4a489ac1..b17a8097 100755 --- a/tv/recup_sap.py +++ b/tv/recup_sap.py @@ -19,6 +19,7 @@ mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) service={} +service_simple={} start=time.time() while True: @@ -28,17 +29,24 @@ while True: ip=None for line in msg[:-1]: (tag, value) = line.split('=', 1) + print (tag, value) if tag=='s': s=value if tag=='c': ip=value.split(' ')[2].split('/')[0] - service[s]=ip - print "%s: %s" % (s, ip) + if tag=='a' and value.startswith('x-plgroup:'): + group=value[10:] + service_simple[s]=ip + try: + service[group][s]=ip + except KeyError: + service[group]={s:ip} +# print "%s: %s" % (s, ip) if time.time() - start > timeout: break f=open(path, 'w') -l=service.items() +l=service_simple.items() l.sort() for (name, ip) in l: f.write("%s:%s\n" % (name, ip))