From: Julien Fortin Date: Thu, 17 Aug 2017 17:35:56 +0000 (-0700) Subject: ip: iplink_hsr.c: add json output support X-Git-Tag: v4.14.0~39^2~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69ffd27325d719fe52b271551763ccdd1101a069;p=thirdparty%2Fiproute2.git ip: iplink_hsr.c: add json output support Schema: hsr: IFLA_INFO_DATA { "slave1": { "type": "string", "attr": "IFLA_HSR_SLAVE1" }, "slave2": { "type": "string", "attr": "IFLA_HSR_SLAVE2" }, "seq_nr": { "type": "int", "attr": "IFLA_HSR_SEQ_NR" }, "supervision_addr": { "type": "int", "attr": "IFLA_HSR_SUPERVISION_ADDR" } } Signed-off-by: Julien Fortin --- diff --git a/ip/iplink_hsr.c b/ip/iplink_hsr.c index 696b2c913..c673ccf77 100644 --- a/ip/iplink_hsr.c +++ b/ip/iplink_hsr.c @@ -110,30 +110,36 @@ static void hsr_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) RTA_PAYLOAD(tb[IFLA_HSR_SUPERVISION_ADDR]) < ETH_ALEN) return; - fprintf(f, "slave1 "); if (tb[IFLA_HSR_SLAVE1]) - fprintf(f, "%s ", - ll_index_to_name(rta_getattr_u32(tb[IFLA_HSR_SLAVE1]))); + print_string(PRINT_ANY, + "slave1", + "slave1 %s ", + ll_index_to_name(rta_getattr_u32(tb[IFLA_HSR_SLAVE1]))); else - fprintf(f, " "); + print_null(PRINT_ANY, "slave1", "slave1 %s ", ""); - fprintf(f, "slave2 "); if (tb[IFLA_HSR_SLAVE2]) - fprintf(f, "%s ", - ll_index_to_name(rta_getattr_u32(tb[IFLA_HSR_SLAVE2]))); + print_string(PRINT_ANY, + "slave2", + "slave2 %s ", + ll_index_to_name(rta_getattr_u32(tb[IFLA_HSR_SLAVE2]))); else - fprintf(f, " "); + print_null(PRINT_ANY, "slave2", "slave2 %s ", ""); if (tb[IFLA_HSR_SEQ_NR]) - fprintf(f, "sequence %d ", - rta_getattr_u16(tb[IFLA_HSR_SEQ_NR])); + print_int(PRINT_ANY, + "seq_nr", + "sequence %d ", + rta_getattr_u16(tb[IFLA_HSR_SEQ_NR])); if (tb[IFLA_HSR_SUPERVISION_ADDR]) - fprintf(f, "supervision %s ", - ll_addr_n2a(RTA_DATA(tb[IFLA_HSR_SUPERVISION_ADDR]), - RTA_PAYLOAD(tb[IFLA_HSR_SUPERVISION_ADDR]), - ARPHRD_VOID, - b1, sizeof(b1))); + print_string(PRINT_ANY, + "supervision_addr", + "supervision %s ", + ll_addr_n2a(RTA_DATA(tb[IFLA_HSR_SUPERVISION_ADDR]), + RTA_PAYLOAD(tb[IFLA_HSR_SUPERVISION_ADDR]), + ARPHRD_VOID, + b1, sizeof(b1))); } static void hsr_print_help(struct link_util *lu, int argc, char **argv,