luci-app-wol: add ability to send packet to broadcast address

Add the ability to send the WOL packet to the broadcast address,
if etherwake is used as the wol tool.

Modified from the original idea in #975

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This commit is contained in:
Hannu Nyman 2017-01-27 10:36:12 +02:00
parent c5b84f2fba
commit 16bbe45e95

View file

@ -48,6 +48,13 @@ sys.net.mac_hints(function(mac, name)
host:value(mac, "%s (%s)" %{ mac, name }) host:value(mac, "%s (%s)" %{ mac, name })
end) end)
if has_ewk then
broadcast = s:option(Flag, "broadcast",
translate("Send to broadcast address"))
if has_wol then
broadcast:depends("binary", "/usr/bin/etherwake")
end
end
function host.write(self, s, val) function host.write(self, s, val)
local host = luci.http.formvalue("cbid.wol.1.mac") local host = luci.http.formvalue("cbid.wol.1.mac")
@ -59,8 +66,10 @@ function host.write(self, s, val)
if util == "/usr/bin/etherwake" then if util == "/usr/bin/etherwake" then
local iface = luci.http.formvalue("cbid.wol.1.iface") local iface = luci.http.formvalue("cbid.wol.1.iface")
cmd = "%s -D%s %q" %{ local broadcast = luci.http.formvalue("cbid.wol.1.broadcast")
util, (iface ~= "" and " -i %q" % iface or ""), host cmd = "%s -D%s %s %q" %{
util, (iface ~= "" and " -i %q" % iface or ""),
(broadcast == "1" and " -b" or ""), host
} }
else else
cmd = "%s -v %q" %{ util, host } cmd = "%s -v %q" %{ util, host }