]> git.sur5r.net Git - ngadmin/blob - cli/src/common.c
Add invalid operation error code
[ngadmin] / cli / src / common.c
1
2 #include "common.h"
3
4
5 void printErrCode (int err)
6 {
7         switch (err) {
8         case ERR_OK:
9                 break;
10         
11         case ERR_NET:
12                 printf("network error\n");
13                 break;
14         
15         case ERR_NOTLOG:
16                 printf("no switch selected\n");
17                 break;
18         
19         case ERR_DENIED:
20                 printf("access denied\n");
21                 break;
22         
23         case ERR_BADPASS:
24                 printf("wrong password\n");
25                 break;
26         
27         case ERR_BADID:
28                 printf("bad switch id\n");
29                 break;
30         
31         case ERR_INVARG:
32                 printf("invalid argument\n");
33                 break;
34         
35         case ERR_TIMEOUT:
36                 printf("timeout\n");
37                 break;
38         
39         case ERR_NOTIMPL:
40                 printf("not implemented\n");
41                 break;
42         
43         case ERR_BADREPLY:
44                 printf("bad reply from switch\n");
45                 break;
46         
47         case ERR_INVOP:
48                 printf("invalid operation\n");
49                 break;
50         
51         case ERR_UNKNOWN:
52                 printf("unknown error\n");
53                 break;
54         
55         default:
56                 printf("unknown status code (%i)\n", err);
57         }
58 }
59
60
61 const char* const bitrates[] = {
62         "nl",
63         "512K",
64         "1M",
65         "2M",
66         "4M",
67         "8M",
68         "16M",
69         "32M",
70         "64M",
71         "128M",
72         "256M",
73         "512M",
74         NULL
75 };
76
77
78 const char* const prio[]={
79         NULL,
80         "high",
81         "medium",
82         "normal",
83         "low",
84         NULL
85 };
86
87
88 int parseBitrate (const char *s)
89 {
90         int i;
91         
92         for (i = 0; bitrates[i] != NULL && strcasecmp(bitrates[i], s) != 0; i++);
93         
94         return i;
95 }
96
97
98 char parsePrio (const char *s)
99 {
100         int i;
101         
102         for (i = 1; prio[i] != NULL && strcasecmp(prio[i], s) != 0; i++);
103         
104         return (char)i;
105 }
106
107
108 void displaySwitchTab (const struct swi_attr *sa, int nb)
109 {
110         int i=0;
111         
112         if (nb == 0) {
113                 printf("no switch found\n");
114                 return;
115         }
116         
117         printf("Num\tMac\t\t\tProduct\t\tName\t\t\tIP\t\tPorts\tFirmware\n");
118         
119         for (i = 0; i < nb; i++)
120                 printf("%i\t%s\t%s\t%s\t\t%s\t%i\t%s\n", i, ether_ntoa(&sa[i].mac), sa[i].product, sa[i].name, inet_ntoa(sa[i].nc.ip), sa[i].ports, sa[i].firmware);
121         
122         printf("\nfound %i switch(es)\n", nb);
123 }
124
125
126 int trim (char *txt, int start)
127 {
128         char *p;
129         
130         if (txt == NULL)
131                 return 0;
132         
133         p = txt + start;
134         for (p--; p >= txt && (*p == ' ' || *p == '\n'); *p-- = 0);
135         
136         return p - txt + 1;
137 }
138
139
140 int explode (const char *commande, char** tab, int maximum)
141 {
142         const char *start, *end;
143         int n = 0, len;
144         
145         
146         for (end = commande; ; n++) {
147                 for (start = end; *start == ' ' && *start != 0; start++);
148                 for (end = start; (*end != ' ' || n >= maximum - 1 ) && *end != 0; end++);
149                 
150                 len = end - start;
151                 if (len == 0)
152                         break;
153                 
154                 tab[n] = malloc(sizeof(char) * (len + 1));
155                 memcpy(tab[n], start, len);
156                 tab[n][len] = 0;
157         }
158         
159         
160         return n;
161 }
162
163