Merge pull request #2126 from lynxis/libmicrohttpd
[feed/packages.git] / net / isc-dhcp / files / dhcrelay4.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2012 OpenWrt.org
3
4 START=91
5
6 SERVICE_SIG="KILL"
7 SERVICE_PID_FILE="/var/run/dhcrelay4.pid"
8 SERVICE_USE_PID=1
9
10 start() {
11 . /lib/functions/network.sh
12 config_load dhcrelay
13 local args=""
14
15 local enabled
16 config_get_bool enabled ipv4 enabled 0
17 [ "$enabled" -eq 0 ] && return 0
18
19 # listen interfaces
20 local interfaces
21 local ifname
22 config_get interfaces ipv4 interfaces
23 for net in $interfaces; do
24 if network_get_device ifname "$net"; then
25 append args "-i $ifname"
26 fi
27 done
28
29 # link selection sub-option (RFC3527)
30 local link_selection
31 config_get link_selection ipv4 link_selection
32 if network_get_device ifname "$link_selection"; then
33 append args "-l $ifname"
34 fi
35
36 # relay mode
37 local relay_mode
38 config_get relay_mode ipv4 relay_mode
39 [ -n "$relay_mode" ] && append args "-m $relay_mode"
40
41 # dhcp server address
42 local server
43 config_get server ipv4 dhcpserver
44 [ -n "$server" ] || return 0
45 append args "$server"
46
47 service_start /usr/sbin/dhcrelay -4 -q \
48 -pf $SERVICE_PID_FILE $args
49 }
50
51 stop() {
52 service_stop /usr/sbin/dhcrelay
53 }