]> git.sur5r.net Git - ngadmin/commitdiff
Cli: refactor, change coding style
authordarkcoven <admin@darkcoven.tk>
Wed, 18 Sep 2013 20:30:15 +0000 (22:30 +0200)
committerdarkcoven <admin@darkcoven.tk>
Wed, 18 Sep 2013 20:30:15 +0000 (22:30 +0200)
25 files changed:
cli/admin.c
cli/com_bitrate.c
cli/com_cabletest.c
cli/com_defaults.c
cli/com_firmware.c
cli/com_help.c
cli/com_igmp.c
cli/com_list.c
cli/com_login.c
cli/com_mirror.c
cli/com_name.c
cli/com_netconf.c
cli/com_password.c
cli/com_ports.c
cli/com_qos.c
cli/com_quit.c
cli/com_restart.c
cli/com_scan.c
cli/com_stormfilter.c
cli/com_tree.c
cli/com_vlan.c
cli/commands.c
cli/commands.h
cli/common.c
cli/common.h

index b23018d25b5f3c1ff0717914b0c127b41534c58c..e3fbec65e89bb37577796a6f4449cb8b579b946a 100644 (file)
 #include "commands.h"
 
 
-
-
 #define MAXCOM 32
 
 
-int cont=1;
-
-
-
-
-const struct TreeNode* getSubCom (char **com, int n, int *t) {
- int i;
- const struct TreeNode *cur, *next;
- cur=&coms;
- for (i=0; i<n; ++i) {
-  
-  // we have reached a terminal command, exit
-  if ( cur->sub==NULL ) break;
-  
-  // search sub command in sub command array
-  for (next=cur->sub; next->name!=NULL && strcmp(next->name, com[i])!=0; ++next);
-  
-  // sub command not found, exit
-  if ( next->name==NULL ) break;
-  
-  // next command is now the current one
-  cur=next;
-  
- }
- *t=i;
- return cur;
+int cont = 1;
+
+
+static const struct TreeNode* getSubCom (char **com, int n, int *t)
+{
+       int i;
+       const struct TreeNode *cur, *next;
+       
+       
+       cur = &coms;
+       for (i = 0; i < n; i++) {
+               /* we have reached a terminal command, exit */
+               if (cur->sub == NULL)
+                       break;
+               
+               /* search sub command in sub command array */
+               for (next = cur->sub; next->name != NULL && strcmp(next->name, com[i]) != 0; next++);
+               
+               /* sub command not found, exit */
+               if (next->name == NULL)
+                       break;
+               
+               /* next command is now the current one */
+               cur = next;
+       }
+       
+       *t = i;
+       
+       
+       return cur;
 }
 
 
-
-
-const struct TreeNode *compcur;
-
-
-
-char* my_generator (const char* text, int state) {
- static int len;
- static const struct TreeNode *tn;
- const char *name;
- if ( compcur==NULL ) { // sub command not found
-  return NULL;
- } else if ( state==0 ) {
-  tn=compcur->sub;
-  len=strlen(text);
- }
- if ( tn==NULL ) { // terminal command
-  return NULL;
- }
- while ( (name=tn++->name)!=NULL )
-  if ( strncmp(name, text, len)==0 )
-   return strdup(name);
- return NULL;
+static const struct TreeNode *compcur;
+
+
+static char* my_generator (const char* text, int state)
+{
+       static int len;
+       static const struct TreeNode *tn;
+       const char *name;
+       
+       
+       if (compcur == NULL) {
+               /* sub command not found */
+               return NULL;
+       } else if (state == 0) {
+               tn = compcur->sub;
+               len = strlen(text);
+       }
+       
+       if (tn == NULL) /* terminal command */
+               return NULL;
+       
+       while ((name = tn++->name) != NULL) {
+               if (strncmp(name, text, len) == 0)
+                       return strdup(name);
+       }
+       
+       
+       return NULL;
 }
 
 
-
-char** my_completion (const char *text, int start, int end UNUSED) {
- char **matches=NULL;
- char *line, *com[MAXCOM];
- int i, n;
- memset(com, 0, MAXCOM*sizeof(char*));
- line=strdup(rl_line_buffer);
- line[start]=0;
- trim(line, start);
- n=explode(line, com, MAXCOM);
- free(line);
- compcur=getSubCom(com, n, &i);
- if ( i<n ) compcur=NULL;
- matches=rl_completion_matches(text, my_generator);
- for (i=0; com[i]!=NULL; ++i) {
-  free(com[i]);
- }
- return matches;
+static char** my_completion (const char *text, int start, int end UNUSED)
+{
+       char **matches = NULL;
+       char *line, *com[MAXCOM];
+       int i, n;
+       
+       
+       memset(com, 0, MAXCOM * sizeof(char*));
+       line = strdup(rl_line_buffer);
+       line[start] = '\0';
+       trim(line, start);
+       n = explode(line, com, MAXCOM);
+       free(line);
+       
+       compcur = getSubCom(com, n, &i);
+       
+       if (i < n)
+               compcur = NULL;
+       matches = rl_completion_matches(text, my_generator);
+       
+       for (i = 0; com[i] != NULL; i++)
+               free(com[i]);
+       
+       
+       return matches;
 }
 
 
-
-static struct ngadmin *nga=NULL;
+static struct ngadmin *nga;
 static sigjmp_buf jmpbuf;
-struct termios orig_term, current_term;
-
-
-
-NORET static void handler (int sig) {
- switch ( sig ) {
-  
-  case SIGTERM:
-  case SIGINT:
-   printf("interrupt\n");
-  
-   current_term.c_lflag|=ECHO;
-   tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
-   
-   siglongjmp(jmpbuf, 1);
-  
-  default:
-   ngadmin_close(nga);
-   
-   tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
-   
-   exit(0);
-  
- }
+static struct termios orig_term;
+struct termios current_term;
+
+
+NORET static void handler (int sig)
+{
+       switch (sig) {
+       
+       case SIGTERM:
+       case SIGINT:
+               printf("interrupt\n");
+               
+               current_term.c_lflag|=ECHO;
+               tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
+               
+               siglongjmp(jmpbuf, 1);
+       
+       default:
+               ngadmin_close(nga);
+               
+               tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
+               
+               exit(0);
+       }
 }
 
 
-
-int main (int argc, char **argv) {
- static const struct option opts[]={
-  {"keep-broadcasting", no_argument, NULL, 'b'}, 
-  {"force-interface", no_argument, NULL, 'f'}, 
-  {"global-broadcast", no_argument, NULL, 'g'}, 
-  {"interface", required_argument, NULL, 'i'}, 
-  {"help", no_argument, NULL, 'h'}, 
-  {"timeout", required_argument, NULL, 't'}, 
-  {0, 0, 0, 0}
- };
- char *line, *com[MAXCOM];
- const char *iface="eth0";
- float timeout=0.f;
- bool kb=false, force=false, global=false;
- struct timeval tv;
- const struct TreeNode *cur, *next;
- int i, n;
- tcgetattr(STDIN_FILENO, &orig_term);
- current_term=orig_term;
- /*
- current_term.c_lflag&=~ECHOCTL;
- tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
- */
- opterr=0;
- while ( (n=getopt_long(argc, argv, "bfgi:ht:", opts, NULL))!=-1 ) {
-  switch ( n ) {
-   
-   case 'b':
-    kb=true;
-   break;
-   
-   case 'f':
-    force=true;
-   break;
-   
-   case 'g':
-    global=true;
-   break;
-   
-   case 'i':
-    iface=optarg;
-   break;
-   
-   case 'h':
-    printf("Usage: %s [-b] [-f] [-g] [-i <interface>]\n", argv[0]);
-    goto end;
-   
-   case 't':
-    timeout=strtof(optarg, NULL);
-   break;
-   
-   case '?':
-    printf("Unknown option: \"%s\"\n", argv[optind-1]);
-    goto end;
-   
-  }
- }
- argc-=optind;
- argv+=optind;
- if ( argc!=0 ) {
-  printf("Unknown trailing options\n");
-  goto end;
- }
- memset(com, 0, MAXCOM*sizeof(char*));
- if ( (nga=ngadmin_init(iface))==NULL ) {
-  fprintf(stderr, "Initialization error\n");
-  goto end;
- }
- // set timeout
- if ( timeout>0.f ) {
-  tv.tv_sec=(int)timeout;
-  tv.tv_usec=(int)((timeout-(float)tv.tv_sec)*1.e6f);
-  ngadmin_setTimeout(nga, &tv);
- }
- if ( kb && ngadmin_setKeepBroadcasting(nga, true)!=ERR_OK ) goto end;
- if ( force && ngadmin_forceInterface(nga)!=ERR_OK ) goto end;
- if ( global && ngadmin_useGlobalBroadcast(nga, true)!=ERR_OK ) goto end;
- //rl_bind_key('\t', rl_abort); // disable auto completion
- //rl_bind_key('\t', rl_complete); // enable auto-complete
- rl_attempted_completion_function=my_completion;
- rl_completion_entry_function=my_generator;
- signal(SIGTERM, handler);
- signal(SIGINT, handler);
- sigsetjmp(jmpbuf, 1);
- while ( cont ) {
-  
-  if ( (line=readline("> "))==NULL ) goto end;
-  trim(line, strlen(line));
-  n=explode(line, com, MAXCOM);
-  
-  if ( n==0 ) {
-   free(line);
-   continue;
-  } else {
-   add_history(line);
-   free(line);
-  }
-  
-  cur=getSubCom(com, n, &i);
-  
-  if ( i<n ) { // commands left unchecked
-   
-   if ( i==0 ) { // root command
-    printf("unknown command\n");
-   } else if ( cur->sub!=NULL ) { // intermediate command
-    printf("unknown %s subcommand\n", com[i-1]);
-   } else if ( !cur->hasArgs ) { // terminal command without arguments
-    printf("%s as no subcommand and takes no parameter\n", com[i-1]);
-   } else if ( cur->comfunc==NULL ) { // erroneous terminal command without function
-    printf("terminal command without function\n");
-   } else { // terminal command with arguments, left "commands" are in fact parameters
-    cur->comfunc(n-i, (const char**)&com[i], nga);
-   }
-   
-  } else { // no command left
-   
-   if ( cur->sub!=NULL ) { // intermediate command
-    // print available subcommands
-    for (next=cur->sub; next->name!=NULL; ++next) {
-     printf("%s ", next->name);
-    }
-    printf("\n");
-   } else if ( cur->comfunc==NULL ) { // erroneous terminal command without function
-    printf("terminal command without function\n");
-   } else { // terminal command without arguments
-    cur->comfunc(0, NULL, nga); 
-   }
-   
-  }
-  
-  
-  for (i=0; com[i]!=NULL; ++i) {
-   free(com[i]);
-   com[i]=NULL;
-  }
-  
- }
- end:
- handler(0);
+int main (int argc, char **argv)
+{
+       static const struct option opts[] = {
+               {"keep-broadcasting", no_argument, NULL, 'b'},
+               {"force-interface", no_argument, NULL, 'f'},
+               {"global-broadcast", no_argument, NULL, 'g'},
+               {"interface", required_argument, NULL, 'i'},
+               {"help", no_argument, NULL, 'h'},
+               {"timeout", required_argument, NULL, 't'},
+               {0, 0, 0, 0}
+       };
+       char *line, *com[MAXCOM];
+       const char *iface = "eth0";
+       float timeout = 0.f;
+       bool kb = false, force = false, global = false;
+       struct timeval tv;
+       const struct TreeNode *cur, *next;
+       int i, n;
+       
+       
+       tcgetattr(STDIN_FILENO, &orig_term);
+       current_term = orig_term;
+       
+       opterr = 0;
+       
+       while ((n = getopt_long(argc, argv, "bfgi:ht:", opts, NULL)) != -1) {
+               switch (n) {
+               
+               case 'b':
+                       kb = true;
+                       break;
+               
+               case 'f':
+                       force = true;
+                       break;
+               
+               case 'g':
+                       global = true;
+                       break;
+               
+               case 'i':
+                       iface = optarg;
+                       break;
+               
+               case 'h':
+                       printf("Usage: %s [-b] [-f] [-g] [-i <interface>]\n", argv[0]);
+                       goto end;
+               
+               case 't':
+                       timeout = strtof(optarg, NULL);
+                       break;
+               
+               case '?':
+                       printf("Unknown option: \"%s\"\n", argv[optind - 1]);
+                       goto end;
+               }
+       }
+       
+       argc -= optind;
+       argv += optind;
+       
+       if (argc != 0) {
+               printf("Unknown trailing options\n");
+               goto end;
+       }
+       
+       
+       memset(com, 0, MAXCOM * sizeof(char*));
+       
+       nga = ngadmin_init(iface);
+       if (nga == NULL) {
+               fprintf(stderr, "Initialization error\n");
+               goto end;
+       }
+       
+       /* set timeout */
+       if (timeout > 0.f) {
+               tv.tv_sec = (int)timeout;
+               tv.tv_usec = (int)((timeout - (float)tv.tv_sec) * 1.e6f);
+               ngadmin_setTimeout(nga, &tv);
+       }
+       
+       
+       if (kb && ngadmin_setKeepBroadcasting(nga, true) != ERR_OK)
+               goto end;
+       
+       if (force && ngadmin_forceInterface(nga) != ERR_OK)
+               goto end;
+       
+       if (global && ngadmin_useGlobalBroadcast(nga, true) != ERR_OK)
+               goto end;
+       
+       rl_attempted_completion_function = my_completion;
+       rl_completion_entry_function = my_generator;
+       
+       signal(SIGTERM, handler);
+       signal(SIGINT, handler);
+       
+       sigsetjmp(jmpbuf, 1);
+       
+       while (cont) {
+               line = readline("> ");
+               if (line == NULL)
+                       goto end;
+               trim(line, strlen(line));
+               n = explode(line, com, MAXCOM);
+               
+               if (n == 0) {
+                       free(line);
+                       continue;
+               } else {
+                       add_history(line);
+                       free(line);
+               }
+               
+               cur = getSubCom(com, n, &i);
+               
+               if (i < n) { /* commands left unchecked */
+                       if (i == 0) { /* root command */
+                               printf("unknown command\n");
+                       } else if (cur->sub != NULL) { /* intermediate command */
+                               printf("unknown %s subcommand\n", com[i - 1]);
+                       } else if (!cur->hasArgs) { /* terminal command without arguments */
+                               printf("%s as no subcommand and takes no parameter\n", com[i - 1]);
+                       } else if (cur->comfunc == NULL) { /* erroneous terminal command without function */
+                               printf("terminal command without function\n");
+                       } else { /* terminal command with arguments, left "commands" are in fact parameters */
+                               cur->comfunc(n - i, (const char**)&com[i], nga);
+                       }
+               } else { /* no command left */
+                       if (cur->sub != NULL) { /* intermediate command */
+                               /* print available subcommands */
+                               for (next = cur->sub; next->name != NULL; next++)
+                                       printf("%s ", next->name);
+                               printf("\n");
+                       } else if (cur->comfunc == NULL) { /* erroneous terminal command without function */
+                               printf("terminal command without function\n");
+                       } else { /* terminal command without arguments */
+                               cur->comfunc(0, NULL, nga); 
+                       }
+               }
+               
+               for (i = 0; com[i] != NULL; i++) {
+                       free(com[i]);
+                       com[i] = NULL;
+               }
+       }
+       
+end:
+       handler(0);
 }
 
 
index 94afad882efdb2bbfc280916bd4649994e8ff90e..2f7a5a934626b335926b286d7c9fa458e2727751 100644 (file)
 #include "commands.h"
 
 
-
-// helper function to analyse bitrate speed specifications
-static int bitrate_analyse (int nb, const char **com, int *ports) {
- int i=0, s;
- while ( i<nb-1 ) {
-  s=parseBitrate(com[i+1]);
-  if ( strcmp(com[i], "inout")==0 ) {
-   ports[0]=s;
-   ports[1]=s;
-  } else if ( strcmp(com[i], "in")==0 ) {
-   ports[0]=s;
-  } else if ( strcmp(com[i], "out")==0 ) {
-   ports[1]=s;
-  } else {
-   break;
-  }
-  i+=2;
- }
- return i;
+/* helper function to analyse bitrate speed specifications */
+static int bitrate_analyse (int nb, const char **com, int *ports)
+{
+       int i = 0, s;
+       
+       
+       while (i < nb - 1) {
+               s = parseBitrate(com[i + 1]);
+               if (strcmp(com[i], "inout") == 0) {
+                       ports[0] = s;
+                       ports[1] = s;
+               } else if (strcmp(com[i], "in") == 0) {
+                       ports[0] = s;
+               } else if (strcmp(com[i], "out") == 0) {
+                       ports[1] = s;
+               } else {
+                       break;
+               }
+               i += 2;
+       }
+       
+       
+       return i;
 }
 
 
-
-bool do_bitrate_set (int nb, const char **com, struct ngadmin *nga) {
- int i, k=0, defs[]={12, 12}, p, *ports=NULL;
- const struct swi_attr *sa;
- bool ret=true;
- if ( nb<2 ) {
-  printf("Usage: bitrate set [all SPEEDSPEC] <port1> SPEEDSPEC [<port2> SPEEDSPEC ...]\n");
-  printf("SPEEDSPEC: [inout <speed>] [in <ispeed>] [out <ospeed>]\n");
-  ret=false;
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc(2*sa->ports*sizeof(int));
- // get defaults if present
- if ( strcmp(com[k], "all")==0 ) {
-  ++k;
-  k+=bitrate_analyse(nb-k, &com[k], defs);
- }
- // apply defaults
- for (i=0; i<sa->ports; ++i) {
-  memcpy(&ports[2*i], defs, sizeof(defs));
- }
- // get ports specifics
- while ( k<nb ) {
-  p=strtol(com[k++], NULL, 0)-1;
-  if ( p>=0 && p<sa->ports ) {
-   k+=bitrate_analyse(nb-k, &com[k], &ports[2*p]);
-  }
- }
- // send it to the switch
- i=ngadmin_setBitrateLimits(nga, ports);
- printErrCode(i);
- end:
- free(ports);
- return ret;
+bool do_bitrate_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i, k = 0, defs[] = {12, 12}, p, *ports = NULL;
+       const struct swi_attr *sa;
+       bool ret = true;
+       
+       if (nb < 2) {
+               printf(
+               "Usage: bitrate set [all SPEEDSPEC] <port1> SPEEDSPEC [<port2> SPEEDSPEC ...]\n"
+               "SPEEDSPEC: [inout <speed>] [in <ispeed>] [out <ospeed>]\n"
+               );
+               ret = false;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ports = malloc(2 * sa->ports * sizeof(int));
+       
+       /* get defaults if present */
+       if (strcmp(com[k], "all") == 0) {
+               k++;
+               k += bitrate_analyse(nb-k, &com[k], defs);
+       }
+       
+       /* apply defaults */
+       for (i = 0; i < sa->ports; i++)
+               memcpy(&ports[2 * i], defs, sizeof(defs));
+       
+       /* get ports specifics */
+       while (k < nb) {
+               p = strtol(com[k++], NULL, 0) - 1;
+               if (p >= 0 &&  p <sa->ports)
+                       k += bitrate_analyse(nb - k, &com[k], &ports[2 * p]);
+       }
+       
+       /* send it to the switch */
+       i = ngadmin_setBitrateLimits(nga, ports);
+       printErrCode(i);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
-bool do_bitrate_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i, ret=true, *ports=NULL;
- const struct swi_attr *sa;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc(2*sa->ports*sizeof(int));
- if ( (i=ngadmin_getBitrateLimits(nga, ports))!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- for (i=0; i<sa->ports; ++i) {
-  printf("port %i: in %s, out %s\n", i+1, bitrates[ports[2*i+0]], bitrates[ports[2*i+1]]);
- }
- end:
- free(ports);
- return ret;
+bool do_bitrate_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i, ret = true, *ports = NULL;
+       const struct swi_attr *sa;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       
+       ports = malloc(2 * sa->ports * sizeof(int));
+       i = ngadmin_getBitrateLimits(nga, ports);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       for (i = 0; i < sa->ports; i++)
+               printf("port %i: in %s, out %s\n", i + 1, bitrates[ports[2 * i + 0]], bitrates[ports[2 * i + 1]]);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
index 521ada9b8ecbebb9dc55ce3d9b605549b5fdf0c0..f23763f9e9ce0a898d79724c5a415f6483e7e9d9 100644 (file)
@@ -2,52 +2,50 @@
 #include "commands.h"
 
 
-
-bool do_cabletest (int nb, const char **com, struct ngadmin *nga) {
- bool ret=true;
- const struct swi_attr *sa;
- struct cabletest *ct=NULL;
- int i, j=0, k=0;
- if ( nb<1 ) {
-  printf("Usage: cabletest <port1> [<port2> ...]\n");
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ct=malloc(sa->ports*sizeof(struct cabletest));
- memset(ct, 0, sa->ports*sizeof(struct cabletest));
- while ( k<nb ) {
-  ct[j].port=strtol(com[k++], NULL, 0);
-  if ( ct[j].port>=1 && ct[j].port<=sa->ports ) ++j;
- }
- i=ngadmin_cabletest(nga, ct, j);
- if ( i<0 ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- for (i=0; i<j; ++i) {
-  printf("port %i: %08X %08X\n", ct[i].port, ct[i].v1, ct[i].v2);
- }
- end:
- free(ct);
- return ret;
+bool do_cabletest (int nb, const char **com, struct ngadmin *nga)
+{
+       bool ret = true;
+       const struct swi_attr *sa;
+       struct cabletest *ct = NULL;
+       int i, j=0, k=0;
+       
+       
+       if (nb < 1) {
+               printf("Usage: cabletest <port1> [<port2> ...]\n");
+               goto end;
+       }
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ct = malloc(sa->ports * sizeof(struct cabletest));
+       memset(ct, 0, sa->ports * sizeof(struct cabletest));
+       
+       while (k < nb) {
+               ct[j].port = strtol(com[k++], NULL, 0);
+               if (ct[j].port >= 1 && ct[j].port <= sa->ports)
+                       j++;
+       }
+       
+       i = ngadmin_cabletest(nga, ct, j);
+       if (i < 0) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       for (i = 0; i < j; i++)
+               printf("port %i: %08X %08X\n", ct[i].port, ct[i].v1, ct[i].v2);
+       
+end:
+       free(ct);
+       
+       return ret;
 }
 
 
index 5855332398b237a091b8924b94d0b8d6413fffe7..a1c7107fc7972063989ad560e7000ec0880c300c 100644 (file)
@@ -2,34 +2,31 @@
 #include "commands.h"
 
 
-
-bool do_defaults (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i, ret=true;
- const struct swi_attr *sa;
- char line[16];
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- printf("The switch settings will be CLEARED. Continue ? [y/N]: ");
- fflush(stdout);
- if ( fgets(line, sizeof(line), stdin)!=NULL && strcasecmp(line, "y\n")==0 ) {
-  i=ngadmin_defaults(nga);
-  printErrCode(i);
- }
- end:
- return ret;
+bool do_defaults (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i, ret = true;
+       const struct swi_attr *sa;
+       char line[16];
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       printf("The switch settings will be CLEARED. Continue ? [y/N]: ");
+       fflush(stdout);
+       
+       if (fgets(line, sizeof(line), stdin) != NULL && strcasecmp(line, "y\n") == 0) {
+               i = ngadmin_defaults(nga);
+               printErrCode(i);
+       }
+       
+end:
+       
+       return ret;
 }
 
 
index f2b4732b568feca7e7d786e41cc5b5692cc75945..cc931fecf30d40699a694cb84d14e7c1e0f2f228 100644 (file)
@@ -2,59 +2,53 @@
 #include "commands.h"
 
 
-
-bool do_firmware_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- const struct swi_attr *sa;
- bool ret=true;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- puts(sa->firmware);
- end:
- return ret;
+bool do_firmware_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       bool ret = true;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       puts(sa->firmware);
+       
+end:
+       
+       return ret;
 }
 
 
-
-bool do_firmware_upgrade (int nb, const char **com UNUSED, struct ngadmin *nga) {
- const struct swi_attr *sa;
- bool ret=true;
- int i;
- if ( nb!=1 ) {
-  printf("Usage: firmware upgrade <file>\n");
-  ret=false;
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- i=ngadmin_upgradeFirmware(nga, com[0]);
- printErrCode(i);
- end:
- return ret;
+bool do_firmware_upgrade (int nb, const char **com, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       bool ret = true;
+       int i;
+       
+       
+       if (nb != 1) {
+               printf("Usage: firmware upgrade <file>\n");
+               ret = false;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       i = ngadmin_upgradeFirmware(nga, com[0]);
+       printErrCode(i);
+       
+end:
+       
+       return ret;
 }
 
 
-
index 5bf84ee76350eb4f93cf8bf6b4b011d1ac15cb74..e1bad0e5289f8f6e71097ee46cdcba5df3e51510 100644 (file)
@@ -2,25 +2,17 @@
 #include "commands.h"
 
 
-
-
-bool do_help (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED) {
- const struct TreeNode *s;
- printf("Available commands: \n");
- for (s=coms.sub; s->name!=NULL; ++s) {
-  printf("%s ", s->name);
- }
- putchar('\n');
- return true;
+bool do_help (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED)
+{
+       const struct TreeNode *s;
+       
+       printf("Available commands: \n");
+       
+       for (s = coms.sub; s->name != NULL; s++)
+               printf("%s ", s->name);
+       putchar('\n');
+       
+       return true;
 }
 
 
-
-
index efe39b83f7eb5624c6a02beb988c6e4113095053..3d57a03407ce21f6a27aef19d1d0e1963b9facb4 100644 (file)
@@ -2,71 +2,65 @@
 #include "commands.h"
 
 
-
-bool do_igmp_set (int nb, const char **com, struct ngadmin *nga) {
- int i;
- struct igmp_conf ic;
- if ( nb!=4 ) {
-  printf("Usage: igmp set <enable> <vlan> <validate> <block>\n");
-  return false;
- }
- if ( ngadmin_getCurrentSwitch(nga)==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- ic.enable=strtol(com[0], NULL, 0);
- ic.vlan=strtol(com[1], NULL, 0);
- ic.validate=strtol(com[2], NULL, 0);
- ic.block=strtol(com[3], NULL, 0);
- i=ngadmin_setIGMPConf(nga, &ic);
- printErrCode(i);
- return true;
+bool do_igmp_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i;
+       struct igmp_conf ic;
+       
+       
+       if (nb != 4) {
+               printf("Usage: igmp set <enable> <vlan> <validate> <block>\n");
+               return false;
+       }
+       
+       if (ngadmin_getCurrentSwitch(nga) == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       ic.enable = strtol(com[0], NULL, 0);
+       ic.vlan = strtol(com[1], NULL, 0);
+       ic.validate = strtol(com[2], NULL, 0);
+       ic.block = strtol(com[3], NULL, 0);
+       
+       i = ngadmin_setIGMPConf(nga, &ic);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_igmp_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- struct igmp_conf ic;
- bool ret=true;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- i=ngadmin_getIGMPConf(nga, &ic);
- if ( i!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- printf("IGMP snooping enabled: %s\n", ic.enable ? "yes" : "no" );
- printf("IGMP snooping vlan: %u\n", ic.vlan);
- printf("Validate IGMPv3 headers: %s\n", ic.validate ? "yes" : "no" );
- printf("Block unknown multicast addresses: %s\n", ic.block ? "yes" : "no" );
- end:
- return ret;
+bool do_igmp_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       struct igmp_conf ic;
+       bool ret = true;
+       
+       
+       sa=ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       i = ngadmin_getIGMPConf(nga, &ic);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       printf("IGMP snooping enabled: %s\n", ic.enable ? "yes" : "no" );
+       printf("IGMP snooping vlan: %u\n", ic.vlan);
+       printf("Validate IGMPv3 headers: %s\n", ic.validate ? "yes" : "no" );
+       printf("Block unknown multicast addresses: %s\n", ic.block ? "yes" : "no" );
+       
+end:
+       
+       return ret;
 }
 
 
index 9630f76d05392ddbb9886f0121bcc3b24889a37e..820d6989ec00e2c2b2679a8638611ae5b57b3e3c 100644 (file)
@@ -2,19 +2,15 @@
 #include "commands.h"
 
 
-
-bool do_list (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int n;
- const struct swi_attr *sa;
- sa=ngadmin_getSwitchTab(nga, &n);
- displaySwitchTab(sa, n);
- return true;
+bool do_list (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int n;
+       const struct swi_attr *sa;
+       
+       sa = ngadmin_getSwitchTab(nga, &n);
+       displaySwitchTab(sa, n);
+       
+       return true;
 }
 
 
index dfd0a92611847e01875f21fbe7007431eb5eb155..61b4f074d1be20dc0137a40727b33c99bffc4d29 100644 (file)
@@ -2,25 +2,22 @@
 #include "commands.h"
 
 
-
-bool do_login (int nb, const char **com, struct ngadmin *nga) {
- int i;
- if ( nb!=1 ) {
-  printf("Usage: login <num>\n");
-  return false;
- }
- i=strtol(com[0], NULL, 0);
- i=ngadmin_login(nga, i);
- printErrCode(i);
- return true;
+bool do_login (int nb, const char **com, struct ngadmin *nga)
+{
+       int i;
+       
+       
+       if (nb != 1) {
+               printf("Usage: login <num>\n");
+               return false;
+       }
+       
+       i = strtol(com[0], NULL, 0);
+       i = ngadmin_login(nga, i);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
index 67cbb04c781eaa16d83146d79bb0bbf72dfc9fb5..75ca75ca63a1c0cbf14d5fc6fa0485d9aa0fd59d 100644 (file)
 #include "commands.h"
 
 
-
-
-bool do_mirror_disable (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- if ( ngadmin_getCurrentSwitch(nga)==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_setMirror(nga, NULL);
- printErrCode(i);
- return true;
+bool do_mirror_disable (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       
+       
+       if (ngadmin_getCurrentSwitch(nga) == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       
+       i = ngadmin_setMirror(nga, NULL);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_mirror_set (int nb, const char **com, struct ngadmin *nga) {
- const struct swi_attr *sa;
- char *ports=NULL;
- bool ret=true;
- int i, k=0;
- if ( nb<3 ) {
-  printf("Usage: mirror set <destination port> clone <port1> [<port2> ...]\n");
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc((sa->ports+1)*sizeof(char));
- memset(ports, 0, sa->ports+1);
- ports[0]=strtol(com[k++], NULL, 0);
- if ( ports[0]<1 || ports[0]>sa->ports || strcasecmp(com[k++], "clone")!=0 ) {
-  printf("syntax error\n");
-  ret=false;
-  goto end;
- }
- while ( k<nb ) {
-  i=strtol(com[k++], NULL, 0);
-  if ( i<1 || i>sa->ports ) {
-   printf("port out of range\n");
-   ret=false;
-   goto end;
-  } else if ( i==ports[0] ) {
-   printf("destination port cannot be in port list\n");
-   ret=false;
-   goto end;
-  }
-  ports[i]=1;
- }
- i=ngadmin_setMirror(nga, ports);
- printErrCode(i);
- end:
- free(ports);
- return ret;
+bool do_mirror_set (int nb, const char **com, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       char *ports = NULL;
+       bool ret = true;
+       int i, k = 0;
+       
+       
+       if (nb < 3) {
+               printf("Usage: mirror set <destination port> clone <port1> [<port2> ...]\n");
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ports = malloc((sa->ports + 1) * sizeof(char));
+       memset(ports, 0, sa->ports + 1);
+       
+       ports[0] = strtol(com[k++], NULL, 0);
+       if (ports[0] < 1 || ports[0] > sa->ports || strcasecmp(com[k++], "clone") != 0) {
+               printf("syntax error\n");
+               ret = false;
+               goto end;
+       }
+       
+       while (k < nb) {
+               i = strtol(com[k++], NULL, 0);
+               if (i < 1 || i > sa->ports) {
+                       printf("port out of range\n");
+                       ret = false;
+                       goto end;
+               } else if (i == ports[0]) {
+                       printf("destination port cannot be in port list\n");
+                       ret = false;
+                       goto end;
+               }
+               ports[i] = 1;
+       }
+       
+       i = ngadmin_setMirror(nga, ports);
+       printErrCode(i);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
-bool do_mirror_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- const struct swi_attr *sa;
- char *ports=NULL;
- int i;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- ports=malloc((sa->ports+1)*sizeof(char));
- i=ngadmin_getMirror(nga, ports);
- if ( i!=ERR_OK ) {
-  printErrCode(i);
-  goto end;
- }
- if ( ports[0]==0 ) {
-  printf("port mirroring is disabled\n");
-  goto end;
- }
- printf("destination: %i\n", ports[0]);
- printf("ports: ");
- for (i=1; i<=sa->ports; ++i) {
-  if ( ports[i] ) {
-   printf("%i ", i);
-  }
- }
- printf("\n");
- end:
- free(ports);
- return true;
+bool do_mirror_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       char *ports = NULL;
+       int i;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       
+       ports = malloc((sa->ports + 1) * sizeof(char));
+       i = ngadmin_getMirror(nga, ports);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               goto end;
+       }
+       
+       if (ports[0] == 0) {
+               printf("port mirroring is disabled\n");
+               goto end;
+       }
+       
+       printf("destination: %i\n", ports[0]);
+       printf("ports: ");
+       for (i = 1; i <= sa->ports; i++) {
+               if (ports[i])
+                       printf("%i ", i);
+       }
+       printf("\n");
+       
+       
+end:
+       free(ports);
+       
+       return true;
 }
 
 
-
index e561724db85454c62b968e7391c0a5a7d751ed0b..0e2524ab0b22b68bff22cb82d2dcb71cded89761 100644 (file)
@@ -2,69 +2,66 @@
 #include "commands.h"
 
 
-
-bool do_name_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- const struct swi_attr *sa;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- puts(sa->name);
- return true;
+bool do_name_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       puts(sa->name);
+       
+       
+       return true;
 }
 
 
-
-bool do_name_set (int nb, const char **com, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- if ( nb!=1 ) {
-  printf("Usage: name set <value>\n");
-  return false;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_setName(nga, com[0]);
- printErrCode(i);
- return true;
+bool do_name_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       
+       
+       if (nb != 1) {
+               printf("Usage: name set <value>\n");
+               return false;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       i = ngadmin_setName(nga, com[0]);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_name_clear (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_setName(nga, NULL);
- printErrCode(i);
- return true;
+bool do_name_clear (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       i = ngadmin_setName(nga, NULL);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
index e4838b88d5ba24678b7b3455db48a013cb45d5b6..5c165ae186969ddcf3720189b9699164e8eecbeb 100644 (file)
@@ -2,79 +2,69 @@
 #include "commands.h"
 
 
-
-bool do_netconf_set (int nb, const char **com, struct ngadmin *nga) {
- int i, k;
- const struct swi_attr *sa;
- struct net_conf nc;
- bool ret=true;
- if ( nb==0 ) {
-  printf("Usage: netconf set [dhcp yes|no] [ip <ip>] [mask <mask>] [gw <gw>]\n");
-  return false;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- memset(&nc, 0, sizeof(struct net_conf));
- for (k=0; k<nb; k+=2) {
-  
-  if ( strcasecmp(com[k], "dhcp")==0 ) {
-   if ( strcasecmp(com[k+1], "yes")==0 ) {
-    nc.dhcp=true;
-   } else if ( strcasecmp(com[k+1], "no")==0 ) {
-    nc.dhcp=false;
-   } else {
-    printf("Incorrect DHCP value\n");
-    ret=false;
-    goto end;
-   }
-   
-  } else if ( strcasecmp(com[k], "ip")==0 ) {
-   if ( inet_aton(com[k+1], &nc.ip)==0 ) {
-    printf("Incorrect IP value\n");
-    ret=false;
-    goto end;
-   }
-   
-  } else if ( strcasecmp(com[k], "mask")==0 ) {
-   if ( inet_aton(com[k+1], &nc.netmask)==0 ) { // TODO: check if it is a correct mask
-    printf("Incorrect mask value\n");
-    ret=false;
-    goto end;
-   }
-   
-  } else if ( strcasecmp(com[k], "gw")==0 ) {
-   if ( inet_aton(com[k+1], &nc.gw)==0 ) {
-    printf("Incorrect gateway value\n");
-    ret=false;
-    goto end;
-   }
-   
-  }
-  
- }
- i=ngadmin_setNetConf(nga, &nc);
- if ( i!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
- }
- end:
- return ret;
+bool do_netconf_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i, k;
+       const struct swi_attr *sa;
+       struct net_conf nc;
+       bool ret = true;
+       
+       
+       if (nb == 0) {
+               printf("Usage: netconf set [dhcp yes|no] [ip <ip>] [mask <mask>] [gw <gw>]\n");
+               return false;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       memset(&nc, 0, sizeof(struct net_conf));
+       
+       for (k = 0; k < nb; k += 2) {
+               if (strcasecmp(com[k], "dhcp") == 0) {
+                       if (strcasecmp(com[k+1], "yes") == 0) {
+                               nc.dhcp = true;
+                       } else if (strcasecmp(com[k+1], "no") == 0) {
+                               nc.dhcp = false;
+                       } else {
+                               printf("Incorrect DHCP value\n");
+                               ret = false;
+                               goto end;
+                       }
+               } else if (strcasecmp(com[k], "ip") == 0) {
+                       if (inet_aton(com[k+1], &nc.ip) == 0) {
+                               printf("Incorrect IP value\n");
+                               ret = false;
+                               goto end;
+                       }
+               } else if (strcasecmp(com[k], "mask") == 0) {
+                       /* TODO: check if it is a correct mask */
+                       if (inet_aton(com[k+1], &nc.netmask) == 0) {
+                               printf("Incorrect mask value\n");
+                               ret = false;
+                               goto end;
+                       }
+               } else if (strcasecmp(com[k], "gw") == 0) {
+                       if (inet_aton(com[k+1], &nc.gw) == 0) {
+                               printf("Incorrect gateway value\n");
+                               ret = false;
+                               goto end;
+                       }
+               }
+       }
+       
+       i = ngadmin_setNetConf(nga, &nc);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+       }
+       
+end:
+       
+       return ret;
 }
 
 
-
index 92e96c6067c22c61c8ad2cb89351aa4564fe0a4a..9264bb9e443840c4b75129d84218aca1f0f8f4e2 100644 (file)
@@ -2,71 +2,64 @@
 #include "commands.h"
 
 
-
-bool do_password_change (int nb, const char **com, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- if ( nb!=1 ) {
-  printf("Usage: password change <value>\n");
-  return false;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_changePassword(nga, com[0]);
- printErrCode(i);
- return true;
+bool do_password_change (int nb, const char **com, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       
+       
+       if (nb != 1) {
+               printf("Usage: password change <value>\n");
+               return false;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       i = ngadmin_changePassword(nga, com[0]);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_password_set (int nb, const char **com, struct ngadmin *nga) {
- int i;
- char buf[64];
- const char *pass;
- if ( nb>1 ) {
-  printf("Usage: password set [<value>]\n");
-  return false;
- }
- if ( nb==0 ) {
-  printf("Enter password: ");
-  fflush(stdout);
-  current_term.c_lflag&=~ECHO;
-  tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
-  pass=fgets(buf, sizeof(buf), stdin);
-  trim(buf, strlen(buf));
-  current_term.c_lflag|=ECHO;
-  tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
-  putchar('\n');
- } else {
-  pass=com[0];
- }
- if ( pass!=NULL ) {
-  i=ngadmin_setPassword(nga, pass);
-  printErrCode(i);
- }
- return true;
+bool do_password_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i;
+       char buf[64];
+       const char *pass;
+       
+       
+       if (nb > 1) {
+               printf("Usage: password set [<value>]\n");
+               return false;
+       }
+       
+       if (nb == 0) {
+               printf("Enter password: ");
+               fflush(stdout);
+               current_term.c_lflag &= ~ECHO;
+               tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
+               pass = fgets(buf, sizeof(buf), stdin);
+               trim(buf, strlen(buf));
+               current_term.c_lflag |= ECHO;
+               tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
+               putchar('\n');
+       } else {
+               pass = com[0];
+       }
+       
+       if (pass != NULL) {
+               i = ngadmin_setPassword(nga, pass);
+               printErrCode(i);
+       }
+       
+       
+       return true;
 }
 
 
-
index baa8c8f3a6fe3dcca1c36deae8902e46195553af..7c3fbb22b6ca6ec57764f311ef935bfb4bad760b 100644 (file)
 #include "commands.h"
 
 
-
-bool do_ports_state (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- unsigned char *ports=NULL;
- bool ret=true;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc(sa->ports*sizeof(unsigned char));
- if ( (i=ngadmin_getPortsStatus(nga, ports))<0 ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- for (i=0; i<sa->ports; i++) {
-  printf("port %i: ", i+1);
-  switch ( ports[i] ) {
-   case 0: printf("down"); break;
-   case SPEED_10: printf("up, 10M"); break;
-   case SPEED_100: printf("up, 100M"); break;
-   case SPEED_1000: printf("up, 1000M"); break;
-   default: printf("unknown (%i)", ports[i]);
-  }
-  putchar('\n');
- }
- end:
- free(ports);
- return ret;
+bool do_ports_state (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       unsigned char *ports = NULL;
+       bool ret = true;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ports = malloc(sa->ports * sizeof(unsigned char));
+       i = ngadmin_getPortsStatus(nga, ports);
+       if (i < 0) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       for (i = 0; i < sa->ports; i++) {
+               printf("port %i: ", i + 1);
+               switch (ports[i]) {
+               
+               case 0:
+                       printf("down");
+                       break;
+               
+               case SPEED_10:
+                       printf("up, 10M");
+                       break;
+               
+               case SPEED_100:
+                       printf("up, 100M");
+                       break;
+               
+               case SPEED_1000:
+                       printf("up, 1000M");
+                       break;
+               
+               default:
+                       printf("unknown (%i)", ports[i]);
+               }
+               putchar('\n');
+       }
+       
+end:
+       free(ports);
+       
+       
+       return ret;
 }
 
 
-
-bool do_ports_statistics_reset (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- if ( ngadmin_getCurrentSwitch(nga)==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_resetPortsStatistics(nga);
- printErrCode(i);
- return true;
+bool do_ports_statistics_reset (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       
+       if (ngadmin_getCurrentSwitch(nga) == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       i = ngadmin_resetPortsStatistics(nga);
+       printErrCode(i);
+       
+       return true;
 }
 
 
-
-bool do_ports_statistics_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- bool ret=true;
- struct port_stats *ps=NULL;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ps=calloc(sa->ports, sizeof(struct port_stats));
- if ( (i=ngadmin_getPortsStatistics(nga, ps))<0 ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- printf("Port\tReceived\tSent\tCRC errors\n");
- for (i=0; i<sa->ports; ++i) {
-  printf("% 4i%12llu%12llu%14llu\n", i+1, ps[i].recv, ps[i].sent, ps[i].crc);
- }
- end:
- free(ps);
- return ret;
+bool do_ports_statistics_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       bool ret = true;
+       struct port_stats *ps = NULL;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ps = calloc(sa->ports, sizeof(struct port_stats));
+       i = ngadmin_getPortsStatistics(nga, ps);
+       if (i < 0) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       printf("Port\tReceived\tSent\tCRC errors\n");
+       for (i = 0; i < sa->ports; i++)
+               printf("% 4i%12llu%12llu%14llu\n", i + 1, ps[i].recv, ps[i].sent, ps[i].crc);
+       
+end:
+       free(ps);
+       
+       return ret;
 }
 
 
-
index b6904247a1c7fa35795e171b6ce619483371cfb2..4adf9b61c378fca6e7423910295e0f25debae7c8 100644 (file)
 #include "commands.h"
 
 
-
-
-bool do_qos_mode (int nb, const char **com, struct ngadmin *nga) {
- int i, s, ret=true;
- const struct swi_attr *sa;
- if ( nb==0 ) {
-  printf("Usage: qos mode port|802.1p\n");
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- if ( strcasecmp(com[0], "port")==0 ) {
-  s=QOS_PORT;
- } else if ( strcasecmp(com[0], "802.1p")==0 ) {
-  s=QOS_DOT;
- } else {
-  printf("Unknown QOS mode\n");
-  ret=false;
-  goto end;
- }
- i=ngadmin_setQOSMode(nga, s);
- printErrCode(i);
- end:
- return ret;
+bool do_qos_mode (int nb, const char **com, struct ngadmin *nga)
+{
+       int i, s, ret = true;
+       const struct swi_attr *sa;
+       
+       
+       if (nb == 0) {
+               printf("Usage: qos mode port|802.1p\n");
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       if (strcasecmp(com[0], "port") == 0) {
+               s = QOS_PORT;
+       } else if (strcasecmp(com[0], "802.1p") == 0) {
+               s = QOS_DOT;
+       } else {
+               printf("Unknown QOS mode\n");
+               ret = false;
+               goto end;
+       }
+       
+       i = ngadmin_setQOSMode(nga, s);
+       printErrCode(i);
+       
+end:
+       
+       return ret;
 }
 
 
-
-bool do_qos_set (int nb, const char **com, struct ngadmin *nga) {
- int i, p;
- const struct swi_attr *sa;
- bool ret=true;
- char d=PRIO_UNSPEC, *ports=NULL;
- if ( nb<2 ) {
-  printf("Usage: qos set (all <prio0>)|(<port1> <prio1> [<port2> <prio2> ...])\n");
-  ret=false;
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc(sa->ports*sizeof(char));
- if ( strcmp(com[0], "all")==0 ) {
-  d=parsePrio(com[1]);
-  com+=2;
-  nb-=2;
- }
- for (i=0; i<sa->ports; ++i) {
-  ports[i]=d;
- }
- for (i=0; i<nb; i+=2) {
-  if ( (p=strtol(com[i], NULL, 0))<1 || p>sa->ports ) continue;
-  ports[p-1]=parsePrio(com[i+1]);
- }
- i=ngadmin_setQOSValues(nga, ports);
- printErrCode(i);
- end:
- free(ports);
- return ret;
+bool do_qos_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i, p;
+       const struct swi_attr *sa;
+       bool ret = true;
+       char d = PRIO_UNSPEC, *ports = NULL;
+       
+       
+       if (nb < 2) {
+               printf("Usage: qos set (all <prio0>)|(<port1> <prio1> [<port2> <prio2> ...])\n");
+               ret = false;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa ==NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ports = malloc(sa->ports * sizeof(char));
+       
+       if (strcmp(com[0], "all") == 0) {
+               d = parsePrio(com[1]);
+               com += 2;
+               nb -= 2;
+       }
+       
+       for (i = 0; i < sa->ports; i++)
+               ports[i] = d;
+       
+       for (i = 0; i < nb; i += 2) {
+               p = strtol(com[i], NULL, 0);
+               if (p < 1 || p > sa->ports)
+                       continue;
+               ports[p - 1] = parsePrio(com[i + 1]);
+       }
+       
+       i = ngadmin_setQOSValues(nga, ports);
+       printErrCode(i);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
-bool do_qos_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i, s=0, ret=true;
- const struct swi_attr *sa;
- char *ports=NULL;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- if ( (i=ngadmin_getQOSMode(nga, &s))!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- printf("QoS mode: ");
- if ( s==QOS_DOT ) {
-  printf("802.1p\n");
-  goto end;
- } else if ( s!=QOS_PORT ) {
-  printf("unknown (%i)\n", s);
-  goto end;
- }
- printf("port based\n");
- ports=malloc(sa->ports*sizeof(char));
- if ( (i=ngadmin_getQOSValues(nga, ports))!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- for (i=0; i<sa->ports; ++i) {
-  printf("port %i: %s\n", i+1, prio[(int)ports[i]]);
- }
- end:
- free(ports);
- return ret;
+bool do_qos_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i, s = 0, ret = true;
+       const struct swi_attr *sa;
+       char *ports = NULL;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       i = ngadmin_getQOSMode(nga, &s);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       printf("QoS mode: ");
+       switch (s) {
+       
+       case QOS_DOT:
+               printf("802.1p\n");
+               goto end;
+       
+       case QOS_PORT:
+               printf("port based\n");
+               break;
+               
+       default:
+               printf("unknown (%i)\n", s);
+               goto end;
+       }
+       
+       ports = malloc(sa->ports * sizeof(char));
+       i = ngadmin_getQOSValues(nga, ports);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       for (i = 0; i < sa->ports; i++)
+               printf("port %i: %s\n", i + 1, prio[(int)ports[i]]);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
-
index 64c7824fe59a1855961dec5054187ec957544933..96cb0690099f2730d56d15ee1d75a5c8f5b30245 100644 (file)
@@ -2,13 +2,11 @@
 #include "commands.h"
 
 
-
-bool do_quit (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED) {
- cont=0;
- return true;
+bool do_quit (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED)
+{
+       cont = 0;
+       
+       return true;
 }
 
 
index 8ad5845d04670c18cb5635c94755f1504379bb02..9c001d1aebc249c4ec6f9389aab498e665f139ec 100644 (file)
@@ -2,34 +2,31 @@
 #include "commands.h"
 
 
-
-bool do_restart (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED) {
- int i, ret=true;
- const struct swi_attr *sa;
- char line[16];
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- printf("The switch will be restarted. Continue ? [y/N]: ");
- fflush(stdout);
- if ( fgets(line, sizeof(line), stdin)!=NULL && strcasecmp(line, "y\n")==0 ) {
-  i=ngadmin_restart(nga);
-  printErrCode(i);
- }
- end:
- return ret;
+bool do_restart (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED)
+{
+       int i, ret = true;
+       const struct swi_attr *sa;
+       char line[16];
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       printf("The switch will be restarted. Continue ? [y/N]: ");
+       fflush(stdout);
+       
+       if (fgets(line, sizeof(line), stdin) != NULL && strcasecmp(line, "y\n") == 0) {
+               i = ngadmin_restart(nga);
+               printErrCode(i);
+       }
+       
+end:
+       
+       return ret;
 }
 
 
index 98744ffc36eb7782b21a6366a9414655104c7dd6..9d9bb136b0efc5514727ba9c97eb8fb8b6513ba3 100644 (file)
@@ -2,24 +2,23 @@
 #include "commands.h"
 
 
-
-bool do_scan (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- if ( (i=ngadmin_scan(nga))<0 ) {
-  printErrCode(i);
-  return false;
- }
- sa=ngadmin_getSwitchTab(nga, &nb);
- displaySwitchTab(sa, nb);
- return true;
+bool do_scan (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       
+       
+       i = ngadmin_scan(nga);
+       if (i < 0) {
+               printErrCode(i);
+               return false;
+       }
+       
+       sa = ngadmin_getSwitchTab(nga, &nb);
+       displaySwitchTab(sa, nb);
+       
+       
+       return true;
 }
 
 
index 88afdae51c8c7a7ce9ba20b021d328a5e8114feb..76076bfe517c0838be0d556b5ea6643ef5c0ffd1 100644 (file)
 #include "commands.h"
 
 
-
-bool do_stormfilter_enable (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_setStormFilterState(nga, 1);
- printErrCode(i);
- return true;
+bool do_stormfilter_enable (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       i = ngadmin_setStormFilterState(nga, 1);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_stormfilter_disable (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i;
- const struct swi_attr *sa;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- i=ngadmin_setStormFilterState(nga, 0);
- printErrCode(i);
- return true;
+bool do_stormfilter_disable (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i;
+       const struct swi_attr *sa;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       i = ngadmin_setStormFilterState(nga, 0);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_stormfilter_set (int nb, const char **com, struct ngadmin *nga) {
- int i, d=BITRATE_UNSPEC, p, *ports=NULL;
- const struct swi_attr *sa;
- bool ret=true;
- if ( nb<2 ) {
-  printf("Usage: stormfilt set (all <speed0>)|(<port1> <speed1> [<port2> <speed2> ...])\n");
-  ret=false;
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc(sa->ports*sizeof(int));
- if ( strcmp(com[0], "all")==0 ) {
-  d=parseBitrate(com[1]);
-  com+=2;
-  nb-=2;
- }
- for (i=0; i<sa->ports; ++i) {
-  ports[i]=d;
- }
- for (i=0; i<nb; i+=2) {
-  if ( (p=strtol(com[i], NULL, 0))<1 || p>sa->ports ) continue;
-  ports[p-1]=parseBitrate(com[i+1]);
- }
- i=ngadmin_setStormFilterValues(nga, ports);
- printErrCode(i);
- end:
- free(ports);
- return ret;
+bool do_stormfilter_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int i, d = BITRATE_UNSPEC, p, *ports = NULL;
+       const struct swi_attr *sa;
+       bool ret = true;
+       
+       
+       if (nb < 2) {
+               printf("Usage: stormfilt set (all <speed0>)|(<port1> <speed1> [<port2> <speed2> ...])\n");
+               ret = false;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ports=malloc(sa->ports * sizeof(int));
+       
+       if (strcmp(com[0], "all") == 0) {
+               d = parseBitrate(com[1]);
+               com += 2;
+               nb -= 2;
+       }
+       
+       for (i = 0; i < sa->ports; i++)
+               ports[i] = d;
+       
+       for (i = 0; i < nb; i += 2) {
+               p = strtol(com[i], NULL, 0);
+               if (p < 1 || p > sa->ports)
+                       continue;
+               ports[p - 1] = parseBitrate(com[i + 1]);
+       }
+       
+       i = ngadmin_setStormFilterValues(nga, ports);
+       printErrCode(i);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
-bool do_stormfilter_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i, s, ret=true, *ports=NULL;
- const struct swi_attr *sa;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- if ( (i=ngadmin_getStormFilterState(nga, &s))!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- if ( !s ) {
-  printf("storm filter is disabled\n");
-  goto end;
- }
- printf("storm filter is enabled\n");
- ports=malloc(sa->ports*sizeof(int));
- if ( (i=ngadmin_getStormFilterValues(nga, ports))!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- for (i=0; i<sa->ports; ++i) {
-  printf("port %i: %s\n", i+1, bitrates[ports[i]]);
- }
- end:
- free(ports);
- return ret;
+bool do_stormfilter_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i, s, ret = true, *ports = NULL;
+       const struct swi_attr *sa;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       i = ngadmin_getStormFilterState(nga, &s);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       if (!s) {
+               printf("storm filter is disabled\n");
+               goto end;
+       }
+       
+       printf("storm filter is enabled\n");
+       
+       ports = malloc(sa->ports * sizeof(int));
+       i = ngadmin_getStormFilterValues(nga, ports);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       for (i = 0; i < sa->ports; i++)
+               printf("port %i: %s\n", i + 1, bitrates[ports[i]]);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
index 200ac41eac9ac1eeb13297cfecacb3ca2684de7b..cad5d5725d2bb96bb015be06620db2112580186f 100644 (file)
@@ -2,41 +2,29 @@
 #include "commands.h"
 
 
-
-
-static void display_node (const struct TreeNode *tn, int depth) {
- int i;
- const struct TreeNode *s;
- for (i=0; i<depth; ++i) {
-  putchar('\t');
- }
- puts(tn->name);
- if ( tn->sub==NULL ) return;
- for (s=tn->sub; s->name!=NULL; ++s) {
-  display_node(s, depth+1);
- }
+static void display_node (const struct TreeNode *tn, int depth)
+{
+       int i;
+       const struct TreeNode *s;
+       
+       
+       for (i = 0; i < depth; i++)
+               putchar('\t');
+       puts(tn->name);
+       
+       if (tn->sub == NULL)
+               return;
+       
+       for (s = tn->sub; s->name != NULL; s++)
+               display_node(s, depth + 1);
 }
 
 
-
-bool do_tree (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED) {
- display_node(&coms, 0);
- return true;
+bool do_tree (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga UNUSED)
+{
+       display_node(&coms, 0);
+       
+       return true;
 }
 
 
-
-
index 90bbfcaf3cbd9dd04b27d3c5d86e500a13a8b78c..0f7014e9c175bb0d22e6d9bc439d9cab4d2cdac7 100644 (file)
 
 
 
-
-static char vlan_char (int t) {
- switch ( t ) {
-  case VLAN_TAGGED: return 'T';
-  case VLAN_UNTAGGED: return 'U'; 
-  case VLAN_NO: return ' ';
-  default: return '?';
- }
+static char vlan_char (int t)
+{
+       switch (t) {
+       
+       case VLAN_TAGGED:
+               return 'T';
+       
+       case VLAN_UNTAGGED:
+               return 'U';
+       
+       case VLAN_NO:
+               return ' ';
+       
+       default:
+               return '?';
+       }
 }
 
 
-
-bool do_vlan_8021q_del (int nb, const char **com, struct ngadmin *nga) {
- const struct swi_attr *sa;
- unsigned short vlan;
- int i;
- if ( nb!=1 ) {
-  printf("Usage: vlan 8021q del <vlan>\n");
-  return false;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- vlan=strtoul(com[0], NULL, 0);
- if ( vlan<1 || vlan>VLAN_MAX ) {
-  printf("vlan out of range\n");
-  return false;
- }
- i=ngadmin_VLANDestroy(nga, vlan);
- printErrCode(i);
- return true;
+bool do_vlan_8021q_del (int nb, const char **com, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       unsigned short vlan;
+       int i;
+       
+       
+       if (nb != 1) {
+               printf("Usage: vlan 8021q del <vlan>\n");
+               return false;
+       }
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       vlan=strtoul(com[0], NULL, 0);
+       if (vlan < 1 || vlan > VLAN_MAX) {
+               printf("vlan out of range\n");
+               return false;
+       }
+       
+       i = ngadmin_VLANDestroy(nga, vlan);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_vlan_8021q_set (int nb, const char **com, struct ngadmin *nga) {
- unsigned char *ports=NULL, p, def=VLAN_UNSPEC;
- const struct swi_attr *sa;
- bool ret=true;
- unsigned short vlan;
- int i, k=0;
- if ( nb==0 ) {
-  printf("Usage: vlan 802.1q set <vlan> [all unspec|no|untagged|tagged] [<port1> unspec|no|untagged|tagged ...]\n");
-  ret=false;
-  goto end;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- // read vlan
- vlan=strtoul(com[k++], NULL, 0);
- if ( vlan<1 || vlan>VLAN_MAX ) {
-  printf("vlan out of range\n");
-  ret=false;
-  goto end;
- }
- // read defaults
- if ( k<nb-1 && strcasecmp(com[k], "all")==0 ) {
-  ++k;
-  if ( strcasecmp(com[k], "tagged")==0 ) def=VLAN_TAGGED;
-  else if ( strcasecmp(com[k], "untagged")==0 ) def=VLAN_UNTAGGED;
-  else if ( strcasecmp(com[k], "no")==0 ) def=VLAN_NO;
-  else if ( strcasecmp(com[k], "unspec")==0 ) def=VLAN_UNSPEC;
-  else {
-   printf("incorrect type\n");
-   ret=false;
-   goto end;
-  }
-  ++k;
- }
- ports=malloc(sa->ports*sizeof(unsigned char));
- // apply defaults
- memset(ports, def, sa->ports);
- // apply port specifics
- while ( k<nb-1 ) {
-  p=strtoul(com[k++], NULL, 0)-1;
-  if ( p>=sa->ports ) {
-   printf("port out of range\n");
-   ret=false;
-   goto end;
-  }
-  if ( strcasecmp(com[k], "tagged")==0 ) ports[p]=VLAN_TAGGED;
-  else if ( strcasecmp(com[k], "untagged")==0 ) ports[p]=VLAN_UNTAGGED;
-  else if ( strcasecmp(com[k], "no")==0 ) ports[p]=VLAN_NO;
-  else if ( strcasecmp(com[k], "unspec")==0 ) ports[p]=VLAN_UNSPEC;
-  else {
-   printf("incorrect type\n");
-   ret=false;
-   goto end;
-  }
-  ++k;
- }
- // set conf
- i=ngadmin_setVLANDotConf(nga, vlan, ports);
- printErrCode(i);
- end:
- free(ports);
- return ret;
+bool do_vlan_8021q_set (int nb, const char **com, struct ngadmin *nga)
+{
+       unsigned char *ports = NULL, p, def = VLAN_UNSPEC;
+       const struct swi_attr *sa;
+       bool ret = true;
+       unsigned short vlan;
+       int i, k = 0;
+       
+       
+       if (nb == 0) {
+               printf("Usage: vlan 802.1q set <vlan> [all unspec|no|untagged|tagged] [<port1> unspec|no|untagged|tagged ...]\n");
+               ret = false;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       /* read vlan */
+       vlan = strtoul(com[k++], NULL, 0);
+       
+       if (vlan < 1 || vlan > VLAN_MAX) {
+               printf("vlan out of range\n");
+               ret = false;
+               goto end;
+       }
+       
+       /* read defaults */
+       if (k < nb - 1 && strcasecmp(com[k], "all") == 0) {
+               k++;
+               if (strcasecmp(com[k], "tagged") == 0) {
+                       def = VLAN_TAGGED;
+               } else if (strcasecmp(com[k], "untagged") == 0) {
+                       def = VLAN_UNTAGGED;
+               } else if (strcasecmp(com[k], "no") == 0) {
+                       def = VLAN_NO;
+               } else if (strcasecmp(com[k], "unspec") == 0) {
+                       def = VLAN_UNSPEC;
+               } else {
+                       printf("incorrect type\n");
+                       ret = false;
+                       goto end;
+               }
+               k++;
+       }
+       
+       ports = malloc(sa->ports * sizeof(unsigned char));
+       
+       /* apply defaults */
+       memset(ports, def, sa->ports);
+       
+       /* apply port specifics */
+       while (k < nb - 1) {
+               p = strtoul(com[k++], NULL, 0) - 1;
+               if (p >= sa->ports) {
+                       printf("port out of range\n");
+                       ret = false;
+                       goto end;
+               }
+               if (strcasecmp(com[k], "tagged") ==0) {
+                       ports[p] = VLAN_TAGGED;
+               } else if (strcasecmp(com[k], "untagged") == 0) {
+                       ports[p] = VLAN_UNTAGGED;
+               } else if (strcasecmp(com[k], "no") == 0) {
+                       ports[p] = VLAN_NO;
+               } else if (strcasecmp(com[k], "unspec") == 0) {
+                       ports[p] = VLAN_UNSPEC;
+               } else {
+                       printf("incorrect type\n");
+                       ret = false;
+                       goto end;
+               }
+               k++;
+       }
+       
+       /* set conf */
+       i = ngadmin_setVLANDotConf(nga, vlan, ports);
+       printErrCode(i);
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
-
-bool do_vlan_8021q_show (int nb, const char **com, struct ngadmin *nga) {
- unsigned short vl=0, *vlans=NULL;
- unsigned char *ports=NULL;
- const struct swi_attr *sa;
- int i, j, n=16;
- bool ret=true;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- if ( nb>0 ) {
-  vl=strtoul(com[0], NULL, 0);
- }
- ports=malloc(sa->ports*n*sizeof(unsigned char));
- if ( vl==0 ) {
-  vlans=malloc(n*sizeof(unsigned short));
-  ports=malloc(sa->ports*n*sizeof(unsigned char));
-  i=ngadmin_getVLANDotAllConf(nga, vlans, ports, &n);
- } else {
-  ports=malloc(sa->ports*sizeof(unsigned char));
-  i=ngadmin_getVLANDotConf(nga, vl, ports);
- }
- if ( i!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- printf("Ports configuration: \n");
- printf("VLAN\t");
- for (i=1; i<=sa->ports; ++i) {
-  printf("%i\t", i);
- }
- putchar('\n');
- if ( vl==0 ) {
-  
-  for (i=0; i<n; ++i) {
-   printf("%u\t", vlans[i]);
-   for (j=0; j<sa->ports; ++j) {
-    printf("%c\t", vlan_char(ports[i*sa->ports+j]));
-   }
-   putchar('\n');
-  }
-  
- } else {
-  
-  printf("%u\t", vl);
-  for (j=0; j<sa->ports; ++j) {
-   printf("%c\t", vlan_char(ports[j]));
-  }
-  putchar('\n');
-  
- }
- end:
- free(vlans);
- free(ports);
- return ret;
+bool do_vlan_8021q_show (int nb, const char **com, struct ngadmin *nga)
+{
+       unsigned short vl = 0, *vlans = NULL;
+       unsigned char *ports = NULL;
+       const struct swi_attr *sa;
+       int i, j, n = 16;
+       bool ret = true;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       if (nb > 0)
+               vl = strtoul(com[0], NULL, 0);
+       
+       ports = malloc(sa->ports * n * sizeof(unsigned char));
+       
+       if (vl == 0) {
+               /* request all VLANs config */
+               vlans = malloc(n * sizeof(unsigned short));
+               ports = malloc(sa->ports * n * sizeof(unsigned char));
+               i = ngadmin_getVLANDotAllConf(nga, vlans, ports, &n);
+       } else {
+               /* request single VLAN config */
+               ports = malloc(sa->ports * sizeof(unsigned char));
+               i = ngadmin_getVLANDotConf(nga, vl, ports);
+       }
+       
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       printf("Ports configuration: \n");
+       printf("VLAN\t");
+       for (i = 1; i <= sa->ports; i++)
+               printf("%i\t", i);
+       putchar('\n');
+       
+       if (vl == 0) {
+               /* show all VLANs */
+               for (i = 0; i < n; i++) {
+                       printf("%u\t", vlans[i]);
+                       for (j = 0; j < sa->ports; j++)
+                               printf("%c\t", vlan_char(ports[i * sa->ports + j]));
+                       putchar('\n');
+               }
+       } else {
+               /* show single VLAN config */
+               printf("%u\t", vl);
+               for (j = 0; j < sa->ports; j++)
+                       printf("%c\t", vlan_char(ports[j]));
+               putchar('\n');
+       }
+       
+end:
+       free(vlans);
+       free(ports);
+       
+       return ret;
 }
 
 
-
-bool do_vlan_mode_set (int nb, const char **com, struct ngadmin *nga) {
- int mode, i;
- if ( nb==0 ) {
-  printf("Usage: vlan mode set <mode>\n");
-  printf("1 - basic port based\n");
-  printf("2 - advanced port based\n");
-  printf("3 - basic 802.1Q\n");
-  printf("4 - advanced 802.1Q\n");
-  return true;
- }
- if ( ngadmin_getCurrentSwitch(nga)==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- mode=strtoul(com[0], NULL, 0);
- if ( mode<1 || mode>4 ) {
-  printf("mode out of range\n");
-  return false;
- }
- i=ngadmin_setVLANType(nga, mode);
- printErrCode(i);
- return true;
+bool do_vlan_mode_set (int nb, const char **com, struct ngadmin *nga)
+{
+       int mode, i;
+       
+       
+       if (nb == 0) {
+               printf(
+               "Usage: vlan mode set <mode>\n"
+               "1 - basic port based\n"
+               "2 - advanced port based\n"
+               "3 - basic 802.1Q\n"
+               "4 - advanced 802.1Q\n"
+               );
+               return true;
+       }
+       
+       if (ngadmin_getCurrentSwitch(nga) == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       mode = strtoul(com[0], NULL, 0);
+       if (mode < 1 || mode > 4) {
+               printf("mode out of range\n");
+               return false;
+       }
+       
+       i = ngadmin_setVLANType(nga, mode);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_vlan_mode_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- int i, t, ret=true;
- if ( ngadmin_getCurrentSwitch(nga)==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- if ( (i=ngadmin_getVLANType(nga, &t))!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- printf("VLAN type: ");
- switch ( t ) {
-  case VLAN_DISABLED: printf("disabled\n"); break;
-  case VLAN_PORT_BASIC: printf("port basic\n"); break;
-  case VLAN_PORT_ADV: printf("port advanced\n"); break;
-  case VLAN_DOT_BASIC: printf("802.1Q basic\n"); break;
-  case VLAN_DOT_ADV:printf("802.1Q advanced\n");break;
-  default: printf("unknown (%i)\n", t);
- }
- end:
- return ret;
+bool do_vlan_mode_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       int i, t, ret = true;
+       
+       
+       if (ngadmin_getCurrentSwitch(nga) == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       i = ngadmin_getVLANType(nga, &t);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       printf("VLAN type: ");
+       switch (t) {
+       
+       case VLAN_DISABLED:
+               printf("disabled\n");
+               break;
+       
+       case VLAN_PORT_BASIC:
+               printf("port basic\n");
+               break;
+       
+       case VLAN_PORT_ADV:
+               printf("port advanced\n");
+               break;
+       
+       case VLAN_DOT_BASIC:
+               printf("802.1Q basic\n");
+               break;
+       
+       case VLAN_DOT_ADV:
+               printf("802.1Q advanced\n");
+               break;
+       
+       default:
+               printf("unknown (%i)\n", t);
+       }
+       
+end:
+       
+       return ret;
 }
 
 
-
-bool do_vlan_pvid_set (int nb, const char **com, struct ngadmin *nga) {
- const struct swi_attr *sa;
- unsigned char port;
- unsigned short vlan;
- int i;
- if ( nb!=2 ) {
-  printf("Usage: vlan pvid set <port> <vlan>\n");
-  return false;
- }
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  return false;
- }
- port=strtoul(com[0], NULL, 0);
- vlan=strtoul(com[1], NULL, 0);
- if ( port<1 || port>sa->ports ) {
-  printf("port out of range\n");
-  return false;
- }
- if ( vlan<1 || vlan>VLAN_MAX ) {
-  printf("vlan out of range\n");
-  return false;
- }
- i=ngadmin_setPVID(nga, port, vlan);
- printErrCode(i);
- return true;
+bool do_vlan_pvid_set (int nb, const char **com, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       unsigned char port;
+       unsigned short vlan;
+       int i;
+       
+       
+       if (nb != 2) {
+               printf("Usage: vlan pvid set <port> <vlan>\n");
+               return false;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               return false;
+       }
+       
+       port = strtoul(com[0], NULL, 0);
+       vlan = strtoul(com[1], NULL, 0);
+       
+       if (port < 1 || port > sa->ports) {
+               printf("port out of range\n");
+               return false;
+       }
+       
+       if (vlan < 1 || vlan > VLAN_MAX) {
+               printf("vlan out of range\n");
+               return false;
+       }
+       
+       i = ngadmin_setPVID(nga, port, vlan);
+       printErrCode(i);
+       
+       
+       return true;
 }
 
 
-
-bool do_vlan_pvid_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga) {
- unsigned short *ports=NULL;
- const struct swi_attr *sa;
- int i;
- bool ret=true;
- if ( (sa=ngadmin_getCurrentSwitch(nga))==NULL ) {
-  printf("must be logged\n");
-  ret=false;
-  goto end;
- }
- ports=malloc(sa->ports*sizeof(unsigned short));
- i=ngadmin_getAllPVID(nga, ports);
- if ( i!=ERR_OK ) {
-  printErrCode(i);
-  ret=false;
-  goto end;
- }
- printf("Port\t");
- for (i=1; i<=sa->ports; ++i) {
-  printf("%i\t", i);
- }
- putchar('\n');
- printf("VLAN\t");
- for (i=0; i<sa->ports; ++i) {
-  printf("%u\t", ports[i]);
- }
- putchar('\n');
- end:
- free(ports);
- return ret;
+bool do_vlan_pvid_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
+{
+       unsigned short *ports = NULL;
+       const struct swi_attr *sa;
+       int i;
+       bool ret = true;
+       
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = false;
+               goto end;
+       }
+       
+       ports = malloc(sa->ports * sizeof(unsigned short));
+       i = ngadmin_getAllPVID(nga, ports);
+       if (i != ERR_OK) {
+               printErrCode(i);
+               ret = false;
+               goto end;
+       }
+       
+       printf("Port\t");
+       for (i = 1; i <= sa->ports; i++)
+               printf("%i\t", i);
+       putchar('\n');
+       
+       printf("VLAN\t");
+       for (i = 0; i < sa->ports; i++)
+               printf("%u\t", ports[i]);
+       putchar('\n');
+       
+end:
+       free(ports);
+       
+       return ret;
 }
 
 
index df13a580af0f1a966ce0a52492fcf08ae6b1006b..f0bf9a31eadfe57c2af8670f2856bd03a5257de2 100644 (file)
 #include "commands.h"
 
 
-
-
-// bitrate
+/* bitrate */
 bool do_bitrate_set (int nb, const char **com, struct ngadmin *nga);
 bool do_bitrate_show (int nb, const char **com, struct ngadmin *nga);
 
 
-// cabletest
+/* cabletest */
 bool do_cabletest (int nb, const char **com, struct ngadmin *nga);
 
 
-// defaults
+/* defaults */
 bool do_defaults (int nb, const char **com, struct ngadmin *nga);
 
 
-// firmware
+/* firmware */
 bool do_firmware_show (int nb, const char **com, struct ngadmin *nga);
 bool do_firmware_upgrade (int nb, const char **com, struct ngadmin *nga);
 
 
-// help
+/* help */
 bool do_help (int nb, const char **com, struct ngadmin *nga);
 
 
-// igmp
+/* igmp */
 bool do_igmp_set (int nb, const char **com, struct ngadmin *nga);
 bool do_igmp_show (int nb, const char **com, struct ngadmin *nga);
 
 
-// list
+/* list */
 bool do_list (int nb, const char **com, struct ngadmin *nga);
 
 
-// login
+/* login */
 bool do_login (int nb, const char **com, struct ngadmin *nga);
 
 
-// mirror
+/* mirror */
 bool do_mirror_disable (int nb, const char **com, struct ngadmin *nga);
 bool do_mirror_set (int nb, const char **com, struct ngadmin *nga);
 bool do_mirror_show (int nb, const char **com, struct ngadmin *nga);
 
 
-// name
+/* name */
 bool do_name_show (int nb, const char **com, struct ngadmin *nga);
 bool do_name_set (int nb, const char **com, struct ngadmin *nga);
 bool do_name_clear (int nb, const char **com, struct ngadmin *nga);
 
 
-// netconf
+/* netconf */
 bool do_netconf_set (int nb, const char **com, struct ngadmin *nga);
 
 
-// password
+/* password */
 bool do_password_change (int nb, const char **com, struct ngadmin *nga);
 bool do_password_set (int nb, const char **com, struct ngadmin *nga);
 
 
-// ports
+/* ports */
 bool do_ports_state (int nb, const char **com, struct ngadmin *nga);
 bool do_ports_statistics_reset (int nb, const char **com, struct ngadmin *nga);
 bool do_ports_statistics_show (int nb, const char **com, struct ngadmin *nga);
 
 
-// qos
+/* qos */
 bool do_qos_mode (int nb, const char **com, struct ngadmin *nga);
 bool do_qos_set (int nb, const char **com, struct ngadmin *nga);
 bool do_qos_show (int nb, const char **com, struct ngadmin *nga);
 
 
-// quit
+/* quit */
 bool do_quit (int nb, const char **com, struct ngadmin *nga);
 
 
-// restart
+/* restart */
 bool do_restart (int nb, const char **com, struct ngadmin *nga);
 
 
-// scan
+/* scan */
 bool do_scan (int nb, const char **com, struct ngadmin *nga);
 
 
-// stormfilter
+/* stormfilter */
 bool do_stormfilter_enable (int nb, const char **com, struct ngadmin *nga);
 bool do_stormfilter_disable (int nb, const char **com, struct ngadmin *nga);
 bool do_stormfilter_set (int nb, const char **com, struct ngadmin *nga);
 bool do_stormfilter_show (int nb, const char **com, struct ngadmin *nga);
 
 
-// tree
+/* tree */
 bool do_tree (int nb, const char **com, struct ngadmin *nga);
 
 
-// vlan
+/* vlan */
 bool do_vlan_8021q_del (int nb, const char **com, struct ngadmin *nga);
 bool do_vlan_8021q_set (int nb, const char **com, struct ngadmin *nga);
 bool do_vlan_8021q_show (int nb, const char **com, struct ngadmin *nga);
@@ -105,106 +103,102 @@ bool do_vlan_pvid_set (int nb, const char **com, struct ngadmin *nga);
 bool do_vlan_pvid_show (int nb, const char **com, struct ngadmin *nga);
 
 
-
-// commands structure
+/* commands structure */
 COM_ROOT_START(coms)
- COM_START(bitrate)
-  COM_TERM(set, do_bitrate_set, true)
-  COM_TERM(show, do_bitrate_show, false)
- COM_END
- COM_TERM(cabletest, do_cabletest, true)
- COM_TERM(defaults, do_defaults, false)
- COM_START(firmware)
-  COM_TERM(show, do_firmware_show, false)
-  COM_TERM(upgrade, do_firmware_upgrade, true)
- COM_END
- COM_TERM(help, do_help, false)
- COM_START(igmp)
-  COM_TERM(set, do_igmp_set, true)
-  COM_TERM(show, do_igmp_show, false)
- COM_END
- COM_TERM(list, do_list, false)
- COM_TERM(login, do_login, true)
- COM_START(mirror)
-  COM_TERM(disable, do_mirror_disable, false)
-  COM_TERM(set, do_mirror_set, true)
-  COM_TERM(show, do_mirror_show, false)
- COM_END
- COM_START(name)
-  COM_TERM(show, do_name_show, false)
-  COM_TERM(set, do_name_set, true)
-  COM_TERM(clear, do_name_clear, false)
- COM_END
- COM_START(netconf)
-  COM_TERM(set, do_netconf_set, true)
- COM_END
- COM_START(password)
-  COM_TERM(change, do_password_change, true)
-  COM_TERM(set, do_password_set, true)
- COM_END
- COM_START(ports)
-  COM_TERM(state, do_ports_state, false)
-  COM_START(statistics)
-   COM_TERM(reset, do_ports_statistics_reset, false)
-   COM_TERM(show, do_ports_statistics_show, false)
-  COM_END
- COM_END
- COM_START(qos)
-  COM_TERM(mode, do_qos_mode, true)
-  COM_TERM(set, do_qos_set, true)
-  COM_TERM(show, do_qos_show, false)
- COM_END
- COM_TERM(quit, do_quit, false)
- COM_TERM(restart, do_restart, false)
- COM_TERM(scan, do_scan, false)
- COM_START(stormfilter)
-  COM_TERM(enable, do_stormfilter_enable, false)
-  COM_TERM(disable, do_stormfilter_disable, false)
-  COM_TERM(set, do_stormfilter_set, true)
-  COM_TERM(show, do_stormfilter_show, false)
- COM_END
- COM_TERM(tree, do_tree, false)
- COM_START(vlan)
-  COM_START(802.1q)
-   COM_TERM(del, do_vlan_8021q_del, true)
-   COM_TERM(set, do_vlan_8021q_set, true)
-   COM_TERM(show, do_vlan_8021q_show, true)
-  COM_END
-  COM_START(mode)
-   COM_TERM(set, do_vlan_mode_set, true)
-   COM_TERM(show, do_vlan_mode_show, false)
-  COM_END
-  COM_START(port)
-   COM_TERM(set, NULL, true)
-   COM_TERM(show, NULL, false)
-  COM_END
-  COM_START(pvid)
-   COM_TERM(set, do_vlan_pvid_set, true)
-   COM_TERM(show, do_vlan_pvid_show, false)
-  COM_END
- COM_END
+       COM_START(bitrate)
+               COM_TERM(set, do_bitrate_set, true)
+               COM_TERM(show, do_bitrate_show, false)
+       COM_END
+       
+       COM_TERM(cabletest, do_cabletest, true)
+       
+       COM_TERM(defaults, do_defaults, false)
+       
+       COM_START(firmware)
+               COM_TERM(show, do_firmware_show, false)
+               COM_TERM(upgrade, do_firmware_upgrade, true)
+       COM_END
+       
+       COM_TERM(help, do_help, false)
+       
+       COM_START(igmp)
+               COM_TERM(set, do_igmp_set, true)
+               COM_TERM(show, do_igmp_show, false)
+       COM_END
+       
+       COM_TERM(list, do_list, false)
+       
+       COM_TERM(login, do_login, true)
+       
+       COM_START(mirror)
+               COM_TERM(disable, do_mirror_disable, false)
+               COM_TERM(set, do_mirror_set, true)
+               COM_TERM(show, do_mirror_show, false)
+       COM_END
+       
+       COM_START(name)
+               COM_TERM(show, do_name_show, false)
+               COM_TERM(set, do_name_set, true)
+               COM_TERM(clear, do_name_clear, false)
+       COM_END
+       
+       COM_START(netconf)
+               COM_TERM(set, do_netconf_set, true)
+       COM_END
+       
+       COM_START(password)
+               COM_TERM(change, do_password_change, true)
+               COM_TERM(set, do_password_set, true)
+       COM_END
+       
+       COM_START(ports)
+               COM_TERM(state, do_ports_state, false)
+               COM_START(statistics)
+                       COM_TERM(reset, do_ports_statistics_reset, false)
+                       COM_TERM(show, do_ports_statistics_show, false)
+               COM_END
+       COM_END
+       
+       COM_START(qos)
+               COM_TERM(mode, do_qos_mode, true)
+               COM_TERM(set, do_qos_set, true)
+               COM_TERM(show, do_qos_show, false)
+       COM_END
+       
+       COM_TERM(quit, do_quit, false)
+       
+       COM_TERM(restart, do_restart, false)
+       
+       COM_TERM(scan, do_scan, false)
+       
+       COM_START(stormfilter)
+               COM_TERM(enable, do_stormfilter_enable, false)
+               COM_TERM(disable, do_stormfilter_disable, false)
+               COM_TERM(set, do_stormfilter_set, true)
+               COM_TERM(show, do_stormfilter_show, false)
+       COM_END
+       
+       COM_TERM(tree, do_tree, false)
+       
+       COM_START(vlan)
+               COM_START(802.1q)
+                       COM_TERM(del, do_vlan_8021q_del, true)
+                       COM_TERM(set, do_vlan_8021q_set, true)
+                       COM_TERM(show, do_vlan_8021q_show, true)
+               COM_END
+               COM_START(mode)
+                       COM_TERM(set, do_vlan_mode_set, true)
+                       COM_TERM(show, do_vlan_mode_show, false)
+               COM_END
+               COM_START(port)
+                       COM_TERM(set, NULL, true)
+                       COM_TERM(show, NULL, false)
+               COM_END
+               COM_START(pvid)
+                       COM_TERM(set, do_vlan_pvid_set, true)
+                       COM_TERM(show, do_vlan_pvid_show, false)
+               COM_END
+       COM_END
 COM_ROOT_END
 
 
-
index 3877d9d650c1ba8631f974c7d5c607b13f642619..fa2ec667a60dd1f3aba1b0bebcf84158fce531fe 100644 (file)
@@ -6,26 +6,23 @@
 #include "common.h"
 
 
-
-
 struct TreeNode {
- const char *name;
- bool (* const comfunc)(int, const char**, struct ngadmin*);
- bool hasArgs;
- const struct TreeNode *sub;
      const char *name;
      bool (* const comfunc)(int, const char**, struct ngadmin*);
      bool hasArgs;
      const struct TreeNode *sub;
 };
 
 
-#define COM_ROOT_START(v)              const struct TreeNode v={.name="<root>", .comfunc=NULL, .hasArgs=false, .sub=(const struct TreeNode[]){
-#define COM_ROOT_END                   {.name=NULL, .comfunc=NULL, .hasArgs=false, .sub=NULL}}};
-#define COM_START(nam)                 {.name=#nam, .comfunc=NULL, .hasArgs=false, .sub=(const struct TreeNode[]){
-#define COM_END                                {.name=NULL, .comfunc=NULL, .hasArgs=false, .sub=NULL}}},
-#define COM_TERM(nam, func, args)      {.name=#nam, .comfunc=func, .hasArgs=args, .sub=NULL}, 
+#define COM_ROOT_START(v)              const struct TreeNode v = {.name = "<root>", .comfunc = NULL, .hasArgs = false, .sub = (const struct TreeNode[]){
+#define COM_ROOT_END                   {.name = NULL, .comfunc = NULL, .hasArgs = false, .sub = NULL}}};
+#define COM_START(nam)                 {.name = #nam, .comfunc = NULL, .hasArgs = false, .sub = (const struct TreeNode[]){
+#define COM_END                                {.name = NULL, .comfunc = NULL, .hasArgs = false, .sub = NULL}}},
+#define COM_TERM(nam, func, args)      {.name = #nam, .comfunc = func, .hasArgs = args, .sub = NULL}, 
 
 
 extern const struct TreeNode coms;
 
 
-
 #endif
 
index 4a5315c914aa879c395b0cc9157c137702cd29aa..80f3f522fc048981c595f2ad1d126c251cfb9c58 100644 (file)
 #include "common.h"
 
 
-
-
-void printErrCode (int err) {
- switch ( err ) {
-  case ERR_OK: /*printf("ok\n");*/ break;
-  case ERR_NET: printf("network error\n"); break;
-  case ERR_NOTLOG: printf("no switch selected\n"); break;
-  case ERR_DENIED: printf("access denied\n"); break;
-  case ERR_BADPASS: printf("wrong password\n"); break;
-  case ERR_BADID: printf("bad switch id\n"); break;
-  case ERR_INVARG: printf("invalid argument\n"); break;
-  case ERR_TIMEOUT: printf("timeout\n"); break;
-  case ERR_NOTIMPL: printf("not implemented\n"); break;
-  default: printf("unknown status code (%i)\n", err);
- }
+void printErrCode (int err)
+{
+       switch (err) {
+       case ERR_OK:
+               break;
+       
+       case ERR_NET:
+               printf("network error\n");
+               break;
+       
+       case ERR_NOTLOG:
+               printf("no switch selected\n");
+               break;
+       
+       case ERR_DENIED:
+               printf("access denied\n");
+               break;
+       
+       case ERR_BADPASS:
+               printf("wrong password\n");
+               break;
+       
+       case ERR_BADID:
+               printf("bad switch id\n");
+               break;
+       
+       case ERR_INVARG:
+               printf("invalid argument\n");
+               break;
+       
+       case ERR_TIMEOUT:
+               printf("timeout\n");
+               break;
+       
+       case ERR_NOTIMPL:
+               printf("not implemented\n");
+               break;
+       
+       default:
+               printf("unknown status code (%i)\n", err);
+       }
 }
 
 
-
-
-const char* bitrates[]={
- "nl", 
- "512K", 
- "1M", 
- "2M",  
- "4M", 
- "8M", 
- "16M", 
- "32M", 
- "64M", 
- "128M", 
- "256M", 
- "512M", 
- NULL
+const char* const bitrates[] = {
+       "nl",
+       "512K",
+       "1M",
+       "2M",
+       "4M",
+       "8M",
+       "16M",
+       "32M",
+       "64M",
+       "128M",
+       "256M",
+       "512M",
+       NULL
 };
 
 
-const char* prio[]={
- NULL, 
- "high", 
- "medium", 
- "normal", 
- "low", 
- NULL
+const char* const prio[]={
+       NULL,
+       "high",
+       "medium",
+       "normal",
+       "low",
      NULL
 };
 
 
-
-
-
-
-int parseBitrate (const char *s) {
- int i;
- for (i=0; bitrates[i]!=NULL && strcasecmp(bitrates[i], s)!=0; ++i);
- return i;
+int parseBitrate (const char *s)
+{
+       int i;
+       
+       for (i = 0; bitrates[i] != NULL && strcasecmp(bitrates[i], s) != 0; i++);
+       
+       return i;
 }
 
 
-
-char parsePrio (const char *s) {
- int i;
- for (i=1; prio[i]!=NULL && strcasecmp(prio[i], s)!=0; ++i);
- return (char)i;
+char parsePrio (const char *s)
+{
+       int i;
+       
+       for (i = 1; prio[i] != NULL && strcasecmp(prio[i], s) != 0; i++);
+       
+       return (char)i;
 }
 
 
-
-void displaySwitchTab (const struct swi_attr *sa, int nb) {
- int i=0;
- if ( nb==0 ) {
-  printf("no switch found\n");
-  return;
- }
- printf("Num\tMac\t\t\tProduct\t\tName\t\t\tIP/mask\t\t\tDHCP\tPorts\tFirmware\n");
- for (i=0; i<nb; ++i) {
-  printf("%i\t%s\t%s\t%s\t\t%s/", i, ether_ntoa(&sa[i].mac), sa[i].product, sa[i].name, inet_ntoa(sa[i].nc.ip));
-  printf("%s\t%s\t%i\t%s\n", inet_ntoa(sa[i].nc.netmask), ( sa[i].nc.dhcp ? "Yes" : "No" ), sa[i].ports, sa[i].firmware);
- }
- printf("\nfound %i switch(es)\n", nb);
+void displaySwitchTab (const struct swi_attr *sa, int nb)
+{
+       int i=0;
+       
+       if (nb == 0) {
+               printf("no switch found\n");
+               return;
+       }
+       
+       printf("Num\tMac\t\t\tProduct\t\tName\t\t\tIP/mask\t\t\tDHCP\tPorts\tFirmware\n");
+       
+       for (i = 0; i < nb; i++) {
+               printf("%i\t%s\t%s\t%s\t\t%s/", i, ether_ntoa(&sa[i].mac), sa[i].product, sa[i].name, inet_ntoa(sa[i].nc.ip));
+               printf("%s\t%s\t%i\t%s\n", inet_ntoa(sa[i].nc.netmask), ( sa[i].nc.dhcp ? "Yes" : "No" ), sa[i].ports, sa[i].firmware);
+       }
+       
+       printf("\nfound %i switch(es)\n", nb);
 }
 
 
-
-// ----------------------------
-int trim (char *txt, int start) {
- char *p, c;
- if ( txt==NULL ) {
-  return 0;
- }
- //for (p=txt; *p!=0; p++);
- p=txt+start;
- for (p--; p>=txt && ( (c=*p)==' ' || c=='\n' ); *p--=0);
- return p-txt+1;
+int trim (char *txt, int start)
+{
+       char *p;
+       
+       if (txt == NULL)
+               return 0;
+       
+       p = txt + start;
+       for (p--; p >= txt && (*p == ' ' || *p == '\n'); *p-- = 0);
+       
+       return p - txt + 1;
 }
 
 
-
-// --------------------------------------------------------
-int explode (const char *commande, char** tab, int maximum) {
- const char *start, *end;
- char c;
- int n=0, len;
- for (end=commande; ; n++) {
-  
-  for (start=end; (c=*start)==' ' && c!=0; start++);
-  for (end=start; ( (c=*end)!=' ' || n>=maximum-1 ) && c!=0; end++);
-  
-  if ( (len=end-start)==0 ) {
-   break;
-  }
-  
-  tab[n]=malloc(sizeof(char)*(len+1));
-  memcpy(tab[n], start, len);
-  tab[n][len]=0;
-  
- }
- return n;
+int explode (const char *commande, char** tab, int maximum)
+{
+       const char *start, *end;
+       int n = 0, len;
+       
+       
+       for (end = commande; ; n++) {
+               for (start = end; *start == ' ' && *start != 0; start++);
+               for (end = start; (*end != ' ' || n >= maximum - 1 ) && *end != 0; end++);
+               
+               len = end - start;
+               if (len == 0)
+                       break;
+               
+               tab[n] = malloc(sizeof(char) * (len + 1));
+               memcpy(tab[n], start, len);
+               tab[n][len] = 0;
+       }
+       
+       
+       return n;
 }
 
 
index c0e6cb81ecac5615c1dc068d8f6804a63b116eab..6533f05dfaeb9c2a17d66b8d40c76241781bd805 100644 (file)
 #define NORET                  __attribute__((noreturn))
 
 
-
 extern int cont;
 extern struct termios current_term;
 
 
-extern const char *bitrates[], *prio[];
+extern const char * const bitrates[], * const prio[];
 
 
 void displaySwitchTab (const struct swi_attr *sa, int nb);
@@ -30,13 +29,10 @@ int parseBitrate (const char *s);
 char parsePrio (const char *s);
 
 
-// 
 int trim (char *txt, int start);
 
-// 
 int explode (const char *commande, char** tab, int maximum);
 
 
-
 #endif