netlink: Add flag to suppress print of nlmsg error

Allow callers of the dump API to handle nlmsg errors (e.g., an
unsupported feature). Setting RTNL_HANDLE_F_SUPPRESS_NLERR in the
rtnl_handle avoids unnecessary messages to the users in some case.
For example,

  RTNETLINK answers: Operation not supported

when probing for support of a new feature.

Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
This commit is contained in:
David Ahern 2017-03-23 19:51:20 -07:00 committed by Stephen Hemminger
parent dfb60ddd29
commit 3ad6d17638
2 changed files with 3 additions and 1 deletions

View File

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

View File

@ -299,7 +299,8 @@ static void rtnl_dump_error(const struct rtnl_handle *rth,
errno == EOPNOTSUPP))
return;
perror("RTNETLINK answers");
if (!(rth->flags & RTNL_HANDLE_F_SUPPRESS_NLERR))
perror("RTNETLINK answers");
}
}