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