diff options
-rw-r--r-- | applications/luci-firewall/luasrc/model/cbi/firewall/forwards.lua | 6 | ||||
-rw-r--r-- | applications/luci-firewall/luasrc/view/firewall/cbi_addforward.htm | 29 |
2 files changed, 31 insertions, 4 deletions
diff --git a/applications/luci-firewall/luasrc/model/cbi/firewall/forwards.lua b/applications/luci-firewall/luasrc/model/cbi/firewall/forwards.lua index 660848cee6..5f7a69b255 100644 --- a/applications/luci-firewall/luasrc/model/cbi/firewall/forwards.lua +++ b/applications/luci-firewall/luasrc/model/cbi/firewall/forwards.lua @@ -35,7 +35,9 @@ s.template_addremove = "firewall/cbi_addforward" function s.create(self, section) local n = m:formvalue("_newfwd.name") local p = m:formvalue("_newfwd.proto") + local E = m:formvalue("_newfwd.extzone") local e = m:formvalue("_newfwd.extport") + local I = m:formvalue("_newfwd.intzone") local a = m:formvalue("_newfwd.intaddr") local i = m:formvalue("_newfwd.intport") @@ -43,8 +45,8 @@ function s.create(self, section) created = TypedSection.create(self, section) self.map:set(created, "target", "DNAT") - self.map:set(created, "src", "wan") - self.map:set(created, "dest", "lan") + self.map:set(created, "src", E or "wan") + self.map:set(created, "dest", I or "lan") self.map:set(created, "proto", (p ~= "other") and p or "all") self.map:set(created, "src_dport", e) self.map:set(created, "dest_ip", a) diff --git a/applications/luci-firewall/luasrc/view/firewall/cbi_addforward.htm b/applications/luci-firewall/luasrc/view/firewall/cbi_addforward.htm index 9b17d52e7f..3726f643df 100644 --- a/applications/luci-firewall/luasrc/view/firewall/cbi_addforward.htm +++ b/applications/luci-firewall/luasrc/view/firewall/cbi_addforward.htm @@ -1,13 +1,28 @@ +<%- + local fw = require "luci.model.firewall".init() + local izl = { } + local ezl = { } + local _, z + for _, z in ipairs(fw:get_zones()) do + if z:name() ~= "wan" then + izl[#izl+1] = z + elseif z:name() ~= "lan" then + ezl[#ezl+1] = z + end + end +-%> <div class="cbi-section-create cbi-tblsection-create"> <br /> - <table class="cbi-section-table" style="width:700px; margin-left:5px"> + <table class="cbi-section-table" style="width:810px; margin-left:5px"> <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell" colspan="6"><%:New port forward%>:</th> + <th class="cbi-section-table-cell" colspan="8"><%:New port forward%>:</th> </tr> <tr class="cbi-section-table-descr"> <th class="cbi-section-table-cell"><%:Name%></th> <th class="cbi-section-table-cell"><%:Protocol%></th> + <th class="cbi-section-table-cell"><%:External zone%></th> <th class="cbi-section-table-cell"><%:External port%></th> + <th class="cbi-section-table-cell"><%:Internal zone%></th> <th class="cbi-section-table-cell"><%:Internal IP address%></th> <th class="cbi-section-table-cell"><%:Internal port%></th> <th class="cbi-section-table-cell"></th> @@ -24,9 +39,19 @@ <option value="other"><%:Other...%></option> </select> </td> + <td class="cbi-section-table-cell" style="width:55px"> + <select class="cbi-input-select" id="_newfwd.extzone" name="_newfwd.extzone"> + <% for _, z in ipairs(ezl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %> + </select> + </td> <td class="cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newfwd.extport" name="_newfwd.extport" /> </td> + <td class="cbi-section-table-cell" style="width:55px"> + <select class="cbi-input-select" id="_newfwd.intzone" name="_newfwd.intzone"> + <% for _, z in ipairs(izl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %> + </select> + </td> <td class="cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newfwd.intaddr" name="_newfwd.intaddr" /> </td> |