treewide: unify mac address handling
[project/luci.git] / applications / luci-app-wol / luasrc / model / cbi / wol.lua
index ec6a1be..d40dde0 100644 (file)
@@ -2,6 +2,7 @@
 -- Licensed to the public under the Apache License 2.0.
 
 local sys = require "luci.sys"
+local ipc = require "luci.ip"
 local fs  = require "nixio.fs"
 
 m = SimpleForm("wol", translate("Wake on LAN"),
@@ -58,7 +59,8 @@ end
 
 function host.write(self, s, val)
        local host = luci.http.formvalue("cbid.wol.1.mac")
-       if host and #host > 0 and host:match("^[a-fA-F0-9:]+$") then
+       local mac = ipc.checkmac(host)
+       if mac then
                local cmd
                local util = luci.http.formvalue("cbid.wol.1.binary") or (
                        has_ewk and "/usr/bin/etherwake" or "/usr/bin/wol"
@@ -69,10 +71,10 @@ function host.write(self, s, val)
                        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
+                               (broadcast == "1" and " -b" or ""), mac
                        }
                else
-                       cmd = "%s -v %q" %{ util, host }
+                       cmd = "%s -v %q" %{ util, mac }
                end
 
                local msg = "<p><strong>%s</strong><br /><br /><code>%s<br /><br />" %{