[<prev] [next>] [day] [month] [year] [list]
Message-ID: <47FA0F80.2080701@odu.neva.ru>
Date: Mon, 07 Apr 2008 16:11:44 +0400
From: Dmitry Butskoy <buc@...sz.so-cdu.ru>
To: netdev@...r.kernel.org
Subject: [PATCH] for reopen bug #8747 -- complete the fix
There was a bug #8747, http://bugzilla.kernel.org/show_bug.cgi?id=8747,
"MSG_ERRQUEUE messages do not pass to connected raw sockets",
which still is not fixed, due to absence of proper tests.
I've made an additional patch (attached), against the 2.6.24.4 tree. The
patch fixes the issue completely for me. Tested.
Sorry that I have not checked up the previous attempt in real tests. I
assumed that the "typo" which I had found at that time (saddr/daddr
swapped) is just "a typo", and things "obviously" should work then...
Unfortunately, it seems that I am a first person who actually use
MSG_ERRQUEUE on connected ipv6 raw sockets. It is a reason why all the
last years nobody reported this bug.
Note, that "connected raw sockets" is a good feature for new
traceroute(8) implementation for Linux
(http://traceroute.sourceforge.net), included now into Fedora and other
distros. This feature allows to filter all alien packets from the
socket's input. Without this, the program will receive all the incoming
raw packets (for the "icmp" and "tcp" tracerouting methods, which use
raw sockets).
Because of that wrong assumption, I've implemented a check, whether the
kernel version is more than 2.6.22.2, and if so, allow raw ipv6 sockets
to connect. But since 2.6.22.2, the issue still not fixed, and now any
combination of "traceroute >= 2.0.8" and "kernel >= 2.6.22.2" leads to
impossibility to do "icmp" and "tcp" tracerouting for IPv6. :(
Now I have to ship an update for traceroute. If the bug can be fixed in
the nearest future (note the patch is too simple), I'll just change the
version to check. If not, I'll be compelled to drop the raw sockets
connection for a while.
Regards,
Dmitry Butskoy
http://www.fedoraproject.org/wiki/DmitryButskoy
An upstream maintainer of http://traceroute.sourceforge.net
View attachment "ipv6-raw_socket_msg_errqueue.patch" of type "text/x-diff" (517 bytes)
Powered by blists - more mailing lists