* luci/addons: add initscript for generating /etc/ethers on boot
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 15 Jul 2008 13:50:54 +0000 (13:50 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 15 Jul 2008 13:50:54 +0000 (13:50 +0000)
contrib/package/luci-addons/Makefile
contrib/package/luci-addons/dist/etc/init.d/luci-fixtime [deleted file]
contrib/package/luci-addons/dist/etc/init.d/luci_ethers [new file with mode: 0644]
contrib/package/luci-addons/dist/etc/init.d/luci_fixtime [new file with mode: 0644]

index 27d214d..8b195fd 100644 (file)
@@ -30,8 +30,9 @@ define Package/luci-addons/install
 
        $(INSTALL_BIN) ./dist/usr/bin/run-parts $(1)/usr/bin
        $(INSTALL_BIN) ./dist/sbin/luci-flash $(1)/sbin
-       $(INSTALL_BIN) ./dist/etc/init.d/luci-fixtime $(1)/etc/init.d
-       
+       $(INSTALL_BIN) ./dist/etc/init.d/luci_fixtime $(1)/etc/init.d
+       $(INSTALL_BIN) ./dist/etc/init.d/luci_ethers $(1)/etc/init.d
+
        $(CP) ./dist/etc/crontabs/root $(1)/etc/crontabs/root
        $(CP) ./dist/etc/hotplug.d/iface/20-aliases $(1)/etc/hotplug.d/iface/20-aliases
 endef
diff --git a/contrib/package/luci-addons/dist/etc/init.d/luci-fixtime b/contrib/package/luci-addons/dist/etc/init.d/luci-fixtime
deleted file mode 100644 (file)
index 3ca0038..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-START=05
-
-start() {
-       cat <<' EOF' | lua -l luci.fs -l luci.sys -
-               if (os.time() < 1000000000) then
-                       os.execute('date -s ' .. os.date('%m%d%H%M%Y', luci.fs.mtime(luci.sys.libpath())))
-               end
-       EOF
-}
diff --git a/contrib/package/luci-addons/dist/etc/init.d/luci_ethers b/contrib/package/luci-addons/dist/etc/init.d/luci_ethers
new file mode 100644 (file)
index 0000000..e0f2470
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh /etc/rc.common
+START=59
+
+apply_lease() {
+       local cfg="$1"
+
+       config_get macaddr "$cfg" macaddr
+       config_get ipaddr  "$cfg" ipaddr
+
+       [ -n "$macaddr" -a -n "$ipaddr" ] || return 0
+       
+       echo "$macaddr $ipaddr" >> /var/etc/ethers
+}
+
+start() {
+       if [ ! -L /etc/ethers ]; then
+               test -f /etc/ethers && mv /etc/ethers /etc/ethers.local
+               test -d /var/etc || mkdir -p /var/etc
+               ln -s /var/etc/ethers /etc/ethers
+       fi
+       
+       config_load luci_ethers
+       config_foreach apply_lease static_lease
+       
+       test -f /etc/ethers.local && cat /etc/ethers.local >> /var/etc/ethers
+}
diff --git a/contrib/package/luci-addons/dist/etc/init.d/luci_fixtime b/contrib/package/luci-addons/dist/etc/init.d/luci_fixtime
new file mode 100644 (file)
index 0000000..3ca0038
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh /etc/rc.common
+
+START=05
+
+start() {
+       cat <<' EOF' | lua -l luci.fs -l luci.sys -
+               if (os.time() < 1000000000) then
+                       os.execute('date -s ' .. os.date('%m%d%H%M%Y', luci.fs.mtime(luci.sys.libpath())))
+               end
+       EOF
+}