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 /networking/ipcalc.c | |
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.
Diffstat (limited to 'networking/ipcalc.c')
-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++) { |