From 926d801fa51717b3af3faf33f9d686e92a20ecfd Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 14 Oct 2015 13:56:42 +0200 Subject: libiproute: make rt_addr_n2a() and format_host() return auto strings function old new delta rt_addr_n2a 56 53 -3 print_addrinfo 1227 1178 -49 print_neigh 933 881 -52 print_rule 689 617 -72 print_tunnel 640 560 -80 print_route 1727 1588 -139 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/6 up/down: 0/-395) Total: -395 bytes Signed-off-by: Denys Vlasenko --- networking/libiproute/iprule.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'networking/libiproute/iprule.c') diff --git a/networking/libiproute/iprule.c b/networking/libiproute/iprule.c index c3b210982..dba64346f 100644 --- a/networking/libiproute/iprule.c +++ b/networking/libiproute/iprule.c @@ -44,7 +44,6 @@ static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, int len = n->nlmsg_len; int host_len = -1; struct rtattr * tb[RTA_MAX+1]; - char abuf[256]; if (n->nlmsg_type != RTM_NEWRULE) return 0; @@ -71,16 +70,14 @@ static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, printf("from "); if (tb[RTA_SRC]) { if (r->rtm_src_len != host_len) { - printf("%s/%u", rt_addr_n2a(r->rtm_family, - RTA_DATA(tb[RTA_SRC]), - abuf, sizeof(abuf)), + printf("%s/%u", + rt_addr_n2a(r->rtm_family, RTA_DATA(tb[RTA_SRC])), r->rtm_src_len ); } else { fputs(format_host(r->rtm_family, RTA_PAYLOAD(tb[RTA_SRC]), - RTA_DATA(tb[RTA_SRC]), - abuf, sizeof(abuf)), + RTA_DATA(tb[RTA_SRC])), stdout ); } @@ -94,15 +91,13 @@ static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, if (tb[RTA_DST]) { if (r->rtm_dst_len != host_len) { printf("to %s/%u ", rt_addr_n2a(r->rtm_family, - RTA_DATA(tb[RTA_DST]), - abuf, sizeof(abuf)), + RTA_DATA(tb[RTA_DST])), r->rtm_dst_len ); } else { printf("to %s ", format_host(r->rtm_family, RTA_PAYLOAD(tb[RTA_DST]), - RTA_DATA(tb[RTA_DST]), - abuf, sizeof(abuf))); + RTA_DATA(tb[RTA_DST]))); } } else if (r->rtm_dst_len) { printf("to 0/%d ", r->rtm_dst_len); @@ -139,8 +134,8 @@ static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, printf("map-to %s ", format_host(r->rtm_family, RTA_PAYLOAD(tb[RTA_GATEWAY]), - RTA_DATA(tb[RTA_GATEWAY]), - abuf, sizeof(abuf))); + RTA_DATA(tb[RTA_GATEWAY])) + ); } else printf("masquerade"); } else if (r->rtm_type != RTN_UNICAST) -- cgit v1.2.3