[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 238688] New: Does not listen on IPv4 when IPv4-mapped addresses
From:       Modestas Vainius <modestas () vainius ! eu>
Date:       2010-05-24 13:42:53
Message-ID: bug-238688-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=238688

           Summary: Does not listen on IPv4 when IPv4-mapped addresses are
                    disabled
           Product: ktorrent
           Version: unspecified
          Platform: Debian unstable
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: NOR
         Component: general
        AssignedTo: joris.guisson@gmail.com
        ReportedBy: modestas@vainius.eu


Version:           unspecified (using KDE 4.4.3) 
OS:                Linux

The bug is in libktorrent v4.0rc1. Please check the header of the following
patch for up-to-date details. Current header is copy & pasted bellow.

http://git.debian.org/?p=pkg-kde/kde-extras/libktorrent.git;a=blob;f=debian/patches/debian_disable_ipv6_only.diff



Description: Always bind IPv6 sockets to IPv4 as well
 If net.ipv6.bindv6only = 1 (Linux defaults to net.ipv6.bindv6only = 0) is set
 (a new default for Debian Linux since Squeeze), IPv6 sockets are not bound to
 IPv4 by default. This made KTorrent not listen on IPv4 (see Debian bug).
 However, an application may explicitly set IPV6_V6ONLY socket option to 0 in
 order to enforce contrary behaviour on Linux and other systems which support
 IPv4-mapped addresses.
 .
 Unfortunately, this fix is just a workaround and my attempt at damage control.
 According to [1], not all IPv6 stacks support IPv4-mapped addresses (Windows,
 OpenBSD, Debian kFreeBSD do not support them). What is more, as far as I can
 tell, net.ipv6.bindv6only=1 like behaviour is default on *BSD. So KTorrent
 without IPV6_V6ONLY explicitly set to 0 used to bind to IPv6-only addresses on
 these systems. Only Linux and OSX default to net.ipv6.bindv6only=0 like
 behaviour.
 .
 The proper fix would be to open two sockets: one AF_INET6 with IPV6_V6ONLY and
 another AF_INET one. I recommend you to read the thread [2] about bindv6only=1
 in Debian in order to better understand this issue.
 .
 1. http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_addresses
 2.
http://news.gmane.org/find-root.php?message_id=%3c20091024182431.GB13333%40bongo.bofh.it%3e
                
Author: Modestas Vainius <modax@debian.org>
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581896
Origin: vendor
Forwarded: yes
Last-Update: 2010-05-24


Reproducible: Always




Regardless of bindv6only/IP6_V6ONLY setting, sockets appear as {tcp,udp}6 in
netstat. However, you may check if IPv4 works by trying to connect
127.0.0.1:<port> with e.g. telnet/netcat.

Again, the right solution is to open two sockets for both IPv6 and IPv4.

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic