Beispiel #1
0
    def __init__(self, bindaddress=None):
        """Creates an instance of the Zeroconf class, establishing
        multicast communications, listening and reaping threads."""
        globals()['_GLOBAL_DONE'] = 0
        if bindaddress is None:
            try:
                """Try to find the internet-routing interface so we don't get 127.0.0.1"""
                s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                s.connect(('www.google.com', 80))
                self.intf = s.getsockname()[0]
                s.close()
            except:
                self.intf = socket.gethostbyname(socket.gethostname())
            bindaddress = self.intf
        else:
            self.intf = bindaddress
        self.socket = mcastsocket.create_socket((bindaddress, dns._MDNS_PORT))
        mcastsocket.join_group(self.socket, dns._MDNS_ADDR)

        self.listeners = []
        self.suppression_queue = []
        self.browsers = []
        self.services = {}

        self.cache = dns.DNSCache()

        self.condition = threading.Condition()

        self.engine = Engine(self)
        self.listener = Listener(self)
        self.reaper = Reaper(self)
Beispiel #2
0
def create(group='FF02:0:0:0:0:2:FF00::', port=5000):
    sock = mcastsocket.create_socket(('::', port),
                                     TTL=1,
                                     loop=True,
                                     reuse=True,
                                     family=mcastsocket.socket.AF_INET6)
    mcastsocket.join_group(sock, group)
    return sock
Beispiel #3
0
def create(group='FF02:0:0:0:0:2:FF00::',port=5000):
    sock = mcastsocket.create_socket( 
        ('::',port), TTL=1, loop=True, 
        reuse=True, 
        family=mcastsocket.socket.AF_INET6 
    )
    mcastsocket.join_group( sock, group )
    return sock
Beispiel #4
0
def main(ip):
    """Create a multicast socket, send a message, check it comes back"""
    port = PORT
    sock = mcastsocket.create_socket((ip, port), loop=False)
    mcastsocket.join_group(sock, GROUP)
    try:
        payload = query % locals()
        while True:
            sock.sendto(payload, 0, (GROUP, PORT))
            print 'Waiting for responses'
            rs, wr, xs = select.select([sock], [], [], 20.0)
            if rs:
                data, addr = sock.recvfrom(2000)
                handle(sock, data, addr)
        return 1
    finally:
        mcastsocket.leave_group(sock, GROUP)
Beispiel #5
0
def main(ip):
    """Create a multicast socket, send a message, check it comes back"""
    port = PORT
    sock = mcastsocket.create_socket( (ip,port), loop=False )
    mcastsocket.join_group( sock, GROUP )
    try:
        payload = query % locals()
        while True:
            sock.sendto( payload, 0, (GROUP,PORT))
            print 'Waiting for responses'
            rs,wr,xs = select.select( [sock],[],[], 20.0 )
            if rs:
                data, addr = sock.recvfrom( 2000 )
                handle( sock, data, addr )
        return 1
    finally:
        mcastsocket.leave_group( sock, GROUP )
Beispiel #6
0
def main(ip):
    """Create a multicast socket, send a message, check it comes back"""
    sock = mcastsocket.create_socket( (ip,dns._MDNS_PORT), loop=True )
    mcastsocket.join_group( sock, dns._MDNS_ADDR )
    try:
        payload = 'hello world'
        for i in range( 5 ):
            sock.sendto( payload, 0, (dns._MDNS_ADDR, dns._MDNS_PORT))
            print 'Waiting for looped message receipt'
            rs,wr,xs = select.select( [sock],[],[], 1.0 )
            data,(addr,port) = sock.recvfrom( 200 )
            if data == payload:
                print 'Success: looped message received from address %s port %s'%(
                    addr,port,
                )
                return 0
        print 'Failure: Looped message not received'
        return 1
    finally:
        mcastsocket.leave_group( sock, dns._MDNS_ADDR )
Beispiel #7
0
def main(ip):
    """Create a multicast socket, send a message, check it comes back"""
    sock = mcastsocket.create_socket((ip, dns._MDNS_PORT), loop=True)
    mcastsocket.join_group(sock, dns._MDNS_ADDR)
    try:
        payload = 'hello world'
        for i in range(5):
            sock.sendto(payload, 0, (dns._MDNS_ADDR, dns._MDNS_PORT))
            print 'Waiting for looped message receipt'
            rs, wr, xs = select.select([sock], [], [], 1.0)
            data, (addr, port) = sock.recvfrom(200)
            if data == payload:
                print 'Success: looped message received from address %s port %s' % (
                    addr,
                    port,
                )
                return 0
        print 'Failure: Looped message not received'
        return 1
    finally:
        mcastsocket.leave_group(sock, dns._MDNS_ADDR)
Beispiel #8
0
    def __init__(self, bindaddress=None):
        """Creates an instance of the Zeroconf class, establishing
        multicast communications, listening and reaping threads."""
        globals()['_GLOBAL_DONE'] = 0
        self.intf = bindaddress = bindaddress or _detect_interface_addr()
        self.socket = mcastsocket.create_socket( (bindaddress, dns._MDNS_PORT) )
        mcastsocket.join_group( self.socket, dns._MDNS_ADDR )

        self.listeners = []
        self.suppression_queue = []
        self.browsers = []
        self.services = {}
        self.servicetypes = {}

        self.cache = dns.DNSCache()

        self.condition = threading.Condition()

        self.engine = Engine(self)
        self.listener = Listener(self)
        self.reaper = Reaper(self)
Beispiel #9
0
    def __init__(self, bindaddress=None):
        """Creates an instance of the Zeroconf class, establishing
        multicast communications, listening and reaping threads."""
        globals()['_GLOBAL_DONE'] = 0
        self.intf = bindaddress = bindaddress or _detect_interface_addr()
        self.socket = mcastsocket.create_socket((bindaddress, dns._MDNS_PORT))
        mcastsocket.join_group(self.socket, dns._MDNS_ADDR)

        self.listeners = []
        self.suppression_queue = []
        self.browsers = []
        self.services = {}
        self.servicetypes = {}

        self.cache = dns.DNSCache()

        self.condition = threading.Condition()

        self.engine = Engine(self)
        self.listener = Listener(self)
        self.reaper = Reaper(self)
Beispiel #10
0
    def __init__(self, bindaddress=None):
        """Creates an instance of the Zeroconf class, establishing
        multicast communications, listening and reaping threads."""
        globals()['_GLOBAL_DONE'] = 0
        if bindaddress is None:
            self.intf = socket.gethostbyname(socket.gethostname())
            bindaddress = self.intf
        else:
            self.intf = bindaddress
        self.socket = mcastsocket.create_socket( (bindaddress, dns._MDNS_PORT) )
        mcastsocket.join_group( self.socket, dns._MDNS_ADDR )

        self.listeners = []
        self.browsers = []
        self.services = {}

        self.cache = dns.DNSCache()

        self.condition = threading.Condition()

        self.engine = Engine(self)
        self.listener = Listener(self)
        self.reaper = Reaper(self)
Beispiel #11
0
    def __init__(self, bindaddress=None):
        """Creates an instance of the Zeroconf class, establishing
        multicast communications, listening and reaping threads."""
        globals()['_GLOBAL_DONE'] = 0
        if bindaddress is None:
            self.intf = socket.gethostbyname(socket.gethostname())
            bindaddress = self.intf
        else:
            self.intf = bindaddress
        self.socket = mcastsocket.create_socket( (bindaddress, dns._MDNS_PORT) )
        mcastsocket.join_group( self.socket, dns._MDNS_ADDR )

        self.listeners = []
        self.browsers = []
        self.services = {}

        self.cache = dns.DNSCache()

        self.condition = threading.Condition()

        self.engine = Engine(self)
        self.listener = Listener(self)
        self.reaper = Reaper(self)