10 void printErrCode (int err) {
14 case ERR_OK: /*printf("ok\n");*/ break;
15 case ERR_NET: printf("network error\n"); break;
16 case ERR_NOTLOG: printf("no switch selected\n"); break;
17 case ERR_BADPASS: printf("wrong password\n"); break;
18 case ERR_BADID: printf("bad switch id\n"); break;
19 case ERR_INVARG: printf("invalid argument\n"); break;
20 case ERR_TIMEOUT: printf("timeout\n"); break;
21 case ERR_NOTIMPL: printf("not implemented\n"); break;
22 default: printf("unknown status code (%i)\n", err);
31 const char* bitrates[]={
58 int parseBitrate (const char *s) {
63 for (i=0; bitrates[i]!=NULL && strcasecmp(bitrates[i], s)!=0; ++i);
72 char parsePrio (const char *s) {
77 for (i=1; prio[i]!=NULL && strcasecmp(prio[i], s)!=0; ++i);
86 void displaySwitchTab (const struct swi_attr *sa, int nb) {
92 printf("no switch found\n");
97 printf("Num\tMac\t\t\tProduct\t\tName\t\t\tIP/mask\t\t\tDHCP\tPorts\tFirmware\n");
99 for (i=0; i<nb; ++i) {
100 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));
101 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);
104 printf("\nfound %i switch(es)\n", nb);
111 // ----------------------------
112 int trim (char *txt, int start) {
121 //for (p=txt; *p!=0; p++);
123 for (p--; p>=txt && ( (c=*p)==' ' || c=='\n' ); *p--=0);
132 // --------------------------------------------------------
133 int explode (const char *commande, char** tab, int maximum) {
135 const char *start, *end;
140 for (end=commande; ; n++) {
142 for (start=end; (c=*start)==' ' && c!=0; start++);
143 for (end=start; ( (c=*end)!=' ' || n>=maximum-1 ) && c!=0; end++);
145 if ( (len=end-start)==0 ) {
149 tab[n]=malloc(sizeof(char)*(len+1));
150 memcpy(tab[n], start, len);