我正在使用lib-pcap库来安装/卸载过滤器。
为了安装pcap过滤器,我使用 pcap_compile后跟pcap_setfilter,工作正常。
并且为了卸载过滤器,我使用pcap_freecode但不幸的是,它似乎没有删除上面的安装过滤器。
感谢任何帮助。
答案 0 :(得分:3)
pcap_freecode()
,顾名思义,不会卸载过滤器;如果有一个API来卸载过滤器,它将具有不同的名称。它用于释放由pcap_compile()
分配的内存(副本由pcap_setfilter()
安装)。
不幸的是,没有用于卸载过滤器的API。但是,您可以安装一个接受所有数据包的过滤器,这与取消安装过滤器的效果相同。将空字符串传递给pcap_compile()
(空字符串,即""
,而不是空指针),它会将该字符串编译为接受所有数据包的过滤器。