local M = {} local seen = {} local count = 0 local MAX = 50 local function make_key(version, peer, ua) return #version .. ":" .. version .. #peer .. ":" .. peer .. #ua .. ":" .. ua end function M.report(version, peer, ua) if not version or version == "" then return end if not peer or peer == "" then return end if not ua or ua == "" then return end local key = make_key(version, peer, ua) if seen[key] then return end if count >= MAX then return end seen[key] = true count = count + 1 M.sink(version, peer, ua) end return M