Ticket #1969: gajim-ipv6.patch

File gajim-ipv6.patch, 2.4 KB (added by sgala@…, 4 years ago)

patch to get ipv4/ipv6 transport

  • src/common/xmpp/transports_nb.py

     
    106106                        self._server = server 
    107107                self.state = 0 
    108108                try: 
    109                         self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    110                         self._sock.setblocking(False) 
     109                        for ai in socket.getaddrinfo(server[0],server[1],socket.AF_UNSPEC,socket.SOCK_STREAM): 
     110                                try: 
     111                                        self._sock=socket.socket(*ai[:3]) 
     112                                        self._sock.setblocking(False) 
     113                                        self._sock.connect(ai[4]) 
     114                                        self._send=self._sock.sendall 
     115                                        self._recv=self._sock.recv 
     116                                        break 
     117                                except: 
     118                                        if sys.exc_value[0] == errno.EINPROGRESS: 
     119                                                break 
     120                                        #for all errors, we try other addresses 
     121                                        continue 
    111122                except: 
    112123                        sys.exc_clear() 
    113124                        if self.on_connect_failure: 
  • src/common/xmpp/transports.py

     
    9696        """ Try to connect. Returns non-empty string on success. """ 
    9797        try: 
    9898            if not server: server=self._server 
    99             self._sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    100             self._sock.connect(server) 
    101             self._send=self._sock.sendall 
    102             self._recv=self._sock.recv 
    103             self.DEBUG("Successfully connected to remote host %s"%`server`,'start') 
    104             return 'ok' 
     99            for ai in socket.getaddrinfo(server[0],server[1],socket.AF_UNSPEC,socket.SOCK_STREAM): 
     100               try: 
     101                   self._sock=socket.socket(*ai[:3]) 
     102                   self._sock.connect(ai[4]) 
     103                   self._send=self._sock.sendall 
     104                   self._recv=self._sock.recv 
     105                   self.DEBUG("Successfully connected to remote host %s"%`server`,'start') 
     106                   return 'ok' 
     107               except: continue 
    105108        except: pass 
    106109 
    107110    def plugout(self):