Skip to content

Commit c0655be

Browse files
committed
Add VID to interface output, if enabled in config
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
1 parent 1c58a73 commit c0655be

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

src/ipc.c

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* echo "help" |socat - UNIX-CONNECT:/run/mcd.sock
1818
*/
1919

20+
#include <ctype.h>
2021
#include <fcntl.h>
2122
#include <stddef.h>
2223

@@ -325,7 +326,7 @@ static int show_igmp_iface(FILE *fp)
325326
fprintf(fp, "[\n");
326327
prefix += 2;
327328
} else
328-
fprintf(fp, "Interface State Querier Interval Timeout Ver=\n");
329+
fprintf(fp, "Interface VID State Querier Interval Timeout Ver=\n");
329330

330331
for (ifi = config_iface_iter(1); ifi; ifi = config_iface_iter(0)) {
331332
int interval = ifi->ifi_query_interval, rt_tmo = -1;
@@ -353,14 +354,21 @@ static int show_igmp_iface(FILE *fp)
353354
version = 3;
354355

355356
if (json) {
357+
const char *State = ifstate(ifi);
358+
char state[strlen(State)];
356359
int once = 1;
357360

358361
fprintf(fp, "%s%*s{\n", first ? "" : ",\n", prefix, "");
359362
prefix += 2;
360363

364+
for (size_t i = 0; i <= strlen(State); i++)
365+
state[i] = tolower(State[i]);
366+
361367
jprint(fp, "interface", ifi->ifi_name, &once);
362-
jprint(fp, "state", ifi->ifi_name, &once);
363-
jprint(fp, "querier", ifi->ifi_name, &once);
368+
if (ifi->ifi_vlan)
369+
jprinti(fp, "vid", ifi->ifi_vlan, &once);
370+
jprint(fp, "state", state, &once);
371+
jprint(fp, "querier", s1, &once);
364372
if (rt_tmo > -1)
365373
jprinti(fp, "timeout", rt_tmo, &once);
366374
jprinti(fp, "interval", interval, &once);
@@ -369,9 +377,14 @@ static int show_igmp_iface(FILE *fp)
369377
prefix -= 2;
370378
fprintf(fp, "\n%*s}", prefix, "");
371379
first = 0;
372-
} else
373-
fprintf(fp, "%-16s %-8s %-20s %8d %7s %3d\n", ifi->ifi_name,
374-
ifstate(ifi), s1, interval, timeout, version);
380+
} else {
381+
char vlan[5] = { 0 };
382+
383+
if (ifi->ifi_vlan)
384+
snprintf(vlan, sizeof(vlan), "%4d", ifi->ifi_vlan);
385+
fprintf(fp, "%-16s %4s %-8s %-20s %8d %7s %3d\n", ifi->ifi_name,
386+
vlan, ifstate(ifi), s1, interval, timeout, version);
387+
}
375388
}
376389

377390
if (json) {

0 commit comments

Comments
 (0)