[git commit] ping: revert "try SOCK_DGRAM if no root privileges"

Denys Vlasenko vda.linux at googlemail.com
Thu Jan 9 10:53:26 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=f0058b1b1fe9f7e69b415616096fb9347f599426
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

It wasn't working, and fixes on top of it would make ping
noticeably larger.

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/ping.c |   19 +++----------------
 1 files changed, 3 insertions(+), 16 deletions(-)

diff --git a/networking/ping.c b/networking/ping.c
index 5d71fe8..5e4771f 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -168,22 +168,9 @@ create_icmp_socket(void)
 #endif
 		sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */
 	if (sock < 0) {
-		if (errno != EPERM)
-			bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket);
-#if defined(__linux__) || defined(__APPLE__)
-		/* We don't have root privileges.  Try SOCK_DGRAM instead.
-		 * Linux needs net.ipv4.ping_group_range for this to work.
-		 * MacOSX allows ICMP_ECHO, ICMP_TSTAMP or ICMP_MASKREQ
-		 */
-#if ENABLE_PING6
-		if (lsa->u.sa.sa_family == AF_INET6)
-			sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6);
-		else
-#endif
-			sock = socket(AF_INET, SOCK_DGRAM, 1); /* 1 == ICMP */
-		if (sock < 0)
-#endif
-		bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
+		if (errno == EPERM)
+			bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
+		bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket);
 	}
 
 	xmove_fd(sock, pingsock);


More information about the busybox-cvs mailing list