diff options
Diffstat (limited to 'source/ap/lxc/scripts/rc.inet1.orig')
-rw-r--r-- | source/ap/lxc/scripts/rc.inet1.orig | 376 |
1 files changed, 0 insertions, 376 deletions
diff --git a/source/ap/lxc/scripts/rc.inet1.orig b/source/ap/lxc/scripts/rc.inet1.orig deleted file mode 100644 index cf9da0f4..00000000 --- a/source/ap/lxc/scripts/rc.inet1.orig +++ /dev/null @@ -1,376 +0,0 @@ -#!/bin/bash -# /etc/rc.d/rc.inet1 -# This script is used to bring up the various network interfaces. -# -# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv) - -############################ -# READ NETWORK CONFIG FILE # -############################ - -# Get the configuration information from /etc/rc.d/rc.inet1.conf: -. /etc/rc.d/rc.inet1.conf - -########### -# LOGGING # -########### - -# If possible, log events in /var/log/messages: -if [ -f /var/run/syslogd.pid ] && [ -x /usr/bin/logger ]; then - LOGGER=/usr/bin/logger -else # output to stdout/stderr: - LOGGER=/bin/cat -fi - -# Handy wrapper for verbose logging -debug_log() { - if [ "$DEBUG_ETH_UP" = "yes" ]; then - echo "/etc/rc.d/rc.inet1: $*" | $LOGGER - fi -} - -############################ -# DETERMINE INTERFACE LIST # -############################ - -# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum -# of 6 interfaces, but you can easily enlarge the interface limit -# - send me a picture of such a box :-). -# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface. -# This way, the new script is compatible with older rc.inet1.conf files. -# The IFNAME array will be used to determine which interfaces to bring up/down. -MAXNICS=${MAXNICS:-6} -i=0 -while [ $i -lt $MAXNICS ]; -do - IFNAME[$i]=${IFNAME[$i]:=eth${i}} - i=$(($i+1)) -done -debug_log "List of interfaces: '${IFNAME[*]}'" - -###################### -# LOOPBACK FUNCTIONS # -###################### - -# Function to bring up the loopback interface. If loopback is -# already up, do nothing. -lo_up() { - if [ -e /sys/class/net/lo ]; then - if ! /sbin/ip link show dev lo | grep -wq -e "state UP" -e "state UNKNOWN" ; then - echo "/etc/rc.d/rc.inet1: /sbin/ip address add 127.0.0.1/8 dev lo" | $LOGGER - /sbin/ip address add 127.0.0.1/8 dev lo - /sbin/ip link set dev lo up - echo "/etc/rc.d/rc.inet1: /sbin/ip route add 127.0.0.0/8 dev lo" | $LOGGER - /sbin/ip route add 127.0.0.0/8 dev lo - fi - fi -} - -# Function to take down the loopback interface: -lo_down() { - if [ -e /sys/class/net/lo ]; then - echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev lo down" | $LOGGER - /sbin/ip link set dev lo down - fi -} - -####################### -# INTERFACE FUNCTIONS # -####################### - -# Function to create virtual interfaces -virtif_create() { - # argument is 'i' - the position of this interface in the VIRTIFNAME array. - # this loop goes from i=0 to i=number_of_configured_virtual_interfaces_minus_one - # which means it doesn't do anything if there are none. - for i in $(seq 0 $((${#VIRTIFNAME[@]} - 1))); do - /sbin/ip tuntap add dev ${VIRTIFNAME[$i]} mode ${VIRTIFTYPE[$i]} user ${VIRTIFUSER[$i]} group ${VIRTIFGROUP[$i]} - done -} - -# Function to destory virtual interfaces -virtif_destroy() { - # argument is 'i' - the position of this interface in the VIRTIFNAME array. - for i in $(seq 0 $((${#VIRTIFNAME[@]} - 1))); do - /sbin/ip tuntap del dev ${VIRTIFNAME[$i]} mode ${VIRTIFTYPE[$i]} - done -} - -# Function to assemble a bridge interface. -br_open() { - # argument is 'i' - the position of this interface in the IFNAME array. - /sbin/ip link add name ${IFNAME[$1]} type bridge - for BRIF in ${BRNICS[$1]}; do - /sbin/ip link set dev $BRIF down - /sbin/ip address add 0.0.0.0 dev $BRIF - /sbin/ip link set dev $BRIF master ${IFNAME[$1]} - /sbin/ip link set dev $BRIF up - done - /sbin/ip link set dev ${IFNAME[$1]} up -} - -# Function to disassemble a bridge interface. -br_close() { - /sbin/ip link set dev ${IFNAME[$1]} down - # argument is 'i' - the position of this interface in the IFNAME array. - #for BRIF in ${BRNICS[$1]}; do - for BRIF in $(ls --indicator-style=none /sys/class/net/${IFNAME[$1]}/brif/) - do - /sbin/ip link set dev $BRIF nomaster - done - /sbin/ip link set dev ${IFNAME[$1]} down - /sbin/ip link del ${IFNAME[$1]} -} - -# Function to bring up a network interface. If the interface is -# already up or does not yet exist (perhaps because the kernel driver -# is not loaded yet), do nothing. -if_up() { - # Determine position 'i' of this interface in the IFNAME array: - i=0 - while [ $i -lt $MAXNICS ]; do - [ "${IFNAME[$i]}" = "${1}" ] && break - i=$(($i+1)) - done - # If "i" is greater or equal to "MAXNICS" at this point, it means we didn't - # find an entry in IFNAME array corresponding to "$1", which likely means - # there are more interfaces configured than MAXNICS. Let's err on the - # side of caution and do nothing instead of possibly doing the wrong thing. - if [ $i -ge $MAXNICS ]; then - echo "/etc/rc.d/rc.inet1: skipping ${1}, you might need to increase MAXNICS" | $LOGGER - return - fi - # If the interface is a bridge, then create it first: - [ -n "${BRNICS[$i]}" ] && br_open $i - # If the interface isn't in the kernel yet (but there's an alias for it in - # modules.conf), then it should be loaded first: - if [ -z "${IPADDR[$i]}" ] && [ "${USE_DHCP[$i]}" != "yes" ]; then # skip unconfigured interfaces - debug_log "skipping ${1} early, interface is not configured in /etc/rc.d/rc.inet1.conf" - return 0 - fi - if [ ! -e /sys/class/net/${1%%:*} ]; then # no interface yet - if /sbin/modprobe -c | grep -v "^#" | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then - echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER - /sbin/modprobe ${1} - fi - fi - if [ -e /sys/class/net/${1%%:*} ]; then # interface exists - if ! /sbin/ip address show dev ${1} 2>/dev/null | grep -wq inet || \ - ! /sbin/ip link show dev ${1} | grep -wq "state UP" ; then # interface not up or not configured - if [ -n "${HWADDR[$i]}" ]; then # Set hardware address _before_ the interface goes up: - echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} address ${HWADDR[$i]}" | $LOGGER - /sbin/ip link set dev ${1} address ${HWADDR[$i]} - fi - if [ -n "${MTU[$i]}" ]; then # Set MTU to something else than 1500 - echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} mtu ${MTU[$i]}" | $LOGGER - /sbin/ip link set dev ${1} mtu ${MTU[$i]} - fi - if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then - /sbin/ip link set dev ${1} up # Bring up interface - fi - if [ -x /etc/rc.d/rc.wireless ]; then - . /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters - fi - if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up - # Clear DHCP_OPTIONS before adding new options to it: - unset DHCP_OPTIONS - # Set DHCP_OPTIONS for this interface: - [ -n "${DHCP_HOSTNAME[$i]}" ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}" - [ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -C resolv.conf" - [ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -C ntp.conf" - [ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G" - [ "${DHCP_DEBUG[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -d" - [ "${DHCP_NOIPV4LL[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -L" - [ -n "${DHCP_IPADDR[$i]}" ] && DHCP_OPTIONS="$DHCP_OPTIONS -r ${DHCP_IPADDR[$i]}" - echo "Polling for DHCP server on interface ${1}:" - # If you set a timeout, you get one, even if the kernel doesn't think that - # your device is connected, in case /sys isn't right (which it usually isn't - # except right after the device is loaded, when it usually is): - #### (start commented out) - # This is deactivated for now since the kernel has been returning incorrect - # results concerning whether the interface carrier is detected. - #if [ -z "${DHCP_TIMEOUT[$i]}" ]; then - # /sbin/ip link set dev ${1} up && sleep 1 - # CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)" - # /sbin/ip link set dev ${1} down - # if [ "$CONNSTATUS" = "0" ]; then - # # The kernel has just told us the cable isn't even plugged in, but we will - # # give any DHCP server a short chance to reply anyway: - # echo "No carrier detected on ${1}. Reducing DHCP timeout to 15 seconds." - # DHCP_TIMEOUT[$i]=15 - # fi - #fi - #### (end commented out) - # 15 seconds should be a reasonable default DHCP timeout. 30 was too much. - echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -L -t ${DHCP_TIMEOUT[$i]:-15} ${DHCP_OPTIONS} ${1}" | $LOGGER - /sbin/dhcpcd -L -t ${DHCP_TIMEOUT[$i]:-15} ${DHCP_OPTIONS} ${1} - if [ "$?" == "0" ]; then # the dhcp call has succeeded - if [ -n "${IPALIASES[$i]}" ]; then - # Add extra IP addresses, if defined, to interface - num=0 - for ipalias in ${IPALIASES[$i]}; do - ip="${ipalias%/*}" - nm="${ipalias#*/}" - [ -z "$nm" ] || [ "$ip" == "$nm" ] && nm="32" - /sbin/ip address add ${ip}/${nm} dev ${1} label ${1}:${num} - num=$(($num + 1)) - done - fi - if [ "${PROMISCUOUS[$i]}" = "yes" ]; then - # Set promiscuous mode on the interface - /sbin/ip link set dev ${1} promisc on - fi - fi - else # bring up interface using a static IP address - if [ -n "${IPADDR[$i]}" ]; then # skip unconfigured interfaces - # Set up the network card: - echo "/etc/rc.d/rc.inet1: /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} broadcast + dev ${1}" | $LOGGER - /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} broadcast + dev ${1} - if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then - /sbin/ip link set dev ${1} up # Bring up interface - fi - # Add extra IP addresses, if defined, to interface - if [ -n "${IPALIASES[$i]}" ]; then - num=0 - for ipalias in ${IPALIASES[$i]}; do - ip="${ipalias%/*}" - nm="${ipalias#*/}" - [ -z "$nm" ] || [ "$ip" == "$nm" ] && nm="32" - /sbin/ip address add ${ip}/${nm} dev ${1} label ${1}:${num} - num=$(($num + 1)) - done - fi - if [ "${PROMISCUOUS[$i]}" = "yes" ]; then - # Set promiscuous mode on the interface - /sbin/ip link set dev ${1} promisc on - fi - else - debug_log "${1} interface is not configured in /etc/rc.d/rc.inet1.conf" - fi - fi - else - debug_log "${1} is already up, skipping" - fi - else - debug_log "${1} interface does not exist (yet)" - fi -} - -# Function to take down a network interface: -if_down() { - # Determine position 'i' of this interface in the IFNAME array: - i=0 - while [ $i -lt $MAXNICS ]; do - [ "${IFNAME[$i]}" = "${1}" ] && break - i=$(($i+1)) - done - if [ $i -ge $MAXNICS ]; then - echo "/etc/rc.d/rc.inet1: skipping ${1}, you might need to increase MAXNICS" | $LOGGER - return - fi - if [ -e /sys/class/net/${1%%:*} ]; then - if [ "${USE_DHCP[$i]}" = "yes" ]; then - echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER - /sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ip link set dev ${1} down - sleep 1 - else - echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} down" | $LOGGER - /sbin/ip link set dev ${1} down - fi - if [ -x /etc/rc.d/rc.wireless ]; then - . /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any. - fi - # If the interface is a bridge, then destroy it now: - if [ -n "${BRNICS[$i]}" ]; then - br_close $i - fi - # Flush the address from the interface: - ip address flush dev ${1} - fi -} - -##################### -# GATEWAY FUNCTIONS # -##################### - -# Function to bring up the gateway if there is not yet a default route: -gateway_up() { - if ! /sbin/ip route show | grep -wq default ; then - if [ -n "$GATEWAY" ]; then - echo "/etc/rc.d/rc.inet1: /sbin/ip route add default via ${GATEWAY}" | $LOGGER - /sbin/ip route add default via ${GATEWAY} | $LOGGER - fi - fi -} - -# Function to take down an existing default gateway: -gateway_down() { - if /sbin/ip route show | grep -wq default ; then - echo "/etc/rc.d/rc.inet1: /sbin/ip route del default" | $LOGGER - /sbin/ip route del default - fi -} - -# Function to start the network: -start() { - lo_up - virtif_create - for i in "${IFNAME[@]}" ; do - if_up $i - done - gateway_up -} - -# Function to stop the network: -stop() { - gateway_down - for i in "${IFNAME[@]}" ; do - if_down $i - done - virtif_destroy - lo_down -} - - -############ -### MAIN ### -############ - -case "$1" in -start|up) # "start" (or "up") brings up all configured interfaces: - start - ;; -stop|down) # "stop" (or "down") takes down all configured interfaces: - stop - ;; -restart) # "restart" restarts the network: - stop - start - ;; -lo_start|lo_up) # Start the loopback interface: - lo_up - ;; -lo_stop|lo_down) # Stop the loopback interface: - lo_down - ;; -*_start|*_up) # Example: "eth1_start" (or "eth1_up") will start the specified interface 'eth1' - INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1) - if_up $INTERFACE - gateway_up - ;; -*_stop|*_down) # Example: "eth0_stop" (or "eth0_down") will stop the specified interface 'eth0' - INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1) - if_down $INTERFACE - ;; -*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again - INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1) - if_down $INTERFACE - sleep 1 - if_up $INTERFACE - gateway_up - ;; -*) # The default is to bring up all configured interfaces: - start -esac - -# End of /etc/rc.d/rc.inet1 |