source: MondoRescue/branches/2.2.9/mindi-busybox/libbb/create_icmp6_socket.c@ 2725

Last change on this file since 2725 was 2725, checked in by Bruno Cornec, 13 years ago
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
File size: 895 bytes
RevLine 
[821]1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
[2725]5 * create raw socket for icmp (IPv6 version) protocol
[821]6 * and drop root privileges if running setuid
7 *
[2725]8 * Licensed under GPLv2, see file LICENSE in this source tree.
[821]9 */
10
11#include "libbb.h"
12
[1765]13#if ENABLE_FEATURE_IPV6
[2725]14int FAST_FUNC create_icmp6_socket(void)
[821]15{
[2725]16 int sock;
17#if 0
[821]18 struct protoent *proto;
19 proto = getprotobyname("ipv6-icmp");
20 /* if getprotobyname failed, just silently force
21 * proto->p_proto to have the correct value for "ipv6-icmp" */
[1765]22 sock = socket(AF_INET6, SOCK_RAW,
23 (proto ? proto->p_proto : IPPROTO_ICMPV6));
[2725]24#else
25 sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
26#endif
[1765]27 if (sock < 0) {
[821]28 if (errno == EPERM)
29 bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
[1765]30 bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket);
[821]31 }
32
33 /* drop root privs if running setuid */
[1765]34 xsetuid(getuid());
[821]35
36 return sock;
37}
38#endif
Note: See TracBrowser for help on using the repository browser.