--- embedaddon/mpd/src/command.c 2012/02/21 23:32:47 1.1.1.1 +++ embedaddon/mpd/src/command.c 2013/07/22 08:44:29 1.1.1.2 @@ -11,6 +11,7 @@ * See ``COPYRIGHT.whistle'' */ +#include "msg.h" #include "ppp.h" #include "console.h" #ifndef NOWEB @@ -40,6 +41,9 @@ #ifdef USE_FETCH #include #endif +#ifdef USE_NG_NETFLOW +#include +#endif /* * DEFINITIONS @@ -75,6 +79,7 @@ SET_L2TPLIMIT, #endif SET_MAX_CHILDREN, + SET_QTHRESHOLD, #ifdef USE_NG_BPF SET_FILTER #endif @@ -148,6 +153,8 @@ #endif { "max-children {num}", "Max number of children", GlobalSetCommand, NULL, 2, (void *) SET_MAX_CHILDREN }, + { "qthreshold {min} {max}", "Message queue limit thresholds", + GlobalSetCommand, NULL, 2, (void *) SET_QTHRESHOLD }, #ifdef USE_NG_BPF { "filter {num} add|clear [\"{flt}\"]", "Global traffic filters management", GlobalSetCommand, NULL, 2, (void *) SET_FILTER }, @@ -181,21 +188,21 @@ static const struct cmdtab ShowSessCmds[] = { { "iface {name}", "Filter by iface name", - ShowSessions, NULL, 2, (void *) SHOW_IFACE }, + ShowSessions, NULL, 0, (void *) SHOW_IFACE }, { "ip {ip}", "Filter by IP address", - ShowSessions, NULL, 2, (void *) SHOW_IP }, + ShowSessions, NULL, 0, (void *) SHOW_IP }, { "user {name}", "Filter by user name", - ShowSessions, NULL, 2, (void *) SHOW_USER }, + ShowSessions, NULL, 0, (void *) SHOW_USER }, { "session {ID}", "Filter by session ID", - ShowSessions, NULL, 2, (void *) SHOW_SESSION }, + ShowSessions, NULL, 0, (void *) SHOW_SESSION }, { "msession {ID}", "Filter by msession ID", - ShowSessions, NULL, 2, (void *) SHOW_MSESSION }, + ShowSessions, NULL, 0, (void *) SHOW_MSESSION }, { "bundle {name}", "Filter by bundle name", - ShowSessions, NULL, 2, (void *) SHOW_BUNDLE }, + ShowSessions, NULL, 0, (void *) SHOW_BUNDLE }, { "link {name}", "Filter by link name", - ShowSessions, NULL, 2, (void *) SHOW_LINK }, + ShowSessions, NULL, 0, (void *) SHOW_LINK }, { "peer {name}", "Filter by peer name", - ShowSessions, NULL, 2, (void *) SHOW_PEER }, + ShowSessions, NULL, 0, (void *) SHOW_PEER }, { NULL }, }; @@ -273,12 +280,26 @@ { "version", "Version string", ShowVersion, NULL, 0, NULL }, { "sessions [ {param} {value} ]", "Active sessions", - CMD_SUBMENU, NULL, 2, (void *) ShowSessCmds}, + CMD_SUBMENU, NULL, 0, (void *) ShowSessCmds}, { "summary", "Daemon status summary", ShowSummary, NULL, 0, NULL }, +#ifdef USE_NG_NETFLOW + { "netflow", "Netflow settings", + ShowNetflow, NULL, 0, NULL }, +#endif { NULL }, }; + static const struct cmdtab UnSetCommands[] = { + { "radius ...", "RADIUS specific stuff", + CMD_SUBMENU, AdmitLink, 2, (void *) RadiusUnSetCmds }, +#ifdef NG_NAT_DESC_LENGTH + { "nat ...", "NAT specific stuff", + CMD_SUBMENU, AdmitBund, 2, (void *) NatUnSetCmds }, +#endif + { NULL }, + }; + static const struct cmdtab SetCommands[] = { { "bundle ...", "Bundle specific stuff", CMD_SUBMENU, AdmitBund, 2, (void *) BundSetCmds }, @@ -370,6 +391,8 @@ SessionCommand, NULL, 0, NULL }, { "set ...", "Set parameters", CMD_SUBMENU, NULL, 0, (void *) SetCommands }, + { "unset ...", "Unset parameters", + CMD_SUBMENU, NULL, 0, (void *) UnSetCommands }, { "show ...", "Show status", CMD_SUBMENU, NULL, 0, (void *) ShowCommands }, { NULL }, @@ -734,6 +757,26 @@ GlobalSetCommand(Context ctx, int ac, char *av[], void break; #endif /* USE_NG_BPF */ + case SET_QTHRESHOLD: + if (ac == 2) { + int val_max; + + val = atoi(av[0]); + if (val < 0 || val >= MSG_QUEUE_LEN-1) + Error("Incorrect minimum threshold for message queue, " + "must be between 0 and %d", MSG_QUEUE_LEN-1); + val_max = atoi(av[1]); + if (val_max <= val || val_max >= MSG_QUEUE_LEN) + Error("Incorrect maximum threshold for message queue, " + "must be greater than minimum and less than %d", + MSG_QUEUE_LEN); + gQThresMin = val; + gQThresMax = val_max; + gQThresDiff = val_max - val; + } + else + return (-1); + break; default: return(-1); } @@ -883,7 +926,12 @@ ShowVersion(Context ctx, int ac, char *av[], void *arg #endif #ifdef USE_NG_NETFLOW Printf(" ng_netflow : yes\r\n"); +#if NGM_NETFLOW_COOKIE >= 1309868867 + Printf(" netflow v9 : yes\r\n"); #else + Printf(" netflow v9 : no\r\n"); +#endif +#else Printf(" ng_netflow : no\r\n"); #endif #ifdef USE_NG_PRED1 @@ -937,6 +985,7 @@ ShowGlobal(Context ctx, int ac, char *av[], void *arg) Printf(" pptplimit : %d\r\n", gPPTPtunlimit); #endif Printf(" max-children : %d\r\n", gMaxChildren); + Printf(" qthreshold : %d %d\r\n", gQThresMin, gQThresMax); Printf("Global options:\r\n"); OptStat(ctx, &gGlobalConf.options, gGlobalConfList); #ifdef USE_NG_BPF @@ -949,6 +998,8 @@ ShowGlobal(Context ctx, int ac, char *av[], void *arg) } } #endif + Printf("Global state:\r\n"); + Printf(" children : %d\r\n", gChildren); return 0; }