changeset 3e42c82db23d in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=3e42c82db23d description: detect and send all our local IPs from local DNS. Fixes #4249
diffstat:
src/common/connection_handlers.py | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-)
diffs (28 lines):
diff -r a1acdd00e6b6 -r 3e42c82db23d src/common/connection_handlers.py --- a/src/common/connection_handlers.py Thu Jul 16 14:53:14 2009 +0200 +++ b/src/common/connection_handlers.py Thu Jul 16 15:29:07 2009 +0200 @@ -224,12 +224,18 @@ ostreamhost.setAttr('host', ft_host) ostreamhost.setAttr('jid', sender) try: - thehost = self.peerhost[0] - streamhost = common.xmpp.Node(tag = 'streamhost') # My IP - query.addChild(node = streamhost) - streamhost.setAttr('port', unicode(port)) - streamhost.setAttr('host', thehost) - streamhost.setAttr('jid', sender) + # The ip we're connected to server with + my_ips = [self.peerhost[0]] + # all IPs from local DNS + for addr in socket.getaddrinfo(socket.gethostname(), None): + if not addr[4][0] in my_ips: + my_ips.append(addr[4][0]) + for ip in my_ips: + streamhost = common.xmpp.Node(tag = 'streamhost') + query.addChild(node = streamhost) + streamhost.setAttr('port', unicode(port)) + streamhost.setAttr('host', ip) + streamhost.setAttr('jid', sender) except socket.gaierror: self.dispatch('ERROR', (_('Wrong host'), _('Invalid local address? :-O')))