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>
This commit is contained in:
Denys Vlasenko 2016-10-03 23:43:44 +02:00
parent 7f0ebbc69e
commit 095ddf7669
8 changed files with 91 additions and 0 deletions

View File

@ -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.

View File

@ -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"

View File

@ -0,0 +1,4 @@
#!/bin/sh
cd log/logdir || exit 1
cat @* current | $PAGER

View File

@ -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 $?

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/sh
watch -n1 'dumpleases -af udhcpd.leases'

View File

@ -0,0 +1,3 @@
#!/bin/sh
watch -n1 'dumpleases -f udhcpd.leases'

View File

@ -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))'