style fixes. No code changes.
[platform/upstream/busybox.git] / networking / route.c
index 2e6e017..5b3e68b 100644 (file)
@@ -12,7 +12,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  *
- * $Id: route.c,v 1.26 2004/03/19 23:27:08 mjn3 Exp $
  *
  * displayroute() code added by Vladimir N. Oleynik <dzo@simtreas.ru>
  * adjustments by Larry Doolittle  <LRDoolittle@lbl.gov>
@@ -50,7 +49,7 @@
 #define RTF_REJECT      0x0200 /* Reject route                 */
 #endif
 
-#if defined (SIOCADDRTOLD) || defined (RTF_IRTT)       /* route */
+#if defined(SIOCADDRTOLD) || defined(RTF_IRTT) /* route */
 #define HAVE_NEW_ADDRT 1
 #endif
 
 #endif
 
 /* The RTACTION entries must agree with tbl_verb[] below! */
-#define RTACTION_ADD           1
-#define RTACTION_DEL           2
+#define RTACTION_ADD 1
+#define RTACTION_DEL 2
 
 /* For the various tbl_*[] arrays, the 1st byte is the offset to
  * the next entry and the 2nd byte is return value. */
 
-#define NET_FLAG                       1
-#define HOST_FLAG                      2
+#define NET_FLAG  1
+#define HOST_FLAG 2
 
 /* We remap '-' to '#' to avoid problems with getopt. */
 static const char tbl_hash_net_host[] =
@@ -79,22 +78,22 @@ static const char tbl_hash_net_host[] =
        "\007\002#host"                         /* Since last, we can save a byte. */
 ;
 
-#define KW_TAKES_ARG           020
-#define KW_SETS_FLAG           040
+#define KW_TAKES_ARG            020
+#define KW_SETS_FLAG            040
 
-#define KW_IPVx_METRIC         020
-#define KW_IPVx_NETMASK                021
-#define KW_IPVx_GATEWAY                022
-#define KW_IPVx_MSS                    023
-#define KW_IPVx_WINDOW         024
-#define KW_IPVx_IRTT           025
-#define KW_IPVx_DEVICE         026
+#define KW_IPVx_METRIC          020
+#define KW_IPVx_NETMASK         021
+#define KW_IPVx_GATEWAY         022
+#define KW_IPVx_MSS             023
+#define KW_IPVx_WINDOW          024
+#define KW_IPVx_IRTT            025
+#define KW_IPVx_DEVICE          026
 
-#define KW_IPVx_FLAG_ONLY      040
-#define KW_IPVx_REJECT         040
-#define KW_IPVx_MOD                    041
-#define KW_IPVx_DYN                    042
-#define KW_IPVx_REINSTATE      043
+#define KW_IPVx_FLAG_ONLY       040
+#define KW_IPVx_REJECT          040
+#define KW_IPVx_MOD             041
+#define KW_IPVx_DYN             042
+#define KW_IPVx_REINSTATE       043
 
 static const char tbl_ipvx[] =
        /* 020 is the "takes an arg" bit */
@@ -167,7 +166,7 @@ static void INET_setroute(int action, char **args)
        }
 
        /* Clean out the RTREQ structure. */
-       memset((char *) &rt, 0, sizeof(struct rtentry));
+       memset(&rt, 0, sizeof(rt));
 
        {
                const char *target = *args++;
@@ -178,7 +177,7 @@ static void INET_setroute(int action, char **args)
                if(prefix) {
                        int prefix_len;
 
-                       prefix_len = bb_xgetularg10_bnd(prefix+1, 0, 32);
+                       prefix_len = xatoul_range(prefix+1, 0, 32);
                        mask_in_addr(rt) = htonl( ~ (0xffffffffUL >> prefix_len));
                        *prefix = '\0';
 #if HAVE_NEW_ADDRT
@@ -186,7 +185,7 @@ static void INET_setroute(int action, char **args)
 #endif
                } else {
                        /* Default netmask. */
-                       netmask = bb_INET_default;
+                       netmask = bb_str_default;
                }
                /* Prefer hostname lookup is -host flag (xflag==1) was given. */
                isnet = INET_resolve(target, (struct sockaddr_in *) &rt.rt_dst,
@@ -218,7 +217,7 @@ static void INET_setroute(int action, char **args)
 
 #if HAVE_NEW_ADDRT
                if (k == KW_IPVx_METRIC) {
-                       rt.rt_metric = bb_xgetularg10(args_m1) + 1;
+                       rt.rt_metric = xatoul(args_m1) + 1;
                        continue;
                }
 #endif
@@ -259,20 +258,20 @@ static void INET_setroute(int action, char **args)
 
                if (k == KW_IPVx_MSS) { /* Check valid MSS bounds. */
                        rt.rt_flags |= RTF_MSS;
-                       rt.rt_mss = bb_xgetularg10_bnd(args_m1, 64, 32768);
+                       rt.rt_mss = xatoul_range(args_m1, 64, 32768);
                        continue;
                }
 
                if (k == KW_IPVx_WINDOW) {      /* Check valid window bounds. */
                        rt.rt_flags |= RTF_WINDOW;
-                       rt.rt_window = bb_xgetularg10_bnd(args_m1, 128, INT_MAX);
+                       rt.rt_window = xatoul_range(args_m1, 128, INT_MAX);
                        continue;
                }
 
 #ifdef RTF_IRTT
                if (k == KW_IPVx_IRTT) {
                        rt.rt_flags |= RTF_IRTT;
-                       rt.rt_irtt = bb_xgetularg10(args_m1);
+                       rt.rt_irtt = xatoul(args_m1);
                        rt.rt_irtt *= (sysconf(_SC_CLK_TCK) / 100);     /* FIXME */
 #if 0                                  /* FIXME: do we need to check anything of this? */
                        if (rt.rt_irtt < 1 || rt.rt_irtt > (120 * HZ)) {
@@ -297,7 +296,7 @@ static void INET_setroute(int action, char **args)
 
 #ifdef RTF_REJECT
        if ((rt.rt_flags & RTF_REJECT) && !rt.rt_dev) {
-               rt.rt_dev = "lo";
+               rt.rt_dev = (char*)"lo";
        }
 #endif
 
@@ -334,7 +333,7 @@ static void INET_setroute(int action, char **args)
        if (ENABLE_FEATURE_CLEAN_UP) close(skfd);
 }
 
-#ifdef CONFIG_FEATURE_IPV6
+#if ENABLE_FEATURE_IPV6
 
 static void INET6_setroute(int action, char **args)
 {
@@ -346,14 +345,14 @@ static void INET6_setroute(int action, char **args)
                /* We know args isn't NULL from the check in route_main. */
                const char *target = *args++;
 
-               if (strcmp(target, bb_INET_default) == 0) {
+               if (strcmp(target, bb_str_default) == 0) {
                        prefix_len = 0;
                        memset(&sa6, 0, sizeof(sa6));
                } else {
                        char *cp;
                        if ((cp = strchr(target, '/'))) { /* Yes... const to non is ok. */
                                *cp = 0;
-                               prefix_len = bb_xgetularg10_bnd(cp+1, 0, 128);
+                               prefix_len = xatoul_range(cp+1, 0, 128);
                        } else {
                                prefix_len = 128;
                        }
@@ -363,7 +362,7 @@ static void INET6_setroute(int action, char **args)
                }
 
        /* Clean out the RTREQ structure. */
-       memset((char *) &rt, 0, sizeof(struct in6_rtmsg));
+       memset(&rt, 0, sizeof(rt));
 
        memcpy(&rt.rtmsg_dst, sa6.sin6_addr.s6_addr, sizeof(struct in6_addr));
 
@@ -384,7 +383,7 @@ static void INET6_setroute(int action, char **args)
                }
 
                if (k == KW_IPVx_METRIC) {
-                       rt.rtmsg_metric = bb_xgetularg10(args_m1);
+                       rt.rtmsg_metric = xatoul(args_m1);
                        continue;
                }
 
@@ -422,7 +421,7 @@ static void INET6_setroute(int action, char **args)
        if (devname) {
                struct ifreq ifr;
                memset(&ifr, 0, sizeof(ifr));
-               strcpy(ifr.ifr_name, devname);
+               strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name));
 
                if (ioctl(skfd, SIOGIFINDEX, &ifr) < 0) {
                        bb_perror_msg_and_die("SIOGIFINDEX");
@@ -445,7 +444,7 @@ static const unsigned int flagvals[] = { /* Must agree with flagchars[]. */
        RTF_REINSTATE,
        RTF_DYNAMIC,
        RTF_MODIFIED,
-#ifdef CONFIG_FEATURE_IPV6
+#if ENABLE_FEATURE_IPV6
        RTF_DEFAULT,
        RTF_ADDRCONF,
        RTF_CACHE
@@ -457,22 +456,18 @@ static const unsigned int flagvals[] = { /* Must agree with flagchars[]. */
 
 static const char flagchars[] =                /* Must agree with flagvals[]. */
        "GHRDM"
-#ifdef CONFIG_FEATURE_IPV6
+#if ENABLE_FEATURE_IPV6
        "DAC"
 #endif
 ;
 
-static
-#ifndef CONFIG_FEATURE_IPV6
-__inline
-#endif
-void set_flags(char *flagstr, int flags)
+static void set_flags(char *flagstr, int flags)
 {
        int i;
 
        *flagstr++ = 'U';
 
-       for (i=0 ; (*flagstr = flagchars[i]) != 0 ; i++) {
+       for (i = 0; (*flagstr = flagchars[i]) != 0; i++) {
                if (flags & flagvals[i]) {
                        ++flagstr;
                }
@@ -480,8 +475,7 @@ void set_flags(char *flagstr, int flags)
 }
 
 /* also used in netstat */
-void displayroutes(int noresolve, int netstatfmt);
-void displayroutes(int noresolve, int netstatfmt)
+void bb_displayroutes(int noresolve, int netstatfmt)
 {
        char devname[64], flags[16], sdest[16], sgw[16];
        unsigned long int d, g, m;
@@ -491,10 +485,9 @@ void displayroutes(int noresolve, int netstatfmt)
 
        FILE *fp = xfopen("/proc/net/route", "r");
 
-       bb_printf("Kernel IP routing table\n"
-                         "Destination     Gateway         Genmask"
-                         "         Flags %s Iface\n",
-                         netstatfmt ? "  MSS Window  irtt" : "Metric Ref    Use");
+       printf("Kernel IP routing table\n"
+              "Destination     Gateway         Genmask         Flags %s Iface\n",
+                       netstatfmt ? "  MSS Window  irtt" : "Metric Ref    Use");
 
        if (fscanf(fp, "%*[^\n]\n") < 0) { /* Skip the first line. */
                goto ERROR;                /* Empty or missing line, or read error. */
@@ -508,7 +501,7 @@ void displayroutes(int noresolve, int netstatfmt)
                        if ((r < 0) && feof(fp)) { /* EOF with no (nonspace) chars read. */
                                break;
                        }
              ERROR:
+ ERROR:
                        bb_error_msg_and_die("fscanf");
                }
 
@@ -534,16 +527,16 @@ void displayroutes(int noresolve, int netstatfmt)
                                          (noresolve | 0x4000), m);     /* Host instead of net. */
 
                mask.s_addr = m;
-               bb_printf("%-16s%-16s%-16s%-6s", sdest, sgw, inet_ntoa(mask), flags);
+               printf("%-16s%-16s%-16s%-6s", sdest, sgw, inet_ntoa(mask), flags);
                if (netstatfmt) {
-                       bb_printf("%5d %-5d %6d %s\n", mtu, win, ir, devname);
+                       printf("%5d %-5d %6d %s\n", mtu, win, ir, devname);
                } else {
-                       bb_printf("%-6d %-2d %7d %s\n", metric, ref, use, devname);
+                       printf("%-6d %-2d %7d %s\n", metric, ref, use, devname);
                }
        }
 }
 
-#ifdef CONFIG_FEATURE_IPV6
+#if ENABLE_FEATURE_IPV6
 
 static void INET6_displayroutes(int noresolve)
 {
@@ -561,7 +554,7 @@ static void INET6_displayroutes(int noresolve)
 
        FILE *fp = xfopen("/proc/net/ipv6_route", "r");
 
-       bb_printf("Kernel IPv6 routing table\n%-44s%-40s"
+       printf("Kernel IPv6 routing table\n%-44s%-40s"
                          "Flags Metric Ref    Use Iface\n",
                          "Destination", "Next Hop");
 
@@ -574,7 +567,7 @@ static void INET6_displayroutes(int noresolve)
                        if ((r < 0) && feof(fp)) { /* EOF with no (nonspace) chars read. */
                                break;
                        }
              ERROR:
+ ERROR:
                        bb_error_msg_and_die("fscanf");
                }
 
@@ -595,7 +588,7 @@ static void INET6_displayroutes(int noresolve)
                                        goto ERROR;
                                }
                                addr6x[i++] = *p++;
-                               if (!((i+1)%5)) {
+                               if (!((i+1) % 5)) {
                                        addr6x[i++] = ':';
                                }
                        } while (i < 40+28+7);
@@ -622,7 +615,7 @@ static void INET6_displayroutes(int noresolve)
                                r += 40;
                        } else {                        /* 2nd pass */
                                /* Print the info. */
-                               bb_printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n",
+                               printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n",
                                                  addr6, naddr6, flags, metric, refcnt, use, iface);
                                break;
                        }
@@ -632,10 +625,10 @@ static void INET6_displayroutes(int noresolve)
 
 #endif
 
-#define ROUTE_OPT_A                    0x01
-#define ROUTE_OPT_n                    0x02
-#define ROUTE_OPT_e                    0x04
-#define ROUTE_OPT_INET6                0x08 /* Not an actual option. See below. */
+#define ROUTE_OPT_A     0x01
+#define ROUTE_OPT_n     0x02
+#define ROUTE_OPT_e     0x04
+#define ROUTE_OPT_INET6 0x08 /* Not an actual option. See below. */
 
 /* 1st byte is offset to next entry offset.  2nd byte is return value. */
 static const char tbl_verb[] = /* 2nd byte matches RTACTION_* code */
@@ -645,27 +638,26 @@ static const char tbl_verb[] =    /* 2nd byte matches RTACTION_* code */
        "\010\002delete"                        /* Since last, we can save a byte. */
 ;
 
+int route_main(int argc, char **argv);
 int route_main(int argc, char **argv)
 {
        unsigned opt;
        int what;
        char *family;
+       char **p;
 
        /* First, remap '-net' and '-host' to avoid getopt problems. */
-       {
-               char **p = argv;
-
-               while (*++p) {
-                       if ((strcmp(*p, "-net") == 0) || (strcmp(*p, "-host") == 0)) {
-                               p[0][0] = '#';
-                       }
+       p = argv;
+       while (*++p) {
+               if (strcmp(*p, "-net") == 0 || strcmp(*p, "-host") == 0) {
+                       p[0][0] = '#';
                }
        }
 
        opt = getopt32(argc, argv, "A:ne", &family);
 
-       if ((opt & ROUTE_OPT_A) && strcmp(family, "inet")) {
-#ifdef CONFIG_FEATURE_IPV6
+       if ((opt & ROUTE_OPT_A) && strcmp(family, "inet") != 0) {
+#if ENABLE_FEATURE_IPV6
                if (strcmp(family, "inet6") == 0) {
                        opt |= ROUTE_OPT_INET6; /* Set flag for ipv6. */
                } else
@@ -678,15 +670,14 @@ int route_main(int argc, char **argv)
        /* No more args means display the routing table. */
        if (!*argv) {
                int noresolve = (opt & ROUTE_OPT_n) ? 0x0fff : 0;
-#ifdef CONFIG_FEATURE_IPV6
+#if ENABLE_FEATURE_IPV6
                if (opt & ROUTE_OPT_INET6)
                        INET6_displayroutes(noresolve);
                else
 #endif
-                       displayroutes(noresolve, opt & ROUTE_OPT_e);
+                       bb_displayroutes(noresolve, opt & ROUTE_OPT_e);
 
-               xferror_stdout();
-               bb_fflush_stdout_and_exit(EXIT_SUCCESS);
+               fflush_stdout_and_exit(EXIT_SUCCESS);
        }
 
        /* Check verb.  At the moment, must be add, del, or delete. */
@@ -695,7 +686,7 @@ int route_main(int argc, char **argv)
                bb_show_usage();
        }
 
-#ifdef CONFIG_FEATURE_IPV6
+#if ENABLE_FEATURE_IPV6
        if (opt & ROUTE_OPT_INET6)
                INET6_setroute(what, argv);
        else