Ok, I think I found out what's causing this problem.
Function "setactivefilter" in options.c seems to be the problem.
<..> int ret = 0;
pc = pcap_open_dead(DLT_PPP_WITHDIRECTION, 65535); if (pcap_compile(pc, &active_filter, *argv, 1, netmask) == -1) { option_error("error in active-filter expression: %s\n", pcap_geterr(pc)); ret = 1; } pcap_close(pc);
return ret;
This function returns 0 if the filter is correct, but as I understand the code, it should return 1.
Looking at the old code confirms this.
<snippet from 2.4.2>
if (pcap_compile(&pc, &active_filter, *argv, 1, netmask) == 0)
return 1;
option_error("error in active-filter expression: %s\n", pcap_geterr(&pc));
return 0;
Return 1 if the filter parses otherwise throw an error and return 0.
While checking this I also noticed that upstream now seems to expect libpcap0.8 to be installed,
since both the Makefile and sys-linux.c check / try to include pcap-bpf.h which isn't in 0.7.
After fixing setactivefilter I tried to compile it against 0.8. Although the build finished cleanly,
I got the following error on startup
error in active-filter expression: inbound/outbound not supported on linktype 9
Since I didn't want to fix this I changed the "pppd/Makefile" to check for pcap.h instead of pcap-bpf.h and also changed the include in sys-linux.c and demand.c to include <pcap.h> instead of <pcap-bpf.h>.
Now I was able to compile against libpcap0.7
After all those changes...
* Active-filter works * It compiles against 0.7 again
Hope this helps, Michael
-- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]