[Pidgin] #14755: bonjour file transfer broken when IPv6 is activated in avahi
Pidgin
trac at pidgin.im
Sun Nov 20 11:45:14 EST 2011
#14755: bonjour file transfer broken when IPv6 is activated in avahi
----------------------------------------------+-----------------------------
Reporter: tux | Owner: datallah
Type: defect | Status: new
Milestone: | Component: Bonjour
Version: 2.10.0 | Resolution:
Keywords: bonjour ipv6 file transfer avahi |
----------------------------------------------+-----------------------------
Description changed by tux:
Old description:
> When ipv6 is activated in avahi then libpurple/pidgin prefers and tries
> to do the file transfer via IPv6 as it should.
>
> However this fails:
> {{{
> proxy: Error connecting to 2001:6f8:587:0:4:64ff:fea4:29b2:47505
> (Connection refused).
> }}}
>
> To me it looks like the receiver side only creates an IPv4 listening
> socket and therefore does not accept IPv6 connection attempts:
> {{{
> $ sudo netstat -tulpen | grep pidgin
> tcp 0 0 0.0.0.0:47505 0.0.0.0:*
> LISTEN 1000 15154 17281/lt-pidgin
> tcp 0 0 0.0.0.0:5298 0.0.0.0:*
> LISTEN 1000 14747 17281/lt-pidgin
> tcp6 0 0 :::5298 :::*
> LISTEN 1000 14746 17281/lt-pidgin
> }}}
>
> This might be the case due to the AF_INET in:
>
> libpurple/protocols/bonjour/bonjour_ft.c, bonjour_bytestreams_init() ->
> libpurple/network.c, purple_network_listen_range() ->
> purple_network_listen_range_family() -> purple_network_do_listen() ->
> listenfd = socket(AF_INET, socket_type, 0)
>
> I tested all this with two pidgin 2.10.0 instances on two Debian testing
> VMs. Plus the following patch posted to the mailing list:
> http://pidgin.im/pipermail/devel/2011-November/010482.html . This patch
> took me one step further, without it no accept-dialog and save-to-dialog
> popped up on the receiver side.
>
> Note: Even with this patch I suspect there might still be issues for the
> bonjour file transfer similar to the ones there were prior this patch for
> bonjour messaging with IPv6 for link local addresses.
New description:
When ipv6 is activated in avahi then libpurple/pidgin prefers and tries to
do the file transfer via IPv6 as it should.
However this fails:
{{{
proxy: Error connecting to 2001:6f8:587:0:4:64ff:fea4:29b2:47505
(Connection refused).
}}}
To me it looks like the receiver side only creates an IPv4 listening
socket and therefore does not accept IPv6 connection attempts:
{{{
$ sudo netstat -tulpen | grep pidgin
tcp 0 0 0.0.0.0:47505 0.0.0.0:* LISTEN
1000 15154 17281/lt-pidgin
tcp 0 0 0.0.0.0:5298 0.0.0.0:* LISTEN
1000 14747 17281/lt-pidgin
tcp6 0 0 :::5298 :::* LISTEN
1000 14746 17281/lt-pidgin
}}}
This might be the case due to the AF_INET in:
libpurple/protocols/bonjour/bonjour_ft.c, bonjour_bytestreams_init() ->
libpurple/network.c, purple_network_listen_range() ->
purple_network_listen_range_family() -> purple_network_do_listen() ->
listenfd = socket(AF_INET, socket_type, 0)
I tested all this with two pidgin 2.10.0 instances on two Debian testing
VMs. Plus the following patch posted to the mailing list:
http://pidgin.im/pipermail/devel/2011-November/010482.html . This patch
took me one step further, without it no accept-dialog and save-to-dialog
popped up on the receiver side.
Note: Even with this patch I suspect there might still be issues for the
bonjour file transfer similar to the ones there were prior this patch for
bonjour messaging with IPv6 for link local addresses.
Also (as you can see in the log files too) this transfer was attempted via
a global IPv6 address, use-ipv6=yes was set in /etc/avahi-daemon.conf. If
I set this option to "no" then the whole handshaking prior the file
transfer plus the actual file transfer itself are done via the IPv4
address (although the IPv6 ones are still listed and offered from the file
receiver to the file sender in the prior handshake, but ignored by the
file sender). And via IPv4 the file transfer is successful then.
--
--
Ticket URL: <http://developer.pidgin.im/ticket/14755#comment:1>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list