# HG changeset patch # User Kim Alvefur # Date 1638372040 -3600 # Node ID 9f7a6f7d13de05dce6f365a1147595c50f21d219 # Parent 10cdfb94f1cc8cf7ddfd6eb4a6f6042b393592e5 mod_smacks: Factor out formatting of 'h' value diff -r 10cdfb94f1cc -r 9f7a6f7d13de plugins/mod_smacks.lua --- a/plugins/mod_smacks.lua Wed Dec 01 15:27:55 2021 +0100 +++ b/plugins/mod_smacks.lua Wed Dec 01 16:20:40 2021 +0100 @@ -50,6 +50,8 @@ local c2s_sessions = module:shared("/*/c2s/sessions"); +local function format_h(h) if h then return string.format("%d", h) end end + local function init_session_cache(max_entries, evict_callback) -- use per user limited cache for prosody >= 0.10 local stores = {}; @@ -253,7 +255,7 @@ if session.smacks and session.conn and session.handled_stanza_count then (session.sends2s or session.send)(st.stanza("a", { xmlns = session.smacks; - h = string.format("%d", session.handled_stanza_count); + h = format_h(session.handled_stanza_count); })); end end); @@ -339,7 +341,7 @@ end module:log("debug", "Received ack request, acking for %d", origin.handled_stanza_count); -- Reply with - (origin.sends2s or origin.send)(st.stanza("a", { xmlns = xmlns_sm, h = string.format("%d", origin.handled_stanza_count) })); + (origin.sends2s or origin.send)(st.stanza("a", { xmlns = xmlns_sm, h = format_h(origin.handled_stanza_count) })); -- piggyback our own ack request if needed (see request_ack_if_needed() for explanation of last_requested_h) request_ack_now_if_needed(origin, false, "piggybacked by handle_r", nil); return true; @@ -559,7 +561,7 @@ if old_session and session.username == old_session.username and session.host == old_session.host and old_session.h then - session.send(st.stanza("failed", { xmlns = xmlns_sm, h = string.format("%d", old_session.h) }) + session.send(st.stanza("failed", { xmlns = xmlns_sm, h = format_h(old_session.h) }) :tag("item-not-found", { xmlns = xmlns_errors }) ); else @@ -598,7 +600,7 @@ c2s_sessions[session.conn] = original_session; original_session.send(st.stanza("resumed", { xmlns = xmlns_sm, - h = string.format("%d", original_session.handled_stanza_count), previd = id })); + h = format_h(original_session.handled_stanza_count), previd = id })); -- Fake an with the h of the from the client original_session:dispatch_stanza(st.stanza("a", { xmlns = xmlns_sm,