diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 13:58:15 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 13:58:15 +0100 |
commit | 4aca87515a5083ae0e31ce3177189fd43b6d05ac (patch) | |
tree | 7b1d9a31393ca090757dc6f0d3859b4fcd93f271 /release/src/router/busybox/libbb/create_icmp6_socket.c | |
parent | 008d0be72b2f160382c6e880765e96b64a050c65 (diff) | |
download | tomato-4aca87515a5083ae0e31ce3177189fd43b6d05ac.tar.gz tomato-4aca87515a5083ae0e31ce3177189fd43b6d05ac.tar.bz2 |
patch to Vanilla Tomato 1.28
Diffstat (limited to 'release/src/router/busybox/libbb/create_icmp6_socket.c')
-rw-r--r-- | release/src/router/busybox/libbb/create_icmp6_socket.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/release/src/router/busybox/libbb/create_icmp6_socket.c b/release/src/router/busybox/libbb/create_icmp6_socket.c index 59661044..91e478ec 100644 --- a/release/src/router/busybox/libbb/create_icmp6_socket.c +++ b/release/src/router/busybox/libbb/create_icmp6_socket.c @@ -2,37 +2,36 @@ /* * Utility routines. * - * create raw socket for icmp (IPv6 version) protocol test permision - * and drop root privilegies if running setuid + * create raw socket for icmp (IPv6 version) protocol + * and drop root privileges if running setuid * + * Licensed under GPLv2, see file LICENSE in this tarball for details. */ -#include <sys/types.h> -#include <netdb.h> -#include <sys/socket.h> -#include <errno.h> -#include <unistd.h> #include "libbb.h" -#ifdef CONFIG_FEATURE_IPV6 -int create_icmp6_socket(void) +#if ENABLE_FEATURE_IPV6 +int FAST_FUNC create_icmp6_socket(void) { - struct protoent *proto; 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" */ - if ((sock = socket(AF_INET6, SOCK_RAW, - (proto ? proto->p_proto : IPPROTO_ICMPV6))) < 0) { + 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); - else - bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket); + bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket); } /* drop root privs if running setuid */ - setuid(getuid()); + xsetuid(getuid()); return sock; } |