我使用struct sflt_filter
作为kpi_socketfilter.h
的一部分,为TCP或UDP协议单独设置过滤器,该协议正常工作。
但我想在同一个程序中同时使用TCP和UDP协议过滤器。
此行适用于个人通话 -
sflt_register(&sflt_filter_variable, PF_INET, SOCK_STREAM, IPPROTO_TCP);
我已经尝试了
两次注册单个“sflt_filter_variable”变量。
sflt_register(&sflt_filter_variable, PF_INET, SOCK_STREAM, IPPROTO_TCP);
sflt_register(&sflt_filter_variable, PF_INET, SOCK_DGRAM, IPPROTO_UDP);
创建另一个“struct sflt_filter”变量并按上述方式单独注册。
那么如何为TCP和UDP注册过滤器。 欢迎任何帮助。
感谢。
答案 0 :(得分:2)
得到答案,
必须将sflt_filter_variable.sf_handle
变量值更改为另一个32位唯一值。
sflt_register(&sflt_filter_variable, PF_INET, SOCK_STREAM, IPPROTO_TCP);
sflt_filter_variable.sf_handle = 0x7a5a5f5d; // **changed valu of sf_handle.**
sflt_register(&sflt_filter_variable, PF_INET, SOCK_DGRAM, IPPROTO_UDP);
Hear you can get registered sf_handle values
或者您现在可以使用自己的值。