Move create_icmp[6]_socket to its only user, and simplify it
function old new delta run_applet_and_exit 711 714 +3 sendping_tail 239 236 -3 common_ping_main 1798 1770 -28 create_icmp_socket 65 - -65 create_icmp6_socket 65 - -65 ------------------------------------------------------------------------------ (add/remove: 0/4 grow/shrink: 1/2 up/down: 3/-161) Total: -158 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -27,8 +27,6 @@ lib-y += concat_subpath_file.o
|
||||
lib-y += copy_file.o
|
||||
lib-y += copyfd.o
|
||||
lib-y += crc32.o
|
||||
lib-y += create_icmp6_socket.o
|
||||
lib-y += create_icmp_socket.o
|
||||
lib-y += default_error_retval.o
|
||||
lib-y += device_open.o
|
||||
lib-y += dump.o
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* Utility routines.
|
||||
*
|
||||
* create raw socket for icmp (IPv6 version) protocol
|
||||
* and drop root privileges if running setuid
|
||||
*
|
||||
* Licensed under GPLv2, see file LICENSE in this source tree.
|
||||
*/
|
||||
|
||||
#include "libbb.h"
|
||||
|
||||
#if ENABLE_FEATURE_IPV6
|
||||
int FAST_FUNC create_icmp6_socket(void)
|
||||
{
|
||||
int sock;
|
||||
#if 0
|
||||
struct protoent *proto;
|
||||
proto = getprotobyname("ipv6-icmp");
|
||||
/* if getprotobyname failed, just silently force
|
||||
* proto->p_proto to have the correct value for "ipv6-icmp" */
|
||||
sock = socket(AF_INET6, SOCK_RAW,
|
||||
(proto ? proto->p_proto : IPPROTO_ICMPV6));
|
||||
#else
|
||||
sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
|
||||
#endif
|
||||
if (sock < 0) {
|
||||
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);
|
||||
}
|
||||
|
||||
/* drop root privs if running setuid */
|
||||
xsetuid(getuid());
|
||||
|
||||
return sock;
|
||||
}
|
||||
#endif
|
||||
@@ -1,36 +0,0 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* Utility routines.
|
||||
*
|
||||
* create raw socket for icmp protocol
|
||||
* and drop root privileges if running setuid
|
||||
*
|
||||
* Licensed under GPLv2, see file LICENSE in this source tree.
|
||||
*/
|
||||
|
||||
#include "libbb.h"
|
||||
|
||||
int FAST_FUNC create_icmp_socket(void)
|
||||
{
|
||||
int sock;
|
||||
#if 0
|
||||
struct protoent *proto;
|
||||
proto = getprotobyname("icmp");
|
||||
/* if getprotobyname failed, just silently force
|
||||
* proto->p_proto to have the correct value for "icmp" */
|
||||
sock = socket(AF_INET, SOCK_RAW,
|
||||
(proto ? proto->p_proto : 1)); /* 1 == ICMP */
|
||||
#else
|
||||
sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */
|
||||
#endif
|
||||
if (sock < 0) {
|
||||
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);
|
||||
}
|
||||
|
||||
/* drop root privs if running setuid */
|
||||
xsetuid(getuid());
|
||||
|
||||
return sock;
|
||||
}
|
||||
Reference in New Issue
Block a user