def start(self, loop): from calibre.utils.mdns import publish, unpublish, get_external_ip, verify_ipV4_address ip_address, port = loop.bound_address[:2] self.zeroconf_ip_address = zipa = verify_ipV4_address(ip_address) or get_external_ip() prefix = loop.opts.url_prefix or '' # The Zeroconf module requires everything to be bytestrings def enc(x): if not isinstance(x, bytes): x = x.encode('ascii') return x mdns_services = ( (enc(self.service_name), enc(self.service_type), port, {b'path':enc(prefix + self.path)}), ) if self.shutdown.is_set(): return self.services = [] for s in mdns_services: self.services.append(publish(*s, use_ip_address=zipa, add_hostname=self.add_hostname)) loop.log('OPDS feeds advertised via BonJour at: %s port: %s' % (zipa, port)) self.advertised_port = port self.started.set() self.shutdown.wait() for s in mdns_services: unpublish(*s, add_hostname=self.add_hostname) self.stopped.set()
def start(self, loop): from calibre.utils.mdns import publish, unpublish, get_external_ip, verify_ipV4_address ip_address, port = loop.bound_address[:2] self.zeroconf_ip_address = zipa = verify_ipV4_address( ip_address) or get_external_ip() prefix = loop.opts.url_prefix or '' mdns_services = ((self.service_name, self.service_type, port, { 'path': prefix + self.path }), ) if self.shutdown.is_set(): return self.services = [] for s in mdns_services: self.services.append( publish(*s, use_ip_address=zipa, add_hostname=self.add_hostname)) loop.log('OPDS feeds advertised via BonJour at: %s port: %s' % (zipa, port)) self.advertised_port = port self.started.set() self.shutdown.wait() for s in mdns_services: unpublish(*s, add_hostname=self.add_hostname, wait_for_stop=self.wait_for_stop) self.stopped.set()
def start(self, loop): from calibre.utils.mdns import publish, unpublish, get_external_ip, verify_ipV4_address ip_address, port = loop.bound_address[:2] self.zeroconf_ip_address = zipa = verify_ipV4_address(ip_address) or get_external_ip() prefix = loop.opts.url_prefix or '' mdns_services = ( (self.service_name, self.service_type, port, {'path':prefix + self.path}), ) if self.shutdown.is_set(): return self.services = [] for s in mdns_services: self.services.append(publish(*s, use_ip_address=zipa, add_hostname=self.add_hostname)) loop.log('OPDS feeds advertised via BonJour at: %s port: %s' % (zipa, port)) self.advertised_port = port self.started.set() self.shutdown.wait() for s in mdns_services: unpublish(*s, add_hostname=self.add_hostname, wait_for_stop=self.wait_for_stop) self.stopped.set()