Software /
code /
prosody
File
plugins/mod_turn_external.lua @ 11694:d6be4dda1f60
net.server_epoll: Set minimum wait time to 1ms, matching epoll
A timeout value less than 0.001 gets turned into zero on the C side, so
epoll_wait() returns instantly and essentially busy-loops up to 1ms,
e.g. when a timer event ends up scheduled (0, 0.001)ms into the future.
Unsure if this has much effect in practice, but it may waste a small
amount of CPU time. How much would depend on how often this ends up
happening and how fast the CPU gets trough main loop iterations.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 15 Jul 2021 01:38:44 +0200 |
parent | 11599:ed405b6357a8 |
child | 12282:fe5a87b5972f |
line wrap: on
line source
local secret = module:get_option_string("turn_external_secret"); local host = module:get_option_string("turn_external_host", module.host); local user = module:get_option_string("turn_external_user"); local port = module:get_option_number("turn_external_port", 3478); local ttl = module:get_option_number("turn_external_ttl", 86400); local services = module:get_option_set("turn_external_services", {"stun-udp"; "turn-udp"}); if not secret then error("mod_" .. module.name .. " requires that 'turn_external_secret' be set") end module:depends "external_services"; for _, type in ipairs({"stun"; "turn"}) do for _, transport in ipairs({"udp"; "tcp"}) do if services:contains(type .. "-" .. transport) then module:add_item("external_service", { type = type; transport = transport; host = host; port = port; username = type == "turn" and user or nil; secret = type == "turn" and secret or nil; ttl = type == "turn" and ttl or nil; }) end end end