c50765974c59b6584d938951ea2a52b6797a8a9a
[packages.git] / ipv6 / wide-dhcpv6 / files / dhcp6s.init
1 #!/bin/sh /etc/rc.common 
2 # Copyright (C) 2010-2011 OpenWrt.org
3
4 SERVICE_USE_PID=1
5
6 get_ifname() {
7         local interface=$1
8         local ifname
9         scan_interfaces
10         config_get ifname "$interface" ifname
11         printf '%s\n' "$ifname"
12         return 0
13 }
14
15 start() {
16         [ ! -e /etc/dhcp6sctlkey ] && `dd if=/dev/urandom count=1 2> /dev/null | md5sum | cut -d" " -f1 > /etc/dhcp6sctlkey`
17
18         [ -e /var/run/dhcp6s.pid ] && return 0
19
20         include /lib/network
21
22         config_load "dhcp6s"
23
24         local enabled
25         config_get_bool enabled basic enabled 0
26         [ $enabled -eq 0 ] && return 0
27
28         logger starting dhcp6s
29
30         local server_interface 
31         config_get server_interface basic interface
32         local server_ifname=$(get_ifname "$server_interface")
33
34         local config_file
35         config_get config_file basic config_file
36
37         [ ! -e $config_file ] && return 1
38
39         service_start /usr/sbin/dhcp6s -c $config_file $server_ifname
40 }
41
42 stop() {
43         logger stopping dhcp6s
44         service_stop /usr/sbin/dhcp6s
45 }
46