1 # Copyright (C) 2008, Thomas Leonard
2 # See the README file for details, or visit http://0install.net.
4 from logging
import info
, debug
5 import socket
, sys
, select
7 #broadcast = ('<broadcast>', 308339)
8 broadcast
= ('localhost', 308339)
12 print >>sys
.stderr
, "No digests given!"
15 info("Broadcasting request for %s on local network...", digests
)
17 client
= socket
.socket(socket
.AF_INET
, socket
.SOCK_DGRAM
, 0)
18 client
.setsockopt(socket
.SOL_SOCKET
, socket
.SO_BROADCAST
, 1)
20 client
.sendto('0share\n' + '\n'.join(digests
), broadcast
)
23 r
= select
.select([client
], [], [], 1)[0]
25 data
, addr
= client
.recvfrom(128)
27 lines
= data
.split('\n')
28 if lines
[0] == '0share-reply':
30 print "%s has %s" % (addr
, d
)
32 info("Invalid reply from %s: %s", addr
, repr(data
))
35 info("No further responses for one second")