Philipp Hörist pushed to branch gajim_1.1 at gajim / gajim


Commits:
da04f7fe by Sebastiaan Lokhorst at 2019-04-23T15:09:44Z
zeroconf_bonjour: switch from DNSServiceQueryRecord to DNSServiceGetAddrInfo 
for IPv6 compatibility

- - - - -
97877294 by Philipp Hörist at 2019-04-23T15:09:44Z
Update ChangeLog

- - - - -


2 changed files:

- ChangeLog
- gajim/common/zeroconf/zeroconf_bonjour.py


Changes:

=====================================
ChangeLog
=====================================
@@ -16,6 +16,7 @@ Gajim 1.1.3 (TBA)
   * #9633 Fix an error while sending a file
   * #9637 Restore window size correctly on wayland
   * #9660 GPG Agent setting is ignored
+  * #9645 Make zeroconf IPV6 compatible
   * Improve dark theme colors
   * Fix access to GnuPG keys
   * Use UUID4 item ids for pubsub posts


=====================================
gajim/common/zeroconf/zeroconf_bonjour.py
=====================================
@@ -17,7 +17,6 @@
 
 import logging
 import select
-import socket
 import re
 
 from gajim.common.i18n import _
@@ -157,16 +156,16 @@ class Zeroconf:
 
         self.queried.append(True)
 
-    def query_record_callback(self, sdRef, flags, interfaceIndex, errorCode,
-                              hosttarget, rrtype, rrclass, rdata, ttl):
+    def getaddrinfo_callback(self, sdRef, flags, interfaceIndex, errorCode,
+                             hosttarget, address, ttl):
         if errorCode != pybonjour.kDNSServiceErr_NoError:
-            log.error('Error in query_record_callback: %s', str(errorCode))
+            log.error('Error in getaddrinfo_callback: %s', str(errorCode))
             return
 
         fullname, port, txtRecord = self.resolved_contacts[hosttarget]
 
         txt = pybonjour.TXTRecord.parse(txtRecord)
-        ip = socket.inet_ntoa(rdata)
+        ip = address[1]
 
         name, bare_name, protocol, domain = self._parse_name(fullname)
 
@@ -207,20 +206,18 @@ class Zeroconf:
         self.resolved_contacts[hosttarget] = (fullname, port, txtRecord)
 
         try:
-            query_sdRef = None
-            query_sdRef = \
-                pybonjour.DNSServiceQueryRecord(
+            getaddrinfo_sdRef = \
+                pybonjour.DNSServiceGetAddrInfo(
                     interfaceIndex=interfaceIndex,
-                    fullname=hosttarget,
-                    rrtype=pybonjour.kDNSServiceType_A,
-                    callBack=self.query_record_callback)
+                    hostname=hosttarget,
+                    callBack=self.getaddrinfo_callback)
 
             while not self.queried:
-                ready = select.select([query_sdRef], [], [], resolve_timeout)
-                if query_sdRef not in ready[0]:
-                    log.warning('Query record timed out')
+                ready = select.select([getaddrinfo_sdRef], [], [], 
resolve_timeout)
+                if getaddrinfo_sdRef not in ready[0]:
+                    log.warning('GetAddrInfo timed out')
                     break
-                pybonjour.DNSServiceProcessResult(query_sdRef)
+                pybonjour.DNSServiceProcessResult(getaddrinfo_sdRef)
             else:
                 self.queried.pop()
 
@@ -231,8 +228,8 @@ class Zeroconf:
                 self.error_CB(_('Error while adding service. %s') % error)
 
         finally:
-            if query_sdRef:
-                query_sdRef.close()
+            if getaddrinfo_sdRef:
+                getaddrinfo_sdRef.close()
 
         self.resolved.append(True)
 



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/compare/ff9afe194eea8a554131ee676200fc7c6313d904...9787729423f8fa0d7714856d47a815b3d3abdbe7

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/compare/ff9afe194eea8a554131ee676200fc7c6313d904...9787729423f8fa0d7714856d47a815b3d3abdbe7
You're receiving this email because of your account on dev.gajim.org.

_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to