Age | Commit message (Collapse) | Author |
|
|
|
Define mnl_socket_open2() so that user can pass a set of SOCK_* flags
at socket creation time.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
The sysconf(_SC_PAGESIZE) call is more portable since it does not need
_BSD_SOURCE defined.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch defines a new function mnl_socket_fdopen() which creates a
struct mnl_socket object from a pre-existing socket like obtained from
other process and different domain/type from the same prodess.
Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This fixes compilation in Debian Squeeze:
CC attr.lo
In file included from ../include/libmnl/libmnl.h:9,
from socket.c:10:
../include/linux/netlink.h:35: error: expected specifier-qualifier-list before ‘__kernel_sa_family_t’
In file included from ../include/libmnl/libmnl.h:9,
from callback.c:11:
../include/linux/netlink.h:35: error: expected specifier-qualifier-list before ‘__kernel_sa_family_t’
socket.c: In function ‘mnl_socket_get_portid’:
socket.c:102: error: ‘const struct sockaddr_nl’ has no member named ‘nl_pid’
socket.c: In function ‘mnl_socket_bind’:
socket.c:146: error: ‘struct sockaddr_nl’ has no member named ‘nl_family’
socket.c:147: error: ‘struct sockaddr_nl’ has no member named ‘nl_groups’
socket.c:148: error: ‘struct sockaddr_nl’ has no member named ‘nl_pid’
socket.c:163: error: ‘struct sockaddr_nl’ has no member named ‘nl_family’
socket.c: In function ‘mnl_socket_sendto’:
socket.c:184: error: unknown field ‘nl_family’ specified in initializer
socket.c:185: warning: excess elements in struct initializer
socket.c:185: warning: (near initialization for ‘snl’)
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Thomas reports that g++ forces you to enable C++11 mode if
you want to use <cstdint>. Tested with g++ (GCC) 4.4.4. He
reports that this compiles fine without the special headers.
So let's get rid of them. This reverts bb8c40e.
Reported-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Tested-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
|
|
To ensure that examples compile in any installation. This header
is not installed in the system.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Use sanitized kernel header from 3.9 upstream kernel.
Reported-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
|
|
This function allows you to parse the payload of the Netlink message.
Thus, you can skip the headers and go down to the part of the message
you want to parse.
This patch has updated the LIBVERSION and it also bumps the version
to 1.0.3, in case that someone wants to package some snapshot, not to
mess with the new symbol we have added.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch fixes the following warnings:
netlink.c:121: warning: pointer of type ‘void *’ used in arithmetic
netlink.c:121: warning: pointer of type ‘void *’ used in subtraction
We cannot use type void * for pointer arithmetic operations.
This was introduced in 478dc5f4ab8d0a639d1bafe3bd53ff3309727836
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch fixes the following compilation warning:
warning: comparison between signed and unsigned integer expressions
warning: signed and unsigned type in conditional expression
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Davem suggested to add a copy of linux/netlink.h to avoid compilation
problems in all cases scenarios.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
When a project uses MNL_SOCKET_BUFFER_SIZE without having included
unistd.h, it gets:
mystuff.c:36:2: warning: implicit declaration of function "getpagesize"
It is libmnl's job to include this, since mystuff.c did not use
getpagesize anywhere.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
This patch adds the new message batching infrastructure that allows to
store several messages into one single datagram.
This patch includes an example for ctnetlink.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This system call returns PAGE_SIZE which depends on the
architecture. See linux/netlink.h for more information
on the appropriate datagram size for netlink.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch adds a set of function that allows to check the
size of the buffer. This is useful for attribute batching.
This is strongly based on a patch from Jozsef.
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch adds MNL_ARRAY_SIZE(x) which likely to defined over
and over again if you use mnl_cb_run2(...).
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch adds mnl_attr_nest_cancel() that allows to cancel the
current nest that we are building.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Remove function whose implementation does not exist. It seems to me
like a leftover from the early days of the library.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
sendto/recvfrom return ssize_t, so libmnl should not truncate the
result range.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
When nesting two mnl_attr_for_each loops, the __len__ variable will be
declared twice, eliciting a warning when -Wshadow is turned on. There
can also be warnings in pre-C99 because declarations and code are
mixed. Do without any temporaries that are not explicitly specified as
macro parameters.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Read "How to write shared libraries" from Ulrich Drepper for more
information on this patch. Specifically section 2.2: Export control
and section 3: Maintaining APIs and ABIs.
Signed-off-by: Cristian Rodríguez <cristian.rodriguez@opensuse.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch reworks mnl_nlmsg_fprintf. It breaks backward compatibility
of this function, there was no way to improve it without doing so
(and we are still in time to break thing, BTW).
Signed-off-bu: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
A small little pedantism: NULL (as in, the pointer) isn't NUL (as in,
the character with value zero, '\0'). I propose to rename it to strz,
for the zero-terminated string (sometimes referred to as ASCIZ string,
but of course C isn't tied to ASCII).
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
groups, being a bitmask, should be unsigned; and let's also use pid_t
for pid.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
Because in most cases, it won't be a nul-terminated string :)
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
I do not quite see the point of using strlen in conjunction with
non-string data; so let's use char * as argument types to catch
misuses.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
|
|
Davem spotted during the Netfilter Workshop that user-space applications
should use 8KB buffers for recv(). I accidentally found that NFLOG is
not following this approach (in this case we're using 131072 bytes
messages), we have to document this.
Anyway, according to linux/netlink.h (and to complete this log message):
"skb should fit one page. This choice is good for headerless malloc.
But we should limit to 8K so that userspace does not have to
use enormous buffer sizes on recvmsg() calls just to avoid
MSG_TRUNC when PAGE_SIZE is very large."
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
These functions are too simple wrappers that bloat the library.
We can use mnl_socket_get_fd() to obtain the file descriptor
and invoke message-oriented system call instead.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Based on code from Jozsef Kadlecsik and its ipset-5 implementation.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
The term 'Generic' is used in GeNetlink, we don't want any confusion
with it. Better remove it.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This patch includes the following changes:
* use uint16_t for attribute types in mnl_attr_put_*() function
* use uint16_t for maximun type in mnl_attr_type_valid(...)
* use size_t for attribute size validation in mnl_attr_validate2(...)
* use unsigned int for offset in mnl_attr_parse(...) instead of int
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This function is still quite preliminary, comments welcome!
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Remove mnl_nlmsg_get_len() since it returns a field of a structure
that is public (struct nlmsghdr). We can directly access the header
fields and they are not likely to change in the future (at least
for this version of Netlink I think).
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
This includes renaming get_tail() to get_payload_tail()
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
better to rename this function since its return value is not similar
to other _ok() functions, for consistency.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
And include the prototype in libmnl.h, since it was missing
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|