12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #!/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 parameters,
- # 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/ntpd"
- #exec >/dev/null
- #exec >"$0.out" #debug
- exec 2>&1
- if test x"$1" != x"bound" && test x"$1" != x"renew" ; then
- # Reconfigure network with this interface disabled
- echo "Deconfiguring"
- rm "env.out"
- rm "$file_ipconf"
- rm "$file_ntpconf"
- rm "$dir_ipconf/$file_ipconf"
- rm "$dir_ntpconf/$file_ntpconf"
- svc -u fw
- exit
- fi
- # Bound: we've got the lease
- # Record information for e.g. dhcp_$IF_pinger service
- env >"env.out"
- ./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"
- svc -u fw
- fi
- if test -d ../ntpd; 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"
- svc -t ntpd
- svc -u ntpd
- fi
- fi
|