applications/olsr: Set defaults for values and check which IpVersion olsrd uses
authorManuel Munz <freifunk@somakoma.de>
Fri, 18 Nov 2011 17:03:32 +0000 (17:03 +0000)
committerManuel Munz <freifunk@somakoma.de>
Fri, 18 Nov 2011 17:03:32 +0000 (17:03 +0000)
applications/luci-olsr/luasrc/model/cbi/olsr/olsrdhna.lua

index ad5143c..d5ee79f 100644 (file)
@@ -2,6 +2,7 @@
 LuCI - Lua Configuration Interface
 
 Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2011 Manuel Munz <freifunk at somakoma dot de>
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -12,33 +13,44 @@ You may obtain a copy of the License at
 $Id$
 ]]--
 
-mh = Map("olsrd", translate("OLSR - HNA-Announcements"))
-
-
-hna4 = mh:section(TypedSection, "Hna4", translate("Hna4"), translate("Both values must use the dotted decimal notation."))
-hna4.addremove = true
-hna4.anonymous = true
-hna4.template  = "cbi/tblsection"
-
-net4 = hna4:option(Value, "netaddr", translate("Network address"))
-net4.datatype = "ip4addr"
-net4.placeholder = "15.15.0.0"
-msk4 = hna4:option(Value, "netmask", translate("Netmask"))
-msk4.datatype = "ip4addr"
-msk4.placeholder = "255.255.255.0"
-
-hna6 = mh:section(TypedSection, "Hna6", translate("Hna6"), translate("IPv6 network must be given in full notation, " ..
-       "prefix must be in CIDR notation."))
-hna6.addremove = true
-hna6.anonymous = true
-hna6.template  = "cbi/tblsection"
-
-net6 = hna6:option(Value, "netaddr", translate("Network address"))
-net6.datatype = "ip6addr"
-net6.placeholder = "fec0:2200:106:0:0:0:0:0"
-msk6 = hna6:option(Value, "prefix", translate("Prefix"))
-msk6.datatype = "range(0,128)"
-msk6.placeholder = "48"
-
+local uci = require "luci.model.uci".cursor()
+local ipv =  uci:get_first("olsrd", "olsrd", "IpVersion", "4")
+
+mh = Map("olsrd", translate("OLSR - HNA-Announcements"), translate("Hosts in a OLSR routed network can announce connecitivity " ..
+       "to external networks using HNA messages."))
+
+if ipv == "6and4" or ipv == "4" then
+       hna4 = mh:section(TypedSection, "Hna4", translate("Hna4"), translate("Both values must use the dotted decimal notation."))
+       hna4.addremove = true
+       hna4.anonymous = true
+       hna4.template  = "cbi/tblsection"
+
+       net4 = hna4:option(Value, "netaddr", translate("Network address"))
+       net4.datatype = "ip4addr"
+       net4.placeholder = "10.11.12.13"
+       net4.default = "10.11.12.13"
+       msk4 = hna4:option(Value, "netmask", translate("Netmask"))
+       msk4.datatype = "ip4addr"
+       msk4.placeholder = "255.255.255.255"
+       msk4.default = "255.255.255.255"
+end
+
+if ipv == "6and4" or ipv == "6" then
+       hna6 = mh:section(TypedSection, "Hna6", translate("Hna6"), translate("IPv6 network must be given in full notation, " ..
+               "prefix must be in CIDR notation."))
+       hna6.addremove = true
+       hna6.anonymous = true
+       hna6.template  = "cbi/tblsection"
+
+       net6 = hna6:option(Value, "netaddr", translate("Network address"))
+       net6.datatype = "ip6addr"
+       net6.placeholder = "fec0:2200:106:0:0:0:0:0"
+       net6.default = "fec0:2200:106:0:0:0:0:0"
+       msk6 = hna6:option(Value, "prefix", translate("Prefix"))
+       msk6.datatype = "range(0,128)"
+       msk6.placeholder = "128"
+       msk6.default = "128"
+end
 
 return mh
+