From: Joseph C. Lehner Date: Sun, 16 Apr 2017 13:51:14 +0000 (+0200) Subject: Revert "Use pcap_setdirection instead of filter" X-Git-Tag: v0.9.12~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=804a40a2c8969ef5c8036f75e20937f04ff845ba;p=oweals%2Fnmrpflash.git Revert "Use pcap_setdirection instead of filter" This reverts commit 590e7a079f097cabe19705aa8b22f486e1ca2d44. Fixes #5. --- diff --git a/ethsock.c b/ethsock.c index 685e34a..d8a7326 100644 --- a/ethsock.c +++ b/ethsock.c @@ -494,7 +494,7 @@ inline uint8_t *ethsock_get_hwaddr(struct ethsock *sock) struct ethsock *ethsock_create(const char *intf, uint16_t protocol) { char buf[PCAP_ERRBUF_SIZE]; - struct bpf_program bpf; + struct bpf_program fp; struct ethsock *sock; bool is_bridge; int err; @@ -561,22 +561,17 @@ struct ethsock *ethsock_create(const char *intf, uint16_t protocol) } #endif - err = pcap_setdirection(sock->pcap, PCAP_D_IN); - if (err) { - pcap_perror(sock->pcap, "pcap_setdirection"); - goto cleanup; - } - - snprintf(buf, sizeof(buf), "ether proto 0x%04x", protocol); + snprintf(buf, sizeof(buf), "ether proto 0x%04x and not ether src %s", + protocol, mac_to_str(sock->hwaddr)); - err = pcap_compile(sock->pcap, &bpf, buf, 0, 0); + err = pcap_compile(sock->pcap, &fp, buf, 0, 0); if (err) { pcap_perror(sock->pcap, "pcap_compile"); goto cleanup; } - err = pcap_setfilter(sock->pcap, &bpf); - pcap_freecode(&bpf); + err = pcap_setfilter(sock->pcap, &fp); + pcap_freecode(&fp); if (err) { pcap_perror(sock->pcap, "pcap_setfilter");