aboutsummaryrefslogtreecommitdiff
path: root/libbb/create_icmp_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/create_icmp_socket.c')
-rw-r--r--libbb/create_icmp_socket.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/libbb/create_icmp_socket.c b/libbb/create_icmp_socket.c
index 3a4655885..64beba82b 100644
--- a/libbb/create_icmp_socket.c
+++ b/libbb/create_icmp_socket.c
@@ -2,26 +2,25 @@
2/* 2/*
3 * Utility routines. 3 * Utility routines.
4 * 4 *
5 * create raw socket for icmp protocol test permission 5 * create raw socket for icmp protocol
6 * and drop root privileges if running setuid 6 * and drop root privileges if running setuid
7 *
8 */ 7 */
9 8
10//#include <sys/types.h>
11//#include <netdb.h>
12//#include <sys/socket.h>
13#include "libbb.h" 9#include "libbb.h"
14 10
15int create_icmp_socket(void) 11int create_icmp_socket(void)
16{ 12{
17 struct protoent *proto;
18 int sock; 13 int sock;
19 14#if 0
15 struct protoent *proto;
20 proto = getprotobyname("icmp"); 16 proto = getprotobyname("icmp");
21 /* if getprotobyname failed, just silently force 17 /* if getprotobyname failed, just silently force
22 * proto->p_proto to have the correct value for "icmp" */ 18 * proto->p_proto to have the correct value for "icmp" */
23 sock = socket(AF_INET, SOCK_RAW, 19 sock = socket(AF_INET, SOCK_RAW,
24 (proto ? proto->p_proto : 1)); /* 1 == ICMP */ 20 (proto ? proto->p_proto : 1)); /* 1 == ICMP */
21#else
22 sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */
23#endif
25 if (sock < 0) { 24 if (sock < 0) {
26 if (errno == EPERM) 25 if (errno == EPERM)
27 bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); 26 bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);