53 # name: fully qualified service name |
53 # name: fully qualified service name |
54 self.service_name = 'Beremiz_%s.%s' % (name, service_type) |
54 self.service_name = 'Beremiz_%s.%s' % (name, service_type) |
55 self.name = name |
55 self.name = name |
56 self.port = port |
56 self.port = port |
57 |
57 |
58 self.server = Zeroconf.Zeroconf(ip) |
58 self.server = zeroconf.Zeroconf() |
59 print("MDNS brodcasting on :" + ip) |
59 print("MDNS brodcasting on :" + ip) |
60 |
60 |
61 if ip == "0.0.0.0": |
61 if ip == "0.0.0.0": |
62 ip = self.gethostaddr() |
62 ip = self.gethostaddr() |
63 print("MDNS brodcasted service address :" + ip) |
63 print("MDNS brodcasted service address :" + ip) |
64 self.ip_32b = socket.inet_aton(ip) |
64 self.ip_32b = socket.inet_aton(ip) |
65 |
65 |
66 self.server.registerService( |
66 self.server.register_service( |
67 Zeroconf.ServiceInfo(service_type, |
67 zeroconf.ServiceInfo(service_type, |
68 self.service_name, |
68 self.service_name, |
69 self.ip_32b, |
69 self.ip_32b, |
70 self.port, |
70 self.port, |
71 properties=self.serviceproperties)) |
71 properties=self.serviceproperties)) |
72 self.retrytimer = None |
72 self.retrytimer = None |
73 |
73 |
74 def UnRegisterService(self): |
74 def UnRegisterService(self): |
75 if self.retrytimer is not None: |
75 if self.retrytimer is not None: |
76 self.retrytimer.cancel() |
76 self.retrytimer.cancel() |
77 |
77 |
78 self.server.unregisterService( |
78 if self.server is not None: |
79 Zeroconf.ServiceInfo(service_type, |
79 self.server.unregister_service( |
80 self.service_name, |
80 zeroconf.ServiceInfo(service_type, |
81 self.ip_32b, |
81 self.service_name, |
82 self.port, |
82 self.ip_32b, |
83 properties=self.serviceproperties)) |
83 self.port, |
84 self.server.close() |
84 properties=self.serviceproperties)) |
85 self.server = None |
85 self.server.close() |
|
86 self.server = None |
86 |
87 |
87 def gethostaddr(self, dst='224.0.1.41'): |
88 def gethostaddr(self, dst='224.0.1.41'): |
88 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
89 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
89 try: |
90 try: |
90 s.connect((dst, 7)) |
91 s.connect((dst, 7)) |