From: Thomas Mader <thezema@gmail.com>
To: Netfilter Development Mailinglist <netfilter-devel@vger.kernel.org>
Subject: libnetfilter_queue and libnetfilter_conntrack API questions
Date: Wed, 09 Apr 2008 16:06:36 +0200 [thread overview]
Message-ID: <47FCCD6C.6050409@gmail.com> (raw)
Hello,
why is it that I cannot get the conntrack ID when I set up a callback
function for DESTROY events with libnetfilter_conntrack?
When I do
int id = nfct_get_attr_u32(ct, ATTR_ID);
printf("delete ID: %d\n", id);
in my callback function. The id I get is always 0.
It works for conntrack dumps but not for events it seems.
The other question I have is the following.
I need to port a kernelspace netfilter module to userspace. It deals
with udp and icmp packets, and in kernelspace I have the match function
as a callback and in that match function I grab the corresponding
conntrack tuple for the incoming packet to get the conntrack id. With
this id I can search a list, if this connection is already in that list,
and can update information in that list or add the connection to the
list if it is not yet in that list.
I also have a notifier callback function where I get notified when a
connection was deleted. I need this to get the id of the deleted
connection and delete it as well in my list with connections.
Now the question is, how I can do this in userspace. I managed to get
the match function from kernelspace ported to userspace by using
libnetfilter_queue API. But to implement the delete notifier and to get
the conntrack id I need to use libnetfilter_conntrack API where the
problems arise.
I need
while ((rv = recv(fd, buf, sizeof(buf), 0)) && rv >= 0) {
nfq_handle_packet(h, buf, rv);
}
to handle packets with my libnetfilter_queue callback function. But if I
want to get notified by conntrack for delete events I need nfct_catch,
which also blocks my program.
So my question is, if I need to spawn multiple threads to get it done or
if there is another solution?
thanks in advance,
Thomas Mader
next reply other threads:[~2008-04-09 14:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-09 14:06 Thomas Mader [this message]
2008-04-09 14:46 ` libnetfilter_queue and libnetfilter_conntrack API questions Pablo Neira Ayuso
2008-04-09 14:52 ` Patrick McHardy
2008-04-09 15:02 ` Pablo Neira Ayuso
2008-04-09 15:07 ` Patrick McHardy
2008-04-09 16:00 ` Thomas Mader
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47FCCD6C.6050409@gmail.com \
--to=thezema@gmail.com \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.