Merge pull request #388 from oneru/fwknop-qr
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 26 May 2015 15:14:24 +0000 (17:14 +0200)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 26 May 2015 15:14:24 +0000 (17:14 +0200)
Luci-app-fwknopd: Update uci-defaults as key-gen is now exposed in th…

44 files changed:
applications/luci-app-ddns/Makefile
applications/luci-app-ddns/luasrc/controller/ddns.lua
applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
applications/luci-app-ddns/luasrc/tools/ddns.lua
applications/luci-app-ddns/po/de/ddns.po
applications/luci-app-ddns/po/templates/ddns.pot
modules/luci-base/luasrc/cbi.lua
modules/luci-base/luasrc/view/cbi/error.htm [new file with mode: 0644]
modules/luci-base/po/ca/base.po
modules/luci-base/po/cs/base.po
modules/luci-base/po/de/base.po
modules/luci-base/po/el/base.po
modules/luci-base/po/en/base.po
modules/luci-base/po/es/base.po
modules/luci-base/po/fr/base.po
modules/luci-base/po/he/base.po
modules/luci-base/po/hu/base.po
modules/luci-base/po/it/base.po
modules/luci-base/po/ja/base.po
modules/luci-base/po/ms/base.po
modules/luci-base/po/no/base.po
modules/luci-base/po/pl/base.po
modules/luci-base/po/pt-br/base.po
modules/luci-base/po/pt/base.po
modules/luci-base/po/ro/base.po
modules/luci-base/po/ru/base.po
modules/luci-base/po/sk/base.po
modules/luci-base/po/sv/base.po
modules/luci-base/po/tr/base.po
modules/luci-base/po/uk/base.po
modules/luci-base/po/vi/base.po
modules/luci-base/po/zh-cn/base.po
modules/luci-base/po/zh-tw/base.po
modules/luci-base/root/lib/uci/upload/.gitignore [deleted file]
modules/luci-base/root/lib/uci/upload/.placeholder [new file with mode: 0644]
modules/luci-base/root/www/index.html
protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua
protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua [new file with mode: 0644]
protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua [new file with mode: 0644]
protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua

index 1bffcaa..0e1e5df 100644 (file)
@@ -10,7 +10,7 @@ PKG_NAME:=luci-app-ddns
 
 # Version == major.minor.patch
 # increase on new functionality (minor) or patches (patch)
-PKG_VERSION:=2.2.2
+PKG_VERSION:=2.2.4
 
 # Release == build
 # increase on changes of translation files
index 0b82021..946dfef 100644 (file)
@@ -15,7 +15,7 @@ local SYS  = require "luci.sys"
 local DDNS = require "luci.tools.ddns"         -- ddns multiused functions
 local UTIL = require "luci.util"
 
-DDNS_MIN = "2.2.0-1"   -- minimum version of service required
+DDNS_MIN = "2.4.2-1"   -- minimum version of service required
 
 function index()
        local nxfs      = require "nixio.fs"            -- global definitions not available
index 40a66ef..27f9a9f 100644 (file)
@@ -1156,11 +1156,13 @@ function fu.write(self, section, value)
 end
 
 -- retry_count (NEW) -- ########################################################
-rc = ns:taboption("timer", Value, "retry_count",
-       translate("Error Retry Counter"),
-       translate("On Error the script will stop execution after given number of retrys") )
-rc.default = 5
-rc.rmempty = false     -- validate ourselves for translatable error messages
+rc = ns:taboption("timer", Value, "retry_count")
+rc.title       = translate("Error Retry Counter")
+rc.description = translate("On Error the script will stop execution after given number of retrys")
+               .. "<br />"
+               .. translate("The default setting of '0' will retry infinite.")
+rc.default     = 0
+rc.rmempty     = false -- validate ourselves for translatable error messages
 function rc.validate(self, value)
        if not DTYP.uinteger(value) then
                return nil, err_tab_timer(self) .. translate("minimum value '0'")
index 6d53931..4466063 100644 (file)
@@ -98,8 +98,7 @@ end
 
 -- compare versions using "<=" "<" ">" ">=" "=" "<<" ">>"
 function ipkg_ver_compare(ver1, comp, ver2)
-       if not ver1 or not (#ver1 > 0)
-       or not ver2 or not (#ver2 > 0)
+       if not ver1 or not ver2
        or not comp or not (#comp > 0) then return nil end
        -- correct compare string
        if comp == "<>" or comp == "><" or comp == "!=" or comp == "~=" then comp = "~="
@@ -116,33 +115,19 @@ function ipkg_ver_compare(ver1, comp, ver2)
        for i = 1, math.max(table.getn(av1),table.getn(av2)), 1  do
                local s1 = av1[i] or ""
                local s2 = av2[i] or ""
-               local n1 = tonumber(s1)
-               local n2 = tonumber(s2)
 
-               -- one numeric and other empty string then set other to 0
-               if n1 and not n2 and (not s2 or #s2 == 0) then n2 = 0 end
-               if n2 and not n1 and (not s1 or #s1 == 0) then n1 = 0 end
-
-               local nc = (n1 and n2)  -- numeric compare
-
-               if nc then
-                       -- first "not equal" found return true
-                       if comp == "~=" and (n1 ~= n2) then return true end
-                       -- first "lower" found return true
-                       if (comp == "<" or comp == "<=") and (n1 < n2) then return true end
-                       -- first "greater" found return true
-                       if (comp == ">" or comp == ">=") and (n1 > n2) then return true end
-                       -- not equal then return false
-                       if (n1 ~= n2) then return false end
-               else
-                       if comp == "~=" and (s1 ~= s2) then return true end
-                       if (comp == "<" or comp == "<=") and (s1 < s2) then return true end
-                       if (comp == ">" or comp == ">=") and (s1 > s2) then return true end
-                       if (s1 ~= s2) then return false end
-               end
+               -- first "not equal" found return true
+               if comp == "~=" and (s1 ~= s2) then return true end
+               -- first "lower" found return true
+               if (comp == "<" or comp == "<=") and (s1 < s2) then return true end
+               -- first "greater" found return true
+               if (comp == ">" or comp == ">=") and (s1 > s2) then return true end
+               -- not equal then return false
+               if (s1 ~= s2) then return false end
        end
-       -- all equal then true
-       return true
+
+       -- all equal and not compare greater or lower then true
+       return not (comp == "<" or comp == ">")
 end
 
 -- read version information for given package if installed
index f6e0d5e..6ffde5d 100644 (file)
@@ -1,15 +1,15 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: luci-app-ddns\n"
-"POT-Creation-Date: 2015-02-08 18:30+0100\n"
-"PO-Revision-Date: 2015-02-08 18:36+0100\n"
+"POT-Creation-Date: 2015-05-08 21:29+0100\n"
+"PO-Revision-Date: 2015-05-08 21:47+0100\n"
 "Last-Translator: Christian Schoenebeck <christian.schoenebeck@gmail.com>\n"
 "Language-Team: \n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.7.5\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-Basepath: .\n"
@@ -452,7 +452,7 @@ msgstr ""
 "wiederholen"
 
 msgid "On Error the script will stop execution after given number of retrys"
-msgstr "Das Skript wird nach der gegebener Anzahlt von Fehlversuchen beendet"
+msgstr "Das Skript wird nach der gegebenen Anzahl von Fehlversuchen beendet."
 
 msgid "Overview"
 msgstr "Übersicht"
@@ -527,6 +527,9 @@ msgstr ""
 "Die installierte Software 'ddns-scripts' unterstützt nicht alle verfügbaren "
 "Optionen."
 
+msgid "The default setting of '0' will retry infinite."
+msgstr "Der Standard-Wert von '0' wird es endlosen erneut versuchen."
+
 msgid "There is no service configured."
 msgstr "Kein Dienst konfiguriert"
 
index 6e4f2fe..3538680 100644 (file)
@@ -444,6 +444,9 @@ msgid ""
 "settings."
 msgstr ""
 
+msgid "The default setting of '0' will retry infinite."
+msgstr ""
+
 msgid "There is no service configured."
 msgstr ""
 
index 34de44a..7c5944b 100644 (file)
@@ -12,6 +12,7 @@ require("luci.http")
 local fs         = require("nixio.fs")
 local uci        = require("luci.model.uci")
 local datatypes  = require("luci.cbi.datatypes")
+local dispatcher = require("luci.dispatcher")
 local class      = util.class
 local instanceof = util.instanceof
 
@@ -307,8 +308,29 @@ function Map.__init__(self, config, ...)
 
        self.changed = false
 
-       if not self.uci:load(self.config) then
-               error("Unable to read UCI data: " .. self.config)
+       local path = "%s/%s" %{ self.uci:get_confdir(), self.config }
+       if fs.stat(path, "type") ~= "reg" then
+               fs.writefile(path, "")
+       end
+
+       local ok, err = self.uci:load(self.config)
+       if not ok then
+               local url = dispatcher.build_url(unpack(dispatcher.context.request))
+               local source = self:formvalue("cbi.source")
+               if type(source) == "string" then
+                       fs.writefile(path, source:gsub("\r\n", "\n"))
+                       ok, err = self.uci:load(self.config)
+                       if ok then
+                               luci.http.redirect(url)
+                       end
+               end
+       end
+
+       if not ok then
+               self.template   = "cbi/error"
+               self.error      = err
+               self.source     = fs.readfile(path) or ""
+               self.pageaction = false
        end
 end
 
diff --git a/modules/luci-base/luasrc/view/cbi/error.htm b/modules/luci-base/luasrc/view/cbi/error.htm
new file mode 100644 (file)
index 0000000..2acb969
--- /dev/null
@@ -0,0 +1,19 @@
+<div class="cbi-map" id="cbi-<%=self.config%>">
+       <% if self.title and #self.title > 0 then %><h2><a id="content" name="content"><%=self.title%></a></h2><% end %>
+       <% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %>
+
+       <p class="alert-message danger">
+               <%: The configuration file could not be loaded due to the following error: %><br />
+               <code><%=pcdata(self.error)%></code>
+       </p>
+
+       <textarea name="cbi.source" style="width:100%; margin-bottom:1em" rows="<%=math.max(self.source:cmatch("\n"), 10)%>"><%=pcdata(self.source)%></textarea>
+
+       <p class="alert-message">
+               <%: Edit the raw configuration data above to fix any error and hit "Save" to reload the page. %>
+       </p>
+
+       <div class="cbi-page-actions">
+               <input class="cbi-button cbi-button-apply" type="submit" name="cbi.save" value="<%:Save%>" />
+       </div>
+</div>
index 4aa454e..2252e7c 100644 (file)
@@ -775,6 +775,11 @@ msgstr "Mètode EAP"
 msgid "Edit"
 msgstr "Edita"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Edita aquesta interfície"
 
@@ -2474,6 +2479,9 @@ msgstr ""
 "Els caràcters permets són: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> i <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 0d89b28..3736020 100644 (file)
@@ -785,6 +785,11 @@ msgstr "Metoda EAP"
 msgid "Edit"
 msgstr "Upravit"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Upravit toto rozhraní"
 
@@ -2529,6 +2534,9 @@ msgstr ""
 "Povolené znaky jsou: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> a "
 "<code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 3ac0c52..361abde 100644 (file)
@@ -781,6 +781,11 @@ msgstr "EAP-Methode"
 msgid "Edit"
 msgstr "Bearbeiten"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Diese Schnittstelle bearbeiten"
 
@@ -2544,6 +2549,9 @@ msgstr ""
 "Erlaubte Buchstaben sind: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> and <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 5451adb..ed3a207 100644 (file)
@@ -797,6 +797,11 @@ msgstr "Μέθοδος EAP"
 msgid "Edit"
 msgstr "Επεξεργασία"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Επεξεργασία αυτής της διεπαφής"
 
@@ -2506,6 +2511,9 @@ msgstr ""
 "Οι επιτρεπόμενοι χαρακτήρες είναι: <code>A-Z</code>, <code>a-z</code>, "
 "<code>0-9</code> και <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index c75b4ca..3ad4b14 100644 (file)
@@ -776,6 +776,11 @@ msgstr "EAP-Method"
 msgid "Edit"
 msgstr "Edit"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr ""
 
@@ -2466,6 +2471,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index d187fe7..2c3ce94 100644 (file)
@@ -791,6 +791,11 @@ msgstr "Método EAP"
 msgid "Edit"
 msgstr "Editar"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Editar esta interfaz"
 
@@ -2549,6 +2554,9 @@ msgstr ""
 "Los caracteres permitidos son: <code>A-Z</code>, <code>a-z</code>, "
 "<code>0-9</code> y <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 3b209b3..1d8d224 100644 (file)
@@ -801,6 +801,11 @@ msgstr "Méthode EAP"
 msgid "Edit"
 msgstr "Éditer"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Éditer cette interface"
 
@@ -2561,6 +2566,9 @@ msgstr ""
 "Les caractères autorisés sont : <code>A-Z</code>, <code>a-z</code>, "
 "<code>0-9</code> et <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index cbc27d3..237e868 100644 (file)
@@ -762,6 +762,11 @@ msgstr ""
 msgid "Edit"
 msgstr "ערוך"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "ערוך ממשק זה"
 
@@ -2440,6 +2445,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 47f0dfe..975bf2d 100644 (file)
@@ -794,6 +794,11 @@ msgstr "EAP metódus"
 msgid "Edit"
 msgstr "Szerkesztés"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Interfész szerkesztése"
 
@@ -2550,6 +2555,9 @@ msgstr ""
 "A következő karakterek használhatók: <code>A-Z</code>, <code>a-z</code>, "
 "<code>0-9</code> and <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index b6f9444..771025e 100644 (file)
@@ -795,6 +795,11 @@ msgstr "Metodo EAP"
 msgid "Edit"
 msgstr "Modifica"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Modifica questa interfaccia"
 
@@ -2532,6 +2537,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 69c384c..8bea764 100644 (file)
@@ -783,6 +783,11 @@ msgstr "EAPメソッド"
 msgid "Edit"
 msgstr "編集"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "インターフェースを編集"
 
@@ -2523,6 +2528,9 @@ msgstr ""
 "使用可能な文字は右記の通りです: <code>A-Z</code>, <code>a-z</code>, "
 "<code>0-9</code>, <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index aaa1bc4..d2a34df 100644 (file)
@@ -746,6 +746,11 @@ msgstr "EAP-Kaedah"
 msgid "Edit"
 msgstr "Sunting"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr ""
 
@@ -2441,6 +2446,9 @@ msgstr ""
 "Karakter yang diizinkan adalah: <code>A-Z</code>, <code>a-z</code>, "
 "<code>0-9</code> dan <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index f742920..21176ed 100644 (file)
@@ -781,6 +781,11 @@ msgstr "EAP-metode"
 msgid "Edit"
 msgstr "Endre"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Endre dette grensesnittet"
 
@@ -2521,6 +2526,9 @@ msgstr ""
 "Gyldige tegn er: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> og "
 "<code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 908b6e6..baa7ab8 100644 (file)
@@ -808,6 +808,11 @@ msgstr "Metoda EAP"
 msgid "Edit"
 msgstr "Edycja"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Edytuj ten interfejs"
 
@@ -2577,6 +2582,9 @@ msgstr ""
 "Dozwolone znaki to: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> "
 "oraz <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index e9c68b2..ec4401b 100644 (file)
@@ -804,6 +804,11 @@ msgstr "Método EAP"
 msgid "Edit"
 msgstr "Editar"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Editar esta interface"
 
@@ -2581,6 +2586,9 @@ msgstr ""
 "Os caracteres permitidos são: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> e <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 2ba5ed7..1acc852 100644 (file)
@@ -797,6 +797,11 @@ msgstr "Metodo-EAP"
 msgid "Edit"
 msgstr "Editar"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Editar esta interface"
 
@@ -2525,6 +2530,9 @@ msgstr ""
 "Os caracteres permitidos são: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> e <code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index efc0bb4..3692b7d 100644 (file)
@@ -753,6 +753,11 @@ msgstr ""
 msgid "Edit"
 msgstr "Editeaza"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Editeaza aceasta interfata"
 
@@ -2430,6 +2435,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index ea5ccf1..94fa6fb 100644 (file)
@@ -797,6 +797,11 @@ msgstr "Метод EAP"
 msgid "Edit"
 msgstr "Редактировать"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 #, fuzzy
 msgid "Edit this interface"
 msgstr "Редактировать этот интерфейс"
@@ -2553,6 +2558,9 @@ msgstr ""
 "Допустимые символы: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> и "
 "<code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index ff5b6dd..d943ccb 100644 (file)
@@ -733,6 +733,11 @@ msgstr ""
 msgid "Edit"
 msgstr ""
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr ""
 
@@ -2401,6 +2406,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 9e10acd..86fa224 100644 (file)
@@ -739,6 +739,11 @@ msgstr ""
 msgid "Edit"
 msgstr ""
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr ""
 
@@ -2407,6 +2412,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index fa7d6d8..1bf53aa 100644 (file)
@@ -746,6 +746,11 @@ msgstr ""
 msgid "Edit"
 msgstr ""
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr ""
 
@@ -2414,6 +2419,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index de1e461..c548322 100644 (file)
@@ -807,6 +807,11 @@ msgstr "EAP-Метод"
 msgid "Edit"
 msgstr "Редагувати"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "Редагувати цей інтерфейс"
 
@@ -2568,6 +2573,9 @@ msgstr ""
 "Дозволені символи: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> та "
 "<code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index cdbabd4..d81be16 100644 (file)
@@ -751,6 +751,11 @@ msgstr "EAP-Method"
 msgid "Edit"
 msgstr "Chỉnh sửa"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr ""
 
@@ -2441,6 +2446,9 @@ msgid ""
 "code> and <code>_</code>"
 msgstr ""
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
index 47aa60f..72bf937 100644 (file)
@@ -410,9 +410,6 @@ msgstr "CA证书.如果留空的话证书将在第一次连接时被保存."
 msgid "CPU"
 msgstr "CPU"
 
-msgid "CPU frequency"
-msgstr "CPU 频率"
-
 msgid "CPU usage (%)"
 msgstr "CPU使用率(%)"
 
@@ -443,9 +440,6 @@ msgstr "检查"
 msgid "Checksum"
 msgstr "校验值"
 
-msgid "Chip Model"
-msgstr "芯片型号"
-
 msgid ""
 "Choose the firewall zone you want to assign to this interface. Select "
 "<em>unspecified</em> to remove the interface from the associated zone or "
@@ -758,6 +752,11 @@ msgstr "EAP-Method"
 msgid "Edit"
 msgstr "修改"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "修改此接口"
 
@@ -2453,6 +2452,9 @@ msgstr ""
 "合法字符:<code>A-Z</code>, <code>a-z</code>, <code>0-9</code> 和 <code>_</"
 "code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
@@ -3116,6 +3118,12 @@ msgstr "是"
 msgid "« Back"
 msgstr "« 后退"
 
+#~ msgid "CPU frequency"
+#~ msgstr "CPU 频率"
+
+#~ msgid "Chip Model"
+#~ msgstr "芯片型号"
+
 #~ msgid ""
 #~ "Always use 40MHz channels even if the secondary channel overlaps. Using "
 #~ "this option does not comply with IEEE 802.11n-2009!"
index a2ec282..ec901b8 100644 (file)
@@ -763,6 +763,11 @@ msgstr "EAP協定驗證方式"
 msgid "Edit"
 msgstr "編輯"
 
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
 msgid "Edit this interface"
 msgstr "修改這個介面"
 
@@ -2468,6 +2473,9 @@ msgstr ""
 "所允許的字元是: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> and "
 "<code>_</code>"
 
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
diff --git a/modules/luci-base/root/lib/uci/upload/.gitignore b/modules/luci-base/root/lib/uci/upload/.gitignore
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/modules/luci-base/root/lib/uci/upload/.placeholder b/modules/luci-base/root/lib/uci/upload/.placeholder
new file mode 100644 (file)
index 0000000..e69de29
index 0a7238b..0b5fa1d 100644 (file)
@@ -2,6 +2,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
+<meta http-equiv="Cache-Control" content="no-cache" />
 <meta http-equiv="refresh" content="0; URL=/cgi-bin/luci" />
 </head>
 <body style="background-color: black">
index 59bf2f6..1b2e23c 100644 (file)
@@ -47,10 +47,11 @@ dialnumber.placeholder = "*99***1#"
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+       ipv6 = section:taboption("advanced", ListValue, "ipv6")
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
 
 end
 
diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua
new file mode 100644 (file)
index 0000000..5a37582
--- /dev/null
@@ -0,0 +1,33 @@
+-- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
+-- Copyright 2013 Steven Barth <steven@midlink.org>
+-- Licensed to the public under the Apache License 2.0.
+
+local map, section, net = ...
+local tunlink, defaultroute, metric, mtu
+
+section:taboption("general", Value, "ip6prefix",
+       translate("NAT64 Prefix"), translate("Leave empty to autodetect"))
+
+tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
+tunlink.template = "cbi/network_netlist"
+tunlink.nocreate = true
+
+
+defaultroute = section:taboption("advanced", Flag, "defaultroute",
+       translate("Default gateway"),
+       translate("If unchecked, no default route is configured"))
+
+defaultroute.default = defaultroute.enabled
+
+
+metric = section:taboption("advanced", Value, "metric",
+       translate("Use gateway metric"))
+
+metric.placeholder = "0"
+metric.datatype    = "uinteger"
+metric:depends("defaultroute", defaultroute.enabled)
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
+mtu.placeholder = "1280"
+mtu.datatype    = "max(9200)"
diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua
new file mode 100644 (file)
index 0000000..2f8108e
--- /dev/null
@@ -0,0 +1,88 @@
+-- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
+-- Copyright 2013 Steven Barth <steven@midlink.org>
+-- Licensed to the public under the Apache License 2.0.
+
+local map, section, net = ...
+
+local peeraddr, ip6addr
+local tunlink, defaultroute, metric, ttl, mtu
+
+
+maptype = section:taboption("general", ListValue, "type", translate("Type"))
+maptype:value("map-e", "MAP-E")
+maptype:value("map-t", "MAP-T")
+maptype:value("lw4o6", "LW4over6")
+
+
+peeraddr = section:taboption("general", Value, "peeraddr",
+       translate("BR / DMR / AFTR"))
+
+peeraddr.rmempty  = false
+peeraddr.datatype = "ip6addr"
+
+
+ipaddr = section:taboption("general", Value, "ipaddr",
+       translate("IPv4 prefix"))
+ipaddr.datatype = "ip4addr"
+
+
+ip4prefixlen = s:taboption("general", Value, "ip4prefixlen",
+        translate("IPv4 prefix length"),
+        translate("The length of the IPv4 prefix in bits, the remainder is used in the IPv6 addresses."))
+
+ip4prefixlen.placeholder = "32"
+ip4prefixlen.datatype    = "range(0,32)"
+
+ip6addr = s:taboption("general", Value, "ip6prefix",
+        translate("IPv6 prefix"),
+        translate("The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"))
+
+ip6addr.rmempty  = false
+ip6addr.datatype = "ip6addr"
+
+
+ip6prefixlen = s:taboption("general", Value, "ip6prefixlen",
+        translate("IPv6 prefix length"),
+        translate("The length of the IPv6 prefix in bits"))
+
+ip6prefixlen.placeholder = "16"
+ip6prefixlen.datatype    = "range(0,64)"
+
+
+s:taboption("general", Value, "ealen",
+       translate("EA-bits length")).datatype = "range(0,16)"
+
+s:taboption("general", Value, "psidlen",
+       translate("PSID-bits length")).datatype = "range(0,16)"
+
+s:taboption("general", Value, "offset",
+       translate("PSID offset")).datatype = "range(0,16)"
+
+tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
+tunlink.template = "cbi/network_netlist"
+tunlink.nocreate = true
+
+
+defaultroute = section:taboption("advanced", Flag, "defaultroute",
+       translate("Default gateway"),
+       translate("If unchecked, no default route is configured"))
+
+defaultroute.default = defaultroute.enabled
+
+
+metric = section:taboption("advanced", Value, "metric",
+       translate("Use gateway metric"))
+
+metric.placeholder = "0"
+metric.datatype    = "uinteger"
+metric:depends("defaultroute", defaultroute.enabled)
+
+
+ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
+ttl.placeholder = "64"
+ttl.datatype    = "range(1,255)"
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
+mtu.placeholder = "1280"
+mtu.datatype    = "max(9200)"
index daebc2f..d876d69 100644 (file)
@@ -5,13 +5,17 @@
 local netmod = luci.model.network
 
 local _, p
-for _, p in ipairs({"dslite"}) do
+for _, p in ipairs({"dslite", "map", "464xlat"}) do
 
        local proto = netmod:register_protocol(p)
 
        function proto.get_i18n(self)
                if p == "dslite" then
                        return luci.i18n.translate("Dual-Stack Lite (RFC6333)")
+               elseif p == "map" then
+                       return luci.i18n.translate("MAP / LW4over6")
+               elseif p == "464xlat" then
+                       return luci.i18n.translate("464XLAT (CLAT)")
                end
        end
 
@@ -22,6 +26,10 @@ for _, p in ipairs({"dslite"}) do
        function proto.opkg_package(self)
                if p == "dslite" then
                        return "ds-lite"
+               elseif p == "map" then
+                       return "map-t"
+               elseif p == "464xlat" then
+                       return "464xlat"
                end
        end
 
@@ -45,5 +53,11 @@ for _, p in ipairs({"dslite"}) do
                return (netmod:ifnameof(ifc) == self:ifname())
        end
 
-       netmod:register_pattern_virtual("^%s-%%w" % p)
+       if p == "dslite" then
+               netmod:register_pattern_virtual("^ds-%w")
+       elseif p == "map" then
+               netmod:register_pattern_virtual("^map-%w")
+       elseif p == "464xlat" then
+               netmod:register_pattern_virtual("^464-%w")
+       end
 end
index 023cc02..523ef1b 100644 (file)
@@ -19,10 +19,11 @@ password.password = true
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
index 0fce97a..b14db59 100644 (file)
@@ -31,10 +31,11 @@ password.password = true
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
index 7df1004..8f463e5 100644 (file)
@@ -37,10 +37,11 @@ password.password = true
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
index 0e5bbaf..5a05cd2 100644 (file)
@@ -31,10 +31,11 @@ service.placeholder = translate("auto")
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end