diff options
| author | Eric Andersen <andersen@codepoet.org> | 2003-07-03 10:28:07 +0000 |
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2003-07-03 10:28:07 +0000 |
| commit | e968ee3f70ac1f5ee269be67ee075595d86f61b8 (patch) | |
| tree | 079d105b247ab9ed673b70db7a0546c20d5172fd | |
| parent | 8a93179c142a730adff294fbc68112e54de9e6d9 (diff) | |
| download | busybox-w32-e968ee3f70ac1f5ee269be67ee075595d86f61b8.tar.gz busybox-w32-e968ee3f70ac1f5ee269be67ee075595d86f61b8.tar.bz2 busybox-w32-e968ee3f70ac1f5ee269be67ee075595d86f61b8.zip | |
Patch from Vladimir N. Oleynik (vodz):
Last patch have changed for "ipcalc" applet with usage new get_ulflags()
function.
| -rw-r--r-- | networking/ipcalc.c | 49 |
1 files changed, 14 insertions, 35 deletions
diff --git a/networking/ipcalc.c b/networking/ipcalc.c index 2c23d17f6..af4eed4a4 100644 --- a/networking/ipcalc.c +++ b/networking/ipcalc.c | |||
| @@ -37,20 +37,18 @@ static unsigned long get_netmask(unsigned long ipaddr) | |||
| 37 | #define BROADCAST 0x02 | 37 | #define BROADCAST 0x02 |
| 38 | #define NETWORK 0x04 | 38 | #define NETWORK 0x04 |
| 39 | #define HOSTNAME 0x08 | 39 | #define HOSTNAME 0x08 |
| 40 | #define SILENT 0x80 | 40 | #define SILENT 0x10 |
| 41 | 41 | ||
| 42 | int ipcalc_main(int argc, char **argv) | 42 | int ipcalc_main(int argc, char **argv) |
| 43 | { | 43 | { |
| 44 | unsigned char mode = 0; | 44 | unsigned long mode; |
| 45 | 45 | ||
| 46 | unsigned long netmask = 0; | 46 | unsigned long netmask = 0; |
| 47 | unsigned long broadcast = 0; | 47 | unsigned long broadcast; |
| 48 | unsigned long network = 0; | 48 | unsigned long network; |
| 49 | unsigned long ipaddr = 0; | 49 | unsigned long ipaddr; |
| 50 | 50 | ||
| 51 | int opt = 0; | 51 | static const struct option long_options[] = { |
| 52 | |||
| 53 | struct option long_options[] = { | ||
| 54 | {"netmask", no_argument, NULL, 'n'}, | 52 | {"netmask", no_argument, NULL, 'n'}, |
| 55 | {"broadcast", no_argument, NULL, 'b'}, | 53 | {"broadcast", no_argument, NULL, 'b'}, |
| 56 | {"network", no_argument, NULL, 'w'}, | 54 | {"network", no_argument, NULL, 'w'}, |
| @@ -61,31 +59,13 @@ int ipcalc_main(int argc, char **argv) | |||
| 61 | {NULL, 0, NULL, 0} | 59 | {NULL, 0, NULL, 0} |
| 62 | }; | 60 | }; |
| 63 | 61 | ||
| 64 | 62 | bb_applet_long_options = long_options; | |
| 65 | while ((opt = getopt_long(argc, argv, | 63 | mode = bb_getopt_ulflags(argc, argv, |
| 66 | #ifdef CONFIG_FEATURE_IPCALC_FANCY | 64 | #ifdef CONFIG_FEATURE_IPCALC_FANCY |
| 67 | "nbwhs", | 65 | "nbwhs"); |
| 68 | #else | 66 | #else |
| 69 | "nbw", | 67 | "nbw"); |
| 70 | #endif | ||
| 71 | long_options, NULL)) != EOF) { | ||
| 72 | if (opt == 'n') | ||
| 73 | mode |= NETMASK; | ||
| 74 | else if (opt == 'b') | ||
| 75 | mode |= BROADCAST; | ||
| 76 | else if (opt == 'w') | ||
| 77 | mode |= NETWORK; | ||
| 78 | #ifdef CONFIG_FEATURE_IPCALC_FANCY | ||
| 79 | else if (opt == 'h') | ||
| 80 | mode |= HOSTNAME; | ||
| 81 | else if (opt == 's') | ||
| 82 | mode |= SILENT; | ||
| 83 | #endif | 68 | #endif |
| 84 | else { | ||
| 85 | bb_show_usage(); | ||
| 86 | } | ||
| 87 | } | ||
| 88 | |||
| 89 | if (mode & (BROADCAST | NETWORK)) { | 69 | if (mode & (BROADCAST | NETWORK)) { |
| 90 | if (argc - optind > 2) { | 70 | if (argc - optind > 2) { |
| 91 | bb_show_usage(); | 71 | bb_show_usage(); |
| @@ -99,7 +79,7 @@ int ipcalc_main(int argc, char **argv) | |||
| 99 | ipaddr = inet_addr(argv[optind]); | 79 | ipaddr = inet_addr(argv[optind]); |
| 100 | 80 | ||
| 101 | if (ipaddr == INADDR_NONE) { | 81 | if (ipaddr == INADDR_NONE) { |
| 102 | IPCALC_MSG(bb_error_msg_and_die("bad IP address: %s\n", argv[optind]), | 82 | IPCALC_MSG(bb_error_msg_and_die("bad IP address: %s", argv[optind]), |
| 103 | exit(EXIT_FAILURE)); | 83 | exit(EXIT_FAILURE)); |
| 104 | } | 84 | } |
| 105 | 85 | ||
| @@ -109,7 +89,7 @@ int ipcalc_main(int argc, char **argv) | |||
| 109 | } | 89 | } |
| 110 | 90 | ||
| 111 | if (ipaddr == INADDR_NONE) { | 91 | if (ipaddr == INADDR_NONE) { |
| 112 | IPCALC_MSG(bb_error_msg_and_die("bad netmask: %s\n", argv[optind + 1]), | 92 | IPCALC_MSG(bb_error_msg_and_die("bad netmask: %s", argv[optind + 1]), |
| 113 | exit(EXIT_FAILURE)); | 93 | exit(EXIT_FAILURE)); |
| 114 | } | 94 | } |
| 115 | 95 | ||
| @@ -138,9 +118,8 @@ int ipcalc_main(int argc, char **argv) | |||
| 138 | 118 | ||
| 139 | hostinfo = gethostbyaddr((char *) &ipaddr, sizeof(ipaddr), AF_INET); | 119 | hostinfo = gethostbyaddr((char *) &ipaddr, sizeof(ipaddr), AF_INET); |
| 140 | if (!hostinfo) { | 120 | if (!hostinfo) { |
| 141 | IPCALC_MSG(bb_error_msg("cannot find hostname for %s", argv[optind]); | 121 | IPCALC_MSG(bb_herror_msg_and_die( |
| 142 | herror(NULL); | 122 | "cannot find hostname for %s", argv[optind]),); |
| 143 | putc('\n', stderr);,); | ||
| 144 | exit(EXIT_FAILURE); | 123 | exit(EXIT_FAILURE); |
| 145 | } | 124 | } |
| 146 | for (x = 0; hostinfo->h_name[x]; x++) { | 125 | for (x = 0; hostinfo->h_name[x]; x++) { |
