On Wed, Feb 29, 2012 at 09:38:00AM -0500, Jeremy/starcraft.man wrote: > Hi, > > I'm a developer currently working at a company using libnetfilter, I > came in late in development of the product and the code is pretty much > complete. Due to debugging checks recently enabled, they want to be > able to unblock and gracefully stop all threads before terminating the > process. The problem then is that the thread which invokes nfct_catch > never returns and blocks the thread from cleanly terminating. > > pthread_cancel is not an option since we develop on android and that > platform doesn't stopping threads that way. > > I'm not that familiar with netfilter and am still reading up, from > what I've read it doesn't seem like I can. Please correct me if I'm > wrong, but the events that trigger the registered handlers are all > tied to interfaces being new/updated/down and thus I can't just use a > handler that returns NFNL_CB_STOP when it next gets an event (at least > not unless I trigger an event artificially say after setting a boolean > flag in the registered handler to force it to stop). Is there any sort > of signal mechanism I'm missing that could be used to force a return > from the loop of nfnl_catch? You can set the non-blocking socket via nfct_fd(...) and setsockopt. Then, check if nfct_catch returns -1 and errno == EAGAIN. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html