diff options
author | Denys Vlasenko | 2015-10-24 05:30:58 +0200 |
---|---|---|
committer | Denys Vlasenko | 2015-10-24 05:30:58 +0200 |
commit | d32a1a4054444d8193736ee4c5f515fa90dbb24f (patch) | |
tree | 4c0864109b27817fdfa78198c529f941555b5b23 /examples/var_service/zcip_if/zcip_handler | |
parent | 9a512176686d5f1548dc1e1c610af440a3ee0d73 (diff) | |
download | busybox-d32a1a4054444d8193736ee4c5f515fa90dbb24f.zip busybox-d32a1a4054444d8193736ee4c5f515fa90dbb24f.tar.gz |
New example of a service: examples/var_service/zcip_if
Zeroconf for IPv4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'examples/var_service/zcip_if/zcip_handler')
-rwxr-xr-x | examples/var_service/zcip_if/zcip_handler | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/var_service/zcip_if/zcip_handler b/examples/var_service/zcip_if/zcip_handler new file mode 100755 index 0000000..13010db --- /dev/null +++ b/examples/var_service/zcip_if/zcip_handler @@ -0,0 +1,46 @@ +#!/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" + sv u /var/service/fw + exit +fi + +# "config": we've got the address +#env # 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 |