请教iptables的一个问题
从iptables的下面这段宏来看
for (__i = sizeof(struct ipt_entry); \
__i < (e)->target_offset; \
__i += __match->u.match_size) { \
__match = (void *)(e) + __i; \
一条ipt_entry中的rule、match、target是存放在一条连续的内存中,但是我看了整个iptables,系统只提供了ipt_register_match、ipt_register_target来添加match或target,但这两个函数应该不能让iptables正常工作,因为它们只是将一个match或target添加到系统的全局链表ipt_target、ipt_match,只能说是注册了,而并非嵌入到具体的某一条ipt_entry中,那么到底那个函数才真正实现了这样的功能呢?