Hi, I'm using libnetfilter_queue for userspace modification of incoming/outgoing packets. I have been using a single threaded model. But i've found out that from 2.6.31 kernel, its possible to have different queues for different connection. so i was wandering if its possible to manage each queues in different threads. normally i set up the queue handling like bellow: struct nfq_handle * h = nfq_open(); nfq_unbind_pf(h, AF_NET); nfq_bind_pf(h,m AF_NET); struct nfq_q_handle(h, 0, &cb, NULL); nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff); now if i want to manage like 100 queues, i will pack h,qh and que_num in a structure and loop over it to initialize. now my question is : if i initialize above in the main thread and want to run the callbacks in threads, is it enough to run infinite loop in a function which will be given to pthread_create()? Will it run the callbacks in threads? i'm not sure, but my understanding tells me, a packet is popped from the queues when nfq_set_verdict is returned. so i need to run nfq_set_verdict in separate threads so that i packets can be popped from queues parallel. -- "You have a voice" ----The King's Speech Public Key : $ gpg --keyserver keyserver.ubuntu.com --recv-key C88CFC23
Attachment:
signature.asc
Description: This is a digitally signed message part