aboutsummaryrefslogtreecommitdiff
path: root/network
diff options
context:
space:
mode:
authorVictor Lowther <victor.lowther@gmail.com>2010-07-03 13:51:31 -0500
committerVictor Lowther <victor.lowther@gmail.com>2010-07-23 15:57:07 -0500
commita334b36b987cd0b2955108399f558f964be56565 (patch)
tree66d3c67cd1ab95b15b94a7e318eb0b658b9cfe80 /network
parent99ec6c69b11a68299bdca07fbebbcc18abd915e2 (diff)
downloadinitscripts-a334b36b987cd0b2955108399f558f964be56565.tar.xz
Trivial bashification of network script.
Diffstat (limited to 'network')
-rwxr-xr-xnetwork413
1 files changed, 200 insertions, 213 deletions
diff --git a/network b/network
index 977e81e..20ff9c7 100755
--- a/network
+++ b/network
@@ -3,275 +3,262 @@
. /etc/rc.conf
. /etc/rc.d/functions
-# wireless settings
-[ -f /etc/conf.d/wireless ] && . /etc/conf.d/wireless
-# ethernet bonding settings
-[ -f /etc/conf.d/bonding ] && . /etc/conf.d/bonding
-# bridge settings
-[ -f /etc/conf.d/bridges ] && . /etc/conf.d/bridges
-# dhcpcd settings
-[ -f /etc/conf.d/dhcpcd ] && . /etc/conf.d/dhcpcd
+for s in wireless bonding bridges dhcpcd; do
+ [[ -f /etc/conf.d/$s ]] && . "/etc/conf.d/$s"
+done
ifup()
{
- if [ "$1" = "" ]; then
- echo "usage: $0 ifup <interface_name>"
- return 1
- fi
+ if [[ ! $1 ]]; then
+ echo "usage: $0 ifup <interface_name>"
+ return 1
+ fi
+ eval ifcfg="\$${1}"
- eval ifcfg="\$${1}"
+ # Get the name of the interface from the first token in the string
+ if [[ $ifcfg = dhcp ]]; then
+ ifname=$1
+ else
+ ifname=${ifcfg%% *}
+ fi
- # Get the name of the interface from the first token in the string
+ /sbin/ifconfig $ifname up
- if [ "$ifcfg" = "dhcp" ]; then
- ifname="$1"
- else
- ifname=${ifcfg%% *}
- fi
+ wi_up $1 || return 1
- /sbin/ifconfig $ifname up
-
- wi_up $1 || return 1
-
- if [ "$ifcfg" = "dhcp" ]; then
- # remove the .pid file if it exists
- /bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1
- /bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
- /sbin/dhcpcd $DHCPCD_ARGS ${1}
- else
- /sbin/ifconfig $ifcfg
- fi
- return $?
+ if [[ $ifcfg = dhcp ]]; then
+ # remove the .pid file if it exists
+ /bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1
+ /bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
+ /sbin/dhcpcd $DHCPCD_ARGS ${1}
+ else
+ /sbin/ifconfig $ifcfg
+ fi
}
wi_up()
{
- eval iwcfg="\$wlan_${1}"
- [ "$iwcfg" = "" ] && return 0
+ eval iwcfg="\$wlan_${1}"
+ [[ ! $iwcfg ]] && return 0
- /usr/sbin/iwconfig $iwcfg
- [[ -z "$WIRELESS_TIMEOUT" ]] && WIRELESS_TIMEOUT=2
- sleep $WIRELESS_TIMEOUT
+ /usr/sbin/iwconfig $iwcfg
+ [[ $WIRELESS_TIMEOUT ]] || WIRELESS_TIMEOUT=2
+ sleep $WIRELESS_TIMEOUT
- bssid=`iwgetid $1 -ra`
- if [[ "$bssid" = "00:00:00:00:00:00" ]]; then
- printhl "Could not associate $1 - try increasing WIRELESS_TIMEOUT and check network is WEP or has no security"
- return 1
- fi
- return 0
+ bssid=$(iwgetid $1 -ra)
+ if [[ $bssid = 00:00:00:00:00:00 ]]; then
+ printhl "Could not associate $1 - try increasing WIRELESS_TIMEOUT and check network is WEP or has no security"
+ return 1
+ fi
+ return 0
}
ifdown()
{
- if [ "$1" = "" ]; then
- echo "usage: $0 ifdown <interface_name>"
- return 1
- fi
- eval ifcfg="\$${1}"
- if [ "$ifcfg" = "dhcp" ]; then
- if [ -f /var/run/dhcpcd-${1}.pid ]; then
- /bin/kill $(cat /var/run/dhcpcd-${1}.pid)
- fi
- fi
- # Always bring the interface itself down
- /sbin/ifconfig ${1} down >/dev/null 2>&1
- return $?
+ if [[ ! $1 ]]; then
+ echo "usage: $0 ifdown <interface_name>"
+ return 1
+ fi
+ eval ifcfg="\$${1}"
+ if [[ $ifcfg = dhcp && -f /var/run/dhcpcd-${1}.pid ]]; then
+ /bin/kill $(cat /var/run/dhcpcd-${1}.pid)
+ fi
+ # Always bring the interface itself down
+ /sbin/ifconfig ${1} down >/dev/null 2>&1
}
iflist()
{
- for ifline in ${INTERFACES[@]}; do
- if [ "$ifline" = "${ifline#!}" ]; then
- printf " $ifline:\t"
- else
- printf "$ifline:\t"
- fi
- eval real_ifline=\$${ifline#!}
- echo $real_ifline
- done
+ for ifline in ${INTERFACES[@]}; do
+ if [[ $ifline = ${ifline#!} ]]; then
+ printf " $ifline:\t"
+ else
+ printf "$ifline:\t"
+ fi
+ eval real_ifline=\$${ifline#!}
+ echo $real_ifline
+ done
}
rtup()
{
- if [ "$1" = "" ]; then
- echo "usage: $0 rtup <route_name>"
- return 1
- fi
- eval routecfg="\$${1}"
- if grep -q :: <<< $routecfg; then
- /sbin/route -A inet6 add $routecfg
- else
- /sbin/route add $routecfg
- fi
- return $?
+ if [[ ! $1 ]]; then
+ echo "usage: $0 rtup <route_name>"
+ return 1
+ fi
+ eval routecfg="\$${1}"
+ if [[ $routecfg =~ :: ]]; then
+ /sbin/route -A inet6 add $routecfg
+ else
+ /sbin/route add $routecfg
+ fi
}
rtdown()
{
- if [ "$1" = "" ]; then
- echo "usage: $0 rtdown <route_name>"
- return 1
- fi
- eval routecfg="\$${1}"
- if grep -q :: <<< $routecfg; then
- /sbin/route -A inet6 del $routecfg
- else
- /sbin/route del $routecfg
- fi
- return $?
+ if [[ ! $1 ]; then
+ echo "usage: $0 rtdown <route_name>"
+ return 1
+ fi
+ eval routecfg="\$${1}"
+ if [[ $routecfg =~ :: ]]; then
+ /sbin/route -A inet6 del $routecfg
+ else
+ /sbin/route del $routecfg
+ fi
}
rtlist()
{
- for rtline in ${ROUTES[@]}; do
- if [ "$rtline" = "${rtline#!}" ]; then
- printf " $rtline:\t"
- else
- printf "$rtline:\t"
- fi
- eval real_rtline=\$${rtline#!}
- echo $real_rtline
- done
+ for rtline in ${ROUTES[@]}; do
+ if [[ $rtline = ${rtline#!} ]]; then
+ printf " $rtline:\t"
+ else
+ printf "$rtline:\t"
+ fi
+ eval real_rtline=\$${rtline#!}
+ echo $real_rtline
+ done
}
bond_up()
{
- for ifline in ${BOND_INTERFACES[@]}; do
- if [ "$ifline" = "${ifline#!}" ]; then
- eval bondcfg="\$bond_${ifline}"
- if [ -n "${bondcfg}" ]; then
- /sbin/ifenslave $ifline $bondcfg || error=1
- fi
- fi
- done
+ for ifline in ${BOND_INTERFACES[@]}; do
+ if [[ $ifline = ${ifline#!} ]]; then
+ eval bondcfg="\$bond_${ifline}"
+ if [[ ${bondcfg} ]]; then
+ /sbin/ifenslave $ifline $bondcfg || error=1
+ fi
+ fi
+ done
}
bond_down()
{
- for ifline in ${BOND_INTERFACES[@]}; do
- if [ "$ifline" = "${ifline#!}" ]; then
- eval bondcfg="\$bond_${ifline}"
- /sbin/ifenslave -d $ifline $bondcfg || error=1
- fi
- done
+ for ifline in ${BOND_INTERFACES[@]}; do
+ if [[ $ifline = ${ifline#!} ]]; then
+ eval bondcfg="\$bond_${ifline}"
+ /sbin/ifenslave -d $ifline $bondcfg || error=1
+ fi
+ done
}
bridge_up()
{
- for br in ${BRIDGE_INTERFACES[@]}; do
- if [ "$br" = "${br#!}" ]; then
- # if the bridge already exists, remove it
- if [ "$(/sbin/ifconfig $br 2>/dev/null)" ]; then
- /sbin/ifconfig $br down
- /usr/sbin/brctl delbr $br
- fi
- /usr/sbin/brctl addbr $br
- eval brifs="\$bridge_${br}"
- for brif in $brifs; do
- if [ "$brif" = "${brif#!}" ]; then
- for ifline in ${BOND_INTERFACES[@]}; do
- if [ "$brif" = "$ifline" ] && [ "$ifline" = "${ifline#!}" ]; then
- ifup $ifline
- eval bondcfg="\$bond_${ifline}"
- /sbin/ifenslave $ifline $bondcfg || error=1
- unset bond_${ifline}
- fi
- done
+ for br in ${BRIDGE_INTERFACES[@]}; do
+ if [[ $br = ${br#!} ]]; then
+ # if the bridge already exists, remove it
+ if [[ $(/sbin/ifconfig $br 2>/dev/null) ]]; then
+ /sbin/ifconfig $br down
+ /usr/sbin/brctl delbr $br
+ fi
+ /usr/sbin/brctl addbr $br
+ eval brifs="\$bridge_${br}"
+ for brif in $brifs; do
+ if [[ $brif = ${brif#!} ]]; then
+ for ifline in ${BOND_INTERFACES[@]}; do
+ if [[ $brif = $ifline && $ifline = ${ifline#!} ]]; then
+ ifup $ifline
+ eval bondcfg="\$bond_${ifline}"
+ /sbin/ifenslave $ifline $bondcfg || error=1
+ unset bond_${ifline}
+ fi
+ done
- /usr/sbin/brctl addif $br $brif || error=1
- fi
- done
- fi
- done
+ /usr/sbin/brctl addif $br $brif || error=1
+ fi
+ done
+ fi
+ done
}
bridge_down()
{
- for br in ${BRIDGE_INTERFACES[@]}; do
- if [ "$br" = "${br#!}" ]; then
- /usr/sbin/brctl delbr $br
- fi
- done
+ for br in ${BRIDGE_INTERFACES[@]}; do
+ if [[ $br = ${br#!} ]]; then
+ /usr/sbin/brctl delbr $br
+ fi
+ done
}
case "$1" in
- start)
- if ! ck_daemon network; then
- echo "Network is already running. Try 'network restart'"
- exit
- fi
+ start)
+ if ! ck_daemon network; then
+ echo "Network is already running. Try 'network restart'"
+ exit
+ fi
- stat_busy "Starting Network"
- error=0
- # bring up bridge interfaces
- bridge_up
- # bring up ethernet interfaces
- for ifline in ${INTERFACES[@]}; do
- if [ "$ifline" = "${ifline#!}" ]; then
- ifup $ifline || error=1
- fi
- done
- # bring up bond interfaces
- bond_up
- # bring up routes
- for rtline in "${ROUTES[@]}"; do
- if [ "$rtline" = "${rtline#!}" ]; then
- rtup $rtline || error=1
- fi
- done
- if [ $error -eq 0 ]; then
- add_daemon network
- stat_done
- else
- stat_fail
- fi
- ;;
- stop)
- #if ck_daemon network; then
- # echo "Network is not running. Try 'network start'"
- # exit
- #fi
+ stat_busy "Starting Network"
+ error=0
+ # bring up bridge interfaces
+ bridge_up
+ # bring up ethernet interfaces
+ for ifline in ${INTERFACES[@]}; do
+ if [[ $ifline = ${ifline#!} ]]; then
+ ifup $ifline || error=1
+ fi
+ done
+ # bring up bond interfaces
+ bond_up
+ # bring up routes
+ for rtline in "${ROUTES[@]}"; do
+ if [ "$rtline" = "${rtline#!}" ]; then
+ rtup $rtline || error=1
+ fi
+ done
+ if ((error == 0)); then
+ add_daemon network
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ #if ck_daemon network; then
+ # echo "Network is not running. Try 'network start'"
+ # exit
+ #fi
- if [ "${NETWORK_PERSIST}" = "yes" -o "${NETWORK_PERSIST}" = "YES" ]; then
- status "Skipping Network Shutdown" true
- exit 0
- fi
+ if [[ $NETWORK_PERSIST =~ yes|YES ]]; then
+ status "Skipping Network Shutdown" true
+ exit 0
+ fi
- stat_busy "Stopping Network"
- rm_daemon network
- error=0
- for rtline in "${ROUTES[@]}"; do
- if [ "$rtline" = "${rtline#!}" ]; then
- rtdown $rtline || error=1
- fi
- done
- # bring down bond interfaces
- bond_down
- for ifline in ${INTERFACES[@]}; do
- if [ "$ifline" = "${ifline#!}" ]; then
- ifdown $ifline || error=1
- fi
- done
- # bring down bridge interfaces
- bridge_down
- if [ $error -eq 0 ]; then
- stat_done
- else
- stat_fail
- fi
- ;;
- restart)
- $0 stop
- /bin/sleep 2
- $0 start
- ;;
- ifup|ifdown|iflist|rtup|rtdown|rtlist)
- $1 $2
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
- echo " $0 {ifup|ifdown|iflist|rtup|rtdown|rtlist}"
+ stat_busy "Stopping Network"
+ rm_daemon network
+ error=0
+ for rtline in "${ROUTES[@]}"; do
+ if [[ $rtline = ${rtline#!} ]]; then
+ rtdown $rtline || error=1
+ fi
+ done
+ # bring down bond interfaces
+ bond_down
+ for ifline in ${INTERFACES[@]}; do
+ if [[ $ifline = ${ifline#!} ]]; then
+ ifdown $ifline || error=1
+ fi
+ done
+ # bring down bridge interfaces
+ bridge_down
+ if ((error == 0)); then
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ /bin/sleep 2
+ $0 start
+ ;;
+ ifup|ifdown|iflist|rtup|rtdown|rtlist)
+ $1 $2
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ echo " $0 {ifup|ifdown|iflist|rtup|rtdown|rtlist}";;
esac
-# vim: set ts=2 noet:
+# vim: set ts=4 sw=4 noet: