Blame examples/netlink-uevent.lua
|
Packit |
437b5e |
p = require "posix"
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
if p.AF_NETLINK ~= nil then
|
|
Packit |
437b5e |
local fd, err = p.socket(p.AF_NETLINK, p.SOCK_DGRAM, p.NETLINK_KOBJECT_UEVENT)
|
|
Packit |
437b5e |
assert(fd, err)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
local ok, err = p.bind(fd, { family = p.AF_NETLINK, pid = p.getpid("pid"), groups = -1 })
|
|
Packit |
437b5e |
assert(ok, err)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
while true do
|
|
Packit |
437b5e |
local data, err = p.recv(fd, 16384)
|
|
Packit |
437b5e |
assert(data, err)
|
|
Packit |
437b5e |
for k, v in data:gmatch("%z(%u+)=([^%z]+)") do
|
|
Packit |
437b5e |
print(k, v)
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
print("\n")
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
end
|