# This is not a shell script; it provides functions to network scripts # that source it. source_config () { DEVNAME=`basename $CONFIG | sed 's/^ifcfg-//g'` if basename $CONFIG | grep '[^g]-' >/dev/null 2>&1 ; then PARENTCONFIG=`echo $CONFIG | sed 's/-[^-]*$//g'` PARENTDEVNAME=`basename $PARENTCONFIG | sed 's/^ifcfg-//g'` [ -f $PARENTCONFIG ] || { echo "Missing config file $PARENTCONFIG." >&2 exit 1 } . $PARENTCONFIG fi . $CONFIG } do_netreport () { # Notify programs that have requested notification ( cd /var/run/netreport || exit for i in * ; do [ -f $i ] && \ kill -SIGIO $i >/dev/null 2>&1 || \ rm -f $i >/dev/null 2>&1 done ) } need_hostname() { if [ "`hostname`" = "(none)" -o "`hostname`" = "localhost" -o \ "`hostname`" = "localhost.localdomain" ]; then NEEDHOSTNAME=yes else unset NEEDHOSTNAME fi } set_hostname() { hostname $1 if ! grep search /etc/resolv.conf >/dev/null 2>&1; then domain=`echo $1 | sed 's/^[^\.]*\.//'` echo "search $domain" >> /etc/resolv.conf fi } check_device_down () { if ifconfig ${DEVICE} 2>/dev/null | LANG=C grep " UP " >/dev/null 2>&1 ; then retcode=1 else retcode=0 fi return $retcode } check_default_route () { return `/sbin/route -n|gawk 'BEGIN{r=1} $3=="0.0.0.0" && $4=="UG" {r=0} END{print r}'` } find_gateway_dev () { . /etc/sysconfig/network if [ "${GATEWAY}" != "" -a "${GATEWAY}" != "none" ] ; then export GATEWAY networks=`/sbin/route -n|awk '{print $1, ENVIRON["GATEWAY"],$3,$8}'|awk '{system("ipcalc --silent --network "$2" "$3" 2>/dev/null")}'|sed s^NETWORK=^^g` for net in $networks; do dev=`/sbin/route -n|grep ^$net|awk '{print $NF}'` if [ "$dev" != "" ] ; then GATEWAYDEV=$dev fi done fi } add_default_route () { . /etc/sysconfig/network find_gateway_dev if [ "${GATEWAY}" != "" -a "${GATEWAY}" != "none" -a "${GATEWAYDEV}" != "" ] ; then if ! check_device_down ; then /sbin/route add default gw ${GATEWAY} ${GATEWAYDEV} fi fi }