diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2002-11-18 07:26:42 +0000 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2002-11-18 07:26:42 +0000 |
commit | 50c00f4b4507facb41e01a3561903cc628bf9a49 (patch) | |
tree | 3dc475f1041f6408a05a8e789749e7431a4cb0ea /networking/libiproute | |
parent | 29d801b834b908bde20984a5fd9a782f04da7e1a (diff) | |
download | busybox-w32-50c00f4b4507facb41e01a3561903cc628bf9a49.tar.gz busybox-w32-50c00f4b4507facb41e01a3561903cc628bf9a49.tar.bz2 busybox-w32-50c00f4b4507facb41e01a3561903cc628bf9a49.zip |
Use error_msg_and_die, style
Diffstat (limited to 'networking/libiproute')
-rw-r--r-- | networking/libiproute/utils.c | 85 |
1 files changed, 50 insertions, 35 deletions
diff --git a/networking/libiproute/utils.c b/networking/libiproute/utils.c index afc02d9d9..70d6853d2 100644 --- a/networking/libiproute/utils.c +++ b/networking/libiproute/utils.c | |||
@@ -57,7 +57,7 @@ int get_unsigned(unsigned *val, char *arg, int base) | |||
57 | return 0; | 57 | return 0; |
58 | } | 58 | } |
59 | 59 | ||
60 | int get_u32(__u32 *val, char *arg, int base) | 60 | int get_u32(__u32 * val, char *arg, int base) |
61 | { | 61 | { |
62 | unsigned long res; | 62 | unsigned long res; |
63 | char *ptr; | 63 | char *ptr; |
@@ -71,7 +71,7 @@ int get_u32(__u32 *val, char *arg, int base) | |||
71 | return 0; | 71 | return 0; |
72 | } | 72 | } |
73 | 73 | ||
74 | int get_u16(__u16 *val, char *arg, int base) | 74 | int get_u16(__u16 * val, char *arg, int base) |
75 | { | 75 | { |
76 | unsigned long res; | 76 | unsigned long res; |
77 | char *ptr; | 77 | char *ptr; |
@@ -85,7 +85,7 @@ int get_u16(__u16 *val, char *arg, int base) | |||
85 | return 0; | 85 | return 0; |
86 | } | 86 | } |
87 | 87 | ||
88 | int get_u8(__u8 *val, char *arg, int base) | 88 | int get_u8(__u8 * val, char *arg, int base) |
89 | { | 89 | { |
90 | unsigned long res; | 90 | unsigned long res; |
91 | char *ptr; | 91 | char *ptr; |
@@ -99,7 +99,7 @@ int get_u8(__u8 *val, char *arg, int base) | |||
99 | return 0; | 99 | return 0; |
100 | } | 100 | } |
101 | 101 | ||
102 | int get_s16(__s16 *val, char *arg, int base) | 102 | int get_s16(__s16 * val, char *arg, int base) |
103 | { | 103 | { |
104 | long res; | 104 | long res; |
105 | char *ptr; | 105 | char *ptr; |
@@ -113,7 +113,7 @@ int get_s16(__s16 *val, char *arg, int base) | |||
113 | return 0; | 113 | return 0; |
114 | } | 114 | } |
115 | 115 | ||
116 | int get_s8(__s8 *val, char *arg, int base) | 116 | int get_s8(__s8 * val, char *arg, int base) |
117 | { | 117 | { |
118 | long res; | 118 | long res; |
119 | char *ptr; | 119 | char *ptr; |
@@ -127,17 +127,16 @@ int get_s8(__s8 *val, char *arg, int base) | |||
127 | return 0; | 127 | return 0; |
128 | } | 128 | } |
129 | 129 | ||
130 | int get_addr_1(inet_prefix *addr, char *name, int family) | 130 | int get_addr_1(inet_prefix * addr, char *name, int family) |
131 | { | 131 | { |
132 | char *cp; | 132 | char *cp; |
133 | unsigned char *ap = (unsigned char*)addr->data; | 133 | unsigned char *ap = (unsigned char *) addr->data; |
134 | int i; | 134 | int i; |
135 | 135 | ||
136 | memset(addr, 0, sizeof(*addr)); | 136 | memset(addr, 0, sizeof(*addr)); |
137 | 137 | ||
138 | if (strcmp(name, "default") == 0 || | 138 | if (strcmp(name, "default") == 0 || |
139 | strcmp(name, "all") == 0 || | 139 | strcmp(name, "all") == 0 || strcmp(name, "any") == 0) { |
140 | strcmp(name, "any") == 0) { | ||
141 | addr->family = family; | 140 | addr->family = family; |
142 | addr->bytelen = (family == AF_INET6 ? 16 : 4); | 141 | addr->bytelen = (family == AF_INET6 ? 16 : 4); |
143 | addr->bitlen = -1; | 142 | addr->bitlen = -1; |
@@ -160,9 +159,9 @@ int get_addr_1(inet_prefix *addr, char *name, int family) | |||
160 | return -1; | 159 | return -1; |
161 | addr->bytelen = 4; | 160 | addr->bytelen = 4; |
162 | addr->bitlen = -1; | 161 | addr->bitlen = -1; |
163 | for (cp=name, i=0; *cp; cp++) { | 162 | for (cp = name, i = 0; *cp; cp++) { |
164 | if (*cp <= '9' && *cp >= '0') { | 163 | if (*cp <= '9' && *cp >= '0') { |
165 | ap[i] = 10*ap[i] + (*cp-'0'); | 164 | ap[i] = 10 * ap[i] + (*cp - '0'); |
166 | continue; | 165 | continue; |
167 | } | 166 | } |
168 | if (*cp == '.' && ++i <= 3) | 167 | if (*cp == '.' && ++i <= 3) |
@@ -172,7 +171,7 @@ int get_addr_1(inet_prefix *addr, char *name, int family) | |||
172 | return 0; | 171 | return 0; |
173 | } | 172 | } |
174 | 173 | ||
175 | int get_prefix_1(inet_prefix *dst, char *arg, int family) | 174 | int get_prefix_1(inet_prefix * dst, char *arg, int family) |
176 | { | 175 | { |
177 | int err; | 176 | int err; |
178 | unsigned plen; | 177 | unsigned plen; |
@@ -192,49 +191,57 @@ int get_prefix_1(inet_prefix *dst, char *arg, int family) | |||
192 | *slash = 0; | 191 | *slash = 0; |
193 | err = get_addr_1(dst, arg, family); | 192 | err = get_addr_1(dst, arg, family); |
194 | if (err == 0) { | 193 | if (err == 0) { |
195 | switch(dst->family) { | 194 | switch (dst->family) { |
196 | case AF_INET6: | 195 | case AF_INET6: |
197 | dst->bitlen = 128; | 196 | dst->bitlen = 128; |
198 | break; | 197 | break; |
199 | default: | 198 | default: |
200 | case AF_INET: | 199 | case AF_INET: |
201 | dst->bitlen = 32; | 200 | dst->bitlen = 32; |
202 | } | 201 | } |
203 | if (slash) { | 202 | if (slash) { |
204 | if (get_integer(&plen, slash+1, 0) || plen > dst->bitlen) { | 203 | if (get_integer(&plen, slash + 1, 0) || plen > dst->bitlen) { |
205 | err = -1; | 204 | err = -1; |
206 | goto done; | 205 | goto done; |
207 | } | 206 | } |
208 | dst->bitlen = plen; | 207 | dst->bitlen = plen; |
209 | } | 208 | } |
210 | } | 209 | } |
211 | done: | 210 | done: |
212 | if (slash) | 211 | if (slash) |
213 | *slash = '/'; | 212 | *slash = '/'; |
214 | return err; | 213 | return err; |
215 | } | 214 | } |
216 | 215 | ||
217 | int get_addr(inet_prefix *dst, char *arg, int family) | 216 | int get_addr(inet_prefix * dst, char *arg, int family) |
218 | { | 217 | { |
219 | if (family == AF_PACKET) { | 218 | if (family == AF_PACKET) { |
220 | fprintf(stderr, "Error: \"%s\" may be inet address, but it is not allowed in this context.\n", arg); | 219 | fprintf(stderr, |
220 | "Error: \"%s\" may be inet address, but it is not allowed in this context.\n", | ||
221 | arg); | ||
221 | exit(1); | 222 | exit(1); |
222 | } | 223 | } |
223 | if (get_addr_1(dst, arg, family)) { | 224 | if (get_addr_1(dst, arg, family)) { |
224 | fprintf(stderr, "Error: an inet address is expected rather than \"%s\".\n", arg); | 225 | fprintf(stderr, |
226 | "Error: an inet address is expected rather than \"%s\".\n", | ||
227 | arg); | ||
225 | exit(1); | 228 | exit(1); |
226 | } | 229 | } |
227 | return 0; | 230 | return 0; |
228 | } | 231 | } |
229 | 232 | ||
230 | int get_prefix(inet_prefix *dst, char *arg, int family) | 233 | int get_prefix(inet_prefix * dst, char *arg, int family) |
231 | { | 234 | { |
232 | if (family == AF_PACKET) { | 235 | if (family == AF_PACKET) { |
233 | fprintf(stderr, "Error: \"%s\" may be inet prefix, but it is not allowed in this context.\n", arg); | 236 | fprintf(stderr, |
237 | "Error: \"%s\" may be inet prefix, but it is not allowed in this context.\n", | ||
238 | arg); | ||
234 | exit(1); | 239 | exit(1); |
235 | } | 240 | } |
236 | if (get_prefix_1(dst, arg, family)) { | 241 | if (get_prefix_1(dst, arg, family)) { |
237 | fprintf(stderr, "Error: an inet prefix is expected rather than \"%s\".\n", arg); | 242 | fprintf(stderr, |
243 | "Error: an inet prefix is expected rather than \"%s\".\n", | ||
244 | arg); | ||
238 | exit(1); | 245 | exit(1); |
239 | } | 246 | } |
240 | return 0; | 247 | return 0; |
@@ -243,8 +250,11 @@ int get_prefix(inet_prefix *dst, char *arg, int family) | |||
243 | __u32 get_addr32(char *name) | 250 | __u32 get_addr32(char *name) |
244 | { | 251 | { |
245 | inet_prefix addr; | 252 | inet_prefix addr; |
253 | |||
246 | if (get_addr_1(&addr, name, AF_INET)) { | 254 | if (get_addr_1(&addr, name, AF_INET)) { |
247 | fprintf(stderr, "Error: an IP address is expected rather than \"%s\"\n", name); | 255 | fprintf(stderr, |
256 | "Error: an IP address is expected rather than \"%s\"\n", | ||
257 | name); | ||
248 | exit(1); | 258 | exit(1); |
249 | } | 259 | } |
250 | return addr.data[0]; | 260 | return addr.data[0]; |
@@ -264,25 +274,29 @@ void invarg(char *msg, char *arg) | |||
264 | 274 | ||
265 | void duparg(char *key, char *arg) | 275 | void duparg(char *key, char *arg) |
266 | { | 276 | { |
267 | fprintf(stderr, "Error: duplicate \"%s\": \"%s\" is the second value.\n", key, arg); | 277 | fprintf(stderr, "Error: duplicate \"%s\": \"%s\" is the second value.\n", |
278 | key, arg); | ||
268 | exit(-1); | 279 | exit(-1); |
269 | } | 280 | } |
270 | 281 | ||
271 | void duparg2(char *key, char *arg) | 282 | void duparg2(char *key, char *arg) |
272 | { | 283 | { |
273 | fprintf(stderr, "Error: either \"%s\" is duplicate, or \"%s\" is a garbage.\n", key, arg); | 284 | fprintf(stderr, |
285 | "Error: either \"%s\" is duplicate, or \"%s\" is a garbage.\n", | ||
286 | key, arg); | ||
274 | exit(-1); | 287 | exit(-1); |
275 | } | 288 | } |
276 | 289 | ||
277 | int matches(char *cmd, char *pattern) | 290 | int matches(char *cmd, char *pattern) |
278 | { | 291 | { |
279 | int len = strlen(cmd); | 292 | int len = strlen(cmd); |
293 | |||
280 | if (len > strlen(pattern)) | 294 | if (len > strlen(pattern)) |
281 | return -1; | 295 | return -1; |
282 | return memcmp(pattern, cmd, len); | 296 | return memcmp(pattern, cmd, len); |
283 | } | 297 | } |
284 | 298 | ||
285 | int inet_addr_match(inet_prefix *a, inet_prefix *b, int bits) | 299 | int inet_addr_match(inet_prefix * a, inet_prefix * b, int bits) |
286 | { | 300 | { |
287 | __u32 *a1 = a->data; | 301 | __u32 *a1 = a->data; |
288 | __u32 *a2 = b->data; | 302 | __u32 *a2 = b->data; |
@@ -319,6 +333,7 @@ int __get_hz(void) | |||
319 | 333 | ||
320 | if (fp) { | 334 | if (fp) { |
321 | unsigned nom, denom; | 335 | unsigned nom, denom; |
336 | |||
322 | if (fscanf(fp, "%*08x%*08x%08x%08x", &nom, &denom) == 2) | 337 | if (fscanf(fp, "%*08x%*08x%08x%08x", &nom, &denom) == 2) |
323 | if (nom == 1000000) | 338 | if (nom == 1000000) |
324 | hz = denom; | 339 | hz = denom; |
@@ -346,6 +361,7 @@ const char *format_host(int af, int len, void *addr, char *buf, int buflen) | |||
346 | #ifdef RESOLVE_HOSTNAMES | 361 | #ifdef RESOLVE_HOSTNAMES |
347 | if (resolve_hosts) { | 362 | if (resolve_hosts) { |
348 | struct hostent *h_ent; | 363 | struct hostent *h_ent; |
364 | |||
349 | if (len <= 0) { | 365 | if (len <= 0) { |
350 | switch (af) { | 366 | switch (af) { |
351 | case AF_INET: | 367 | case AF_INET: |
@@ -354,12 +370,11 @@ const char *format_host(int af, int len, void *addr, char *buf, int buflen) | |||
354 | case AF_INET6: | 370 | case AF_INET6: |
355 | len = 16; | 371 | len = 16; |
356 | break; | 372 | break; |
357 | default: ; | 373 | default:; |
358 | } | 374 | } |
359 | } | 375 | } |
360 | if (len > 0 && | 376 | if (len > 0 && (h_ent = gethostbyaddr(addr, len, af)) != NULL) { |
361 | (h_ent = gethostbyaddr(addr, len, af)) != NULL) { | 377 | snprintf(buf, buflen - 1, "%s", h_ent->h_name); |
362 | snprintf(buf, buflen-1, "%s", h_ent->h_name); | ||
363 | return buf; | 378 | return buf; |
364 | } | 379 | } |
365 | } | 380 | } |