netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* SO_BINDTODEVICE mismatch with man page & comments.
@ 2007-09-04 22:45 Ben Greear
  2007-09-12 15:08 ` David Miller
  2007-09-14 20:12 ` David Miller
  0 siblings, 2 replies; 8+ messages in thread
From: Ben Greear @ 2007-09-04 22:45 UTC (permalink / raw)
  To: NetDev; +Cc: Patrick McHardy

According to the comment in the net/core/sock.c code (in 2.6.20), I should be able to pass a zero
optlen to the setsockopt method for SO_BINDTODEVICE:

                 case SO_BINDTODEVICE:
                 {
                         char devname[IFNAMSIZ];

                         /* Sorry... */
                         if (!capable(CAP_NET_RAW)) {
                                 ret = -EPERM;
                                 break;
                         }

                         /* Bind this socket to a particular device like "eth0",
                          * as specified in the passed interface name. If the
                          * name is "" or the option length is zero the socket
                          * is not bound.
                          */

However, earlier in that method it returns -EINVAL if optlen is < sizeof(int).

The man page has comments similar to that in the code above.

Also, even when I get the un-bind call working with code similar to:

int z = 0;
setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, &z, sizeof(z));

The app I'm working on (Xorp) does not appear to work.  Perhaps because
the kernel does not clean up the cached route when you un-bind
as it does in the (re)bind logic?

                                 /* Remove any cached route for this socket. */
                                 sk_dst_reset(sk);


Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-09-14 23:09 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-04 22:45 SO_BINDTODEVICE mismatch with man page & comments Ben Greear
2007-09-12 15:08 ` David Miller
2007-09-14 20:12 ` David Miller
2007-09-14 22:11   ` Ben Greear
2007-09-14 22:29     ` David Miller
2007-09-14 22:37       ` Ben Greear
2007-09-14 22:43         ` David Miller
2007-09-14 23:09           ` Ben Greear

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).