2 # $Id: functions.network,v 1.11 1999/07/15 13:29:44 misiek Exp $
4 # This is not a shell script; it provides functions to network scripts
9 DEVNAME=`basename $CONFIG | sed 's/^ifcfg-//g'`
11 if basename $CONFIG | grep -q '[^g]-' ; then
12 PARENTCONFIG=`echo $CONFIG | sed 's/-[^-]*$//g'`
13 PARENTDEVNAME=`echo $PARENTCONFIG | sed 's/^ifcfg-//g'`
14 [ -f $PARENTCONFIG ] || {
15 echo "Missing config file $PARENTCONFIG." >&2
20 . /etc/sysconfig/interfaces/$CONFIG
25 # Notify programs that have requested notification
26 ( cd /var/run/netreport || exit
29 kill -SIGIO $i >/dev/null 2>&1 || \
30 rm -f $i >/dev/null 2>&1
37 if [ "`hostname`" = "(none)" -o "`hostname`" = "localhost" -o \
38 "`hostname`" = "localhost.localdomain" ]; then
47 echo "$1" > /etc/HOSTNAME
49 if ! grep search /etc/resolv.conf; then
50 domain=`echo $1 | sed 's/^[^\.]*\.//'`
51 echo "search $domain" >> /etc/resolv.conf
55 # PLD network functions
56 # (C) 1999 Arkadiusz Mi¶kiewicz <misiek@pld.org.pl>
58 # All functions must be called "name_of_function on" or "name_of_function off"
60 # proc_net <zmien> <start/stop> <co ustaw> <co default> <nazwa_zmiennej> [komunikat]
61 # proc_net ipv4/ip_forward start 1 0 IPV4_FORWARDING "IPv4 forwarding"
63 # wy¶wietli siê komunikat "Setting IPv4 forwarding to 1"
64 # je¶li nie podano komunikatu nic nie jest wy¶wietlane
76 if [ -n "$VARD" ] && [ -e /proc/sys/net/$WHAT ]; then
77 if [ "$TODO" == "start" ]; then
78 [ "$VARD" == "no" -a "$SET" == "1" ] && SET="(($SET - 1))"
79 [ "$VARD" == "yes" -a "$SET" == "0" ] && SET="(($SET + 1))"
80 if [ -n "$MESSAGE" ]; then
81 show "Setting $MESSAGE to $SET"; busy
82 if (echo "$SET" > /proc/sys/net/$WHAT) 2> /dev/null; then
88 echo "$SET" > /proc/sys/net/$WHAT
90 elif [ "$TODO" == "stop" ]; then
91 if [ -n "$MESSAGE" ]; then
92 show "Setting $MESSAGE to $DEF"; busy
93 if (echo "$DEF" > /proc/sys/net/$WHAT) 2> /dev/null; then
103 ipv4_dynamic_ip_patch()
105 if [ "$IPV4_DYNAMIC_IP_PATCH" != "default" -a -n "$IPV4_DYNAMIC_IP_PATCH" ] || [ ! -e /proc/sys/net/ipv4/ip_dynaddr ]; then
107 case "$IPV4_DYNAMIC_IP_PATCH_VALUE" in
109 *) IPV4_DYNAMIC_IP_PATCH_VALUE=7 ;;
112 if [ "$IPV4_DYNAMIC_IP_PATCH" == "yes" ] && [ "$1" == "on" ]; then
113 show Enabling dynamic IP patch; busy
114 if echo $IPV4_DYNAMIC_IP_PATCH_VALUE > /proc/sys/net/ipv4/ip_dynaddr; then deltext; ok; else deltext; fail; fi
116 show Diabling dynamic IP patch; busy
117 if echo 0 > /proc/sys/net/ipv4/ip_dynaddr; then deltext; ok; else deltext; fail; fi
123 ipv4_local_port_range()
125 if [ "$IPV4_LOCAL_PORT_RANGE" != "default" -a -n "$IPV4_LOCAL_PORT_RANGE" ] || [ ! -e /proc/sys/net/ipv4/ip_local_port_range ]; then
127 if [ "$IPV4_LOCAL_PORT_RANGE" == "yes" ] && [ "$1" == "on" ]; then
128 show Setting local port range; busy
129 if echo "$IPV4_LOCAL_PORT_RANGE" > /proc/sys/net/ipv4/ip_local_port_range; then deltext; ok; else deltext; fail; fi
131 show Setting default local port range; busy
132 if echo "1024 4999" > /proc/sys/net/ipv4/ip_local_port_range; then deltext; ok; else deltext; fail; fi
140 if [ "$IPV4_ANTI_SPOOFING" != "default" -a -n "$IPV4_ANTI_SPOOFING" ] || [ ! -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
142 if [ "$IPV4_ANTI_SPOOFING" == "yes" ] && [ "$1" == "on" ]; then
143 show Setting up IP spoofing protection; busy
144 if (for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done); then deltext; ok; else deltext; fail; fi
146 show Setting down IP spoofing protection; busy
147 if (for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done); then deltext; ok; else deltext; fail; fi
153 # Koniecznie trzeba to usprawnic
156 [ "$IPV6_NETWORKING" == "yes" ] && modprobe net-pf-10 2> /dev/null
157 modprobe ipip ip_gre 2> /dev/null
161 # folowing function calculates network prefix from given network mask
162 # (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
165 local OISF len olen bad prefix
185 if [ "$len" -gt "$olen" ] ; then bad=1; fi
186 prefix=`expr $prefix + $len`
190 if [ "$bad" == "0" ]; then
198 # folowing function calculates network mask from given prefix
199 # (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
204 if [ "`echo "${1}" | grep "^[0-9]"`" == "" ]; then
220 if [ $prefix -ge 8 ]; then a=255; fi
221 if [ $prefix -le 0 ]; then a=0; fi
224 prefix="`expr $prefix - 8`"