Sven Eckelmann wrote:
> On Wednesday, 28 April 2021 12:16:08 CEST Alexander Sarmanow wrote:
> >  Same parameters of the debug tables can be used for
> >  the JSON, except the "-w [interval]" (not useful). The table header is
> >  implemented as a JSON equivalent and can be also optionally omitted.
> >   
> I would like to disagree. Why is it a problem to continuously emit json 
> objects? 
Simon agreed with me to leave that out, but I can add it and the user can 
decide whether to use it or not. It does not disturb.

> >  --- a/netlink.c
> >  +++ b/netlink.c
> >  @@ -318,15 +318,29 @@ static int info_callback(struct nl_msg *msg, void 
> > *arg)
> >                  else
> >                          extra_header = "";
> >   
> >  -               ret = asprintf(&opts->remaining_header,
> >  -                              "[B.A.T.M.A.N. adv %s, MainIF/MAC:
> > %s/%02x:%02x:%02x:%02x:%02x:%02x (%s/%02x:%02x:%02x:%02x:%02x:%02x 
> > %s)%s]\n%s",
> >  -                              version, primary_if,
> >  -                              primary_mac[0], primary_mac[1], 
> > primary_mac[2],
> >  -                              primary_mac[3], primary_mac[4], 
> > primary_mac[5],
> >  -                              mesh_name,
> >  -                              mesh_mac[0], mesh_mac[1], mesh_mac[2],
> >  -                              mesh_mac[3], mesh_mac[4], mesh_mac[5],
> >  -                              algo_name, extra_info, extra_header);
> >  +               if (opts->is_json) {
> >  +                       ret = asprintf(&opts->remaining_header,
> >  +                                     
> > "{\"version\":\"%s\",\"main_if\":\"%s\",\"main_mac\":\"%02x:%02x:%02x:%02x:%02x:%02x\",\"mesh_if\":\"%s\",\"mesh_mac\":\"%02x:%02x:%02x:%02x:%02x:%02x\",\"algo_name\":\"%s\",\"extra_info\":\"%s\",\"data\":[",
> >  +                                      version, primary_if,
> >  +                                      primary_mac[0], primary_mac[1],
> >  +                                      primary_mac[2], primary_mac[3],
> >  +                                      primary_mac[4], primary_mac[5],
> >  +                                      mesh_name,
> >  +                                      mesh_mac[0], mesh_mac[1], 
> > mesh_mac[2],
> >  +                                      mesh_mac[3], mesh_mac[4], 
> > mesh_mac[5],
> >  +                                      algo_name, extra_info);
> >  +               } else {
> >  +                       ret = asprintf(&opts->remaining_header,
> >  +                                      "[B.A.T.M.A.N. adv %s, MainIF/MAC:
> > %s/%02x:%02x:%02x:%02x:%02x:%02x (%s/%02x:%02x:%02x:%02x:%02x:%02x 
> > %s)%s]\n%s",
> >  +                                      version, primary_if,
> >  +                                      primary_mac[0], primary_mac[1],
> >  +                                      primary_mac[2], primary_mac[3],
> >  +                                      primary_mac[4], primary_mac[5],
> >  +                                      mesh_name,
> >  +                                      mesh_mac[0], mesh_mac[1], 
> > mesh_mac[2],
> >  +                                      mesh_mac[3], mesh_mac[4], 
> > mesh_mac[5],
> >  +                                      algo_name, extra_info, 
> > extra_header);
> >  +               } 
> Do we really have to add such kind of output to each table? Can't we just 
> have 
> another command to get the meshif info and print it?
You are right. I just followed the existing debug tables where the header is 
also always printed out each time and there is no separate command for that. 
But I can create a separate command to fetch the "header".

Best,
Alex

Reply via email to