dhcrelay4.init (1085B)
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 "-U $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 }