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 1bffcaa4b36481bef252c71d0a63b4394a2ca724..0e1e5df4c1d7c8e77deee59068427c6fd06066fb 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 0b82021e2a84d5da2ea703caf49ab35fe303aa81..946dfefbc8bb8ace5e6aa6b890be97ecc953994a 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 40a66ef1524f2967831e7a116ae8c48247af4a6d..27f9a9f2640d4b58c2a5eb93f625b94a863a3a40 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 6d53931469551c78610e1bc2c8fcee3dedae3f45..4466063cb339ee2848cfc18d08e8b93b312b0e17 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 f6e0d5e3937d847c63a9563afb3ff142237a5edb..6ffde5d54760a163db09e201dc313e3e57d80ab6 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 6e4f2fe08a0d1e3c6111821452696efe9e11e529..35386802bf0d640dad454306e6acc3b3c5552613 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 34de44a5f01cace744ddb2f2066c82344cf6808e..7c5944bf27fdf8d53b2390d184a554f5013dd0ee 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 4aa454e7bb1870ed16fc4fa1b5926da21f7c1e81..2252e7c9513fd12bad097bc8e6e3748ec2c03db9 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 0d89b28aa1b22a7ce85fe43800a0ca089237e1fe..373602070ca31e2eb29ff2bd58867260f2da93e1 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 3ac0c52e2fac271c43b19d760e9f1e07a766abf2..361abdead9ea5b6368184409d87c2423271b0e4f 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 5451adb47975b05589b7894704b73ad7d8847edc..ed3a20737c274235316afd052c665b1dfe5f9d6b 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 c75b4cab3f76c168c91f0f75bd2459f9446ccc62..3ad4b140bb39a24e1d5677eb339bd611e885f334 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 d187fe7bdcc83263cd46740bd0d0a1bd103ac86e..2c3ce94ad517a8fdbdd6afdd866be2eed6e17c79 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 3b209b349b063f18ec685e46801edf1fb8a59616..1d8d22475467ed371bafd1cd51747cce90e1ae16 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 cbc27d316063b5e5e4accbecd38e5999390ce778..237e8689ae7b8872db0323a3dafbe124afcb0650 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 47f0dfedb0b41dbf39429d48dafb1f0d8e93f1fa..975bf2dfce60a246b75d2c24fdda13b885721403 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 b6f94443e2caba968b3735694858d48163bdfbfb..771025e270150e21aa665fe17404701a1be71c51 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 69c384c5080820c6831088e1c6f2b572ec76f445..8bea7644eac71d4d167b2a0cbe122612348b2d1b 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 aaa1bc4ca0d913474b4c47f966ec123fc99370b6..d2a34dfbe1a3c7003fe9d8ce758380f4b7da6a46 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 f7429201f04f40deb604fedef0ca0a0944742655..21176ed3f4c3e89aacca44772911ee02d571e9ca 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 908b6e601f14b9542ad63fd190ba258a971be62d..baa7ab853401e028ffb213efe5fd56ee3778d524 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 e9c68b225be482e28b453448531ff09779e5564f..ec4401bde9dea6914e93b9eb7d354c15b6c01c98 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 2ba5ed7b4c2b962ab1b17a9d09056020b65d5cb4..1acc852bbf2b5c4152963824b6bca7c8d85befb3 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 efc0bb450df1f31542064fea181c1bfcd8c0cd2c..3692b7de55f36c6144e41c77d202a3e50232e2cb 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 ea5ccf163de981366fa14a324c3939212b43499f..94fa6fb8eed46baa0695b79e527f62755953c8af 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 ff5b6dde06a1e9ff590016ef12ca8b275c0912b1..d943ccb8916201e49bc27a9237602547b9d9afbb 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 9e10acda3a8b133f7bd1405a74a40a3b4c4b8373..86fa224e7945f833e10d41ca3e193f0f26231f20 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 fa7d6d80062a3d0c65a875bf1dc3fc0dd2f2c791..1bf53aa576886841590a1606f25cee5f5898e36f 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 de1e461ab68a14065c42ebf657d67d2255a7842a..c5483221c2abca2b0fb6581ccd9a98962afc17e5 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 cdbabd4cf32fa1ed5839abdc695e24df1718f6e1..d81be16eb549833084c2cc84ec3c2833df698801 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 47aa60f66723d21c1c5502855271362a68a2e30c..72bf9379528e703dd3c3c4665506d26f55dc175b 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 a2ec282dd81e3c193d849eef7ecffe12130179e1..ec901b8af21d8327d6b1fa64e4666e865d6b3bd5 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 0a7238b556d9dd3b49b7f131e9382500ff243414..0b5fa1d87e88914cb906a258e5d9455871c1e1df 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 59bf2f646c064e49e798f7ff9e9a90aceb5dbc1b..1b2e23cc42f4c187edbfcbf28694f7d86f2d7114 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 daebc2f5d8612ab0e6e078684960c98340dc41c3..d876d69ba81d86610dd166310e1cd73935d4b954 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 023cc029bfd9dba94c3c88df0aba03453f81d619..523ef1bc6f0240093211462be77e2b144a50e3d9 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 0fce97a6bd8c80273060b579ae1479a0a8e2b622..b14db5966d0da5bd83494f7cf56c0b5136c5725b 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 7df1004fc5c5147b58457afdd1a17aa0b89890c7..8f463e5d76a2cc203dce32ef4493de18576d5fd6 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 0e5bbaf513749caba13d0046ae49474ea8307cc6..5a05cd20656c2ffb0edaf3cf58e2bdb7a737e8ec 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