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
> ---
> 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