Unregister a Zeroconf instance if it already exists before publishing a backend service.

`mdns` connection are another culprit for the increasing number of open
files in the process.
This commit is contained in:
Fabio Manganiello 2024-04-16 00:12:55 +02:00
parent 33d4c8342d
commit 4972c8bdcf
Signed by untrusted user: blacklight
GPG key ID: D90FBA7F76362774
2 changed files with 9 additions and 6 deletions

View file

@ -402,6 +402,13 @@ class Backend(Thread, EventGenerator, ExtensionWithManifest):
)
return
if self.zeroconf:
self.logger.info(
'Zeroconf service already registered for %s, removing the previous instance',
self.__class__.__name__,
)
self.unregister_service()
self.zeroconf = Zeroconf()
srv_desc = {
'name': 'Platypush',

View file

@ -46,9 +46,7 @@ class ZeroconfListener(ServiceListener):
'properties': {
k.decode()
if isinstance(k, bytes)
else k: v.decode()
if isinstance(v, bytes)
else v
else k: (v.decode() if isinstance(v, bytes) else v)
for k, v in info.properties.items()
},
'server': info.server,
@ -166,9 +164,7 @@ class ZeroconfPlugin(Plugin):
get_bus().post(evt)
except queue.Empty:
if not services:
self.logger.warning(
'No such service discovered: {}'.format(service)
)
self.logger.warning('No such service discovered: %s', service)
finally:
if browser:
browser.cancel()