260 |
* Our main function. |
* Our main function. |
261 |
*/ |
*/ |
262 |
int ifconfig_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
int ifconfig_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
263 |
int ifconfig_main(int argc, char **argv) |
int ifconfig_main(int argc UNUSED_PARAM, char **argv) |
264 |
{ |
{ |
265 |
struct ifreq ifr; |
struct ifreq ifr; |
266 |
struct sockaddr_in sai; |
struct sockaddr_in sai; |
291 |
|
|
292 |
/* skip argv[0] */ |
/* skip argv[0] */ |
293 |
++argv; |
++argv; |
|
--argc; |
|
294 |
|
|
295 |
#if ENABLE_FEATURE_IFCONFIG_STATUS |
#if ENABLE_FEATURE_IFCONFIG_STATUS |
296 |
if (argc > 0 && (argv[0][0] == '-' && argv[0][1] == 'a' && !argv[0][2])) { |
if (argv[0] && (argv[0][0] == '-' && argv[0][1] == 'a' && !argv[0][2])) { |
297 |
interface_opt_a = 1; |
interface_opt_a = 1; |
|
--argc; |
|
298 |
++argv; |
++argv; |
299 |
} |
} |
300 |
#endif |
#endif |
301 |
|
|
302 |
if (argc <= 1) { |
if (!argv[0] || !argv[1]) { /* one or no args */ |
303 |
#if ENABLE_FEATURE_IFCONFIG_STATUS |
#if ENABLE_FEATURE_IFCONFIG_STATUS |
304 |
return display_interfaces(argc ? *argv : NULL); |
return display_interfaces(argv[0] /* can be NULL */); |
305 |
#else |
#else |
306 |
bb_error_msg_and_die("no support for status display"); |
bb_error_msg_and_die("no support for status display"); |
307 |
#endif |
#endif |
311 |
sockfd = xsocket(AF_INET, SOCK_DGRAM, 0); |
sockfd = xsocket(AF_INET, SOCK_DGRAM, 0); |
312 |
|
|
313 |
/* get interface name */ |
/* get interface name */ |
314 |
strncpy(ifr.ifr_name, *argv, IFNAMSIZ); |
strncpy_IFNAMSIZ(ifr.ifr_name, *argv); |
315 |
|
|
316 |
/* Process the remaining arguments. */ |
/* Process the remaining arguments. */ |
317 |
while (*++argv != (char *) NULL) { |
while (*++argv != (char *) NULL) { |
422 |
} else { /* A_CAST_HOST_COPY_IN_ETHER */ |
} else { /* A_CAST_HOST_COPY_IN_ETHER */ |
423 |
/* This is the "hw" arg case. */ |
/* This is the "hw" arg case. */ |
424 |
smalluint hw_class= index_in_substrings("ether\0" |
smalluint hw_class= index_in_substrings("ether\0" |
425 |
USE_FEATURE_HWIB("infiniband\0"), *argv) + 1; |
IF_FEATURE_HWIB("infiniband\0"), *argv) + 1; |
426 |
if (!hw_class || !*++argv) |
if (!hw_class || !*++argv) |
427 |
bb_show_usage(); |
bb_show_usage(); |
428 |
/*safe_strncpy(host, *argv, sizeof(host));*/ |
/*safe_strncpy(host, *argv, sizeof(host));*/ |