1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #!/bin/sh
- # executed by udhcpc
- # parameters: $1 and environment
- # $1 is:
- #
- # deconfig: udhcpc starts, or lease is lost.
- # Environment example: interface=eth0
- #
- # bound: lease is obtained. Environment example:
- # dhcptype=5
- # serverid=172.16.42.102
- # lease=97200
- # interface=eth0
- # ip=172.16.42.177
- # subnet=255.255.255.0
- # mask=24
- # broadcast=172.16.22.255
- # router=172.16.42.98
- # dns=10.34.32.125 10.32.63.5 10.34.255.7 10.11.255.27
- # domain=lab.example.com example.com
- # ntpsrv=10.34.32.125 10.34.255.7
- #
- # renew: lease is renewed. Environment is similar to "bound".
- # The IP address does not change, however, the other DHCP paramaters,
- # such as the default gateway, subnet mask, and dns server may change.
- #
- # nak: udhcpc received a NAK message.
- # Environment example: interface=eth0
- #
- # leasefail: udhcpc cannot obtain a lease (DHCP server not responding, etc).
- # Environment example: interface=eth0
- # TODO: put $domain into /etc/resolv.conf (thru /var/service/fw)
- service=${PWD##*/}
- file_ipconf="$service.ipconf"
- file_ntpconf="$service.ntpconf"
- dir_ipconf="/var/run/service/fw"
- dir_ntpconf="/var/run/service/ntp"
- exec >/dev/null
- #exec >>"$0.out" #debug
- exec 2>&1
- echo "`date`: Params: $*"
- if test x"$1" != x"bound" && test x"$1" != x"renew" ; then
- # Reconfigure network with this interface disabled
- echo "Deconfiguring"
- rm "$service.out"
- rm "$file_ipconf"
- rm "$file_ntpconf"
- rm "$dir_ipconf/$file_ipconf"
- rm "$dir_ntpconf/$file_ntpconf"
- sv u /var/service/fw
- exit
- fi
- # Bound: we've got the lease
- #env >"$service.out" # debug
- ./convert2ipconf "$file_ipconf"
- # Reconfigure routing and firewall if needed
- diff --brief "$file_ipconf" "$dir_ipconf/$file_ipconf" >/dev/null 2>&1
- if test $? != 0; then
- echo "Reconfiguring fw"
- mkdir -p "$dir_ipconf" 2>/dev/null
- cp "$file_ipconf" "$dir_ipconf/$file_ipconf"
- sv u /var/service/fw
- fi
- if test -d /var/service/ntp; then
- ./convert2ntpconf "$file_ntpconf"
- # Reconfigure ntp server addresses if needed
- diff --brief "$file_ntpconf" "$dir_ntpconf/$file_ntpconf" >/dev/null 2>&1
- if test $? != 0; then
- echo "Reconfiguring ntp"
- mkdir -p "$dir_ntpconf" 2>/dev/null
- cp "$file_ntpconf" "$dir_ntpconf/$file_ntpconf"
- sv t /var/service/ntp
- sv u /var/service/ntp
- fi
- fi
|