188c01cc2dd848b5c23666426bddf5f2f877bf9f
[project/luci.git] / modules / admin-core / root / etc / init.d / luci_ethers
1 #!/bin/sh /etc/rc.common
2 START=59
3
4 apply_lease() {
5         local cfg="$1"
6
7         config_get macaddr "$cfg" macaddr
8         config_get ipaddr  "$cfg" ipaddr
9
10         [ -n "$macaddr" -a -n "$ipaddr" ] || return 0
11
12         echo "$macaddr $ipaddr" >> /var/etc/ethers
13 }
14
15 start() {
16         if [ ! -L /etc/ethers ]; then
17                 test -f /etc/ethers && mv /etc/ethers /etc/ethers.local
18                 ln -s /var/etc/ethers /etc/ethers
19         fi
20
21         test -d /var/etc || mkdir -p /var/etc
22
23         echo "# This file is autogenerated, use /etc/ethers.local instead" > /var/etc/ethers
24
25         config_load luci_ethers
26         config_load luci_etherhosts
27         config_foreach apply_lease static_lease
28         config_foreach apply_lease entry
29
30         test -f /etc/ethers.local && cat /etc/ethers.local >> /var/etc/ethers
31
32         return 0
33 }
34
35 stop() {
36         test -f /var/etc/ethers && rm -f /var/etc/ethers
37
38         return 0
39 }