summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2014-01-09 11:53:26 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2014-01-09 11:53:26 +0100
commitf0058b1b1fe9f7e69b415616096fb9347f599426 (patch)
treea76be37a1cf04573d73fca6ed70eb08de4f0fe81
parente4569be24488242eb190b379003a9afe789c844b (diff)
ping: revert "try SOCK_DGRAM if no root privileges"
It wasn't working, and fixes on top of it would make ping noticeably larger. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/ping.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/networking/ping.c b/networking/ping.c
index 5d71fe8cc..5e4771f5a 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);