diff --git a/ledd/daemon.py b/ledd/daemon.py index 35f7a53..fe2399f 100644 --- a/ledd/daemon.py +++ b/ledd/daemon.py @@ -26,7 +26,7 @@ import asyncio import spectra -from zeroconf import Zeroconf +from zeroconf import Zeroconf, ServiceInfo from ledd import controller, VERSION from ledd.decorators import ledd_protocol @@ -59,8 +59,8 @@ class Daemon: log.info("No config file found!") # create zeroconf service info - # self.zinfo = ServiceInfo("_ledd._tcp", "LedD Daemon", - # port=self.config.get(self.daemonSection, 'port', fallback=1425)) + self.zinfo = ServiceInfo("_ledd._tcp.local.", "LedD Daemon._ledd._tcp.local.", + port=self.config.get(self.daemonSection, 'port', fallback=1425)) # SQL init self.sqldb = sqlite3.connect(self.config.get(self.databaseSection, 'name', fallback='ledd.sqlite')) @@ -77,7 +77,7 @@ class Daemon: logging.getLogger("asyncio").setLevel(logging.DEBUG) # announce server to network - #self.register_zeroconf() + self.register_zeroconf() # main loop self.loop = asyncio.get_event_loop() @@ -129,13 +129,22 @@ class Daemon: self.check_db() def register_zeroconf(self): - zeroconf = Zeroconf() - zeroconf.register_service(self.zinfo) - log.info("Registered ledd daemon with zeroconf") + try: + zeroconf = Zeroconf() + zeroconf.register_service(self.zinfo) + log.info("Registered ledd daemon with zeroconf") + except OSError as e: + log.warning("Failed to register service with ZeroConf: %s", e) + pass def deregister_zeroconf(self): - zeroconf = Zeroconf() - zeroconf.unregister_service(self.zinfo) + try: + zeroconf = Zeroconf() + zeroconf.unregister_service(self.zinfo) + log.info("Unregistered ledd daemon with zeroconf") + except OSError as e: + log.warning("Failed to deregister service with ZeroConf: %s", e) + pass @ledd_protocol(protocol) def start_effect(self, req_json):