]> git.pld-linux.org Git - projects/rc-scripts.git/blobdiff - lib/ifup
If an iface type is specified NEVER override it
[projects/rc-scripts.git] / lib / ifup
index d0dd044790b84998a1d44287dedd9db5d72fc5bd..c53444235e1b2f49ee6c3cbdc073e686e48afa35 100755 (executable)
--- a/lib/ifup
+++ b/lib/ifup
@@ -1,6 +1,5 @@
 #!/bin/sh
 #
-#      $Id$
 #
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 
@@ -64,6 +63,8 @@ IPSETUP=no
 # set all major variables
 setup_ip_param
 
+SYSCTLDEVICE=$(echo ${DEVICE} | sed 's/\./\//g')
+
 OTHERSCRIPT="/lib/rc-scripts/ifup-${DEVICETYPE}"
 
 if [ -x "$OTHERSCRIPT" ]; then
@@ -79,7 +80,7 @@ fi
 
 if [ -n "$MACVLAN_DEV" -a -n "$MACVLAN_MACADDR" ]; then
        ip link del link ${MACVLAN_DEV} ${DEVICE} type macvlan > /dev/null 2>&1
-       ip link add link ${MACVLAN_DEV} address ${MACVLAN_MACADDR} ${DEVICE} type macvlan
+       ip link add link ${MACVLAN_DEV} address ${MACVLAN_MACADDR} name ${DEVICE} type macvlan
 fi
 
 # is this device available? (this catches PCMCIA devices for us)
@@ -88,25 +89,6 @@ if ! /sbin/ip link set multicast ${MULTICAST} dev ${DEVICE} > /dev/null 2>&1; th
        exit 1
 fi
 
-if is_yes "$SLAVE" && [ ! -x /sbin/ifenslave ]; then
-       nls "%s is missing. Can't continue." "/sbin/ifenslave"
-       exit 1
-fi
-
-if is_yes "$SLAVE" && [ -n "$MASTER" -a -x /sbin/ifenslave ]; then
-       RFLAG="" && is_yes "${RECIEVE-ONLY}" && RFLAG="-r"
-
-       ip link set ${DEVICE} down
-       nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
-       ifenslave $RFLAG "$MASTER" "$DEVICE"
-
-       if [ -n "$ETHTOOL_OPTS" ] ; then
-               /sbin/ethtool -s $DEVICE $ETHTOOL_OPTS
-       fi
-
-       exit 0
-fi
-
 if [ -n "$MACADDR" ]; then
        ip link set ${DEVICE} address ${MACADDR}
 fi
@@ -118,7 +100,7 @@ if [ -n "$MTU" ]; then
 fi
 
 if is_yes "${IPV6_NETWORKING}" && is_yes "${IPV6_DISABLE_AUTOCONF}"; then
-       run_cmd "Disabling IPv6 autoconfiguration" sysctl -w net.ipv6.conf.${DEVICE}.autoconf=0
+       run_cmd "Disabling IPv6 autoconfiguration" sysctl -w net.ipv6.conf.${SYSCTLDEVICE}.autoconf=0
 fi
 
 if is_wireless_device "${DEVICE}"; then
@@ -133,6 +115,18 @@ if is_yes "${WLAN_WPA}"; then
        check_link_down ${DEVICE} $(( $WLAN_WPA_WAIT_TIMEOUT * 2 ))
 fi
 
+if [ -n "$ETHTOOL_OPTS" ] ; then
+    /sbin/ethtool -s $DEVICE $ETHTOOL_OPTS
+fi
+
+if is_yes "$SLAVE" && [ -n "$MASTER" ] ; then
+    nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
+    ip link set "$DEVICE" master "$MASTER"
+    ip link set "$DEVICE" up
+
+    exit 0
+fi
+
 if [ "$HANDLING" = "2" ]; then
        exit 0
 fi
@@ -144,7 +138,8 @@ if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ]; th
                DHCP_ARGS=
                if [ -n "$DHCP_CLIENT" ]; then
                        if [ -z "$DHCP_HOSTNAME" ]; then
-                               DHCP_HOSTNAME="$HOSTNAME"
+                               # set DHCP_HOSTNAME only basename
+                               DHCP_HOSTNAME=${HOSTNAME%%.*}
                        fi
                        case ${DHCP_CLIENT##*/} in
                          pump)
@@ -223,7 +218,7 @@ else
        if is_yes "$IPV4_NETWORKING" && [ -n "${IP4ADDR}" -a -x /sbin/arping ]; then
                # update ARP cache of neighbouring computers
                /sbin/arping -q -A -c 1 -I ${DEVICE} ${IP4ADDR%/*}
-               ( sleep 2; /sbin/arping -q -U -c 1 -I ${DEVICE} ${IP4ADDR%/*} ) > /dev/null 2>&1 < /dev/null &
+               { ( sleep 2; /sbin/arping -q -U -c 1 -I ${DEVICE} ${IP4ADDR%/*} ) & } > /dev/null 2>&1
        fi
 
        # IPv4/6 gateways and default routes
@@ -232,7 +227,7 @@ fi
 
 # device have to have ip address set before
 if is_yes "$PROXYARP"; then
-       run_cmd "$(nls 'Enabling proxy ARP on %s' "${DEVICE}")" sysctl -w net.ipv4.conf.${DEVICE}.proxy_arp=1
+       run_cmd "$(nls 'Enabling proxy ARP on %s' "${DEVICE}")" sysctl -w net.ipv4.conf.${SYSCTLDEVICE}.proxy_arp=1
 fi
 
 if [ "$HANDLING" = "3" ]; then
This page took 0.043697 seconds and 4 git commands to generate.