[Pidgin] #12629: bonjour, ipv6 and link-local addresses: Unable to send the message, the conversation couldn't be started.
Pidgin
trac at pidgin.im
Tue Sep 14 10:19:17 EDT 2010
#12629: bonjour, ipv6 and link-local addresses: Unable to send the message, the
conversation couldn't be started.
-----------------------------+----------------------------------------------
Reporter: ao2 | Owner: datallah
Type: defect | Status: new
Component: Bonjour | Version: 2.7.3
Keywords: ipv6 link-local |
-----------------------------+----------------------------------------------
Hi,
when trying to start a new conversation with a buddy on the local network
with bonjour, I get the message "''Unable to send the message, the
conversation couldn't be started.''" in the conversation window.
Grasping through the log I can see that pidgin (purple) is trying to
connect via IPv6, as avahi advertised this address first via the presence
service.
{{{
(15:57:47) bonjour: Starting conversation with ao2 at tp0
(15:57:47) dns: DNS query for 'fe80::290:27ff:fe97:xxxx' queued
(15:57:47) dns: Created new DNS child 20286, there are now 1 children.
(15:57:47) dns: Successfully sent DNS request to child 20286
(15:57:47) dns: Got response for 'fe80::290:27ff:fe97:xxxx'
(15:57:47) dnsquery: IP resolved for fe80::290:27ff:fe97:xxxx
(15:57:47) proxy: Attempting connection to fe80::290:27ff:fe97:xxxx
(15:57:47) proxy: Connecting to fe80::290:27ff:fe97:xxxx:5298 with no
proxy
(15:57:47) proxy: Connection attempt failed: Invalid argument
(15:57:47) bonjour: Error connecting to buddy ao2 at tp0 at
fe80::290:27ff:fe97:xxxx:5298 error: Invalid argument
}}}
If I try ping6 on the address it does not work as is:
{{{
$ ping6 fe80::290:27ff:fe97:xxxx
connect: Invalid argument
}}}
But I expected this because link-local IPv6 addresses need a scope
identifier to be considered unique, if I add it, then ping6 works:
{{{
$ ping6 fe80::290:27ff:fe97:xxxx%2
PING fe80::290:27ff:fe97:xxxx%2(fe80::290:27ff:fe97:xxxx) 56 data bytes
64 bytes from fe80::290:27ff:fe97:xxxx: icmp_seq=1 ttl=64 time=5.50 ms
64 bytes from fe80::290:27ff:fe97:xxxx: icmp_seq=2 ttl=64 time=1.68 ms
}}}
the "%2" does it, I could also have used "%eth1" with ping6.
So I think this is the cause of the problem: the network code in purple is
not setting the correct scope id (see "man ipv6" in linux, look for
scope_id) when using the ipv6 protocol, this is OK for global and site
address but not for link-local addresses.
I also tried telepathy-salut and it works, and looking at its code the
scope_id is handled there.
Any hint about where in the purple code this could be fixed? I don't know
it yet. Ah, the scope_id value could very well be taken from the
_AvahiIfIndex_ value from the mDNS resolution.
Thanks,
Antonio Ospite
http://ao2.it
--
Ticket URL: <http://developer.pidgin.im/ticket/12629>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list