diff options
author | Thomas Haller <thaller@redhat.com> | 2015-09-29 16:32:23 (GMT) |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-09-29 16:35:34 (GMT) |
commit | 2a8a7c31e6accf1a22caebace8da4c03028d5500 (patch) | |
tree | 45d2be219c2c76e5087ab9f473bf04efa5f0a811 | |
parent | 8d47c047a8e5e90caa9be9d118f876c224db754f (diff) | |
download | libnl-2a8a7c31e6accf1a22caebace8da4c03028d5500.zip libnl-2a8a7c31e6accf1a22caebace8da4c03028d5500.tar.gz libnl-2a8a7c31e6accf1a22caebace8da4c03028d5500.tar.bz2 |
route: add capability indicating the behavior of rtnl_neigh_get()
A wrong behavior for rtnl_neigh_get() was introduced between 3.2.14 and 3.2.15
(commit 64fcb47a36ec12d7e7f00605f6a8952ce985dd08).
It was later fixed between 3.2.21 and 3.2.22
(commit 8571f58f23763d8db7365d02c9b27832ad3d7005).
Add a capability NL_CAPABILITY_RTNL_NEIGH_GET_FILTER_AF_UNSPEC_FIX
to indicate that this buggy behavior was fixed.
https://bugzilla.redhat.com/show_bug.cgi?id=1261028
http://lists.infradead.org/pipermail/libnl/2015-August/001951.html
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | include/netlink/utils.h | 8 | ||||
-rw-r--r-- | lib/utils.c | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/netlink/utils.h b/include/netlink/utils.h index 74b167b..ceef615 100644 --- a/include/netlink/utils.h +++ b/include/netlink/utils.h @@ -151,6 +151,14 @@ enum { NL_CAPABILITY_LINK_BUILD_CHANGE_REQUEST_SET_CHANGE = 9, #define NL_CAPABILITY_LINK_BUILD_CHANGE_REQUEST_SET_CHANGE NL_CAPABILITY_LINK_BUILD_CHANGE_REQUEST_SET_CHANGE + /** + * Between 3.2.14 (64fcb47a36ec12d7e7f00605f6a8952ce985dd08) and 3.2.22 (8571f58f23763d8db7365d02c9b27832ad3d7005), + * rtnl_neigh_get() behaved differently and only returned objects with family AF_UNSPEC. + * This capability indicates, that the function was fixed. The absense of the capability, + * doesn't indicate however which behavior the function will have. So beware. */ + NL_CAPABILITY_RTNL_NEIGH_GET_FILTER_AF_UNSPEC_FIX = 10, +#define NL_CAPABILITY_RTNL_NEIGH_GET_FILTER_AF_UNSPEC_FIX NL_CAPABILITY_RTNL_NEIGH_GET_FILTER_AF_UNSPEC_FIX + __NL_CAPABILITY_MAX, NL_CAPABILITY_MAX = (__NL_CAPABILITY_MAX - 1), #define NL_CAPABILITY_MAX NL_CAPABILITY_MAX diff --git a/lib/utils.c b/lib/utils.c index bde176b..1fabcdb 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -1153,7 +1153,7 @@ int nl_has_capability (int capability) NL_CAPABILITY_NL_RECV_FAIL_TRUNC_NO_PEEK), _NL_SET(1, NL_CAPABILITY_LINK_BUILD_CHANGE_REQUEST_SET_CHANGE, - 0, + NL_CAPABILITY_RTNL_NEIGH_GET_FILTER_AF_UNSPEC_FIX, 0, 0, 0, |