iplink: accept shorthands for "address" keyword here:
authorDenis Vlasenko <vda.linux@googlemail.com>
Sat, 1 Nov 2008 00:10:51 +0000 (00:10 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sat, 1 Nov 2008 00:10:51 +0000 (00:10 -0000)
 "ip link set address 00:11:22:33:44:55"
ifupdown: use "addr" instead of "address"

networking/ifupdown.c
networking/libiproute/iplink.c

index c232d86..d7cb40f 100644 (file)
@@ -349,7 +349,7 @@ static int static_up6(struct interface_defn_t *ifd, execfn *exec)
        int result;
 #if ENABLE_FEATURE_IFUPDOWN_IP
        result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
-       result += execute("ip link set[[ mtu %mtu%]][[ address %hwaddress%]] %iface% up", ifd, exec);
+       result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
        /* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
        result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec);
 #else
@@ -433,7 +433,7 @@ static int static_up(struct interface_defn_t *ifd, execfn *exec)
 #if ENABLE_FEATURE_IFUPDOWN_IP
        result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] "
                        "dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec);
-       result += execute("ip link set[[ mtu %mtu%]][[ address %hwaddress%]] %iface% up", ifd, exec);
+       result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
        result += execute("[[ip route add default via %gateway% dev %iface%]]", ifd, exec);
        return ((result == 3) ? 3 : 0);
 #else
@@ -500,7 +500,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
        unsigned i;
 #if ENABLE_FEATURE_IFUPDOWN_IP
        /* ip doesn't up iface when it configures it (unlike ifconfig) */
-       if (!execute("ip link set[[ address %hwaddress%]] %iface% up", ifd, exec))
+       if (!execute("ip link set[[ addr %hwaddress%]] %iface% up", ifd, exec))
                return 0;
 #else
        /* needed if we have hwaddress on dhcp iface */
@@ -519,7 +519,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
 {
 #if ENABLE_FEATURE_IFUPDOWN_IP
        /* ip doesn't up iface when it configures it (unlike ifconfig) */
-       if (!execute("ip link set[[ address %hwaddress%]] %iface% up", ifd, exec))
+       if (!execute("ip link set[[ addr %hwaddress%]] %iface% up", ifd, exec))
                return 0;
 #else
        /* needed if we have hwaddress on dhcp iface */
index dc936bd..8de17bf 100644 (file)
@@ -174,15 +174,18 @@ static int do_set(char **argv)
        char *newname = NULL;
        int htype, halen;
        static const char keywords[] ALIGN1 =
-               "up\0""down\0""name\0""mtu\0""multicast\0""arp\0""address\0""dev\0";
-       enum { ARG_up = 0, ARG_down, ARG_name, ARG_mtu, ARG_multicast, ARG_arp,
-               ARG_addr, ARG_dev };
+               "up\0""down\0""name\0""mtu\0""multicast\0"
+               "arp\0""address\0""dev\0";
+       enum { ARG_up = 0, ARG_down, ARG_name, ARG_mtu, ARG_multicast,
+               ARG_arp, ARG_addr, ARG_dev };
        static const char str_on_off[] ALIGN1 = "on\0""off\0";
        enum { PARM_on = 0, PARM_off };
        smalluint key;
 
        while (*argv) {
-               key = index_in_strings(keywords, *argv);
+               /* substring search ensures that e.g. "addr" and "address"
+                * are both accepted */
+               key = index_in_substrings(keywords, *argv);
                if (key == ARG_up) {
                        mask |= IFF_UP;
                        flags |= IFF_UP;