From 228d1c4df21088ffb0f2e087eae8c4323ad05760 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 8 Oct 2012 11:24:12 +0000 Subject: move library packages to package/libs/ git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33657 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../libpcap/patches/100-debian_shared_lib.patch | 178 --------------------- .../patches/102-makefile_disable_manpages.patch | 89 ----------- .../patches/103-makefile_flex_workaround.patch | 14 -- .../libpcap/patches/201-space_optimization.patch | 133 --------------- package/libpcap/patches/202-protocol_api.patch | 141 ---------------- .../patches/203-undef_iw_mode_monitor.patch | 11 -- 6 files changed, 566 deletions(-) delete mode 100644 package/libpcap/patches/100-debian_shared_lib.patch delete mode 100644 package/libpcap/patches/102-makefile_disable_manpages.patch delete mode 100644 package/libpcap/patches/103-makefile_flex_workaround.patch delete mode 100644 package/libpcap/patches/201-space_optimization.patch delete mode 100644 package/libpcap/patches/202-protocol_api.patch delete mode 100644 package/libpcap/patches/203-undef_iw_mode_monitor.patch (limited to 'package/libpcap/patches') diff --git a/package/libpcap/patches/100-debian_shared_lib.patch b/package/libpcap/patches/100-debian_shared_lib.patch deleted file mode 100644 index 5be33b0c64..0000000000 --- a/package/libpcap/patches/100-debian_shared_lib.patch +++ /dev/null @@ -1,178 +0,0 @@ -Debian-specific modifications to the upstream Makefile.in to -build a shared library. ---- - Makefile.in | 45 ++++++++++++++++++++++++++++++++++++++++++--- - configure | 2 +- - configure.in | 2 +- - 3 files changed, 44 insertions(+), 5 deletions(-) - ---- a/Makefile.in -+++ b/Makefile.in -@@ -40,6 +40,14 @@ mandir = @mandir@ - srcdir = @srcdir@ - VPATH = @srcdir@ - -+# some defines for shared library compilation -+MAJ=1.1 -+LIBVERSION=$(MAJ).1 -+LIBNAME=pcap -+LIBRARY=lib$(LIBNAME).a -+SOLIBRARY=lib$(LIBNAME).so -+SHAREDLIB=$(SOLIBRARY).$(LIBVERSION) -+ - # - # You shouldn't need to edit anything below. - # -@@ -59,6 +67,7 @@ PROG=libpcap - - # Standard CFLAGS - CFLAGS = $(CCOPT) $(INCLS) $(DEFS) -+CFLAGS_SHARED = -shared -Wl,-soname,$(SOLIBRARY).$(MAJ) - - INSTALL = @INSTALL@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ -@@ -78,7 +87,11 @@ YACC = @V_YACC@ - # problem if you don't own the file but can write to the directory. - .c.o: - @rm -f $@ -- $(CC) $(CFLAGS) -c $(srcdir)/$*.c -+ $(CC) $(CFLAGS) -c -o $@ $(srcdir)/$*.c -+ -+%_pic.o: %.c -+ @rm -f $@ -+ $(CC) -fPIC $(CFLAGS) -c -o $@ $(srcdir)/$*.c - - PSRC = pcap-@V_PCAP@.c @USB_SRC@ @BT_SRC@ @CAN_SRC@ - FSRC = fad-@V_FINDALLDEVS@.c -@@ -94,6 +107,7 @@ SRC = $(PSRC) $(FSRC) $(CSRC) $(SSRC) $( - # We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot - # hack the extra indirection - OBJ = $(PSRC:.c=.o) $(FSRC:.c=.o) $(CSRC:.c=.o) $(SSRC:.c=.o) $(GENSRC:.c=.o) $(LIBOBJS) -+OBJ_PIC = $(PSRC:.c=_pic.o) $(FSRC:.c=_pic.o) $(CSRC:.c=_pic.o) $(SSRC:.c=_pic.o) $(GENSRC:.c=_pic.o) - PUBHDR = \ - pcap.h \ - pcap-bpf.h \ -@@ -131,7 +145,7 @@ TAGFILES = \ - - CLEANFILES = $(OBJ) libpcap.* filtertest findalldevstest selpolltest \ - opentest $(PROG)-`cat $(srcdir)/VERSION`.tar.gz $(GENSRC) $(GENHDR) \ -- lex.yy.c pcap-config -+ lex.yy.c pcap-config $(OBJ_PIC) - - MAN1 = pcap-config.1 - -@@ -324,21 +338,14 @@ EXTRA_DIST = \ - Win32/Src/inet_net.c \ - Win32/Src/inet_pton.c - --all: libpcap.a shared pcap-config -+all: libpcap.a shared pcap-config $(SHAREDLIB) - - libpcap.a: $(OBJ) - @rm -f $@ - ar rc $@ $(OBJ) $(ADDLARCHIVEOBJS) - $(RANLIB) $@ - --shared: libpcap.$(DYEXT) -- --libpcap.so: $(OBJ) -- @rm -f $@ -- VER=`cat $(srcdir)/VERSION`; \ -- MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ -- @V_SHLIB_CMD@ @V_SHLIB_OPT@ @V_SONAME_OPT@$@.$$MAJOR_VER $(LDFLAGS) \ -- -o $@.$$VER $(OBJ) $(ADDLOBJS) $(LIBS) -+shared: $(SHAREDLIB) - - # - # The following rule succeeds, but the result is untested. -@@ -409,6 +416,13 @@ libpcap.shareda: $(OBJ) - # - libpcap.none: - -+$(SHAREDLIB): $(OBJ_PIC) -+ -@rm -f $@ -+ -@rm -f $(SOLIBRARY) $(SOLIBRARY).$(MAJ) -+ $(CC) $(CFLAGS_SHARED) -o $(SHAREDLIB) $(OBJ_PIC) -lc -+ ln -s $(SHAREDLIB) $(SOLIBRARY).$(MAJ) -+ ln -s $(SOLIBRARY).$(MAJ) $(SOLIBRARY) -+ - scanner.c: $(srcdir)/scanner.l - @rm -f $@ - $(srcdir)/runlex.sh $(LEX) -o$@ $< -@@ -416,6 +430,9 @@ scanner.c: $(srcdir)/scanner.l - scanner.o: scanner.c tokdefs.h - $(CC) $(CFLAGS) -c scanner.c - -+scanner_pic.o: scanner.c tokdefs.h -+ $(CC) -fPIC $(CFLAGS) -o $@ -c scanner.c -+ - pcap.o: version.h - - tokdefs.h: grammar.c -@@ -429,9 +446,17 @@ grammar.o: grammar.c - @rm -f $@ - $(CC) $(CFLAGS) -Dyylval=pcap_lval -c grammar.c - -+grammar_pic.o: grammar.c -+ @rm -f $@ -+ $(CC) -fPIC $(CFLAGS) -Dyylval=pcap_lval -o $@ -c grammar.c -+ - version.o: version.c - $(CC) $(CFLAGS) -c version.c - -+version_pic.o: version.c -+ $(CC) -fPIC $(CFLAGS) -c version.c -o $@ -+ -+ - snprintf.o: $(srcdir)/missing/snprintf.c - $(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c - -@@ -469,6 +494,9 @@ bpf_filter.c: $(srcdir)/bpf/net/bpf_filt - bpf_filter.o: bpf_filter.c - $(CC) $(CFLAGS) -c bpf_filter.c - -+bpf_filter_pic.o: bpf_filter.c -+ $(CC) -fPIC $(CFLAGS) -c bpf_filter.c -o $@ -+ - # - # Generate the pcap-config script. - # -@@ -562,14 +590,12 @@ install: install-shared install-archive - $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done - - install-shared: install-shared-$(DYEXT) --install-shared-so: libpcap.so -+install-shared-so: $(SHAREDLIB) - [ -d $(DESTDIR)$(libdir) ] || \ - (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) -- VER=`cat $(srcdir)/VERSION`; \ -- MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ -- $(INSTALL_PROGRAM) libpcap.so.$$VER $(DESTDIR)$(libdir)/libpcap.so.$$VER; \ -- ln -sf libpcap.so.$$VER $(DESTDIR)$(libdir)/libpcap.so.$$MAJOR_VER; \ -- ln -sf libpcap.so.$$MAJOR_VER $(DESTDIR)$(libdir)/libpcap.so -+ $(INSTALL_DATA) $(SHAREDLIB) $(DESTDIR)$(libdir)/ -+ ln -sf $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SOLIBRARY).$(MAJ) -+ ln -sf $(SOLIBRARY).$(MAJ) $(DESTDIR)$(libdir)/$(SOLIBRARY) - install-shared-dylib: libpcap.dylib - [ -d $(DESTDIR)$(libdir) ] || \ - (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) ---- a/configure -+++ b/configure -@@ -3229,7 +3229,7 @@ _ACEOF - # or accepts command-line arguments like - # those the GNU linker accepts. - # -- V_CCOPT="$V_CCOPT -fpic" -+ V_CCOPT="$V_CCOPT" - V_SONAME_OPT="-Wl,-soname," - V_RPATH_OPT="-Wl,-rpath," - ;; -@@ -3292,7 +3292,7 @@ _ACEOF - # - # "cc" is GCC. - # -- V_CCOPT="$V_CCOPT -fpic" -+ V_CCOPT="$V_CCOPT" - V_SHLIB_CMD="\$(CC)" - V_SHLIB_OPT="-shared" - V_SONAME_OPT="-Wl,-soname," diff --git a/package/libpcap/patches/102-makefile_disable_manpages.patch b/package/libpcap/patches/102-makefile_disable_manpages.patch deleted file mode 100644 index 4674df51e4..0000000000 --- a/package/libpcap/patches/102-makefile_disable_manpages.patch +++ /dev/null @@ -1,89 +0,0 @@ ---- a/Makefile.in -+++ b/Makefile.in -@@ -532,62 +532,12 @@ install: install-shared install-archive - (mkdir -p $(DESTDIR)$(includedir); chmod 755 $(DESTDIR)$(includedir)) - [ -d $(DESTDIR)$(includedir)/pcap ] || \ - (mkdir -p $(DESTDIR)$(includedir)/pcap; chmod 755 $(DESTDIR)$(includedir)/pcap) -- [ -d $(DESTDIR)$(mandir)/man1 ] || \ -- (mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1) -- [ -d $(DESTDIR)$(mandir)/man3 ] || \ -- (mkdir -p $(DESTDIR)$(mandir)/man3; chmod 755 $(DESTDIR)$(mandir)/man3) -- [ -d $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@ ] || \ -- (mkdir -p $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@; chmod 755 $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@) -- [ -d $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@ ] || \ -- (mkdir -p $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@; chmod 755 $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@) - for i in $(PUBHDR); do \ - $(INSTALL_DATA) $(srcdir)/$$i \ - $(DESTDIR)$(includedir)/$$i; done - [ -d $(DESTDIR)$(bindir) ] || \ - (mkdir -p $(DESTDIR)$(bindir); chmod 755 $(DESTDIR)$(bindir)) - $(INSTALL_PROGRAM) pcap-config $(DESTDIR)$(bindir)/pcap-config -- for i in $(MAN1); do \ -- $(INSTALL_DATA) $(srcdir)/$$i \ -- $(DESTDIR)$(mandir)/man1/$$i; done -- for i in $(MAN3PCAP_NOEXPAND); do \ -- $(INSTALL_DATA) $(srcdir)/$$i \ -- $(DESTDIR)$(mandir)/man3/$$i; done -- for i in $(MAN3PCAP_EXPAND:.in=); do \ -- $(INSTALL_DATA) $$i \ -- $(DESTDIR)$(mandir)/man3/$$i; done -- rm -f $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_description.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_name.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_description.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_dump_fopen.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_dump_open.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_dump_fopen.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_perror.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_geterr.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_perror.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_sendpacket.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_inject.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_sendpacket.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_dispatch.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_loop.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_dispatch.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_minor_version.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_major_version.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_minor_version.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_next.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_next_ex.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_next.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_fopen_offline.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_open_offline.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_fopen_offline.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_getnonblock.3pcap -- ln $(DESTDIR)$(mandir)/man3/pcap_setnonblock.3pcap \ -- $(DESTDIR)$(mandir)/man3/pcap_getnonblock.3pcap -- for i in $(MANFILE); do \ -- $(INSTALL_DATA) `echo $$i | sed 's/.manfile.in/.manfile/'` \ -- $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@/`echo $$i | sed 's/.manfile.in/.@MAN_FILE_FORMATS@/'`; done -- for i in $(MANMISC); do \ -- $(INSTALL_DATA) `echo $$i | sed 's/.manmisc.in/.manmisc/'` \ -- $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done - - install-shared: install-shared-$(DYEXT) - install-shared-so: $(SHAREDLIB) -@@ -642,23 +592,6 @@ uninstall: uninstall-shared - rm -f $(DESTDIR)$(includedir)/$$i; done - -rmdir $(DESTDIR)$(includedir)/pcap - rm -f $(DESTDIR)/$(bindir)/pcap-config -- for i in $(MAN1); do \ -- rm -f $(DESTDIR)$(mandir)/man1/$$i; done -- for i in $(MAN3PCAP); do \ -- rm -f $(DESTDIR)$(mandir)/man3/$$i; done -- rm -f $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_description.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_dump_fopen.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_perror.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_sendpacket.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_dispatch.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_minor_version.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_next.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_fopen_offline.3pcap -- rm -f $(DESTDIR)$(mandir)/man3/pcap_getnonblock.3pcap -- for i in $(MANFILE); do \ -- rm -f $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@/`echo $$i | sed 's/.manfile.in/.@MAN_FILE_FORMATS@/'`; done -- for i in $(MANMISC); do \ -- rm -f $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done - - uninstall-shared: uninstall-shared-$(DYEXT) - uninstall-shared-so: diff --git a/package/libpcap/patches/103-makefile_flex_workaround.patch b/package/libpcap/patches/103-makefile_flex_workaround.patch deleted file mode 100644 index a90e0ce1a3..0000000000 --- a/package/libpcap/patches/103-makefile_flex_workaround.patch +++ /dev/null @@ -1,14 +0,0 @@ - - Copyright (C) 2006 Markus Wigge - ---- a/Makefile.in -+++ b/Makefile.in -@@ -56,7 +56,7 @@ LD = /usr/bin/ld - CC = @CC@ - CCOPT = @V_CCOPT@ - INCLS = -I. @V_INCLS@ --DEFS = @DEFS@ @V_DEFS@ -+DEFS = -D_BSD_SOURCE @DEFS@ @V_DEFS@ - ADDLOBJS = @ADDLOBJS@ - ADDLARCHIVEOBJS = @ADDLARCHIVEOBJS@ - LIBS = @LIBS@ diff --git a/package/libpcap/patches/201-space_optimization.patch b/package/libpcap/patches/201-space_optimization.patch deleted file mode 100644 index f3eec4c839..0000000000 --- a/package/libpcap/patches/201-space_optimization.patch +++ /dev/null @@ -1,133 +0,0 @@ ---- a/gencode.c -+++ b/gencode.c -@@ -491,20 +491,6 @@ pcap_compile_nopcap(int snaplen_arg, int - } - - /* -- * Clean up a "struct bpf_program" by freeing all the memory allocated -- * in it. -- */ --void --pcap_freecode(struct bpf_program *program) --{ -- program->bf_len = 0; -- if (program->bf_insns != NULL) { -- free((char *)program->bf_insns); -- program->bf_insns = NULL; -- } --} -- --/* - * Backpatch the blocks in 'list' to 'target'. The 'sense' field indicates - * which of the jt and jf fields has been resolved and which is a pointer - * back to another unresolved block (or nil). At least one of the fields ---- a/pcap.c -+++ b/pcap.c -@@ -748,6 +748,59 @@ static const u_char charmap[] = { - (u_char)'\374', (u_char)'\375', (u_char)'\376', (u_char)'\377', - }; - -+/* -+ * Clean up a "struct bpf_program" by freeing all the memory allocated -+ * in it. -+ */ -+void -+pcap_freecode(struct bpf_program *program) -+{ -+ program->bf_len = 0; -+ if (program->bf_insns != NULL) { -+ free((char *)program->bf_insns); -+ program->bf_insns = NULL; -+ } -+} -+ -+/* -+ * Make a copy of a BPF program and put it in the "fcode" member of -+ * a "pcap_t". -+ * -+ * If we fail to allocate memory for the copy, fill in the "errbuf" -+ * member of the "pcap_t" with an error message, and return -1; -+ * otherwise, return 0. -+ */ -+int -+install_bpf_program(pcap_t *p, struct bpf_program *fp) -+{ -+ size_t prog_size; -+ -+ /* -+ * Validate the program. -+ */ -+ if (!bpf_validate(fp->bf_insns, fp->bf_len)) { -+ snprintf(p->errbuf, sizeof(p->errbuf), -+ "BPF program is not valid"); -+ return (-1); -+ } -+ -+ /* -+ * Free up any already installed program. -+ */ -+ pcap_freecode(&p->fcode); -+ -+ prog_size = sizeof(*fp->bf_insns) * fp->bf_len; -+ p->fcode.bf_len = fp->bf_len; -+ p->fcode.bf_insns = (struct bpf_insn *)malloc(prog_size); -+ if (p->fcode.bf_insns == NULL) { -+ snprintf(p->errbuf, sizeof(p->errbuf), -+ "malloc: %s", pcap_strerror(errno)); -+ return (-1); -+ } -+ memcpy(p->fcode.bf_insns, fp->bf_insns, prog_size); -+ return (0); -+} -+ - int - pcap_strcasecmp(const char *s1, const char *s2) - { ---- a/optimize.c -+++ b/optimize.c -@@ -2292,45 +2292,6 @@ icode_to_fcode(root, lenp) - return fp; - } - --/* -- * Make a copy of a BPF program and put it in the "fcode" member of -- * a "pcap_t". -- * -- * If we fail to allocate memory for the copy, fill in the "errbuf" -- * member of the "pcap_t" with an error message, and return -1; -- * otherwise, return 0. -- */ --int --install_bpf_program(pcap_t *p, struct bpf_program *fp) --{ -- size_t prog_size; -- -- /* -- * Validate the program. -- */ -- if (!bpf_validate(fp->bf_insns, fp->bf_len)) { -- snprintf(p->errbuf, sizeof(p->errbuf), -- "BPF program is not valid"); -- return (-1); -- } -- -- /* -- * Free up any already installed program. -- */ -- pcap_freecode(&p->fcode); -- -- prog_size = sizeof(*fp->bf_insns) * fp->bf_len; -- p->fcode.bf_len = fp->bf_len; -- p->fcode.bf_insns = (struct bpf_insn *)malloc(prog_size); -- if (p->fcode.bf_insns == NULL) { -- snprintf(p->errbuf, sizeof(p->errbuf), -- "malloc: %s", pcap_strerror(errno)); -- return (-1); -- } -- memcpy(p->fcode.bf_insns, fp->bf_insns, prog_size); -- return (0); --} -- - #ifdef BDEBUG - static void - opt_dump(root) diff --git a/package/libpcap/patches/202-protocol_api.patch b/package/libpcap/patches/202-protocol_api.patch deleted file mode 100644 index 892aeb7e0d..0000000000 --- a/package/libpcap/patches/202-protocol_api.patch +++ /dev/null @@ -1,141 +0,0 @@ ---- a/pcap-int.h -+++ b/pcap-int.h -@@ -209,6 +209,7 @@ struct pcap_opt { - char *source; - int promisc; - int rfmon; -+ int proto; /* protocol for packet socket (linux) */ - }; - - /* ---- a/pcap-linux.c -+++ b/pcap-linux.c -@@ -335,7 +335,7 @@ static int iface_get_id(int fd, const ch - static int iface_get_mtu(int fd, const char *device, char *ebuf); - static int iface_get_arptype(int fd, const char *device, char *ebuf); - #ifdef HAVE_PF_PACKET_SOCKETS --static int iface_bind(int fd, int ifindex, char *ebuf); -+static int iface_bind(int fd, int ifindex, char *ebuf, unsigned short proto); - #ifdef IW_MODE_MONITOR - static int has_wext(int sock_fd, const char *device, char *ebuf); - #endif /* IW_MODE_MONITOR */ -@@ -881,7 +881,7 @@ pcap_can_set_rfmon_linux(pcap_t *handle) - * (We assume that if we have Wireless Extensions support - * we also have PF_PACKET support.) - */ -- sock_fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); -+ sock_fd = socket(PF_PACKET, SOCK_RAW, p->opt.proto); - if (sock_fd == -1) { - (void)snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, - "socket: %s", pcap_strerror(errno)); -@@ -1128,6 +1128,9 @@ pcap_activate_linux(pcap_t *handle) - handle->read_op = pcap_read_linux; - handle->stats_op = pcap_stats_linux; - -+ if (handle->opt.proto < 0) -+ handle->opt.proto = (int) htons(ETH_P_ALL); -+ - /* - * The "any" device is a special device which causes us not - * to bind to a particular device and thus to look at all -@@ -2684,8 +2687,8 @@ activate_new(pcap_t *handle) - * try a SOCK_RAW socket for the raw interface. - */ - sock_fd = is_any_device ? -- socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_ALL)) : -- socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); -+ socket(PF_PACKET, SOCK_DGRAM, handle->opt.proto) : -+ socket(PF_PACKET, SOCK_RAW, handle->opt.proto); - - if (sock_fd == -1) { - snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "socket: %s", -@@ -2783,7 +2786,7 @@ activate_new(pcap_t *handle) - return PCAP_ERROR; - } - sock_fd = socket(PF_PACKET, SOCK_DGRAM, -- htons(ETH_P_ALL)); -+ handle->opt.proto); - if (sock_fd == -1) { - snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, - "socket: %s", pcap_strerror(errno)); -@@ -2835,7 +2838,7 @@ activate_new(pcap_t *handle) - } - - if ((err = iface_bind(sock_fd, handle->md.ifindex, -- handle->errbuf)) != 1) { -+ handle->errbuf, handle->opt.proto)) != 1) { - close(sock_fd); - if (err < 0) - return err; -@@ -3640,7 +3643,7 @@ iface_get_id(int fd, const char *device, - * or a PCAP_ERROR_ value on a hard error. - */ - static int --iface_bind(int fd, int ifindex, char *ebuf) -+iface_bind(int fd, int ifindex, char *ebuf, unsigned short proto) - { - struct sockaddr_ll sll; - int err; -@@ -3649,7 +3652,7 @@ iface_bind(int fd, int ifindex, char *eb - memset(&sll, 0, sizeof(sll)); - sll.sll_family = AF_PACKET; - sll.sll_ifindex = ifindex; -- sll.sll_protocol = htons(ETH_P_ALL); -+ sll.sll_protocol = proto; - - if (bind(fd, (struct sockaddr *) &sll, sizeof(sll)) == -1) { - if (errno == ENETDOWN) { -@@ -4359,7 +4362,7 @@ activate_old(pcap_t *handle) - - /* Open the socket */ - -- handle->fd = socket(PF_INET, SOCK_PACKET, htons(ETH_P_ALL)); -+ handle->fd = socket(PF_INET, SOCK_PACKET, handle->opt.proto); - if (handle->fd == -1) { - snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, - "socket: %s", pcap_strerror(errno)); ---- a/pcap.c -+++ b/pcap.c -@@ -258,6 +258,8 @@ pcap_create_common(const char *source, c - pcap_set_snaplen(p, 65535); /* max packet size */ - p->opt.promisc = 0; - p->opt.buffer_size = 0; -+ p->opt.proto = -1; -+ - return (p); - } - -@@ -317,6 +319,15 @@ pcap_set_buffer_size(pcap_t *p, int buff - return 0; - } - -+int -+pcap_set_protocol(pcap_t *p, unsigned short proto) -+{ -+ if (pcap_check_activated(p)) -+ return PCAP_ERROR_ACTIVATED; -+ p->opt.proto = proto; -+ return 0; -+} -+ - int - pcap_activate(pcap_t *p) - { ---- a/pcap/pcap.h -+++ b/pcap/pcap.h -@@ -68,6 +68,7 @@ extern "C" { - #define PCAP_VERSION_MINOR 4 - - #define PCAP_ERRBUF_SIZE 256 -+#define HAS_PROTO_EXTENSION - - /* - * Compatibility for systems that have a bpf.h that -@@ -276,6 +277,7 @@ int pcap_can_set_rfmon(pcap_t *); - int pcap_set_rfmon(pcap_t *, int); - int pcap_set_timeout(pcap_t *, int); - int pcap_set_buffer_size(pcap_t *, int); -+int pcap_set_protocol(pcap_t *, unsigned short); - int pcap_activate(pcap_t *); - - pcap_t *pcap_open_live(const char *, int, int, int, char *); diff --git a/package/libpcap/patches/203-undef_iw_mode_monitor.patch b/package/libpcap/patches/203-undef_iw_mode_monitor.patch deleted file mode 100644 index 508c6590a5..0000000000 --- a/package/libpcap/patches/203-undef_iw_mode_monitor.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/pcap-linux.c -+++ b/pcap-linux.c -@@ -254,6 +254,8 @@ static const char rcsid[] _U_ = - typedef int socklen_t; - #endif - -+#undef IW_MODE_MONITOR -+ - #ifndef MSG_TRUNC - /* - * This is being compiled on a system that lacks MSG_TRUNC; define it -- cgit v1.2.3