* luci-0.8: backport /etc/hosts configuration pages

This commit is contained in:
Jo-Philipp Wich 2008-09-06 23:29:58 +00:00
parent c3d41e6cba
commit 094f2fa534
10 changed files with 125 additions and 13 deletions

View file

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-addons
PKG_VERSION:=0.2
PKG_VERSION:=0.3
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@ -33,8 +33,10 @@ define Package/luci-addons/install
$(INSTALL_BIN) ./dist/sbin/luci-reload $(1)/sbin
$(INSTALL_BIN) ./dist/etc/init.d/luci_fixtime $(1)/etc/init.d
$(INSTALL_BIN) ./dist/etc/init.d/luci_ethers $(1)/etc/init.d
$(INSTALL_BIN) ./dist/etc/init.d/luci_hosts $(1)/etc/init.d
$(INSTALL_CONF) ./dist/etc/config/luci_ethers $(1)/etc/config
$(INSTALL_CONF) ./dist/etc/config/luci_hosts $(1)/etc/config
$(CP) ./dist/etc/crontabs/root $(1)/etc/crontabs/root
endef

View file

@ -0,0 +1,3 @@
config 'host'
option 'ipaddr' '10.11.12.13'
option 'hostname' 'sample-host'

View file

@ -0,0 +1,30 @@
#!/bin/sh /etc/rc.common
START=60
apply_host() {
local cfg="$1"
config_get hostname "$cfg" hostname
config_get ipaddr "$cfg" ipaddr
[ -n "$hostname" -a -n "$ipaddr" ] || return 0
echo "$ipaddr $hostname" >> /var/etc/hosts
}
start() {
if [ ! -L /etc/hosts ]; then
test -f /etc/hosts && mv /etc/hosts /etc/hosts.local
ln -s /var/etc/hosts /etc/hosts
fi
test -d /var/etc || mkdir -p /var/etc
test -f /etc/hosts.local && cat /etc/hosts.local >> /var/etc/hosts
config_load luci_hosts
config_foreach apply_host host
}
stop() {
test -f /var/etc/hosts && rm -f /var/etc/hosts
}

View file

@ -282,3 +282,7 @@ a_w_peapauth = 'PEAP-Authentication'
a_w_peapidentity = 'PEAP-Identity'
a_w_peappassword = 'PEAP-Password'
a_w_create = 'Create Network'
hostnames = 'Hostnames'
hostnames_entries = 'Host entries'
hostnames_hostname = 'Hostname'
hostnames_address = 'IP address'

View file

@ -286,5 +286,9 @@
<i18n:msg xml:id="a_w_peapidentity">PEAP-Identity</i18n:msg>
<i18n:msg xml:id="a_w_peappassword">PEAP-Password</i18n:msg>
<i18n:msg xml:id="a_w_create">Create Network</i18n:msg>
<i18n:msg xml:id="hostnames">Hostnames</i18n:msg>
<i18n:msg xml:id="hostnames_entries">Host entries</i18n:msg>
<i18n:msg xml:id="hostnames_hostname">Hostname</i18n:msg>
<i18n:msg xml:id="hostnames_address">IP address</i18n:msg>
</i18n:msgs>

View file

@ -295,3 +295,7 @@ a_w_peapauth = 'PEAP-Authentifizierung'
a_w_peapidentity = 'PEAP-Identitäz'
a_w_peappassword = 'PEAP-Passwort'
a_w_create = 'Netzwerk anlegen'
hostnames = 'Rechnernamen'
hostnames_entries = 'Host-Einträge'
hostnames_hostname = 'Rechnername'
hostnames_address = 'IP-Adresse'

View file

@ -322,4 +322,10 @@
<i18n:msg xml:id="a_w_peappassword">PEAP-Passwort</i18n:msg>
<i18n:msg xml:id="a_w_create">Netzwerk anlegen</i18n:msg>
<i18n:msg xml:id="hostnames">Rechnernamen</i18n:msg>
<i18n:msg xml:id="hostnames_entries">Host-Einträge</i18n:msg>
<i18n:msg xml:id="hostnames_hostname">Rechnername</i18n:msg>
<i18n:msg xml:id="hostnames_address">IP-Adresse</i18n:msg>
</i18n:msgs>

View file

@ -0,0 +1,21 @@
package luci_hosts
config section
option name 'host'
option title 'Host entry definition'
option package 'luci_hosts'
config variable
option name 'hostname'
option title 'Hostname'
option section 'luci_hosts.host'
option datatype 'hostname'
option required true
config variable
option name 'ipaddr'
option title 'IP address'
option section 'luci_hosts.host'
option datatype 'ipaddr'
option required true

View file

@ -20,14 +20,14 @@ function index()
local page = node("admin", "network")
page.target = alias("admin", "network", "network")
page.title = i18n("network")
page.title = i18n("network")
page.order = 50
local page = node("admin", "network", "vlan")
page.target = cbi("admin_network/vlan")
page.title = i18n("a_n_switch")
page.order = 20
local page = node("admin", "network", "wireless")
page.target = form("admin_network/wireless")
page.title = i18n("wifi")
@ -41,12 +41,12 @@ function index()
ifc:upper()).i18n = "wifi"
end
)
local page = node("admin", "network", "wifi")
page.target = cbi("admin_network/wifi")
page.leaf = true
page.i18n = "wifi"
local page = node("admin", "network", "network")
page.target = cbi("admin_network/network")
page.title = i18n("interfaces", "Schnittstellen")
@ -61,7 +61,7 @@ function index()
end
end
)
local page = node("admin", "network", "ifaces")
page.target = cbi("admin_network/ifaces")
page.leaf = true
@ -70,23 +70,28 @@ function index()
page.target = cbi("admin_network/dhcp")
page.title = "DHCP"
page.order = 30
entry(
{"admin", "network", "dhcp", "leases"},
cbi("admin_network/dhcpleases"),
i18n("dhcp_leases")
)
)
local page = node("admin", "network", "hosts")
page.target = cbi("admin_network/hosts")
page.title = i18n("hostnames", "Hostnames")
page.order = 40
local page = node("admin", "network", "routes")
page.target = cbi("admin_network/routes")
page.title = i18n("a_n_routes")
page.order = 40
page.order = 50
page.leaf = true
entry(
{"admin", "network", "routes", "static"},
function() end,
i18n("a_n_routes_static")
)
end
end

View file

@ -0,0 +1,33 @@
--[[
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
$Id$
]]--
require("luci.sys")
require("luci.util")
m = Map("luci_hosts", translate("hostnames"))
s = m:section(TypedSection, "host", translate("hostnames_entries"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"
hn = s:option(Value, "hostname", translate("hostnames_hostname"))
ip = s:option(Value, "ipaddr", translate("hostnames_address"))
for i, dataset in ipairs(luci.sys.net.arptable()) do
ip:value(
dataset["IP address"],
"%s (%s)" %{ dataset["IP address"], dataset["HW address"] }
)
end
return m