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 })
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)
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
local iface = luci.http.formvalue("cbid.wol.1.iface")
cmd = "%s -D%s %q" %{
util, (iface ~= "" and " -i %q" % iface or ""), host
local broadcast = luci.http.formvalue("cbid.wol.1.broadcast")
cmd = "%s -D%s %s %q" %{
util, (iface ~= "" and " -i %q" % iface or ""),
(broadcast == "1" and " -b" or ""), host
}
else
cmd = "%s -v %q" %{ util, host }