1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/bin/sh
- # executed by zcip
- # parameters: $1 and environment
- # $1 is:
- #
- # init: zcip starts. Environment:
- # interface=eth0
- #
- # config: Address is obtained.
- # interface=eth0
- # ip=169.254.a.b
- #
- # deconfig: Conflict or link went down.
- # interface=eth0
- service=${PWD##*/}
- file_ipconf="$service.ipconf"
- dir_ipconf="/var/run/service/fw"
- exec >/dev/null
- #exec >>"$0.out" #debug
- exec 2>&1
- echo "`date`: Params: $*"
- if test x"$1" != x"config"; then
- # Reconfigure network with this interface disabled
- echo "Deconfiguring"
- rm "$file_ipconf"
- rm "$dir_ipconf/$file_ipconf"
- svc -u fw
- exit
- fi
- # "config": we've got the address
- # 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
|