我们正在研究尝试使用libnetfilter_conntrack API检索完整的conntrack表。但是,当我们使用以下API序列时,我们发现conntrack表中的每个Entery都会被调用一次回调寄存器。我们使用的API的顺序如下:
cb {
..........
..........
nfct_snprintf (buf,sizeof (buf), ct, NFCT_T_UNKNOWN, NFCT_O_DEFAULT, NFCT_OF_SHOW_LAYER3);
..........
..........
}
main {
..........
..........
nfct_callback_register2 (h,NFCT_T_ALL, cb, NULL);
ret = nfct_query (h,NFCT_Q_DUMP, &family);
........
........
}
我是否可以通过单个回调函数的一次调用就获得整个conntrack表?这样cb函数不会被多次调用?