Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: jacmet at uclibc.org <jacmet@uclibc.org>
To: buildroot@busybox.net
Subject: [Buildroot] svn commit: trunk/buildroot/package/busybox
Date: Thu, 11 Dec 2008 01:35:08 -0800 (PST)	[thread overview]
Message-ID: <20081211093508.268B53C6C6@busybox.net> (raw)

Author: jacmet
Date: 2008-12-11 01:35:07 -0800 (Thu, 11 Dec 2008)
New Revision: 24367

Log:
busybox: 1.13.1 bindtodevice fix

Added:
   trunk/buildroot/package/busybox/busybox-1.13.1-bindtodevice.patch


Changeset:
Added: trunk/buildroot/package/busybox/busybox-1.13.1-bindtodevice.patch
===================================================================
--- trunk/buildroot/package/busybox/busybox-1.13.1-bindtodevice.patch	                        (rev 0)
+++ trunk/buildroot/package/busybox/busybox-1.13.1-bindtodevice.patch	2008-12-11 09:35:07 UTC (rev 24367)
@@ -0,0 +1,86 @@
+--- busybox-1.13.1/include/libbb.h	Sun Nov  9 18:28:17 2008
++++ busybox-1.13.1-bindtodevice/include/libbb.h	Wed Dec 10 12:10:30 2008
+@@ -437,6 +437,7 @@
+  * Turn it on before you call bind(). */
+ void setsockopt_reuseaddr(int fd) FAST_FUNC; /* On Linux this never fails. */
+ int setsockopt_broadcast(int fd) FAST_FUNC;
++int setsockopt_bindtodevice(int fd, const char *iface) FAST_FUNC;
+ /* NB: returns port in host byte order */
+ unsigned bb_lookup_port(const char *port, const char *protocol, unsigned default_port) FAST_FUNC;
+ typedef struct len_and_sockaddr {
+--- busybox-1.13.1/libbb/xconnect.c	Sun Nov  9 18:28:09 2008
++++ busybox-1.13.1-bindtodevice/libbb/xconnect.c	Wed Dec 10 23:20:29 2008
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include <netinet/in.h>
++#include <net/if.h>
+ #include "libbb.h"
+ 
+ void FAST_FUNC setsockopt_reuseaddr(int fd)
+@@ -17,6 +18,20 @@
+ {
+ 	return setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &const_int_1, sizeof(const_int_1));
+ }
++int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface)
++{
++	int r;
++	struct ifreq ifr;
++	strncpy(ifr.ifr_name, iface, IFNAMSIZ);
++	/* Actually, ifr_name is at offset 0, and in practice
++	 * just giving char[IFNAMSIZ] instead of struct ifreq works too.
++	 * But just in case it's not true on some obscure arch... */
++	r = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr));
++	if (r)
++		bb_perror_msg("can't bind to interface %s", iface);
++	return r;
++}
++
+ 
+ void FAST_FUNC xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen)
+ {
+--- busybox-1.13.1/networking/arping.c	Sun Nov  9 18:27:59 2008
++++ busybox-1.13.1-bindtodevice/networking/arping.c	Wed Dec 10 12:10:30 2008
+@@ -322,8 +322,7 @@
+ 		struct sockaddr_in saddr;
+ 		int probe_fd = xsocket(AF_INET, SOCK_DGRAM, 0);
+ 
+-		if (setsockopt(probe_fd, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device) + 1) == -1)
+-			bb_perror_msg("cannot bind to device %s", device);
++		setsockopt_bindtodevice(probe_fd, device);
+ 		memset(&saddr, 0, sizeof(saddr));
+ 		saddr.sin_family = AF_INET;
+ 		if (src.s_addr) {
+--- busybox-1.13.1/networking/ping.c	Sun Nov  9 18:27:59 2008
++++ busybox-1.13.1-bindtodevice/networking/ping.c	Wed Dec 10 12:10:30 2008
+@@ -572,7 +572,7 @@
+ 		xbind(pingsock, &source_lsa->u.sa, source_lsa->len);
+ 	}
+ 	if (str_I)
+-		setsockopt(pingsock, SOL_SOCKET, SO_BINDTODEVICE, str_I, strlen(str_I) + 1);
++		setsockopt_bindtodevice(pingsock, str_I);
+ 
+ 	/* enable broadcast pings */
+ 	setsockopt_broadcast(pingsock);
+@@ -622,7 +622,7 @@
+ 	if (source_lsa)
+ 		xbind(pingsock, &source_lsa->u.sa, source_lsa->len);
+ 	if (str_I)
+-		setsockopt(pingsock, SOL_SOCKET, SO_BINDTODEVICE, str_I, strlen(str_I) + 1);
++		setsockopt_bindtodevice(pingsock, str_I);
+ 
+ #ifdef ICMP6_FILTER
+ 	{
+--- busybox-1.13.1/networking/udhcp/socket.c	Sun Nov  9 18:27:58 2008
++++ busybox-1.13.1-bindtodevice/networking/udhcp/socket.c	Wed Dec 10 12:10:30 2008
+@@ -98,8 +98,8 @@
+ 		bb_perror_msg_and_die("SO_BROADCAST");
+ 
+ 	/* NB: bug 1032 says this doesn't work on ethernet aliases (ethN:M) */
+-	if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &inf, strlen(inf) + 1) == -1)
+-		bb_perror_msg_and_die("SO_BINDTODEVICE");
++	if (setsockopt_bindtodevice(fd, inf))
++		xfunc_die(); /* warning is already printed */
+ 
+ 	memset(&addr, 0, sizeof(addr));
+ 	addr.sin_family = AF_INET;

             reply	other threads:[~2008-12-11  9:35 UTC|newest]

Thread overview: 161+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-11  9:35 jacmet at uclibc.org [this message]
  -- strict thread matches above, loose matches on Subject: below --
2009-03-02 15:33 [Buildroot] svn commit: trunk/buildroot/package/busybox jacmet at uclibc.org
2009-02-18 14:16 jacmet at uclibc.org
2009-02-01 19:36 jacmet at uclibc.org
2009-01-29 11:29 jacmet at uclibc.org
2009-01-29 11:27 jacmet at uclibc.org
2009-01-20 19:26 jacmet at uclibc.org
2009-01-19 12:34 jacmet at uclibc.org
2009-01-12  9:36 jacmet at uclibc.org
2008-12-31  9:35 jacmet at uclibc.org
2008-12-30 19:15 jacmet at uclibc.org
2008-12-29 10:09 jacmet at uclibc.org
2008-12-10 13:46 jacmet at uclibc.org
2008-12-07 21:22 jacmet at uclibc.org
2008-12-04 13:21 jacmet at uclibc.org
2008-11-29 20:12 jacmet at uclibc.org
2008-11-28  8:19 jacmet at uclibc.org
2008-11-22  6:49 jacmet at uclibc.org
2008-11-21 14:36 jacmet at uclibc.org
2008-11-21 10:59 jacmet at uclibc.org
2008-11-20  6:49 jacmet at uclibc.org
2008-11-17  7:40 jacmet at uclibc.org
2008-11-16 17:22 jacmet at uclibc.org
2008-11-16 23:46 ` Hamish Moffatt
2008-11-17  7:13   ` Peter Korsgaard
2008-11-17 12:38     ` Hamish Moffatt
2008-11-17 12:45       ` Peter Korsgaard
2008-11-15 21:25 jacmet at uclibc.org
2008-11-13 16:32 jacmet at uclibc.org
2008-11-14 16:42 ` hartleys
2008-11-15 21:29   ` Peter Korsgaard
2008-11-16 23:42     ` Hamish Moffatt
2008-11-17  7:13       ` Peter Korsgaard
2008-11-13 16:32 jacmet at uclibc.org
2008-11-07 10:16 jacmet at uclibc.org
2008-11-02 13:06 jacmet at uclibc.org
2008-10-13 12:42 jacmet at uclibc.org
2008-10-06 18:52 jacmet at uclibc.org
2008-09-28 19:28 jacmet at uclibc.org
2008-09-22 11:54 jacmet at uclibc.org
2008-09-09  8:50 jacmet at uclibc.org
2008-09-09  8:50 jacmet at uclibc.org
2008-09-10  1:32 ` Hamish Moffatt
2008-09-10  6:57   ` Peter Korsgaard
2008-08-31 21:45 jacmet at uclibc.org
2008-08-28  4:57 jacmet at uclibc.org
2008-08-26  1:05 hamish at uclibc.org
2008-08-21  5:08 jacmet at uclibc.org
2008-08-06 12:56 jacmet at uclibc.org
2008-08-06  6:37 jacmet at uclibc.org
2008-08-04 19:06 jacmet at uclibc.org
2008-07-23  6:01 jacmet at uclibc.org
2008-07-22 11:19 jacmet at uclibc.org
2008-07-11 22:19 jacmet at uclibc.org
2008-07-06 13:55 jacmet at uclibc.org
2008-07-01 14:04 jacmet at uclibc.org
2008-07-01 13:37 jacmet at uclibc.org
2008-06-28 20:53 jacmet at uclibc.org
2008-06-26  6:51 jacmet at uclibc.org
2008-06-26  6:51 jacmet at uclibc.org
2008-06-26  6:58 ` Peter Korsgaard
2008-06-27  9:05   ` Daniel Laird
2008-06-27  9:20     ` Peter Korsgaard
2008-06-27 12:00       ` Bernhard Fischer
2008-06-27 12:46         ` sjhill at realitydiluted.com
2008-06-27 12:53           ` Bernhard Fischer
2008-06-27 14:07           ` Peter Korsgaard
2008-06-27 12:49         ` Daniel Laird
2008-06-27 13:19           ` Peter Korsgaard
2008-06-26  6:51 jacmet at uclibc.org
2008-06-20 18:38 jacmet at uclibc.org
2008-06-13 20:49 jacmet at uclibc.org
2008-06-07  7:46 jacmet at uclibc.org
2008-05-31 12:58 jacmet at uclibc.org
2008-05-31  7:28 jacmet at uclibc.org
2008-05-31  7:39 ` Cristian Ionescu-Idbohrn
2008-05-31 12:59   ` Peter Korsgaard
2008-05-09 10:01 jacmet at uclibc.org
2008-05-05 17:17 jacmet at uclibc.org
2008-04-29  6:53 jacmet at uclibc.org
2008-04-22  9:37 jacmet at uclibc.org
2008-04-04  7:17 jacmet at uclibc.org
2008-04-01 10:00 jacmet at uclibc.org
2008-03-30 14:37 jacmet at uclibc.org
2008-03-26 21:53 jacmet at uclibc.org
2008-03-26 21:49 jacmet at uclibc.org
2008-03-25 14:38 jacmet at uclibc.org
2008-03-21 17:56 ninevoltz at uclibc.org
2008-03-21 10:14 jacmet at uclibc.org
2008-03-17 19:44 jacmet at uclibc.org
2008-03-11  8:17 jacmet at uclibc.org
2008-02-28 14:38 jacmet at uclibc.org
2008-02-14 15:49 jacmet at uclibc.org
2008-02-14 14:45 jacmet at uclibc.org
2008-02-02 21:49 jacmet at uclibc.org
2008-01-08 12:51 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:31 jacmet at uclibc.org
2007-09-30 12:50 aldot at uclibc.org
2007-09-30 12:48 aldot at uclibc.org
2007-09-22 17:29 aldot at uclibc.org
2007-09-22 10:25 aldot at uclibc.org
2007-09-20 16:58 aldot at uclibc.org
2007-09-15 18:14 aldot at uclibc.org
2007-09-10  7:38 jacmet at uclibc.org
2007-09-02 22:09 aldot at uclibc.org
2007-09-02 14:56 aldot at uclibc.org
2007-09-01 17:33 aldot at uclibc.org
2007-08-24 14:23 aldot at uclibc.org
2007-07-08 12:10 aldot at uclibc.org
2007-07-08 12:04 aldot at uclibc.org
2007-07-08 11:56 aldot at uclibc.org
2007-07-02 15:20 aldot at uclibc.org
2007-07-02  9:54 aldot at uclibc.org
2007-06-27 21:07 aldot at uclibc.org
2007-06-25 11:07 aldot at uclibc.org
2007-06-14 13:09 jacmet at uclibc.org
2007-06-02 13:13 aldot at uclibc.org
2007-05-15  9:34 aldot at uclibc.org
2007-05-07  4:07 sjhill at uclibc.org
2007-05-07  4:04 sjhill at uclibc.org
2007-04-25  7:11 jacmet at uclibc.org
2007-04-05  7:04 jacmet at uclibc.org
2007-03-24 12:09 aldot at uclibc.org
2007-03-23 13:26 aldot at uclibc.org
2007-03-23 13:24 aldot at uclibc.org
2007-03-20  9:51 aldot at uclibc.org
2007-03-20  8:53 aldot at uclibc.org
2007-03-15  8:36 jacmet at uclibc.org
2007-03-14 13:02 aldot at uclibc.org
2007-02-27  9:04 jacmet at uclibc.org
2007-02-23 11:55 jacmet at uclibc.org
2007-02-16 15:19 aldot at uclibc.org
2007-02-12 14:43 jacmet at uclibc.org
2007-02-06 16:34 jacmet at uclibc.org
2007-02-06 16:31 jacmet at uclibc.org
2007-02-06 16:23 jacmet at uclibc.org
2007-02-06 16:20 jacmet at uclibc.org
2007-02-06 16:18 jacmet at uclibc.org
2007-02-02 16:15 aldot at uclibc.org
2007-02-01 12:30 aldot at uclibc.org
2007-01-31 14:21 aldot at uclibc.org
2007-01-30 16:47 jacmet at uclibc.org
2007-01-30 13:37 jacmet at uclibc.org
2007-01-30 13:36 jacmet at uclibc.org
2006-12-13  6:58 andersen at uclibc.org
2006-12-13  6:18 andersen at uclibc.org
2006-12-07 16:31 aldot at uclibc.org
2006-12-02 19:36 aldot at uclibc.org
2006-12-02 18:36 aldot at uclibc.org
2006-12-02 17:03 aldot at uclibc.org
2006-11-17 12:57 aldot at uclibc.org
2006-11-17 11:37 aldot at uclibc.org
2006-10-25  8:10 jacmet at uclibc.org
2006-08-29 16:45 aldot at uclibc.org
2006-08-24 19:48 aldot at uclibc.org
2006-07-31  9:01 jacmet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081211093508.268B53C6C6@busybox.net \
    --to=jacmet@uclibc.org \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox