Ticket #1969: gajim-ipv6.2.patch

File gajim-ipv6.2.patch, 2.1 kB (added by sgala, 2 years ago)

new version, slightly changed to address small error in patch

  • 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._server=ai[4] 
     114                                        break 
     115                                except: 
     116                                        if sys.exc_value[0] == errno.EINPROGRESS: 
     117                                                break 
     118                                        #for all errors, we try other addresses 
     119                                        continue 
    111120                except: 
    112121                        sys.exc_clear() 
    113122                        if self.on_connect_failure: 
  • src/common/xmpp/transports.py

     
    9595    def connect(self,server=None): 
    9696        """ Try to connect. Returns non-empty string on success. """ 
    9797        try: 
    98             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' 
     98            if not server: 
     99                server=self._server 
     100            for ai in socket.getaddrinfo(server[0],server[1],socket.AF_UNSPEC,socket.SOCK_STREAM): 
     101                try: 
     102                    self._sock=socket.socket(*ai[:3]) 
     103                    self._sock.connect(ai[4]) 
     104                    self._send=self._sock.sendall 
     105                    self._recv=self._sock.recv 
     106                    self.DEBUG("Successfully connected to remote host %s"%`server`,'start') 
     107                    return 'ok' 
     108                except: continue 
    105109        except: pass 
    106110 
    107111    def plugout(self):