Try to handle pings better
- Send a pong anyway if no ping request was detected after 120s - (ramenkan) minor text adjustmentstrunk
parent
e9927fb1d7
commit
971b758524
|
@ -15,7 +15,7 @@ ramen.noodle_shapes = {
|
||||||
}
|
}
|
||||||
|
|
||||||
ramen.broths = {
|
ramen.broths = {
|
||||||
"miso", "spicy miso", "soy sauce", "grilled soy sauce and Rishiri kelp",
|
"miso", "spicy miso", "soy sauce", "soy sauce and grilled Rishiri kelp",
|
||||||
"salt", "salt and soy sauce",
|
"salt", "salt and soy sauce",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,6 +393,7 @@ itte_config = {
|
||||||
-- Custom variables
|
-- Custom variables
|
||||||
itte_config.ramen = ramen
|
itte_config.ramen = ramen
|
||||||
|
|
||||||
|
itte_config.messages.announce = "Now serving! "
|
||||||
itte_config.messages.serve = "{{ramen}} ⊂(・▽・⊂)"
|
itte_config.messages.serve = "{{ramen}} ⊂(・▽・⊂)"
|
||||||
itte_config.messages.special = "**SPECIAL!!!** {{ramen}} " ..
|
itte_config.messages.special = "**SPECIAL!!!** {{ramen}} " ..
|
||||||
"☆*:・゚ o(^ ∀ ^ o)"
|
"☆*:・゚ o(^ ∀ ^ o)"
|
||||||
|
@ -428,7 +429,7 @@ function h.ramen(cxt, msg)
|
||||||
-- Scheduled task recipients
|
-- Scheduled task recipients
|
||||||
if msg.recipients ~= nil then
|
if msg.recipients ~= nil then
|
||||||
recipients = msg.recipients
|
recipients = msg.recipients
|
||||||
intro = "Now serving! "
|
intro = itte_config.messages.announce
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 1% chance of special set
|
-- 1% chance of special set
|
||||||
|
|
10
itte.lua
10
itte.lua
|
@ -294,6 +294,7 @@ function itte.init_socket(name, svr)
|
||||||
cap_checked = false,
|
cap_checked = false,
|
||||||
ns_checked = false,
|
ns_checked = false,
|
||||||
authed = false,
|
authed = false,
|
||||||
|
ping_time = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Connect
|
-- Connect
|
||||||
|
@ -836,6 +837,7 @@ function itte.listen(name, str)
|
||||||
|
|
||||||
-- Respond to server ping
|
-- Respond to server ping
|
||||||
if util.is_substr(str, cxt.cmds.ping.check) then
|
if util.is_substr(str, cxt.cmds.ping.check) then
|
||||||
|
cxt.state.ping_time = os.time()
|
||||||
util.debug(itte.config.debugs.listen[1], str, itte.config.debug)
|
util.debug(itte.config.debugs.listen[1], str, itte.config.debug)
|
||||||
itte.send_command(cxt.con, string.gsub(str, cxt.cmds.ping.check,
|
itte.send_command(cxt.con, string.gsub(str, cxt.cmds.ping.check,
|
||||||
cxt.cmds.ping.resp))
|
cxt.cmds.ping.resp))
|
||||||
|
@ -880,9 +882,17 @@ itte.docs.add_listener = [[ (context_table)
|
||||||
]]
|
]]
|
||||||
function itte.add_listener(cxt)
|
function itte.add_listener(cxt)
|
||||||
local data, status = cxt.con:receive()
|
local data, status = cxt.con:receive()
|
||||||
|
local delta = os.time() - cxt.state.ping_time
|
||||||
if data ~= nil then
|
if data ~= nil then
|
||||||
itte.listen(cxt.name, data)
|
itte.listen(cxt.name, data)
|
||||||
|
|
||||||
|
-- Send a pong every 120s in case the ping request was lost, e.g. during high
|
||||||
|
-- system load. Servers may send a ping request every ~90s. Disconnects from
|
||||||
|
-- ping timeouts occur at ~2m30s.
|
||||||
|
elseif (cxt.state.ping_time > 0) and (delta > 120) then
|
||||||
|
itte.send_command(cxt.con, cxt.cmds.ping.resp)
|
||||||
|
cxt.state.ping_time = os.time()
|
||||||
|
|
||||||
elseif status == "closed" then
|
elseif status == "closed" then
|
||||||
itte.disconnect_server(cxt.name)
|
itte.disconnect_server(cxt.name)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue