aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/ifupdown.c8
-rw-r--r--networking/libiproute/iplink.c11
2 files changed, 11 insertions, 8 deletions
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index c232d86a6..d7cb40f32 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -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 */
diff --git a/networking/libiproute/iplink.c b/networking/libiproute/iplink.c
index dc936bdc5..8de17bfc6 100644
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
@@ -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;