Patch from Vladimir N. Oleynik (vodz):
authorEric Andersen <andersen@codepoet.org>
Thu, 3 Jul 2003 10:28:07 +0000 (10:28 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 3 Jul 2003 10:28:07 +0000 (10:28 -0000)
    Last patch have changed for "ipcalc" applet with usage new get_ulflags()
    function.

networking/ipcalc.c

index 2c23d17..af4eed4 100644 (file)
@@ -37,20 +37,18 @@ static unsigned long get_netmask(unsigned long ipaddr)
 #define BROADCAST 0x02
 #define NETWORK   0x04
 #define HOSTNAME  0x08
-#define SILENT    0x80
+#define SILENT    0x10
 
 int ipcalc_main(int argc, char **argv)
 {
-       unsigned char mode = 0;
+       unsigned long mode;
 
        unsigned long netmask = 0;
-       unsigned long broadcast = 0;
-       unsigned long network = 0;
-       unsigned long ipaddr = 0;
+       unsigned long broadcast;
+       unsigned long network;
+       unsigned long ipaddr;
 
-       int opt = 0;
-
-       struct option long_options[] = {
+       static const struct option long_options[] = {
                {"netmask", no_argument, NULL, 'n'},
                {"broadcast", no_argument, NULL, 'b'},
                {"network", no_argument, NULL, 'w'},
@@ -61,31 +59,13 @@ int ipcalc_main(int argc, char **argv)
                {NULL, 0, NULL, 0}
        };
 
-
-       while ((opt = getopt_long(argc, argv,
+       bb_applet_long_options = long_options;
+       mode = bb_getopt_ulflags(argc, argv,
 #ifdef CONFIG_FEATURE_IPCALC_FANCY
-                                                         "nbwhs",
+                                                         "nbwhs");
 #else
-                                                         "nbw",
-#endif
-                                                         long_options, NULL)) != EOF) {
-               if (opt == 'n')
-                       mode |= NETMASK;
-               else if (opt == 'b')
-                       mode |= BROADCAST;
-               else if (opt == 'w')
-                       mode |= NETWORK;
-#ifdef CONFIG_FEATURE_IPCALC_FANCY
-               else if (opt == 'h')
-                       mode |= HOSTNAME;
-               else if (opt == 's')
-                       mode |= SILENT;
+                                                         "nbw");
 #endif
-               else {
-                       bb_show_usage();
-               }
-       }
-
        if (mode & (BROADCAST | NETWORK)) {
                if (argc - optind > 2) {
                        bb_show_usage();
@@ -99,7 +79,7 @@ int ipcalc_main(int argc, char **argv)
        ipaddr = inet_addr(argv[optind]);
 
        if (ipaddr == INADDR_NONE) {
-               IPCALC_MSG(bb_error_msg_and_die("bad IP address: %s\n", argv[optind]),
+               IPCALC_MSG(bb_error_msg_and_die("bad IP address: %s", argv[optind]),
                                   exit(EXIT_FAILURE));
        }
 
@@ -109,7 +89,7 @@ int ipcalc_main(int argc, char **argv)
        }
 
        if (ipaddr == INADDR_NONE) {
-               IPCALC_MSG(bb_error_msg_and_die("bad netmask: %s\n", argv[optind + 1]),
+               IPCALC_MSG(bb_error_msg_and_die("bad netmask: %s", argv[optind + 1]),
                                   exit(EXIT_FAILURE));
        }
 
@@ -138,9 +118,8 @@ int ipcalc_main(int argc, char **argv)
 
                hostinfo = gethostbyaddr((char *) &ipaddr, sizeof(ipaddr), AF_INET);
                if (!hostinfo) {
-                       IPCALC_MSG(bb_error_msg("cannot find hostname for %s", argv[optind]);
-                                          herror(NULL);
-                                          putc('\n', stderr);,);
+                       IPCALC_MSG(bb_herror_msg_and_die(
+                               "cannot find hostname for %s", argv[optind]),);
                        exit(EXIT_FAILURE);
                }
                for (x = 0; hostinfo->h_name[x]; x++) {