diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-03 23:43:44 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-03 23:43:44 +0200 |
commit | 095ddf7669a05b52839ccbfd2c324de718241747 (patch) | |
tree | 61fe4384e08985b5a217f9d4456da3e51875f606 /examples | |
parent | 7f0ebbc69ed14b2f35e8bc62b03612b94e270955 (diff) | |
download | busybox-095ddf7669a05b52839ccbfd2c324de718241747.tar.gz |
examples: add example of a DHCP server
As usual, by multiplying directories - "dhcpd_eth0", "dhcpd_wlan1"
you can run many servers on different interfaces.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/var_service/dhcpd_if/README | 5 | ||||
-rwxr-xr-x | examples/var_service/dhcpd_if/log/run | 21 | ||||
-rwxr-xr-x | examples/var_service/dhcpd_if/p_log | 4 | ||||
-rwxr-xr-x | examples/var_service/dhcpd_if/run | 23 | ||||
-rw-r--r-- | examples/var_service/dhcpd_if/udhcpc.conf | 28 | ||||
-rwxr-xr-x | examples/var_service/dhcpd_if/w_dumpleases | 3 | ||||
-rwxr-xr-x | examples/var_service/dhcpd_if/w_dumpleases_countdown | 3 | ||||
-rwxr-xr-x | examples/var_service/dhcpd_if/w_log | 4 |
8 files changed, 91 insertions, 0 deletions
diff --git a/examples/var_service/dhcpd_if/README b/examples/var_service/dhcpd_if/README new file mode 100644 index 000000000..4ddccb22d --- /dev/null +++ b/examples/var_service/dhcpd_if/README @@ -0,0 +1,5 @@ +The real README file is one directory up. + +This directory's run script can have useful comments. +If it doesn't but you feel it should, please send a patch +to busybox's mailing list. diff --git a/examples/var_service/dhcpd_if/log/run b/examples/var_service/dhcpd_if/log/run new file mode 100755 index 000000000..69d74b73f --- /dev/null +++ b/examples/var_service/dhcpd_if/log/run @@ -0,0 +1,21 @@ +#!/bin/sh + +user=logger + +logdir="/var/log/service/`(cd ..;basename $PWD)`" +mkdir -p "$logdir" 2>/dev/null +chown -R "$user": "$logdir" +chmod -R go-rwxst,u+rwX "$logdir" +rm -rf logdir +ln -s "$logdir" logdir + +# make this dir accessible to logger +chmod a+rX . + +exec >/dev/null +exec 2>&1 +exec \ +env - PATH="$PATH" \ +softlimit \ +setuidgid "$user" \ +svlogd -tt "$logdir" diff --git a/examples/var_service/dhcpd_if/p_log b/examples/var_service/dhcpd_if/p_log new file mode 100755 index 000000000..a2521be05 --- /dev/null +++ b/examples/var_service/dhcpd_if/p_log @@ -0,0 +1,4 @@ +#!/bin/sh + +cd log/logdir || exit 1 +cat @* current | $PAGER diff --git a/examples/var_service/dhcpd_if/run b/examples/var_service/dhcpd_if/run new file mode 100755 index 000000000..de85dece0 --- /dev/null +++ b/examples/var_service/dhcpd_if/run @@ -0,0 +1,23 @@ +#!/bin/sh + +exec 2>&1 +exec </dev/null + +pwd="$PWD" + +if="${PWD##*/dhcpd_}" + +echo "* Upping iface $if" +ip link set dev $if up + +>>udhcpd.leases +sed 's/^interface.*$/interface '"$if/" -i udhcpc.conf + +echo "* Starting udhcpd" +exec \ +env - PATH="$PATH" \ +softlimit \ +setuidgid root \ +udhcpd -f -vv udhcpc.conf + +exit $? diff --git a/examples/var_service/dhcpd_if/udhcpc.conf b/examples/var_service/dhcpd_if/udhcpc.conf new file mode 100644 index 000000000..a81925970 --- /dev/null +++ b/examples/var_service/dhcpd_if/udhcpc.conf @@ -0,0 +1,28 @@ +# Directives with defaults: +# start 192.168.0.20 +# end 192.168.0.254 +# interface eth0 +# max_leases 235 +# auto_time 7200 +# decline_time 3600 +# conflict_time 3600 +# offer_time 60 +# min_lease 60 +# lease_file /var/lib/misc/udhcpd.leases +# pidfile /var/run/udhcpd.pid +# siaddr 0.0.0.0 +# +# Directives with no defaults (or with empty defaults): +# option/opt NAME VALUE +# notify_file /path/to/script_to_run_after_leasefile_is_written +# (it is run with $1 = lease_file_name) +# sname dhcp_packet_sname_field_contents +# boot_file dhcp_packet_bootfile_field_contents +# static_lease XX:XX:XX:XX:XX:XX IP.ADD.RE.SS + +interface if +pidfile /dev/null +lease_file udhcpd.leases +option subnet 255.255.255.0 +option lease 3600 +#option router 192.168.0.1 diff --git a/examples/var_service/dhcpd_if/w_dumpleases b/examples/var_service/dhcpd_if/w_dumpleases new file mode 100755 index 000000000..ff772055a --- /dev/null +++ b/examples/var_service/dhcpd_if/w_dumpleases @@ -0,0 +1,3 @@ +#!/bin/sh + +watch -n1 'dumpleases -af udhcpd.leases' diff --git a/examples/var_service/dhcpd_if/w_dumpleases_countdown b/examples/var_service/dhcpd_if/w_dumpleases_countdown new file mode 100755 index 000000000..7fcd9602a --- /dev/null +++ b/examples/var_service/dhcpd_if/w_dumpleases_countdown @@ -0,0 +1,3 @@ +#!/bin/sh + +watch -n1 'dumpleases -f udhcpd.leases' diff --git a/examples/var_service/dhcpd_if/w_log b/examples/var_service/dhcpd_if/w_log new file mode 100755 index 000000000..dba76c69b --- /dev/null +++ b/examples/var_service/dhcpd_if/w_log @@ -0,0 +1,4 @@ +#!/bin/sh + +cd log/logdir +watch -n1 'w=`ttysize w`; h=`ttysize h`; tail -$((h-3)) current 2>&1 | cut -b0-$((w-2))' |