当我尝试在我的应用程序中创建多个nf_queues时出现错误'资源暂时不可用'。我找不到任何关于此错误的文档。
我正在尝试使用NFQUEUE实现多线程应用程序。我打开了库并绑定到主线程中的AF_INET并尝试创建多个NFQUEUE。它成功创建了5个队列,下一个nfq_create_queue返回'资源暂时不可用'。
我也尝试过睡眠(1);在调用nfq_create_queue()之间但是得到了同样的错误。
全局变量:
struct nfq_handle *h;
int fd;
主线程:
h = nfq_open();
nfq_unbind_pf(h, AF_INET)
nfq_bind_pf(h, AF_INET)
qh = nfq_create_queue(h, NFQ_NUMBER_START_IPv4 + self_index, &cb_ip4, NULL);
nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff);
nfq_set_queue_maxlen(qh, NFQ_LENGTH);
fd = nfq_fd(h);
nfnl_rcvbufsiz(nfq_nfnlh(h), NFQLENGTH * BUFSIZE);
工作线程:
qh = nfq_create_queue(h, NFQ_NUMBER_START_IPv4 + self_index, &cb_ip4, NULL);
nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff)
nfq_set_queue_maxlen(qh, NFQ_LENGTH);