Philipp Hörist pushed to branch gajim_0.16 at gajim / gajim

Commits:
5a2b04c2 by Philipp Hörist at 2017-06-06T00:18:42+02:00
Use dict for zeroconf txt data

Use dict or else zeroconf_connection.py would constantly overwrite it with a 
dict
which we would have to check and transform back.

so we use a dict and only transform to TXTRecord when we call pybonjour

- - - - -


1 changed file:

- src/common/zeroconf/zeroconf_bonjour.py


Changes:

=====================================
src/common/zeroconf/zeroconf_bonjour.py
=====================================
--- a/src/common/zeroconf/zeroconf_bonjour.py
+++ b/src/common/zeroconf/zeroconf_bonjour.py
@@ -43,7 +43,7 @@ class Zeroconf:
         self.port = port # listening port that gets announced
         self.username = name
         self.host = host
-        self.txt = pybonjour.TXTRecord()                # service data
+        self.txt = {}  # service data
 
         # XXX these CBs should be set to None when we destroy the object
         # (go offline), because they create a circular reference
@@ -245,7 +245,7 @@ class Zeroconf:
         txt = {}
 
         #remove empty keys
-        for key, val in self.txt:
+        for key, val in self.txt.iteritems():
             if val:
                 txt[key] = val
 
@@ -258,14 +258,13 @@ class Zeroconf:
             txt['status'] = self.replace_show(self.txt['status'])
         else:
             txt['status'] = 'avail'
-
-        self.txt = pybonjour.TXTRecord(txt, strict=True)
+        self.txt = txt
         try:
             self.service_sdRef = pybonjour.DNSServiceRegister(
                 name=self.name,
                 regtype=self.stype,
                 port=self.port,
-                txtRecord=self.txt,
+                txtRecord=pybonjour.TXTRecord(self.txt, strict=True),
                 callBack=self.service_added_callback)
 
             log.info('Publishing service %s of type %s' % (self.name, 
self.stype))
@@ -399,8 +398,9 @@ class Zeroconf:
         if show:
             self.txt['status'] = self.replace_show(show)
 
+        txt = pybonjour.TXTRecord(self.txt, strict=True)
         try:
-            pybonjour.DNSServiceUpdateRecord(self.service_sdRef, None, 0, 
self.txt)
+            pybonjour.DNSServiceUpdateRecord(self.service_sdRef, None, 0, txt)
         except pybonjour.BonjourError:
             return False
         return True



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/commit/5a2b04c2f19a5342d1c1dbd91b23da104eb9bcef
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to