diff options
author | Ingo Bürk <admin@airblader.de> | 2018-08-27 11:11:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-27 11:11:41 +0200 |
commit | 38ead0249b42233993b7925a57eeceb69e9d9d38 (patch) | |
tree | b6a8649095719398c2b1e55806b297f03aa33fd8 | |
parent | fadd4d89b1e196e009d5cd5cc2f6c3bdda83b12e (diff) | |
parent | 04d09aac499867b23f6481b20259f023bbacf908 (diff) |
Merge pull request #302 from coderonline/master
Added %interface to the ethernet options
-rw-r--r-- | src/print_eth_info.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/print_eth_info.c b/src/print_eth_info.c index 2fc25a1..f3cab7e 100644 --- a/src/print_eth_info.c +++ b/src/print_eth_info.c @@ -134,6 +134,8 @@ static int print_eth_speed(char *outwalk, const char *interface) { * | 127.0.0.1 | ::1/128 | IPv4 | ok | */ void print_eth_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down) { + const char *format = format_down; // default format + const char *walk; char *outwalk = buffer; @@ -157,7 +159,6 @@ void print_eth_info(yajl_gen json_gen, char *buffer, const char *interface, cons if (ipv4_address == NULL) { if (ipv6_address == NULL) { START_COLOR("color_bad"); - outwalk += sprintf(outwalk, "%s", format_down); goto out; } else { prefer_ipv4 = false; @@ -166,13 +167,17 @@ void print_eth_info(yajl_gen json_gen, char *buffer, const char *interface, cons prefer_ipv4 = false; } + format = format_up; + const char *ip_address = (prefer_ipv4) ? ipv4_address : ipv6_address; if (BEGINS_WITH(ip_address, "no IP")) { START_COLOR("color_degraded"); } else { START_COLOR("color_good"); } - for (walk = format_up; *walk != '\0'; walk++) { + +out: + for (walk = format; *walk != '\0'; walk++) { if (*walk != '%') { *(outwalk++) = *walk; @@ -184,12 +189,14 @@ void print_eth_info(yajl_gen json_gen, char *buffer, const char *interface, cons outwalk += print_eth_speed(outwalk, interface); walk += strlen("speed"); + } else if (BEGINS_WITH(walk + 1, "interface")) { + outwalk += sprintf(outwalk, "%s", interface); + walk += strlen("interface"); + } else { *(outwalk++) = '%'; } } - -out: END_COLOR; free(ipv4_address); free(ipv6_address); |