summaryrefslogtreecommitdiff
path: root/networking/ifupdown.c
diff options
context:
space:
mode:
authorEric Andersen2003-08-06 09:23:44 +0000
committerEric Andersen2003-08-06 09:23:44 +0000
commitfdd2a0f3182840df094878b08b7760cbdea8c08c (patch)
treedb5e7b9cef9b60b031e9e98b01fdf3c96891ffac /networking/ifupdown.c
parentd3652bf334aa9b6d696f93e10980e397f74487a9 (diff)
downloadbusybox-fdd2a0f3182840df094878b08b7760cbdea8c08c.zip
busybox-fdd2a0f3182840df094878b08b7760cbdea8c08c.tar.gz
Eric Spakman writes:
The attached patch adds "mtu" and "hwaddress" to the inet6 method and "mtu", "hwaddr" and "pointopoint" to the inet4 method (just like in the ifupdown part). Note: "hwaddress" can't be used with the busybox ip applet (this function isn't implemented in bb ip yet), but it can be of use with an external "full blown" ip package. The patch also removes "label" from the loopback configuration, labels (subinterfaces) aren't used with loopback interfaces. It further solves a problem in the bootp method, "ifconfig down %interface%" should be "ifconfig %interface% down" and it's now also possible to use ip with bootp. The patch is fully tested with both busybox ip and "stand-alone" ip and I didn't saw any problems.
Diffstat (limited to 'networking/ifupdown.c')
-rw-r--r--networking/ifupdown.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index bae9f4e..afeec36 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -388,7 +388,7 @@ static int loopback_up6(struct interface_defn_t *ifd, execfn *exec)
{
#ifdef CONFIG_FEATURE_IFUPDOWN_IP
int result;
- result =execute("ip addr add ::1 dev %iface% label %label%", ifd, exec);
+ result =execute("ip addr add ::1 dev %iface%", ifd, exec);
result += execute("ip link set %iface% up", ifd, exec);
return( result);
#else
@@ -409,8 +409,8 @@ static int static_up6(struct interface_defn_t *ifd, execfn *exec)
{
int result;
#ifdef CONFIG_FEATURE_IFUPDOWN_IP
- result = execute("ip addr add %address%/%netmask% dev %iface% label %label%", ifd, exec);
- result += execute("ip link set %iface% up", ifd, exec);
+ 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 route add ::/0 via %gateway% ]]", ifd, exec);
#else
result = execute("ifconfig %iface% [[media %media%]] [[hw %hwaddress%]] [[mtu %mtu%]] up", ifd, exec);
@@ -467,7 +467,7 @@ static int loopback_up(struct interface_defn_t *ifd, execfn *exec)
{
#ifdef CONFIG_FEATURE_IFUPDOWN_IP
int result;
- result = execute("ip addr add 127.0.0.1/8 dev %iface% label %label%", ifd, exec);
+ result = execute("ip addr add 127.0.0.1/8 dev %iface%", ifd, exec);
result += execute("ip link set %iface% up", ifd, exec);
return(result);
#else
@@ -492,8 +492,8 @@ static int static_up(struct interface_defn_t *ifd, execfn *exec)
int result;
#ifdef CONFIG_FEATURE_IFUPDOWN_IP
result = execute("ip addr add %address%/%bnmask% [[broadcast %broadcast%]] "
- "dev %iface% label %label%", ifd, exec);
- result += execute("ip link set %iface% up", ifd, exec);
+ "dev %iface% [[peer %pointopoint%]] [[label %label%]]", ifd, exec);
+ result += execute("ip link set [[mtu %mtu%]] [[address %hwaddress%]] %iface% up", ifd, exec);
result += execute("[[ ip route add default via %gateway% dev %iface% ]]", ifd, exec);
#else
result = execute("ifconfig %iface% %address% netmask %netmask% "
@@ -569,7 +569,11 @@ static int bootp_up(struct interface_defn_t *ifd, execfn *exec)
static int bootp_down(struct interface_defn_t *ifd, execfn *exec)
{
- return( execute("ifconfig down %iface%", ifd, exec));
+#ifdef CONFIG_FEATURE_IFUPDOWN_IP
+ return(execute("ip link set %iface% down", ifd, exec));
+#else
+ return(execute("ifconfig %iface% down", ifd, exec));
+#endif
}
static int ppp_up(struct interface_defn_t *ifd, execfn *exec)