Libpcap API不会删除过滤器

时间:2014-12-31 05:23:16

标签: libpcap

我正在使用lib-pcap库来安装/卸载过滤器。

为了安装pcap过滤器,我使用 pcap_compile后跟pcap_setfilter,工作正常。

并且为了卸载过滤器,我使用pcap_freecode但不幸的是,它似乎没有删除上面的安装过滤器。

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

pcap_freecode(),顾名思义,不会卸载过滤器;如果有一个API来卸载过滤器,它将具有不同的名称。它用于释放由pcap_compile()分配的内存(副本pcap_setfilter()安装)。

不幸的是,没有用于卸载过滤器的API。但是,您可以安装一个接受所有数据包的过滤器,这与取消安装过滤器的效果相同。将空字符串传递给pcap_compile()(空字符串,即"",而不是空指针),它会将该字符串编译为接受所有数据包的过滤器。