- 论坛徽章:
- 0
|
是这样的, 在linux上,我用iptables配置了netfilter: iptables -A OUTPUT - j QUEUE
然后仿照nfqnl_test.c中的代码稍微改了一下:
static int print_pkt (struct nfq_data *tb)
{
int id = 0;
struct nfqnl_msg_packet_hdr *ph;
int ret;
unsigned char *data;
ph = nfq_get_msg_packet_hdr(tb);
id = ntohl(ph->packet_id);
ret = nfq_get_payload(tb, &data);
//在这里,我把data中的数据随意改了一下
//省略不写
//我保证执行到这里了
return nfq_set_verdict(qh, id, NF_ACCEPT, ret, data); //改了没效果
}
static int cb(struct nfq_q_handle *qh, struct nfgenmsg *nfmsg,
struct nfq_data *nfa, void *data)
{
return print_pkt(nfa);
}
问题是:无论我怎么改包里面的内容,最后发送出去的数据还是原来的,请高手帮忙指点下,万分感谢 |
|