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