123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- --- Libnet-1.0.2a.orig/acinclude.m4 2000-12-12 19:31:54.000000000 +0100
- +++ Libnet-1.0.2a/acinclude.m4 2009-06-12 21:48:27.000000000 +0200
- @@ -30,65 +30,43 @@ AC_DEFUN(AC_LIBNET_CHECK_PF_PACKET,
- *)
-
- cat > pf_packet-test.c << EOF
- -#include <net/if.h>
- -#if (__GLIBC__)
- -#include <netinet/if_ether.h>
- -#include <net/if_arp.h>
- +#include <stdio.h>
- +#include <errno.h>
- +#include <stdlib.h>
- +#include <netinet/in.h>
- +#include <sys/socket.h>
- +#include <features.h> /* for the glibc version number */
- +#if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1
- +#include <netpacket/packet.h>
- +#include <net/ethernet.h> /* the L2 protocols */
- #else
- -#include <linux/if_arp.h>
- -#include <linux/if_ether.h>
- +#include <asm/types.h>
- +#include <linux/if_packet.h>
- +#include <linux/if_ether.h> /* The L2 protocols */
- #endif
- -#if (PF_PACKET)
- +
- #ifndef SOL_PACKET
- #define SOL_PACKET 263
- #endif /* SOL_PACKET */
- -#include <linux/if_packet.h>
- -#endif
- -#include "./include/libnet.h"
-
- int
- main()
- {
- -#if (PF_PACKET)
- int fd;
- - struct sockaddr_ll sa;
- - struct ifreq ifr;
- - struct packet_mreq mr;
- - char *device ="lo";
-
- fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
- if (fd == -1)
- {
- - printf("choked");
- - exit (EXIT_FAILURE);
- - }
- -
- - memset(&sa, 0, sizeof(sa));
- - strcpy(ifr.ifr_name, device);
- - if (ioctl(fd, SIOCGIFINDEX, &ifr) < 0)
- - {
- - printf("choked");
- - exit (EXIT_FAILURE);
- - }
- - sa.sll_family = AF_PACKET;
- - sa.sll_ifindex = ifr.ifr_ifindex;
- - sa.sll_protocol = htons(ETH_P_ALL);
- -
- - memset(&mr, 0, sizeof (mr));
- - mr.mr_ifindex = sa.sll_ifindex;
- - mr.mr_type = PACKET_MR_ALLMULTI;
- -
- - if (setsockopt(fd, SOL_PACKET, PACKET_ADD_MEMBERSHIP, (char *)&mr,
- - sizeof (mr)) < 0)
- - {
- - printf("choked\n");
- + if (errno == EPERM)
- + {
- + /* user's UID != 0 */
- + printf("probably");
- + exit (EXIT_FAILURE);
- + }
- + printf("no");
- exit (EXIT_FAILURE);
- }
- - /* yay. we made it and it workz! */
- printf("yes");
- -#else /* PF_PACKET */
- - printf("no");
- -#endif
- exit (EXIT_SUCCESS);
- }
- EOF
- @@ -104,16 +82,21 @@ EOF
- if test $ac_libnet_have_pf_packet = choked; then
- AC_MSG_RESULT(test program choked... assuming no)
- elif test $ac_libnet_have_pf_packet = yes; then
- - AC_DEFINE(HAVE_PF_PACKET)
- + AC_MSG_RESULT(yes)
- LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DHAVE_PF_PACKET"
- + elif test $ac_libnet_have_pf_packet = probably; then
- + AC_MSG_RESULT(test program got EPERM... assuming yes)
- + elif test $ac_libnet_have_pf_packet = no; then
- + AC_MSG_RESULT(no)
- fi
-
- - if test $ac_libnet_have_pf_packet != choked; then
- - AC_MSG_RESULT($ac_libnet_have_pf_packet)
- - fi
- rm -f pf_packet-test* core core.pf_packet-test
- ;;
- esac])
- +
- + if test $ac_libnet_have_pf_packet = yes -o $ac_libnet_have_pf_packet = probably; then
- + AC_DEFINE(HAVE_PF_PACKET)
- + fi
- ])
-
- dnl
- @@ -279,6 +262,8 @@ dnl
-
- AC_DEFUN(AC_LIBNET_ENDIAN_CHECK,
- [AC_MSG_CHECKING(machine endianess)
- + AC_CACHE_VAL(ac_cv_libnet_endianess,
- + [
-
- cat > conftest.c << EOF
- # include <stdio.h>
- @@ -332,6 +317,7 @@ dnl failed to compile for some reason
- fi
- rm -f conftest* core core.conftest
-
- + ])
- AC_MSG_RESULT($ac_cv_libnet_endianess)
-
- if test $ac_cv_libnet_endianess = big ; then
|