Now we enhance get_addr() to return additional information about address (e.g. if it unspecified or multicast) we want to have same functionality for attributes in netlink message.
Introduce and use get_addr_rta() that parses given netlink attribute into @inet_prefix data structure in the same way similar get_addr() parses address from it's string representation. Use attribute length to guess address family: force it by giving non AF_UNSPEC @family to get_addr_rta() to ensure address is of expected family. Introduce and use inet_addr_match_rta() to further simplify and unify code where get_addr_rta() intended to be used together with inet_addr_match(). This is next step in ipv4 and ipv6 modules unification to prepare for merge in the future. Any comments, suggestions and criticism as always welcome. v2 Introduce and use inet_addr_match_rta() as suggested by David Ahern. Check for result from get_prefix() in places where inet_addr_match_rta() being used. Thanks, Serhii Serhey Popovych (8): utils: Introduce get_addr_rta() and inet_addr_match_rta() ipaddress: Use inet_addr_match_rta() iprule: Use inet_addr_match_rta() ipmroute: Use inet_addr_match_rta() ipneigh: Use inet_addr_match_rta() ipl2tp: Use get_addr_rta() tcp_metric: Use get_addr_rta() ip/tunnel: Unify local/remote endpoint address printing include/utils.h | 2 ++ ip/ipaddress.c | 29 ++++++----------- ip/ipl2tp.c | 37 +++++++++------------ ip/ipmroute.c | 26 ++++++--------- ip/ipneigh.c | 13 +++----- ip/iprule.c | 36 ++++++++++----------- ip/link_gre.c | 21 ++---------- ip/link_gre6.c | 26 ++------------- ip/link_ip6tnl.c | 15 ++------- ip/link_iptnl.c | 21 ++---------- ip/link_vti.c | 21 ++---------- ip/link_vti6.c | 21 ++---------- ip/tcp_metrics.c | 60 +++++++++++++++++----------------- ip/tunnel.c | 27 ++++++++++++++++ ip/tunnel.h | 2 ++ lib/utils.c | 95 +++++++++++++++++++++++++++++++++++++++++++----------- 16 files changed, 206 insertions(+), 246 deletions(-) -- 1.7.10.4