diff options
| author | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2002-11-18 07:26:42 +0000 |
|---|---|---|
| committer | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2002-11-18 07:26:42 +0000 |
| commit | bde91ab7d52c4eb2047c3c2d2cc4d69e36c47019 (patch) | |
| tree | 3dc475f1041f6408a05a8e789749e7431a4cb0ea | |
| parent | 2466ace1822d22f8223f1fef2da7d1461e8eec39 (diff) | |
| download | busybox-w32-bde91ab7d52c4eb2047c3c2d2cc4d69e36c47019.tar.gz busybox-w32-bde91ab7d52c4eb2047c3c2d2cc4d69e36c47019.tar.bz2 busybox-w32-bde91ab7d52c4eb2047c3c2d2cc4d69e36c47019.zip | |
Use error_msg_and_die, style
git-svn-id: svn://busybox.net/trunk/busybox@5951 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -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 | } |
