libnetlink: Add RTNL_HANDLE_F_STRICT_CHK flag

Add RTNL_HANDLE_F_STRICT_CHK flag and set in rth flags to let know
commands know if the kernel supports strict checking.

Extracted from patch from Ido to fix filtering with strict checking
enabled.

Cc: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
David Ahern 2019-01-02 16:31:38 -08:00
parent 66b4199f22
commit 285033bfeb
2 changed files with 6 additions and 2 deletions

View File

@ -23,6 +23,7 @@ struct rtnl_handle {
FILE *dump_fp;
#define RTNL_HANDLE_F_LISTEN_ALL_NSID 0x01
#define RTNL_HANDLE_F_SUPPRESS_NLERR 0x02
#define RTNL_HANDLE_F_STRICT_CHK 0x04
int flags;
};

View File

@ -166,8 +166,11 @@ void rtnl_set_strict_dump(struct rtnl_handle *rth)
{
int one = 1;
setsockopt(rth->fd, SOL_NETLINK, NETLINK_GET_STRICT_CHK,
&one, sizeof(one));
if (setsockopt(rth->fd, SOL_NETLINK, NETLINK_GET_STRICT_CHK,
&one, sizeof(one)) < 0)
return;
rth->flags |= RTNL_HANDLE_F_STRICT_CHK;
}
void rtnl_close(struct rtnl_handle *rth)