diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-01-04 00:21:24 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-01-04 00:21:24 +0000 |
commit | 8997d76472e01fd439eb498c81f9088ab4f31e8e (patch) | |
tree | d2cf678cfc963d66d4a39814146e7aa8ff9474c6 /package/ead | |
parent | 170e9b2abe9da0569064855eef1691f05f0af5c9 (diff) | |
download | master-187ad058-8997d76472e01fd439eb498c81f9088ab4f31e8e.tar.gz master-187ad058-8997d76472e01fd439eb498c81f9088ab4f31e8e.tar.bz2 master-187ad058-8997d76472e01fd439eb498c81f9088ab4f31e8e.zip |
ead: fix bridge handling mistakes
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13846 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/ead')
-rw-r--r-- | package/ead/src/ead.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/package/ead/src/ead.c b/package/ead/src/ead.c index c4d3dd9f41..b6a9310f0f 100644 --- a/package/ead/src/ead.c +++ b/package/ead/src/ead.c @@ -622,22 +622,21 @@ ead_pcap_reopen(bool first) { static char errbuf[PCAP_ERRBUF_SIZE] = ""; - if (pcap_fp_rx != pcap_fp) + if (pcap_fp_rx && (pcap_fp_rx != pcap_fp)) pcap_close(pcap_fp_rx); if (pcap_fp) pcap_close(pcap_fp); - pcap_fp_rx = pcap_fp; + pcap_fp_rx = NULL; do { pcap_fp = pcap_open_live(ifname, PCAP_MRU, 1, PCAP_TIMEOUT, errbuf); #ifdef linux - if (brname) { + if (brname) pcap_fp_rx = pcap_open_live(brname, PCAP_MRU, 1, PCAP_TIMEOUT, errbuf); - if (!pcap_fp_rx) - pcap_fp_rx = pcap_fp; - } #endif + if (!pcap_fp_rx) + pcap_fp_rx = pcap_fp; pcap_setfilter(pcap_fp_rx, &pktfilter); if (first && !pcap_fp) { DEBUG(1, "WARNING: unable to open interface '%s'\n", ifname); |