Merge pull request #1769 from jow-/master
authorJo-Philipp Wich <jo@mein.io>
Fri, 18 May 2018 14:44:33 +0000 (16:44 +0200)
committerGitHub <noreply@github.com>
Fri, 18 May 2018 14:44:33 +0000 (16:44 +0200)
UCI apply/rollback workflow

27 files changed:
applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
applications/luci-app-commands/luasrc/view/commands.htm
applications/luci-app-ddns/Makefile
applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
applications/luci-app-mwan3/luasrc/controller/mwan3.lua
applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua
applications/luci-app-openvpn/Makefile
applications/luci-app-pagekitec/po/ja/pagekitec.po [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua
applications/luci-app-upnp/luasrc/model/cbi/upnp/upnp.lua
contrib/package/lucihttp/Makefile
modules/luci-base/luasrc/dispatcher.lua
modules/luci-base/luasrc/http.lua
modules/luci-base/luasrc/model/network.lua
modules/luci-base/po/de/base.po
modules/luci-base/po/pl/base.po
modules/luci-base/root/etc/config/ucitrack
modules/luci-mod-admin-full/luasrc/controller/admin/system.lua
modules/luci-mod-freifunk/htdocs/luci-static/flashing.html
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 3786c7a..3f39622 100644 (file)
@@ -9,23 +9,14 @@ local dump     = util.ubus("network.interface", "dump", {})
 local json     = require("luci.jsonc")
 local adbinput = uci:get("adblock", "global", "adb_rtfile") or "/tmp/adb_runtime.json"
 
-if not uci:get("adblock", "extra") then
-       m = SimpleForm("", nil, translate("Please update your adblock config file to use this package.<br />")
-       .. translatef("During opkg package installation use the '--force-maintainer' option to overwrite the pre-existing config file or download a fresh default config from "
-       .. "<a href=\"%s\" target=\"_blank\">"
-       .. "here</a>", "https://raw.githubusercontent.com/openwrt/packages/master/net/adblock/files/adblock.conf"))
-       m.submit = false
-       m.reset = false
-       return m
-end
-
 m = Map("adblock", translate("Adblock"),
        translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ")
        .. translatef("For further information "
        .. "<a href=\"%s\" target=\"_blank\">"
        .. "check the online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md"))
+m.apply_on_parse = true
 
-function m.on_after_commit(self)
+function m.on_apply(self)
        luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1")
        luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
 end
@@ -174,9 +165,7 @@ end
 -- Blocklist table
 
 bl = m:section(TypedSection, "source", translate("Blocklist Sources"),
-       translate("Available blocklist sources. ")
-       .. translate("List URLs and Shallalist category selections are configurable in the 'Advanced' section.<br />")
-       .. translate("Caution: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select more than five blocklist sources!"))
+       translate("<b>Caution:</b> To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please only select a few of them!"))
 bl.template = "adblock/blocklist"
 
 name = bl:option(Flag, "enabled", translate("Enabled"))
@@ -191,8 +180,13 @@ function ssl.cfgvalue(self, section)
                return translate("No")
        end
 end
+
 des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
 
+cat = bl:option(DynamicList, "adb_src_cat", translate("Categories"))
+cat.datatype = "uciname"
+cat.optional = true
+
 -- Extra options
 
 e = m:section(NamedSection, "extra", "adblock", translate("Extra Options"),
index aae6407..b4b62db 100644 (file)
@@ -22,15 +22,27 @@ end
 -%>
 
 <style type="text/css">
-<!--
+table.cbi-section-table th,
+table.cbi-section-table td,
 .cbi-section-table-cell,
-.cbi-section-table-row
+.cbi-section-table-row,
+.cbi-input-text
 {
        text-align:left;
+       vertical-align:top;
        margin-right:auto;
        margin-left:0px;
 }
--->
+.cbi-input-text
+{
+       outline:none;
+       box-shadow:none;
+       background:transparent;
+       padding-left:2px;
+       line-height:25px;
+       height:25px;
+       width:10em;
+}
 </style>
 
 <fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
@@ -39,7 +51,6 @@ end
        <%- end %>
        <div class="cbi-section-descr"><%=self.description%></div>
        <div class="cbi-section-node">
-               <%- local count = 0 -%>
                <table class="cbi-section-table">
                        <tr class="cbi-section-table-titles">
                        <%- if self.sectionhead then -%>
@@ -51,7 +62,7 @@ end
                                <th class="cbi-section-table-cell"<%=width(k)%>>
                                        <%-=k.title-%>
                                </th>
-                       <%- count = count + 1; end; -%>
+                       <%- end -%>
                        </tr>
                        <%- local isempty = true
                                for i, k in ipairs(self:cfgsections()) do
@@ -60,19 +71,15 @@ end
                                        scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" }
                        -%>
                        <tr class="cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>">
-                                       <th><%=k%></th>
+                               <th><%=k%></th>
                                <%-
                                        for k, node in ipairs(self.children) do
-                                               if not node.optional then
-                                                       node:render(section, scope or {})
-                                               end
+                                               node:render(section, scope or {})
                                        end
+                                       if not scope.cbid:match("adb_src_cat") then
                                -%>
-                       </tr>
-                       <%- end -%>
-                       <%- if isempty then -%>
-                       <tr class="cbi-section-table-row">
-                               <td colspan="<%=count%>"><em><br /><%:This section contains no values yet%></em></td>
+                                       <td class="cbi-value-field">&#160;</td>
+                               <%- end -%>
                        </tr>
                        <%- end -%>
                </table>
index 3b36155..4285f25 100644 (file)
 
                if (legend && output)
                {
-                       var prefix = location.protocol + '//' + location.hostname +
-                                  (location.port ? ':' + location.port : '') +
-                                          location.pathname.split(';')[0] + 'command/';
+                       var prefix = location.protocol + '//' + location.host + '<%=url('command')%>/';
                        var suffix = (args ? '/' + args : '');
                        
                        var link = prefix + id + suffix;
index 06dbefb..bd6ddeb 100644 (file)
@@ -16,7 +16,7 @@ PKG_VERSION:=2.4.9
 
 # Release == build
 # increase on changes of translation files
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_LICENSE:=Apache-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
index 23ec059..3cbb66b 100644 (file)
@@ -25,9 +25,8 @@
 />
 <br />
 <div class="cbi-value-description">
-       <span class="cbi-value-helpicon"><img src="<%=resource%>/cbi/help.gif" alt="<%:help%>" /><%=self.description%></span>
-       <br />
-       <span id="<%=cbid%>.help" class="cbi-value-helpicon"><%:Current setting%>: <strong><%=self.date_string%></strong></span>
+       <span class="cbi-value-helpicon"><img src="<%=resource%>/cbi/help.gif" alt="<%:help%>" /></span><%=self.description%>
+       <br /><%:Current setting%>: <strong><%=self.date_string%></strong>
 </div> <!-- div class="cbi-value-description" -->
 </div> <!-- div class="cbi-value-field" -->
 </div> <!-- div class="cbi-value cbi-value-last" -->
index 7553504..a42c149 100644 (file)
@@ -68,12 +68,6 @@ function name.write(self, section, value)
                out.exclude = value
                inp.exclude = value
        end
-
-       m.redirect = ds.build_url("admin/network/firewall/zones", value)
-       m.title = "%s - %s" %{
-               translate("Firewall - Zone Settings"),
-               translatef("Zone %q", value or "?")
-       }
 end
 
 p = {
index d5fc4a3..18c2135 100644 (file)
@@ -97,9 +97,9 @@ function diagnosticsData(interface, task)
                return interfaceNumber
        end
 
-       function diag_command(cmd, addr)
+       function diag_command(cmd, device, addr)
                if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
-                       local util = io.popen(cmd % ut.shellquote(addr))
+                       local util = io.popen(cmd %{ut.shellquote(device), ut.shellquote(addr)})
                        if util then
                                while true do
                                        local ln = util:read("*l")
@@ -114,8 +114,14 @@ function diagnosticsData(interface, task)
        end
 
        function get_gateway(inteface)
-               local dump = require("luci.util").ubus("network.interface.%s" % interface, "status", {})
-               local gateway
+               local gateway = nil
+               local dump = nil
+
+               dump = require("luci.util").ubus("network.interface.%s_4" % interface, "status", {})
+               if not dump then
+                       dump = require("luci.util").ubus("network.interface.%s" % interface, "status", {})
+               end
+
                if dump and dump.route then
                        local _, route
                        for _, route in ipairs(dump.route) do
@@ -139,7 +145,7 @@ function diagnosticsData(interface, task)
                if task == "ping_gateway" then
                        local gateway = get_gateway(interface)
                        if gateway ~= nil then
-                               diag_command("ping -c 5 -W 1 %s 2>&1", gateway)
+                               diag_command("ping -I %s -c 5 -W 1 %s 2>&1", device, gateway)
                        else
                                luci.http.prepare_content("text/plain")
                                luci.http.write(string.format("No gateway for interface %s found.", interface))
@@ -148,7 +154,7 @@ function diagnosticsData(interface, task)
                        local trackips = uci:get("mwan3", interface, "track_ip")
                        if #trackips > 0 then
                                for i in pairs(trackips) do
-                                       diag_command("ping -c 5 -W 1 %s 2>&1", trackips[i])
+                                       diag_command("ping -I %s -c 5 -W 1 %s 2>&1", device, trackips[i])
                                end
                        else
                                luci.http.write(string.format("No tracking Hosts for interface %s defined.", interface))
index a439502..a6570e3 100644 (file)
@@ -54,6 +54,7 @@ count:value("5")
 
 size = mwan_interface:option(Value, "size", translate("Ping size"))
 size.default = "56"
+size:depends("track_method", "ping")
 size:value("8")
 size:value("24")
 size:value("56")
@@ -67,6 +68,52 @@ size.datatype = "range(1, 65507)"
 size.rmempty = false
 size.optional = false
 
+check_quality = mwan_interface:option(Flag, "check_quality", translate("Check link quality"))
+check_quality:depends("track_method", "ping")
+check_quality.default = false
+
+failure_latency = mwan_interface:option(Value, "failure_latency", translate("Max packet latency [ms]"))
+failure_latency:depends("check_quality", 1)
+failure_latency.default = "1000"
+failure_latency:value("25")
+failure_latency:value("50")
+failure_latency:value("75")
+failure_latency:value("100")
+failure_latency:value("150")
+failure_latency:value("200")
+failure_latency:value("250")
+failure_latency:value("300")
+
+failure_loss = mwan_interface:option(Value, "failure_loss", translate("Max packet loss [%]"))
+failure_loss:depends("check_quality", 1)
+failure_loss.default = "20"
+failure_loss:value("2")
+failure_loss:value("5")
+failure_loss:value("10")
+failure_loss:value("20")
+failure_loss:value("25")
+
+recovery_latency = mwan_interface:option(Value, "recovery_latency", translate("Min packet latency [ms]"))
+recovery_latency:depends("check_quality", 1)
+recovery_latency.default = "500"
+recovery_latency:value("25")
+recovery_latency:value("50")
+recovery_latency:value("75")
+recovery_latency:value("100")
+recovery_latency:value("150")
+recovery_latency:value("200")
+recovery_latency:value("250")
+recovery_latency:value("300")
+
+recovery_loss = mwan_interface:option(Value, "recovery_loss", translate("Min packet loss [%]"))
+recovery_loss:depends("check_quality", 1)
+recovery_loss.default = "5"
+recovery_loss:value("2")
+recovery_loss:value("5")
+recovery_loss:value("10")
+recovery_loss:value("20")
+recovery_loss:value("25")
+
 timeout = mwan_interface:option(ListValue, "timeout", translate("Ping timeout"))
 timeout.default = "2"
 timeout:value("1", translatef("%d second", 1))
index a8070fd..380ee73 100644 (file)
@@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk
 LUCI_TITLE:=LuCI Support for OpenVPN
 LUCI_DEPENDS:=
 
+PKG_LICENSE:=Apache-2.0
+
 include ../../luci.mk
 
 # call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-pagekitec/po/ja/pagekitec.po b/applications/luci-app-pagekitec/po/ja/pagekitec.po
new file mode 100644 (file)
index 0000000..c303f58
--- /dev/null
@@ -0,0 +1,59 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.7\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid ""
+"<p/>Note: you need a working PageKite account, or at least, your own running "
+"front end for this form to work. Visit <a href=\"https://pagekite.net/home/"
+"\">your account</a> to set up a name for your router and get a secret key "
+"for the connection. <p/><em>Note: this web configurator only supports some "
+"very very basic uses of pagekite.</em>"
+msgstr ""
+"<p/>注意: 動作には PageKite アカウント、もしくは少なくともこのフォーム用の実"
+"行中のフロントエンドが必要です。ルーター用の名前をセットアップするには<a "
+"href=\"https://pagekite.net/home/\">アカウント</a>へアクセスし、接続用のシー"
+"クレット キーを取得します。<p/><em>注意: この Web 設定は、PageKite の非常に簡"
+"易な使用のみサポートしています。</em>"
+
+msgid "Basic HTTP"
+msgstr "ベーシック HTTP"
+
+msgid "Basic SSH"
+msgstr "ベーシック SSH"
+
+msgid ""
+"Enable a tunnel to the local HTTP server (in most cases, this admin site)"
+msgstr "ローカル HTTP サーバーへのトンネルを有効化(通常、この管理サイト)"
+
+msgid "Enable a tunnel to the local SSH server"
+msgstr "ローカル SSH サーバーへのトンネルを有効化"
+
+msgid "Kite Name"
+msgstr "Kite 名"
+
+msgid "Kite Secret"
+msgstr "Kite シークレット"
+
+msgid "PageKite"
+msgstr "PageKite"
+
+msgid "Static Setup"
+msgstr "静的セットアップ"
+
+msgid ""
+"Static setup, disable FE failover and DDNS updates, set this if you are "
+"running your own frontend without a pagekite.me account"
+msgstr ""
+"静的セットアップは、 FE フェイルオーバーと DDNS アップデートを無効にします。"
+"もし pagekite.me アカウント無しにフロントエンドを実行している場合、これを設定"
+"します。"
index 7b6b965..a1dcbc6 100644 (file)
@@ -18,8 +18,11 @@ m = Map("travelmate", translate("Travelmate"),
        .. translatef("For further information "
        .. "<a href=\"%s\" target=\"_blank\">"
        .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md"))
+m:chain("network")
+m:chain("firewall")
+m.apply_on_parse = true
 
-function m.on_after_commit(self)
+function m.on_apply(self)
        luci.sys.call("env -i /etc/init.d/travelmate restart >/dev/null 2>&1")
        luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
 end
@@ -28,39 +31,27 @@ end
 
 if uplink == "" then
        ds = m:section(NamedSection, "global", "travelmate", translate("Interface Wizard"))
-
-       o = ds:option(Value, "", translate("Uplink interface"))
+       o = ds:option(Value, "trm_iface", translate("Create Uplink interface"),
+               translate("Create a new wireless wan uplink interface, configure it to use dhcp and ")
+               .. translate("add it to the wan zone of the firewall.<br />")
+               .. translate("This step has only to be done once."))
        o.datatype = "and(uciname,rangelength(3,15))"
        o.default = trmiface
        o.rmempty = false
 
-       btn = ds:option(Button, "trm_iface", translate("Create Uplink Interface"),
-               translate("Create a new wireless wan uplink interface, configure it to use dhcp and ")
-               .. translate("add it to the wan zone of the firewall. This step has only to be done once."))
-       btn.inputtitle = translate("Add Interface")
-       btn.inputstyle = "apply"
-       btn.disabled = false
-
-       function btn.write(self, section)
-               local iface = o:formvalue(section)
-               if iface then
-                       uci:set("travelmate", section, "trm_iface", iface)
-                       uci:save("travelmate")
-                       uci:commit("travelmate")
-                       local net = nw:add_network(iface, { proto = "dhcp" })
-                       if net then
-                               nw:save("network")
-                               nw:commit("network")
-                               local zone = fw:get_zone_by_network("wan")
-                               if zone then
-                                       zone:add_network(iface)
-                                       fw:save("firewall")
-                                       fw:commit("firewall")
-                               end
+       function o.validate(self, value)
+               if value then
+                       local nwnet = nw:get_network(value)
+                       local zone  = fw:get_zone("wan")
+                       local fwnet = fw:get_zone_by_network(value)
+                       if not nwnet then
+                               nwnet = nw:add_network(value, { proto = "dhcp" })
+                       end
+                       if zone and not fwnet then
+                               fwnet = zone:add_network(value)
                        end
-                       luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
                end
-               luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+               return value
        end
        return m
 end
index 1dacb6e..f76b52e 100644 (file)
@@ -46,8 +46,8 @@ This is free software, licensed under the Apache License, Version 2.0
       <td style="<%=style%>"><%=bssid%></td>
       <td style="<%=style%>"><%=encryption%></td>
       <td class="cbi-value-field" style="width:80px">
-        <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/>
-        <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/>
+        <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/>
+        <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/>
       </td>
       <td class="cbi-value-field" style="width:150px">
         <input type="button" class="cbi-button cbi-button-edit" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiedit')%>?cfg=<%=section%>'" title="<%:Edit this Uplink%>" value="<%:Edit%>"/>
index c92e379..bf2b65a 100644 (file)
@@ -29,53 +29,52 @@ s1:tab("basic", translate("Basic"),
   "https://www.unbound.net/",
   "https://github.com/openwrt/packages/blob/master/net/unbound/files/README.md"))
 
-ena = s1:taboption("basic", Flag, "enabled", translate("Enable Unbound:"),
-  translate("Enable the initialization scripts for Unbound"))
-ena.rmempty = false
-
-mcf = s1:taboption("basic", Flag, "manual_conf", translate("Manual Conf:"),
-  translate("Skip UCI and use /etc/unbound/unbound.conf"))
-mcf.rmempty = false
-
-lci = s1:taboption("basic", Flag, "extended_luci", translate("Extended Tabs:"),
-  translate("See detailed tabs for statistics, debug, and manual configuration"))
-lci.rmempty = false
-
-
-function ena.cfgvalue(self, section)
-  return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
-end
-
-
-function ena.write(self, section, value)
-  if value == "1" then
-    luci.sys.init.enable("unbound")
-    luci.sys.call("/etc/init.d/unbound start >/dev/null")
-  else
-    luci.sys.call("/etc/init.d/unbound stop >/dev/null")
-    luci.sys.init.disable("unbound")
-  end
-
-  return Flag.write(self, section, value)
-end
-
 
 if valman ~= "1" then
   -- Not in manual configuration mode; show UCI
   s1:tab("advanced", translate("Advanced"),
     translatef("<h3>Unbound Advanced Settings</h3>\n"
-    .. "Link DHCP-DNS, Manipulate DNS, or protect your local domain in "
+    .. "Domain manipulation, lookup protection, and workarounds for "
     .. "<a href=\"%s\" target=\"_blank\">Unbound </a>"
     .. " DNS resolver.", "https://www.unbound.net/"))
 
+  s1:tab("DHCP", translate("DHCP"),
+    translatef("<h3>Unbound DHCP Settings</h3>\n"
+    .. "Link your DHCP server to "
+    .. "<a href=\"%s\" target=\"_blank\">Unbound </a>"
+    .. " DNS resolver.", "https://www.unbound.net/ "))
 
   s1:tab("resource", translate("Resource"),
     translatef("<h3>Unbound Resource Settings</h3>\n"
     .. "Memory and protocol setttings for "
     .. "<a href=\"%s\" target=\"_blank\">Unbound </a>"
     .. " DNS resolver.", "https://www.unbound.net/"))
+end
 
 
+s1:tab("trigger", translate("Trigger"),
+    translatef("<h3>Unbound Event Trigger Settings</h3>\n"
+    .. "Start, reload, and save RFC5011 DNSKEY records for "
+    .. "<a href=\"%s\" target=\"_blank\">Unbound </a>"
+    .. " DNS resolver.", "https://www.unbound.net/"))
+
+
+--Basic Tab, unconditional pieces
+ena = s1:taboption("basic", Flag, "enabled", translate("Enable Unbound:"),
+  translate("Enable the initialization scripts for Unbound"))
+ena.rmempty = false
+
+mcf = s1:taboption("basic", Flag, "manual_conf", translate("Manual Conf:"),
+  translate("Skip UCI and use /etc/unbound/unbound.conf"))
+mcf.rmempty = false
+
+lci = s1:taboption("basic", Flag, "extended_luci", translate("Extended Tabs:"),
+  translate("See detailed tabs for statistics, debug, and manual configuration"))
+lci.rmempty = false
+
+
+if valman ~= "1" then
+  -- Not in manual configuration mode; show UCI
   --Basic Tab
   lsv = s1:taboption("basic", Flag, "localservice", translate("Local Service:"),
     translate("Accept queries only from local subnets"))
@@ -90,11 +89,6 @@ if valman ~= "1" then
   nvd.rmempty = false
   nvd:depends({ validator = true })
 
-  din = s1:taboption("basic", DynamicList, "domain_insecure",
-    translate("Domain Insecure:"),
-    translate("List domains to bypass checks of DNSSEC"))
-  din:depends({ validator = true })
-
   d64 = s1:taboption("basic", Flag, "dns64", translate("Enable DNS64:"),
     translate("Enable the DNS64 module"))
   d64.rmempty = false
@@ -121,25 +115,56 @@ if valman ~= "1" then
   prt.rmempty = false
 
   --Avanced Tab
-  dlk = s1:taboption("advanced", ListValue, "dhcp_link", translate("DHCP Link:"),
+  din = s1:taboption("advanced", DynamicList, "domain_insecure",
+    translate("Domain Insecure:"),
+    translate("List domains to bypass checks of DNSSEC"))
+  din:depends({ validator = true })
+
+  dfw = s1:taboption("advanced", DynamicList, "domain_forward",
+    translate("Domain Forward:"),
+    translate("List domains to simply forward to stub resolvers in /tmp/resolve.auto"))
+
+  rlh = s1:taboption("advanced", Flag, "rebind_localhost", translate("Filter Localhost Rebind:"),
+    translate("Protect against upstream response of 127.0.0.0/8"))
+  rlh.rmempty = false
+
+  rpv = s1:taboption("advanced", ListValue, "rebind_protection", translate("Filter Private Rebind:"),
+    translate("Protect against upstream responses within local subnets"))
+  rpv:value("0", translate("No Filter"))
+  rpv:value("1", translate("Filter RFC1918/4193"))
+  rpv:value("2", translate("Filter Entire Subnet"))
+  rpv.rmempty = false
+
+  rpn = s1:taboption("advanced", Value, "rebind_interface", translate("Rebind Network Filter:"),
+    translate("Network subnets to filter from upstream responses"))
+  rpn.template = "cbi/network_netlist"
+  rpn.widget = "checkbox"
+  rpn.rmempty = true
+  rpn.cast = "string"
+  rpn.nocreate = true
+  rpn:depends({ rebind_protection = 2 })
+  rpn:depends({ rebind_protection = 3 })
+
+  --DHCP Tab
+  dlk = s1:taboption("DHCP", ListValue, "dhcp_link", translate("DHCP Link:"),
     translate("Link to supported programs to load DHCP into DNS"))
   dlk:value("none", translate("No Link"))
   dlk:value("dnsmasq", "dnsmasq")
   dlk:value("odhcpd", "odhcpd")
   dlk.rmempty = false
 
-  dp6 = s1:taboption("advanced", Flag, "dhcp4_slaac6", translate("DHCPv4 to SLAAC:"),
+  dp6 = s1:taboption("DHCP", Flag, "dhcp4_slaac6", translate("DHCPv4 to SLAAC:"),
     translate("Use DHCPv4 MAC to discover IP6 hosts SLAAC (EUI64)"))
   dp6.rmempty = false
   dp6:depends({ dhcp_link = "odhcpd" })
 
-  dom = s1:taboption("advanced", Value, "domain", translate("Local Domain:"),
+  dom = s1:taboption("DHCP", Value, "domain", translate("Local Domain:"),
     translate("Domain suffix for this router and DHCP clients"))
   dom.placeholder = "lan"
   dom:depends({ dhcp_link = "none" })
   dom:depends({ dhcp_link = "odhcpd" })
 
-  dty = s1:taboption("advanced", ListValue, "domain_type", translate("Local Domain Type:"),
+  dty = s1:taboption("DHCP", ListValue, "domain_type", translate("Local Domain Type:"),
     translate("How to treat queries of this local domain"))
   dty:value("deny", translate("Ignored"))
   dty:value("refuse", translate("Refused"))
@@ -148,7 +173,7 @@ if valman ~= "1" then
   dty:depends({ dhcp_link = "none" })
   dty:depends({ dhcp_link = "odhcpd" })
 
-  lfq = s1:taboption("advanced", ListValue, "add_local_fqdn", translate("LAN DNS:"),
+  lfq = s1:taboption("DHCP", ListValue, "add_local_fqdn", translate("LAN DNS:"),
     translate("How to enter the LAN or local network router in DNS"))
   lfq:value("0", translate("No Entry"))
   lfq:value("1", translate("Hostname, Primary Address"))
@@ -158,7 +183,7 @@ if valman ~= "1" then
   lfq:depends({ dhcp_link = "none" })
   lfq:depends({ dhcp_link = "odhcpd" })
 
-  wfq = s1:taboption("advanced", ListValue, "add_wan_fqdn", translate("WAN DNS:"),
+  wfq = s1:taboption("DHCP", ListValue, "add_wan_fqdn", translate("WAN DNS:"),
     translate("Override the WAN side router entry in DNS"))
   wfq:value("0", translate("Use Upstream"))
   wfq:value("1", translate("Hostname, Primary Address"))
@@ -168,7 +193,7 @@ if valman ~= "1" then
   wfq:depends({ dhcp_link = "none" })
   wfq:depends({ dhcp_link = "odhcpd" })
 
-  exa = s1:taboption("advanced", ListValue, "add_extra_dns", translate("Extra DNS:"),
+  exa = s1:taboption("DHCP", ListValue, "add_extra_dns", translate("Extra DNS:"),
     translate("Use extra DNS entries found in /etc/config/dhcp"))
   exa:value("0", translate("Ignore"))
   exa:value("1", translate("Include Network/Hostnames"))
@@ -177,29 +202,6 @@ if valman ~= "1" then
   exa:depends({ dhcp_link = "none" })
   exa:depends({ dhcp_link = "odhcpd" })
 
-  dfw = s1:taboption("advanced", DynamicList, "domain_forward",
-    translate("Domain Forward:"),
-    translate("List domains to simply forward to stub resolvers in /tmp/resolve.auto"))
-
-  rlh = s1:taboption("advanced", Flag, "rebind_localhost", translate("Filter Localhost Rebind:"),
-    translate("Protect against upstream response of 127.0.0.0/8"))
-  rlh.rmempty = false
-
-  rpv = s1:taboption("advanced", ListValue, "rebind_protection", translate("Filter Private Rebind:"),
-    translate("Protect against upstream responses within local subnets"))
-  rpv:value("0", translate("No Filter"))
-  rpv:value("1", translate("Filter RFC1918/4193"))
-  rpv:value("2", translate("Filter Entire Subnet"))
-  rpv.rmempty = false
-
-  rpn = s1:taboption("advanced", Value, "rebind_interface", translate("Rebind Network Filter:"),
-    translate("Network subnets to filter from upstream responses"))
-  rpn.template = "cbi/network_netlist"
-  rpn.widget = "checkbox"
-  rpn.cast = "string"
-  rpn:depends({ rebind_protection = 2 })
-  rpn:depends({ rebind_protection = 3 })
-
   --TODO: dnsmasq needs to not reference resolve-file and get off port 53.
 
   --Resource Tuning Tab
@@ -235,15 +237,6 @@ if valman ~= "1" then
   rsc:value("tiny", translate("Tiny"))
   rsc.rmempty = false
 
-  ag2 = s1:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
-    translate("Limit days between RFC 5011 copies to reduce flash writes"))
-  ag2.datatype = "and(uinteger,min(1),max(99))"
-  ag2:value("3", "3")
-  ag2:value("9", "9 ("..translate("default")..")")
-  ag2:value("12", "12")
-  ag2:value("24", "24")
-  ag2:value("99", "99 ("..translate("never")..")")
-
   eds = s1:taboption("resource", Value, "edns_size", translate("EDNS Size:"),
     translate("Limit extended DNS packet size"))
   eds.datatype = "and(uinteger,min(512),max(4096))"
@@ -257,30 +250,47 @@ if valman ~= "1" then
   stt = s1:taboption("resource", Flag, "extended_stats", translate("Extended Statistics:"),
     translate("Extended statistics are printed from unbound-control"))
   stt.rmempty = false
+end
 
-  tgr = s1:taboption("resource", Value, "trigger_interface", translate("Trigger Networks:"),
+
+--Trigger Tab, always unconditional
+ag2 = s1:taboption("trigger", Value, "root_age", translate("Root DSKEY Age:"),
+    translate("Limit days between RFC5011 copies to reduce flash writes"))
+ag2.datatype = "and(uinteger,min(1),max(99))"
+ag2:value("3", "3")
+ag2:value("9", "9 ("..translate("default")..")")
+ag2:value("12", "12")
+ag2:value("24", "24")
+ag2:value("99", "99 ("..translate("never")..")")
+
+tgr = s1:taboption("trigger", Value, "trigger_interface", translate("Trigger Networks:"),
     translate("Networks that may trigger Unbound to reload (avoid wan6)"))
-  tgr.template = "cbi/network_netlist"
-  tgr.widget = "checkbox"
-  tgr.cast = "string"
-
-else
-  s1:tab("rfc5011", translate("RFC5011"),
-    translatef("<h3>Unbound RFC5011 Settings</h3>\n"
-    .. "RFC5011 copy scripts protect flash ROM even with UCI disabled."))
-
-  ag2 = s1:taboption("rfc5011", Value, "root_age", translate("Root DSKEY Age:"),
-    translate("Limit days to copy /var/->/etc/ to reduce flash writes"))
-  ag2.datatype = "and(uinteger,min(1),max(99))"
-  ag2:value("3", "3")
-  ag2:value("9", "9 ("..translate("default")..")")
-  ag2:value("12", "12")
-  ag2:value("24", "24")
-  ag2:value("99", "99 ("..translate("never")..")")
+tgr.template = "cbi/network_netlist"
+tgr.widget = "checkbox"
+tgr.rmempty = true
+tgr.cast = "string"
+tgr.nocreate = true
+
+
+function ena.cfgvalue(self, section)
+  return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
+end
+
+
+function ena.write(self, section, value)
+  if value == "1" then
+    luci.sys.init.enable("unbound")
+    luci.sys.call("/etc/init.d/unbound start >/dev/null")
+  else
+    luci.sys.call("/etc/init.d/unbound stop >/dev/null")
+    luci.sys.init.disable("unbound")
+  end
+
+  return Flag.write(self, section, value)
 end
 
 
-function m1.on_after_commit(self)
+function m1.on_apply(self)
   function ena.validate(self, value)
     if value ~= "0" then
       luci.sys.call("/etc/init.d/unbound restart >/dev/null 2>&1")
index 17a4d9b..a202392 100644 (file)
@@ -74,7 +74,7 @@ pu = s:taboption("advanced", Value, "presentation_url", translate("Presentation
 pu.placeholder = "http://192.168.1.1/"
 
 lf = s:taboption("advanced", Value, "upnp_lease_file", translate("UPnP lease file"))
-lf.placeholder = "/var/log/upnp.leases"
+lf.placeholder = "/var/run/miniupnpd.leases"
 
 
 s2 = m:section(TypedSection, "perm_rule", translate("MiniUPnP ACLs"),
index f1926a8..4089944 100644 (file)
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=https://github.com/jow-/lucihttp.git
-PKG_SOURCE_DATE:=2018-04-22
-PKG_SOURCE_VERSION:=ccc685e5c366490fc9f50a2e211ec79b7cf5962e
-PKG_MIRROR_HASH:=48608971cdfe20a6ad476fbf461527e4bf4786afeb8316fd6c38412bfeed4a3c
+PKG_SOURCE_DATE:=2018-05-18
+PKG_SOURCE_VERSION:=cb119deddee5f0f8f1da883b20c60aea7611b175
+PKG_MIRROR_HASH:=573a20817c73344b17c8fa1b8112f14af9dccc25fef017ae072ecd09140cf9e1
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=ISC
index baaa95a..45e1e30 100644 (file)
@@ -429,7 +429,9 @@ function dispatch(request)
                                return
                        end
 
-                       http.header("Set-Cookie", 'sysauth=%s; path=%s' %{ sid, build_url() })
+                       http.header("Set-Cookie", 'sysauth=%s; path=%s; HttpOnly%s' %{
+                               sid, build_url(), http.getenv("HTTPS") == "on" and "; secure" or ""
+                       })
                        http.redirect(build_url(unpack(ctx.requestpath)))
                end
 
index 16fb04c..f4ede4b 100644 (file)
@@ -14,7 +14,7 @@ local table, ipairs, pairs, type, tostring, tonumber, error =
 
 module "luci.http"
 
-HTTP_MAX_CONTENT      = 1024*8         -- 8 kB maximum content size
+HTTP_MAX_CONTENT      = 1024*100               -- 100 kB maximum content size
 
 context = util.threadlocal()
 
@@ -416,7 +416,7 @@ function mimedecode_message_body(src, msg, file_cb)
                end
 
                return true
-       end)
+       end, HTTP_MAX_CONTENT)
 
        return ltn12.pump.all(src, function (chunk)
                len = len + (chunk and #chunk or 0)
@@ -460,7 +460,7 @@ function urldecode_message_body(src, msg)
                end
 
                return true
-       end)
+       end, HTTP_MAX_CONTENT)
 
        return ltn12.pump.all(src, function (chunk)
                len = len + (chunk and #chunk or 0)
index dfe818b..0f58c16 100644 (file)
@@ -1428,7 +1428,7 @@ function wifidev.hwmodes(self)
 end
 
 function wifidev.get_i18n(self)
-       local t = "Generic"
+       local t = self.iwinfo.hardware_name or "Generic"
        if self.iwinfo.type == "wl" then
                t = "Broadcom"
        end
index d0c68d3..574ddf1 100644 (file)
@@ -3494,7 +3494,7 @@ msgid ""
 "This is the content of /etc/rc.local. Insert your own commands here (in "
 "front of 'exit 0') to execute them at the end of the boot process."
 msgstr ""
-"Dies ist der Inhalt von /etc.rc.local. Hier kann man eigene Befehle einfügen "
+"Dies ist der Inhalt von /etc/rc.local. Hier kann man eigene Befehle einfügen "
 "(vor 'exit 0'), die dann am Ende des Bootvorgangs ausgeführt werden."
 
 msgid ""
index 5e2fbae..390e489 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: LuCI\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-20 09:40+0200\n"
-"PO-Revision-Date: 2014-04-23 19:15+0200\n"
-"Last-Translator: goodgod261 <goodgod261@wp.pl>\n"
+"PO-Revision-Date: 2018-05-14 20:05+0200\n"
+"Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n"
 "Language-Team: Polish\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgid "%.1f dB"
 msgstr ""
 
 msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s jest nieotagowany w wielu grupach VLAN!"
 
 msgid "(%d minute window, %d second interval)"
 msgstr "(okno %d minut, interwał %d sekund)"
@@ -42,13 +42,13 @@ msgid "-- custom --"
 msgstr "-- własne --"
 
 msgid "-- match by device --"
-msgstr ""
+msgstr "-- dopasuj według urządzenia --"
 
 msgid "-- match by label --"
-msgstr ""
+msgstr "-- dopasuj po etykiecie --"
 
 msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- dopasuj po uuid --"
 
 msgid "1 Minute Load:"
 msgstr "Obciążenie 1 min.:"
@@ -60,13 +60,13 @@ msgid "4-character hexadecimal ID"
 msgstr ""
 
 msgid "464XLAT (CLAT)"
-msgstr ""
+msgstr "464XLAT (CLAT)"
 
 msgid "5 Minute Load:"
 msgstr "Obciążenie 5 min.:"
 
 msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
+msgstr "Identyfikator 6-oktetowy jako ciąg szesnastkowy - bez dwukropków"
 
 msgid "802.11r Fast Transition"
 msgstr ""
@@ -81,10 +81,10 @@ msgid "802.11w Management Frame Protection"
 msgstr ""
 
 msgid "802.11w maximum timeout"
-msgstr ""
+msgstr "802.11w maksymalny czas oczekiwania"
 
 msgid "802.11w retry timeout"
-msgstr ""
+msgstr "802.11w interwał ponawiania prób"
 
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
@@ -124,7 +124,7 @@ msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
 msgstr "Brama <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
+msgstr "Sufiks <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>(hex)"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
 msgstr "Konfiguracja diod <abbr title=\"Light Emitting Diode\">LED</abbr>"
@@ -162,6 +162,8 @@ msgid ""
 "<br/>Note: you need to manually restart the cron service if the crontab file "
 "was empty before editing."
 msgstr ""
+"<br/>Uwaga: musisz ręcznie zrestartować usługę cron, jeśli plik crontab "
+"był pusty przed edycją."
 
 msgid "A43C + J43 + A43"
 msgstr ""
@@ -170,7 +172,7 @@ msgid "A43C + J43 + A43 + V43"
 msgstr ""
 
 msgid "ADSL"
-msgstr ""
+msgstr "ADSL"
 
 msgid "AICCU (SIXXS)"
 msgstr ""
@@ -188,7 +190,7 @@ msgid "ATM (Asynchronous Transfer Mode)"
 msgstr ""
 
 msgid "ATM Bridges"
-msgstr "Mostki ATM"
+msgstr "Mosty ATM"
 
 # Nie wiem czy to powinno się tłumaczyć wg. mnie lepiej zostawić po angielsku
 msgid "ATM Virtual Channel Identifier (VCI)"
@@ -198,15 +200,14 @@ msgstr "Identyfikator kanału wirtualnego ATM (VCI)"
 msgid "ATM Virtual Path Identifier (VPI)"
 msgstr "Identyfikator ścieżki wirtualnej ATM (VPI)"
 
-# Jak zwykle zakręciłem...niech ktoś poprawi
 msgid ""
 "ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
 "Linux network interfaces which can be used in conjunction with DHCP or PPP "
 "to dial into the provider network."
 msgstr ""
-"Mostki ATM maskują za-kapsułkowane ramki Ethernet w połączeniach AAL5 jako "
-"wirtualne interfejsy w Linuksie. Interfejsy takie mogą być użyte w "
-"połączeniu z protokołami DHCP lub PPP do wdzwaniania się do sieci provider`a"
+"Mosty ATM eksponują enkapsulowaną sieć Ethernet w połączeniach AAL5 jako wirtualne "
+"interfejsy sieciowe systemu Linux, które mogą być używane w połączeniu z protokołem "
+"DHCP lub PPP w celu polączenia się z siecią dostawcy."
 
 msgid "ATM device number"
 msgstr "Numer urządzenia ATM"
@@ -265,7 +266,7 @@ msgid "Additional Hosts files"
 msgstr "Dodatkowe pliki Hosts"
 
 msgid "Additional servers file"
-msgstr ""
+msgstr "Dodatkowe pliki serwera"
 
 msgid "Address"
 msgstr "Adres"
@@ -289,10 +290,10 @@ msgstr "Alarm"
 msgid ""
 "Allocate IP addresses sequentially, starting from the lowest available "
 "address"
-msgstr ""
+msgstr "Przydziel sekwencyjnie adresy IP, zaczynając od najmniejszego dostępnego"
 
 msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "Przydzielaj adresy IP po kolei"
 
 msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
 msgstr "Pozwól na logowanie <abbr title=\"Secure Shell\">SSH</abbr>"
@@ -310,16 +311,13 @@ msgid "Allow localhost"
 msgstr "Pozwól tylko sobie (localhost)"
 
 msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Pozwól zdalnym komputerom na połączenia SSH do lokalnych przekierowanych "
-"portów"
+msgstr "Zezwalaj zdalnym hostom na łączenie się z lokalnie przekazywanymi portami SSH"
 
 msgid "Allow root logins with password"
 msgstr "Zezwól na logowanie roota przy pomocy hasła"
 
-# Brak spacji...
 msgid "Allow the <em>root</em> user to login with password"
-msgstr "Pozwól użytkownikowi <em>root</em> na logowanie przy pomocy hasła"
+msgstr "Pozwól użytkownikowi <em>root</em> na logowanie się przy pomocy hasła"
 
 msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
@@ -327,7 +325,7 @@ msgstr ""
 "Pozwól na ruch wychodzący (odpowiedzi) z podsieci 127.0.0.0/8, np. usługi RBL"
 
 msgid "Allowed IPs"
-msgstr ""
+msgstr "Dozwolone adresy IP"
 
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
@@ -335,7 +333,7 @@ msgid ""
 msgstr ""
 
 msgid "Always announce default router"
-msgstr ""
+msgstr "Zawsze rozgłaszaj domyślny router"
 
 msgid "Annex"
 msgstr ""
@@ -441,7 +439,6 @@ msgstr "Uwierzytelnianie"
 msgid "Authentication Type"
 msgstr ""
 
-# Nawet M$ tego nie tłumaczy;)
 msgid "Authoritative"
 msgstr "Autorytatywny"
 
@@ -624,8 +621,8 @@ msgid ""
 "interface to it."
 msgstr ""
 "Wybierz strefę firewalla którą chcesz przypisać do tego interfejsu. Wybierz "
-"<em>unspecified</em> aby usunąć interfejs z przypisanej strefy lub wybierz "
-"pole <em>create</em> aby zdefiniować nową strefę i przypisać ją do "
+"<em>nieokreślone</em> aby usunąć interfejs z przypisanej strefy lub wybierz "
+"pole <em>utwórz</em> aby zdefiniować nową strefę i przypisać ją do "
 "interfejsu."
 
 msgid ""
@@ -641,7 +638,6 @@ msgstr "Szyfr"
 msgid "Cisco UDP encapsulation"
 msgstr ""
 
-# Przyciski nazywają sie "Twórz archiwum" i "Wykonaj reset" a nie Przywróć Ustawienia
 msgid ""
 "Click \"Generate archive\" to download a tar archive of the current "
 "configuration files. To reset the firmware to its initial state, click "
@@ -682,6 +678,7 @@ msgid ""
 "workaround might cause interoperability issues and reduced robustness of key "
 "negotiation especially in environments with heavy traffic load."
 msgstr ""
+"Komplikuje atak ponownej instalacji klucza po stronie klienta, wyłączając retransmisję ramek klucza EAPOL, które są używane do instalowania kluczy. To obejście może powodować problemy z interoperacyjnością i zmniejszoną odporność kluczowych negocjacji, szczególnie w środowiskach o dużym natężeniu ruchu."
 
 msgid "Configuration"
 msgstr "Konfiguracja"
@@ -739,7 +736,7 @@ msgid "Cron Log Level"
 msgstr "Poziom logowania Cron`a"
 
 msgid "Custom Interface"
-msgstr "Interfejs Niestandardowy"
+msgstr "Interfejs niestandardowy"
 
 msgid "Custom delegated IPv6-prefix"
 msgstr ""
@@ -757,7 +754,6 @@ msgid ""
 "this, perform a factory-reset first."
 msgstr ""
 
-# Spacji zabrało i napisy się skleiły
 msgid ""
 "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
 "\">LED</abbr>s if possible."
@@ -784,7 +780,7 @@ msgid "DHCPv6 Leases"
 msgstr "Dzierżawy DHCPv6"
 
 msgid "DHCPv6 client"
-msgstr ""
+msgstr "Klient DHCPv6"
 
 msgid "DHCPv6-Mode"
 msgstr ""
@@ -814,10 +810,10 @@ msgid "DS-Lite AFTR address"
 msgstr ""
 
 msgid "DSL"
-msgstr ""
+msgstr "DSL"
 
 msgid "DSL Status"
-msgstr ""
+msgstr "Status DSL"
 
 msgid "DSL line mode"
 msgstr ""
@@ -880,10 +876,10 @@ msgid "Device Configuration"
 msgstr "Konfiguracja urządzenia"
 
 msgid "Device is rebooting..."
-msgstr ""
+msgstr "Urządzenie jest uruchamiane ponownie ..."
 
 msgid "Device unreachable"
-msgstr ""
+msgstr "Urządzenie nieosiągalne"
 
 msgid "Diagnostics"
 msgstr "Diagnostyka"
@@ -905,16 +901,16 @@ msgstr ""
 "tym interfejsie."
 
 msgid "Disable DNS setup"
-msgstr "Wyłącz konfigurowanie DNS"
+msgstr "Wyłącz konfigurację DNS"
 
 msgid "Disable Encryption"
-msgstr ""
+msgstr "Wyłącz szyfrowanie"
 
 msgid "Disabled"
 msgstr "Wyłączony"
 
 msgid "Disabled (default)"
-msgstr ""
+msgstr "Wyłączone (domyślnie)"
 
 msgid "Discard upstream RFC1918 responses"
 msgstr "Odrzuć wychodzące odpowiedzi RFC1918"
@@ -1032,7 +1028,6 @@ msgstr "Edytuj ten interfejs"
 msgid "Edit this network"
 msgstr "Edytuj tą sieć"
 
-# dosłownie nagły wypadek
 msgid "Emergency"
 msgstr "Zagrożenie"
 
@@ -1042,7 +1037,7 @@ msgstr "Włącz"
 msgid ""
 "Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
 "snooping"
-msgstr ""
+msgstr "Włącz nasłuchiwanie <abbr title=\"Internet Group Management Protocol\">IGMP</abbr>"
 
 msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgstr "Włącz <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
@@ -1051,7 +1046,7 @@ msgid "Enable HE.net dynamic endpoint update"
 msgstr "Włącz dynamiczną aktualizację punktu końcowego sieci HE.net"
 
 msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "Włącz negocjację IPv6"
 
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Włącz negocjację IPv6 na łączu PPP"
@@ -1072,10 +1067,10 @@ msgid "Enable VLAN functionality"
 msgstr "Włącz funkcjonalność VLAN"
 
 msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "Włącz przycisk WPS, wymaga WPA(2)-PSK"
 
 msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
+msgstr "Włącz środki zaradcze dotyczące ponownej instalacji kluczy (KRACK)"
 
 msgid "Enable learning and aging"
 msgstr "Włącz uczenie się i starzenie"
@@ -1102,21 +1097,21 @@ msgid "Enabled"
 msgstr "Włączony"
 
 msgid "Enables IGMP snooping on this bridge"
-msgstr ""
+msgstr "Włącz nasłuchiwanie IGMP na tym moście"
 
 msgid ""
 "Enables fast roaming among access points that belong to the same Mobility "
 "Domain"
-msgstr ""
+msgstr "Aktywuje szybki roaming pomiędzy punktami dostępowymi, które należą "
+"do tej samej domeny"
 
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 "Włącz protokół <abbr title=\"Spanning Tree Protocol\">STP</abbr> na tym "
 "moście"
 
-# a może sposób kapsułkowania byłby lepszy?
 msgid "Encapsulation mode"
-msgstr "Sposób Enkapsulacji"
+msgstr "Sposób enkapsulacji"
 
 msgid "Encryption"
 msgstr "Szyfrowanie"
@@ -1143,7 +1138,7 @@ msgid "Ethernet Switch"
 msgstr "Switch Ethernet"
 
 msgid "Exclude interfaces"
-msgstr ""
+msgstr "Wyklucz interfejsy"
 
 msgid "Expand hosts"
 msgstr "Rozwiń hosty"
@@ -1167,13 +1162,13 @@ msgid "External R1 Key Holder List"
 msgstr ""
 
 msgid "External system log server"
-msgstr "Zewnętrzny serwer dla loga systemowego"
+msgstr "Zewnętrzny serwer dla logów systemowych"
 
 msgid "External system log server port"
-msgstr "Port zewnętrznego serwera dla loga systemowego"
+msgstr "Port zewnętrznego serwera dla logów systemowych"
 
 msgid "External system log server protocol"
-msgstr ""
+msgstr "Protokół zewnętrznego serwera dla logów systemowych"
 
 msgid "Extra SSH command options"
 msgstr ""
@@ -1225,7 +1220,6 @@ msgstr "Firewall"
 msgid "Firewall Mark"
 msgstr ""
 
-# Nie ma potrzeby pisania z dużej litery
 msgid "Firewall Settings"
 msgstr "Ustawienia firewalla"
 
@@ -1273,7 +1267,7 @@ msgid "Force TKIP and CCMP (AES)"
 msgstr "Wymuś TKIP i CCMP (AES)"
 
 msgid "Force link"
-msgstr ""
+msgstr "Wymuś połączenie"
 
 msgid "Force use of NAT-T"
 msgstr ""
@@ -1335,10 +1329,10 @@ msgid "General options for opkg"
 msgstr ""
 
 msgid "Generate Config"
-msgstr ""
+msgstr "Wygeneruj konfigurację"
 
 msgid "Generate PMK locally"
-msgstr ""
+msgstr "Wygeneruj PMK lokalnie"
 
 msgid "Generate archive"
 msgstr "Twórz archiwum"
@@ -1367,7 +1361,7 @@ msgid "Group Password"
 msgstr ""
 
 msgid "Guest"
-msgstr ""
+msgstr "Gość"
 
 msgid "HE.net password"
 msgstr "Hasło HE.net"
@@ -1426,7 +1420,7 @@ msgid "Hostname"
 msgstr "Nazwa hosta"
 
 msgid "Hostname to send when requesting DHCP"
-msgstr "Nazwa hosta do wysłania podczas negocjacji DHCP"
+msgstr "Nazwa hosta wysyłana podczas negocjacji DHCP"
 
 msgid "Hostnames"
 msgstr "Nazwy hostów"
@@ -1629,7 +1623,7 @@ msgid "Install"
 msgstr "Instaluj"
 
 msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
+msgstr "Zainstaluj iputils-traceroute6 w celu skorzystania z traceroute dla iPv6"
 
 msgid "Install package %q"
 msgstr "Instaluj pakiet %q"
@@ -1660,7 +1654,7 @@ msgid "Interface is shutting down..."
 msgstr "Interfejs jest wyłączany..."
 
 msgid "Interface name"
-msgstr ""
+msgstr "Nazwa interfejsu"
 
 msgid "Interface not present or not connected yet."
 msgstr "Interfejs nie istnieje lub nie jest jeszcze podłączony."
@@ -1694,7 +1688,7 @@ msgid "Invalid username and/or password! Please try again."
 msgstr "Niewłaściwy login i/lub hasło! Spróbuj ponownie."
 
 msgid "Isolate Clients"
-msgstr ""
+msgstr "Izoluj klientów"
 
 #, fuzzy
 msgid ""
@@ -1711,10 +1705,10 @@ msgid "Join Network"
 msgstr "Połącz z siecią"
 
 msgid "Join Network: Wireless Scan"
-msgstr "Przyłącz do sieci: Skanuj sieci WiFi"
+msgstr "Przyłącz do sieci: Skanuj sieci Wi-Fi"
 
 msgid "Joining Network: %q"
-msgstr ""
+msgstr "Przyłączanie do sieci: %q"
 
 msgid "Keep settings"
 msgstr "Zachowaj ustawienia"
@@ -1759,13 +1753,13 @@ msgid "Language and Style"
 msgstr "Wygląd i język"
 
 msgid "Latency"
-msgstr ""
+msgstr "Opoźnienie"
 
 msgid "Leaf"
 msgstr ""
 
 msgid "Lease time"
-msgstr ""
+msgstr "Czas dzierżawy"
 
 msgid "Lease validity time"
 msgstr "Czas ważności dzierżawy"
@@ -1792,7 +1786,7 @@ msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
 msgstr ""
 
 msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "Ogranicz nasłuchiwanie do tych interfesjów, oraz loopbacku."
 
 msgid "Line Attenuation (LATN)"
 msgstr ""
@@ -1842,10 +1836,10 @@ msgid "List of hosts that supply bogus NX domain results"
 msgstr "Lista hostów które dostarczają zafałszowane wyniki NX domain"
 
 msgid "Listen Interfaces"
-msgstr ""
+msgstr "Nasłuchuj interfejs"
 
 msgid "Listen Port"
-msgstr ""
+msgstr "Nasłuchuj port"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
@@ -1864,7 +1858,7 @@ msgid "Loading"
 msgstr "Ładowanie"
 
 msgid "Local IP address to assign"
-msgstr ""
+msgstr "Lokalny adres IP do przypisania"
 
 msgid "Local IPv4 address"
 msgstr "Lokalny adres IPv4"
@@ -1952,7 +1946,7 @@ msgid "MB/s"
 msgstr "MB/s"
 
 msgid "MD5"
-msgstr ""
+msgstr "MD5"
 
 msgid "MHz"
 msgstr "MHz"
@@ -1964,6 +1958,8 @@ msgid ""
 "Make sure to clone the root filesystem using something like the commands "
 "below:"
 msgstr ""
+"Upewnij się, że klonujesz główny system plików, używając czegoś podobnego "
+"do poleceń poniżej:"
 
 msgid "Manual"
 msgstr ""
@@ -2022,7 +2018,7 @@ msgid "Mode"
 msgstr "Tryb"
 
 msgid "Model"
-msgstr ""
+msgstr "Model"
 
 msgid "Modem device"
 msgstr "Modem"
@@ -2089,7 +2085,7 @@ msgid "NAT64 Prefix"
 msgstr ""
 
 msgid "NCM"
-msgstr ""
+msgstr "NCM"
 
 msgid "NDP-Proxy"
 msgstr ""
@@ -2173,7 +2169,7 @@ msgid "Noise"
 msgstr "Szum"
 
 msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "Margines szumów (SNR)"
 
 msgid "Noise:"
 msgstr "Szum:"
@@ -2200,7 +2196,7 @@ msgid "Not connected"
 msgstr "Nie podłączony"
 
 msgid "Note: Configuration files will be erased."
-msgstr "UWAGA: Pliki konfiguracyjne zostaną usunięte."
+msgstr "Uwaga: Pliki konfiguracyjne zostaną usunięte."
 
 msgid "Note: interface name length"
 msgstr ""
@@ -2265,7 +2261,7 @@ msgid "OpenConnect (CISCO AnyConnect)"
 msgstr ""
 
 msgid "Operating frequency"
-msgstr ""
+msgstr "Częstotliwość"
 
 msgid "Option changed"
 msgstr "Wartość zmieniona"
@@ -2274,7 +2270,7 @@ msgid "Option removed"
 msgstr "Usunięto wartość"
 
 msgid "Optional"
-msgstr ""
+msgstr "Opcjonalny"
 
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
@@ -2343,13 +2339,13 @@ msgid "Override MTU"
 msgstr "Nadpisz MTU"
 
 msgid "Override TOS"
-msgstr ""
+msgstr "Nadpisz TOS"
 
 msgid "Override TTL"
-msgstr ""
+msgstr "Nadpisz TTL"
 
 msgid "Override default interface name"
-msgstr ""
+msgstr "Nadpisz domyślną nazwę interfejsu"
 
 msgid "Override the gateway in DHCP responses"
 msgstr "Nadpisz adres bramy w odpowiedziach DHCP"
@@ -2383,7 +2379,7 @@ msgid "PIN"
 msgstr "PIN"
 
 msgid "PMK R1 Push"
-msgstr ""
+msgstr "PMK R1 Push"
 
 msgid "PPP"
 msgstr "PPP"
@@ -2398,7 +2394,7 @@ msgid "PPPoE"
 msgstr "PPPoE"
 
 msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
 
 msgid "PPtP"
 msgstr "PPtP"
@@ -2431,13 +2427,13 @@ msgid "Password"
 msgstr "Hasło"
 
 msgid "Password authentication"
-msgstr "Identyfikacja hasłem"
+msgstr "Uwierzytelnianie hasłem"
 
 msgid "Password of Private Key"
 msgstr "Hasło lub klucz prywatny"
 
 msgid "Password of inner Private Key"
-msgstr ""
+msgstr "Wewnętrzne hasło klucza prywatnego"
 
 msgid "Password successfully changed!"
 msgstr "Pomyślnie zmieniono hasło!"
@@ -2449,19 +2445,19 @@ msgid "Path to CA-Certificate"
 msgstr "Ścieżka do certyfikatu CA"
 
 msgid "Path to Client-Certificate"
-msgstr "Ścieżka do certyfikatu Klienta"
+msgstr "Ścieżka do certyfikatu klienta"
 
 msgid "Path to Private Key"
 msgstr "Ścieżka do Klucza Prywatnego"
 
 msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "Ścieżka do wewnętrznego certyfikatu CA"
 
 msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "Ścieżka do wewnętrznego certyfikatu Klienta"
 
 msgid "Path to inner Private Key"
-msgstr ""
+msgstr "Ścieżka do wewnętrznego klucza prywatnego "
 
 msgid "Peak:"
 msgstr "Szczyt:"
@@ -2509,7 +2505,7 @@ msgid "Port status:"
 msgstr "Status portu:"
 
 msgid "Power Management Mode"
-msgstr ""
+msgstr "Tryb zarządzania energią"
 
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
@@ -2534,16 +2530,16 @@ msgstr ""
 "wpisz 0 aby zignorować błędy"
 
 msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "Zapobiegaj nasłuchiwaniu na tych interfejsach."
 
 msgid "Prevents client-to-client communication"
-msgstr "Zapobiegaj komunikacji klientów pomiędzy sobą"
+msgstr "Zabroń klientą na komunikacje między sobą"
 
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Kontroler bezprzewodowy Prism2/2.5/3 802.11b"
 
 msgid "Private Key"
-msgstr ""
+msgstr "Klucz prywatny"
 
 msgid "Proceed"
 msgstr "Wykonaj"
@@ -2552,7 +2548,7 @@ msgid "Processes"
 msgstr "Procesy"
 
 msgid "Profile"
-msgstr ""
+msgstr "Profil"
 
 msgid "Prot."
 msgstr "Prot."
@@ -2569,7 +2565,6 @@ msgstr "Protokół nowego interfejsu"
 msgid "Protocol support is not installed"
 msgstr "Wsparcie dla protokołu nie jest zainstalowane"
 
-# Opcja dotyczy włączenia serwera czasu, więc "podaj" nie jest właściwym tłumaczeniem w tym miejscu - obsy
 msgid "Provide NTP server"
 msgstr "Włącz serwer NTP"
 
@@ -2580,7 +2575,7 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
 msgid "Public Key"
-msgstr ""
+msgstr "Klucz publiczny"
 
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
@@ -2689,10 +2684,10 @@ msgid "Realtime Traffic"
 msgstr "Ruch w czasie rzeczywistym"
 
 msgid "Realtime Wireless"
-msgstr "WiFi w czasie rzeczywistym"
+msgstr "Wi-Fi w czasie rzeczywistym"
 
 msgid "Reassociation Deadline"
-msgstr ""
+msgstr "Termin reasocjacji"
 
 msgid "Rebind protection"
 msgstr "Przypisz ochronę"
@@ -2740,7 +2735,7 @@ msgid "Remote IPv4 address"
 msgstr "Zdalny adres IPv4"
 
 msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "Zdalny adres IPv4 lub FQDN"
 
 msgid "Remove"
 msgstr "Usuń"
@@ -2755,16 +2750,16 @@ msgid "Replace wireless configuration"
 msgstr "Zamień konfigurację WiFi"
 
 msgid "Request IPv6-address"
-msgstr ""
+msgstr "Zażądaj adresu IPv6"
 
 msgid "Request IPv6-prefix of length"
 msgstr ""
 
 msgid "Require TLS"
-msgstr ""
+msgstr "Wymagaj TLS"
 
 msgid "Required"
-msgstr ""
+msgstr "Wymagany"
 
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Wymagany dla niektórych dostawców internetu, np. Charter z DOCSIS 3"
@@ -2874,16 +2869,16 @@ msgid "SIXXS-handle[/Tunnel-ID]"
 msgstr ""
 
 msgid "SNR"
-msgstr ""
+msgstr "SNR"
 
 msgid "SSH Access"
 msgstr "Dostęp SSH"
 
 msgid "SSH server address"
-msgstr ""
+msgstr "Adres serwera SSH"
 
 msgid "SSH server port"
-msgstr ""
+msgstr "Port serwera SSH"
 
 msgid "SSH username"
 msgstr ""
@@ -2956,6 +2951,8 @@ msgid ""
 "Set interface properties regardless of the link carrier (If set, carrier "
 "sense events do not invoke hotplug handlers)."
 msgstr ""
+"Ustaw właściwości interfejsu, niezależnie od operatora łącza (nie wpływa"
+" na programy operatora które ustanawiają połączenie)."
 
 #, fuzzy
 msgid "Set up Time Synchronization"
@@ -3013,7 +3010,7 @@ msgid "Software"
 msgstr "Oprogramowanie"
 
 msgid "Software VLAN"
-msgstr ""
+msgstr "VLAN programowy"
 
 msgid "Some fields are invalid, cannot save values!"
 msgstr "Wartości pewnych pól są niewłaściwe, nie mogę ich zachować!"
@@ -3286,7 +3283,7 @@ msgid "The following rules are currently active on this system."
 msgstr "Następujące zasady są obecnie aktywne w tym systemie."
 
 msgid "The given network name is not unique"
-msgstr "Podana sieć NIE jest unikalna"
+msgstr "Podana sieć nie jest unikalna"
 
 #, fuzzy
 msgid ""
@@ -3474,8 +3471,8 @@ msgid ""
 "To restore configuration files, you can upload a previously generated backup "
 "archive here."
 msgstr ""
-"Aby przywrócić pliki konfiguracyjne, można tutaj wczytać wcześniej utworzone "
-"archiwum kopii zapasowej."
+"Aby przywrócić pliki konfiguracyjne, możesz tutaj przesłać wcześniej utworzoną "
+"kopię zapasową."
 
 msgid "Tone"
 msgstr ""
@@ -3508,7 +3505,7 @@ msgid "Trigger"
 msgstr "Trigger"
 
 msgid "Trigger Mode"
-msgstr "Tryb Trigger"
+msgstr "Rodzaj Triggeru"
 
 msgid "Tunnel ID"
 msgstr "Numer identyfikacyjny tunelu"
@@ -3526,7 +3523,7 @@ msgid "Tunnel setup server"
 msgstr ""
 
 msgid "Tunnel type"
-msgstr ""
+msgstr "Typ tunelu"
 
 msgid "Tx-Power"
 msgstr "Moc nadawania"
@@ -3547,7 +3544,7 @@ msgid "USB Device"
 msgstr "Urządzenie USB"
 
 msgid "USB Ports"
-msgstr ""
+msgstr "Porty USB"
 
 msgid "UUID"
 msgstr "UUID"
@@ -3562,13 +3559,13 @@ msgid "Unknown"
 msgstr "Nieznany"
 
 msgid "Unknown Error, password not changed!"
-msgstr "Nieznany błąd, hasło nie zostało zmienione"
+msgstr "Nieznany błąd, hasło nie zostało zmienione!"
 
 msgid "Unmanaged"
 msgstr "Niezarządzalny"
 
 msgid "Unmount"
-msgstr ""
+msgstr "Odmontuj"
 
 msgid "Unsaved Changes"
 msgstr "Niezapisane zmiany"
@@ -3584,9 +3581,9 @@ msgid ""
 "Check \"Keep settings\" to retain the current configuration (requires a "
 "compatible firmware image)."
 msgstr ""
-"Prześlij zgodny z funkcją sysupgrade obraz tutaj, aby zastąpić aktualnie "
-"działające firmware. Zaznacz opcję \"Zachowaj ustawienia\", aby zachować "
-"bieżącą konfigurację (wymaga zgodnego obrazu firmware)."
+"Prześlij tutaj obraz zgodny z funkcją sysupgrade, aby zastąpić aktualnie "
+"działające opragramowanie. Zaznacz opcję \"Zachowaj ustawienia\", aby zachować "
+"bieżącą konfigurację (wymagany obraz zgodny z bieżącym opragramowaniem)."
 
 msgid "Upload archive..."
 msgstr "Załaduj archiwum..."
@@ -3619,16 +3616,16 @@ msgid "Use as external overlay (/overlay)"
 msgstr ""
 
 msgid "Use as root filesystem (/)"
-msgstr ""
+msgstr "Użyj jako systemu plików root (/)"
 
 msgid "Use broadcast flag"
 msgstr "Użyj flagi rozgłaszania"
 
 msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "Skorzystaj z wbudowanego zarządzania protokołem IPv6"
 
 msgid "Use custom DNS servers"
-msgstr "Użyj własnych serwerów DNS"
+msgstr "Użyj własne serwery DNS"
 
 msgid "Use default gateway"
 msgstr "Użyj domyślnej bramy"
@@ -3664,10 +3661,10 @@ msgid ""
 msgstr ""
 
 msgid "User certificate (PEM encoded)"
-msgstr ""
+msgstr "Certyfikat użytkownika (kodowany PEM)"
 
 msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "Klucz użytkownika (kodowany PEM)"
 
 msgid "Username"
 msgstr "Nazwa użytkownika"
@@ -3676,7 +3673,7 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
 msgstr "Sieci VLAN na %q"
@@ -3694,7 +3691,7 @@ msgid "VPN Server"
 msgstr "Serwer VPN"
 
 msgid "VPN Server port"
-msgstr ""
+msgstr "Port serwera VPN"
 
 msgid "VPN Server's certificate SHA1 hash"
 msgstr ""
@@ -3703,7 +3700,7 @@ msgid "VPNC (CISCO 3000 (and others) VPN)"
 msgstr ""
 
 msgid "Vendor"
-msgstr ""
+msgstr "Producent"
 
 msgid "Vendor Class to send when requesting DHCP"
 msgstr "Klasa producenta do wysłania podczas żądania DHCP"
@@ -3742,14 +3739,13 @@ msgid ""
 "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
 "and ad-hoc mode) to be installed."
 msgstr ""
-"Kodowanie WPA wymaga zainstalowanych modułów wpa_supplicant (na tryb "
-"klienta) lub hostapd (dla trybów AP lub ad-hoc)"
+"Kodowanie WPA wymaga zainstalowanych modułów wpa_supplicant (tryb "
+"klienta) lub hostapd (tryb AP lub ad-hoc)"
 
 msgid ""
 "Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
 msgstr ""
 
-# obsy: Brzmi to lepiej niż "czekanie na wprowadzanie zmian.
 msgid "Waiting for changes to be applied..."
 msgstr "Trwa wprowadzenie zmian..."
 
@@ -3757,13 +3753,14 @@ msgid "Waiting for command to complete..."
 msgstr "Trwa wykonanie polecenia..."
 
 msgid "Waiting for device..."
-msgstr ""
+msgstr "Oczekiwanie na urządzenie..."
 
 msgid "Warning"
 msgstr "Ostrzeżenie"
 
 msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
+msgstr "Ostrzeżenie: Istnieją niezapisane zmiany, które zostaną utracone "
+"po ponownym uruchomieniu urządzenia!"
 
 msgid ""
 "When using a PSK, the PMK can be generated locally without inter AP "
@@ -3777,7 +3774,7 @@ msgid "Whether to route only packets from delegated prefixes"
 msgstr ""
 
 msgid "Width"
-msgstr ""
+msgstr "Szerokość"
 
 msgid "WireGuard VPN"
 msgstr ""
@@ -3819,7 +3816,7 @@ msgid "Write received DNS requests to syslog"
 msgstr "Zapisz otrzymane żądania DNS do syslog'a"
 
 msgid "Write system log to file"
-msgstr ""
+msgstr "Zapisz log systemowy do pliku"
 
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
@@ -3842,6 +3839,9 @@ msgid ""
 "upgrade it to at least version 7 or use another browser like Firefox, Opera "
 "or Safari."
 msgstr ""
+"Twój Internet Explorer jest za stary, aby poprawnie wyświetlić tę stronę"
+"zaktualizuj go do wersji co najmniej 7 lub użyj innej przeglądarki, takiej "
+"jak Firefox, Opera czy Safari".
 
 msgid "any"
 msgstr "dowolny"
@@ -3853,13 +3853,13 @@ msgid "baseT"
 msgstr "baseT"
 
 msgid "bridged"
-msgstr "bridged"
+msgstr "zmostkowany"
 
 msgid "create:"
 msgstr "utwórz:"
 
 msgid "creates a bridge over specified interface(s)"
-msgstr "utwórz bridge na określonych interfejsach"
+msgstr "utwórz most na określonych interfejsach"
 
 msgid "dB"
 msgstr "dB"
@@ -3871,7 +3871,7 @@ msgid "disable"
 msgstr "wyłącz"
 
 msgid "disabled"
-msgstr ""
+msgstr "wyłączony"
 
 msgid "expired"
 msgstr "wygasły"
@@ -3899,7 +3899,7 @@ msgid "hidden"
 msgstr "ukryty"
 
 msgid "hybrid mode"
-msgstr ""
+msgstr "tryb hybrydowy"
 
 msgid "if target is a network"
 msgstr "jeżeli celem jest sieć"
@@ -3920,10 +3920,10 @@ msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
 msgstr "lokalny plik <abbr title=\"Domain Name System\">DNS</abbr>"
 
 msgid "minimum 1280, maximum 1480"
-msgstr ""
+msgstr "minimum 1280, maksimum 1480"
 
 msgid "minutes"
-msgstr ""
+msgstr "minuty"
 
 msgid "no"
 msgstr "nie"
@@ -3936,7 +3936,7 @@ msgid "none"
 msgstr "żaden"
 
 msgid "not present"
-msgstr ""
+msgstr "nieobecny"
 
 msgid "off"
 msgstr "wyłączone"
@@ -3951,7 +3951,7 @@ msgid "overlay"
 msgstr ""
 
 msgid "random"
-msgstr ""
+msgstr "losowy"
 
 msgid "relay mode"
 msgstr ""
@@ -3960,7 +3960,7 @@ msgid "routed"
 msgstr "routowane"
 
 msgid "server mode"
-msgstr ""
+msgstr "tryb serwera"
 
 msgid "stateful-only"
 msgstr ""
@@ -3972,10 +3972,10 @@ msgid "stateless + stateful"
 msgstr ""
 
 msgid "tagged"
-msgstr "tagowane"
+msgstr "otagowane"
 
 msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
+msgstr "jednostki czasu (TUs / 1.024 ms) [1000-65535]"
 
 msgid "unknown"
 msgstr "nieznane"
@@ -3990,7 +3990,7 @@ msgid "unspecified -or- create:"
 msgstr "nieokreślone -lub- utwórz:"
 
 msgid "untagged"
-msgstr "nietagowane"
+msgstr "nieotagowane"
 
 msgid "yes"
 msgstr "tak"
index d083922..1d4d110 100644 (file)
@@ -36,6 +36,7 @@ config qos
 
 config system
        option init led
+       option exec '/etc/init.d/log reload'
        list affects luci_statistics
        list affects dhcp
 
index 5478afa..6fcd66f 100644 (file)
@@ -27,7 +27,8 @@ function index()
                entry({"admin", "system", "fstab", "swap"},  cbi("admin_system/fstab/swap"),  nil).leaf = true
        end
 
-       if fs.access("/sys/class/leds") then
+       local nodes, number = fs.glob("/sys/class/leds/*")
+       if number > 0 then
                entry({"admin", "system", "leds"}, cbi("admin_system/leds"), _("<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"), 60)
        end
 
@@ -195,7 +196,7 @@ local function supports_sysupgrade()
 end
 
 local function supports_reset()
-       return (os.execute([[grep -sqE '"rootfs_data"|"ubi"' /proc/mtd]]) == 0)
+       return (os.execute([[grep -sq "^overlayfs:/overlay / overlay " /proc/mounts]]) == 0)
 end
 
 local function storage_size()
index 43e5123..f9e882f 100644 (file)
@@ -45,7 +45,7 @@
                        if( time_remaining <= 0 )
                        {
                                window.clearInterval(interval);
-                               location.href = 'http://' + location.hostname + '/';
+                               location.href = 'http://' + location.host + '/';
                        }
                        else
                        {
index 506170c..604f019 100644 (file)
@@ -18,13 +18,13 @@ password = section:taboption("general", Value, "password", translate("PAP/CHAP p
 password.password = true
 
 if luci.model.network:has_ipv6() then
-
-        ipv6 = section:taboption("advanced", ListValue, "ipv6")
-        ipv6:value("auto", translate("Automatic"))
-        ipv6:value("0", translate("Disabled"))
-        ipv6:value("1", translate("Manual"))
-        ipv6.default = "auto"
-
+       ipv6 = section:taboption("advanced", ListValue, "ipv6",
+               translate("Obtain IPv6-Address"),
+               translate("Enable IPv6 negotiation on the PPP link"))
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
 end
 
 defaultroute = section:taboption("advanced", Flag, "defaultroute",
index b14db59..355d9b5 100644 (file)
@@ -30,13 +30,13 @@ password.password = true
 
 
 if luci.model.network:has_ipv6() then
-
-        ipv6 = section:taboption("advanced", ListValue, "ipv6")
-        ipv6:value("auto", translate("Automatic"))
-        ipv6:value("0", translate("Disabled"))
-        ipv6:value("1", translate("Manual"))
-        ipv6.default = "auto"
-
+       ipv6 = section:taboption("advanced", ListValue, "ipv6",
+               translate("Obtain IPv6-Address"),
+               translate("Enable IPv6 negotiation on the PPP link"))
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
 end
 
 
index 8f463e5..a5f76a3 100644 (file)
@@ -36,13 +36,13 @@ password.password = true
 
 
 if luci.model.network:has_ipv6() then
-
-        ipv6 = section:taboption("advanced", ListValue, "ipv6")
-        ipv6:value("auto", translate("Automatic"))
-        ipv6:value("0", translate("Disabled"))
-        ipv6:value("1", translate("Manual"))
-        ipv6.default = "auto"
-
+       ipv6 = section:taboption("advanced", ListValue, "ipv6",
+               translate("Obtain IPv6-Address"),
+               translate("Enable IPv6 negotiation on the PPP link"))
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
 end
 
 
index 5a05cd2..d844c01 100644 (file)
@@ -30,13 +30,13 @@ service.placeholder = translate("auto")
 
 
 if luci.model.network:has_ipv6() then
-
-        ipv6 = section:taboption("advanced", ListValue, "ipv6")
-        ipv6:value("auto", translate("Automatic"))
-        ipv6:value("0", translate("Disabled"))
-        ipv6:value("1", translate("Manual"))
-        ipv6.default = "auto"
-
+       ipv6 = section:taboption("advanced", ListValue, "ipv6",
+               translate("Obtain IPv6-Address"),
+               translate("Enable IPv6 negotiation on the PPP link"))
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
 end