On 5/30/19 11:52 AM, Stephen Hemminger wrote: > On Wed, 29 May 2019 20:17:44 -0700 > David Ahern <dsah...@kernel.org> wrote: > >> + >> +static void print_nh_gateway(FILE *fp, const struct nhmsg *nhm, >> + const struct rtattr *rta) >> +{ >> + const char *gateway = format_host_rta(nhm->nh_family, rta); >> + >> + if (is_json_context()) >> + print_string(PRINT_JSON, "gateway", NULL, gateway); >> + else { >> + fprintf(fp, "via "); > > I was trying to get rid of all use of /fprintf(fp, / since it was > indication of non-json code and fp is always stdout. > > Maybe > print_string(PRINT_FP, NULL, "via ", NULL); > print_color_string(PRINT_ANY, ifa_family_color(nhm->nh_family), > "gateway", "%s ", format_host_rta(nhm->nh_family, rta)); > > > >
The above is consistent with print_rta_gateway in ip/iproute.c. Since the only difference between the 2 is the header struct, I will change print_rta_gateway to take the address family over rtmsg and re-use it for both paths.