On Fri, Sep 02, 2016 at 03:12:38PM +0800, Hangbin Liu wrote: > SCTP module was not load by default. But this should be OK since we will not > load table if fdopen() failed. > > Signed-off-by: Hangbin Liu <liuhang...@gmail.com> > --- > misc/nstat.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/misc/nstat.c b/misc/nstat.c > index 6143719..8035be4 100644 > --- a/misc/nstat.c > +++ b/misc/nstat.c > @@ -76,6 +76,11 @@ static int net_snmp6_open(void) > return generic_proc_open("PROC_NET_SNMP6", "net/snmp6"); > } > > +static int net_sctp_snmp_open(void) > +{ > + return generic_proc_open("PROC_NET_SCTP_SNMP", "net/sctp/snmp"); > +} > + > struct nstat_ent { > struct nstat_ent *next; > char *id; > @@ -247,6 +252,16 @@ static void load_ugly_table(FILE *fp) > } > } > > +static void load_sctp_snmp(void) > +{ > + FILE *fp = fdopen(net_sctp_snmp_open(), "r"); > + > + if (fp) { > + load_good_table(fp); > + fclose(fp); > + } > +} > + > static void load_snmp(void) > { > FILE *fp = fdopen(net_snmp_open(), "r"); > @@ -450,6 +465,7 @@ static void server_loop(int fd) > load_netstat(); > load_snmp6(); > load_snmp(); > + load_sctp_snmp(); > > for (;;) { > int status; > @@ -706,6 +722,7 @@ int main(int argc, char *argv[]) > load_netstat(); > load_snmp6(); > load_snmp(); > + load_sctp_snmp(); > if (info_source[0] == 0) > strcpy(info_source, "kernel"); > }
Did you forget to add the load call to update_db(), or am I missing something? Apart from that, looks nice and clean. Cheers, Phil