----- Original Message -----
From: "Pablo Neira Ayuso"
<pablo(a)soleta.eu>
To: "Andreas Schultz" <aschultz(a)tpip.net>
Cc: openbsc(a)lists.osmocom.org, "Harald Welte" <laforge(a)gnumonks.org>
Sent: Monday, November 16, 2015 6:43:55 PM
Subject: Re: [PATCH 05/16] gtp-rtnl: and netns support
On Mon, Nov 16, 2015 at 04:06:46PM +0100, Andreas
Schultz wrote:
diff --git a/libgtnl/src/gtp-genl.c
b/libgtnl/src/gtp-genl.c
index c1f60ab..9e68a30 100644
--- a/libgtnl/src/gtp-genl.c
+++ b/libgtnl/src/gtp-genl.c
@@ -44,6 +44,8 @@
static void gtp_build_payload(struct nlmsghdr *nlh, struct gtp_tunnel *t)
{
mnl_attr_put_u32(nlh, GTPA_VERSION, t->gtp_version);
+ if (t->ifns > 0)
+ mnl_attr_put_u32(nlh, GTPA_NET_NS_FD, t->ifns);
Any reason not to consider descriptor zero as valid?
ifns is a file descriptor and fd's are as far as I know always greater zero.
So, I didn't see a reason to permit zero there when simply not setting the
attribute would serve the same purpose.
You close(0) and then allocate a descriptor via open(...) and see what
it happens.
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{
int fd;
close(0);
fd = open("/etc/passwd", O_RDONLY);
printf("fd = %d\n", fd);
}