--- embedaddon/mpd/src/ngfunc.c 2016/11/01 09:56:12 1.1.1.3 +++ embedaddon/mpd/src/ngfunc.c 2021/03/17 00:39:23 1.1.1.4 @@ -82,7 +82,7 @@ */ #ifdef USE_NG_NETFLOW - static int NetflowSetCommand(Context ctx, int ac, char *av[], void *arg); + static int NetflowSetCommand(Context ctx, int ac, const char *const av[], const void *arg); #endif /* @@ -109,7 +109,7 @@ NetflowSetCommand, NULL, 2, (void *) SET_NODE }, { "hook {number}", "Set initial hook number" , NetflowSetCommand, NULL, 2, (void *) SET_HOOK }, - { NULL }, + { NULL, NULL, NULL, NULL, 0, NULL }, }; #endif @@ -131,10 +131,10 @@ uint32_t gNetflowInactive = 0; uint32_t gNetflowActive = 0; #if NGM_NETFLOW_COOKIE >= 1309868867 - uint16_t gNetflowTime = 0; - uint16_t gNetflowPackets = 0; - uint16_t gNetflowMTU = 0; - u_int gNetflowVer = 5; + static uint16_t gNetflowTime = 0; + static uint16_t gNetflowPackets = 0; + static uint16_t gNetflowMTU = 0; + static u_int gNetflowVer = 5; #endif #endif @@ -160,7 +160,10 @@ NgFuncInitGlobalNetflow(void) /* If node exist just get it's ID. */ if (gNetflowNode) { snprintf(path, sizeof(path), "%s:", gNetflowNodeName); - gNetflowNodeID = NgGetNodeID(csock, path); + if ((gNetflowNodeID = NgGetNodeID(csock, path)) == 0) { + Perror("NETFLOW: Cannot get %s node id", NG_NETFLOW_NODE_TYPE); + goto fail; + } close(csock); return (0); } @@ -179,7 +182,10 @@ NgFuncInitGlobalNetflow(void) } /* Get new node ID. */ - gNetflowNodeID = NgGetNodeID(csock, TEMPHOOK); + if ((gNetflowNodeID = NgGetNodeID(csock, TEMPHOOK)) == 0) { + Perror("NETFLOW: Cannot get %s node id", NG_NETFLOW_NODE_TYPE); + goto fail; + } /* Set the new node's name. */ strcpy(nm.name, gNetflowNodeName); @@ -656,6 +662,8 @@ NgFuncClrStats(Bund b, u_int16_t linkNum) return(0); } +#ifndef NG_PPP_STATS64 + /* * NgFuncGetStats() * @@ -684,7 +692,7 @@ NgFuncGetStats(Bund b, u_int16_t linkNum, struct ng_pp return(0); } -#ifdef NG_PPP_STATS64 +#else /* * NgFuncGetStats64() * @@ -752,7 +760,7 @@ NgFuncErr(const char *fmt, ...) */ static int -NetflowSetCommand(Context ctx, int ac, char *av[], void *arg) +NetflowSetCommand(Context ctx, int ac, const char *const av[], const void *arg) { struct sockaddr_storage *sin; @@ -795,7 +803,7 @@ NetflowSetCommand(Context ctx, int ac, char *av[], voi case SET_MTU: if (ac != 1) return (-1); - if (atoi(av[0]) < MIN_MTU || atoi(av[0]) > MAX_MTU) + if (atoi(av[0]) < (int)MIN_MTU || atoi(av[0]) > (int)MAX_MTU) Error("Bad netflow v9 MTU \"%s\"", av[0]); gNetflowMTU = atoi(av[0]); /* Default 1500 */ break; @@ -838,7 +846,7 @@ NetflowSetCommand(Context ctx, int ac, char *av[], voi */ int -ShowNetflow(Context ctx, int ac, char *av[], void *arg) +ShowNetflow(Context ctx, int ac, const char *const av[], const void *arg) { struct u_addr addr; in_port_t port; @@ -859,6 +867,10 @@ ShowNetflow(Context ctx, int ac, char *av[], void *arg (struct ng_netflow_v9info *)(void *)uv9.reply.data; #endif /* NGM_NETFLOW_V9_COOKIE */ + (void)ac; + (void)av; + (void)arg; + if (gNetflowNodeID>0) { snprintf(path, sizeof(path), "[%x]:", gNetflowNodeID); if (NgFuncSendQuery(path, NGM_NETFLOW_COOKIE, NGM_NETFLOW_INFO, @@ -978,8 +990,9 @@ NgGetNodeID(int csock, const char *path) /* Create a netgraph socket node */ snprintf(name, sizeof(name), "mpd%d-stats", gPid); if (NgMkSockNode(name, &gNgStatSock, NULL) < 0) { - Perror("NgFuncSendQuery: can't create %s node", NG_SOCKET_NODE_TYPE); - return(-1); + Perror("NgMkSockNode: can't create %s node", + NG_SOCKET_NODE_TYPE); + return (0); } (void) fcntl(gNgStatSock, F_SETFD, 1); } @@ -987,11 +1000,15 @@ NgGetNodeID(int csock, const char *path) } if (NgSendMsg(csock, path, - NGM_GENERIC_COOKIE, NGM_NODEINFO, NULL, 0) < 0) - return (0); - if (NgRecvMsg(csock, &u.reply, sizeof(u), NULL) < 0) + NGM_GENERIC_COOKIE, NGM_NODEINFO, NULL, 0) < 0) { + Perror("NgSendMsg to %s", path); return (0); - + } + if (NgRecvMsg(csock, &u.reply, sizeof(u), NULL) < 0) { + Perror("NgRecvMsg from %s", path); + return (0); + } + return (ni->id); }