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