Skip to content

Commit

Permalink
perf(nl): reduce memory usage
Browse files Browse the repository at this point in the history
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
  • Loading branch information
zhaojh329 committed Oct 8, 2023
1 parent 5b49acd commit 99c95d0
Showing 1 changed file with 9 additions and 18 deletions.
27 changes: 9 additions & 18 deletions nl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ local M = {}
local nl_methods = {}

function nl_methods:bind(groups, pid)
local mt = getmetatable(self)

local ok, err = mt.sock:bind(groups, pid)
local ok, err = self.sock:bind(groups, pid)
if not ok then
return nil, err
end
Expand All @@ -20,24 +18,19 @@ function nl_methods:bind(groups, pid)
end

function nl_methods:add_membership(group)
local mt = getmetatable(self)
return mt.sock:setoption('netlink_add_membership', group)
return self.sock:setoption('netlink_add_membership', group)
end

function nl_methods:drop_membership(group)
local mt = getmetatable(self)
return mt.sock:setoption('netlink_drop_membership', group)
return self.sock:setoption('netlink_drop_membership', group)
end

function nl_methods:send(msg)
local mt = getmetatable(self)
return mt.sock:sendto(msg:binary())
return self.sock:sendto(msg:binary())
end

function nl_methods:recv(n, timeout)
local mt = getmetatable(self)

local data, addr = mt.sock:recvfrom(n or 8192, timeout)
local data, addr = self.sock:recvfrom(n or 8192, timeout)
if not data then
return nil, addr
end
Expand All @@ -46,20 +39,18 @@ function nl_methods:recv(n, timeout)
end

function nl_methods:close()
local mt = getmetatable(self)
mt.sock:close()
self.sock:close()
end

local metatable = { __index = nl_methods }

function M.open(protocol)
local sock, err = socket.netlink(protocol)
if not sock then
return nil, 'create netlink socket fail: ' .. err
end

return setmetatable({}, {
sock = sock,
__index = nl_methods,
})
return setmetatable({ sock = sock }, metatable)
end

return setmetatable(M, { __index = nl })

0 comments on commit 99c95d0

Please sign in to comment.