comparison mod_cloud_notify/mod_cloud_notify.lua @ 3010:7ee59f417c16

mod_cloud_notify: remove useless counter (hardcode it to 1)
author tmolitor <thilo@eightysoft.de>
date Mon, 14 May 2018 20:17:49 +0200
parents df86ce6bb0b4
children 6abee021d9db
comparison
equal deleted inserted replaced
3009:a6fa44eeb818 3010:7ee59f417c16
157 local push_identifier = push_jid .. "<" .. (push_node or ""); 157 local push_identifier = push_jid .. "<" .. (push_node or "");
158 local push_service = { 158 local push_service = {
159 jid = push_jid; 159 jid = push_jid;
160 node = push_node; 160 node = push_node;
161 include_payload = include_payload; 161 include_payload = include_payload;
162 count = 0;
163 options = publish_options and st.preserialize(publish_options); 162 options = publish_options and st.preserialize(publish_options);
164 }; 163 };
165 local ok = push_store:set_identifier(origin.username, push_identifier, push_service); 164 local ok = push_store:set_identifier(origin.username, push_identifier, push_service);
166 if not ok then 165 if not ok then
167 origin.send(st.error_reply(stanza, "wait", "internal-server-error")); 166 origin.send(st.error_reply(stanza, "wait", "internal-server-error"));
305 end 304 end
306 stanza._push_notify[push_identifier] = true; 305 stanza._push_notify[push_identifier] = true;
307 end 306 end
308 307
309 if send_push then 308 if send_push then
310 -- increment count and save it
311 push_info.count = push_info.count + 1;
312 push_store:set_identifier(node, push_identifier, push_info);
313 -- construct push stanza 309 -- construct push stanza
314 local stanza_id = hashes.sha256(push_identifier, true); 310 local stanza_id = hashes.sha256(push_identifier, true);
315 local push_publish = st.iq({ to = push_info.jid, from = module.host, type = "set", id = stanza_id }) 311 local push_publish = st.iq({ to = push_info.jid, from = module.host, type = "set", id = stanza_id })
316 :tag("pubsub", { xmlns = "http://jabber.org/protocol/pubsub" }) 312 :tag("pubsub", { xmlns = "http://jabber.org/protocol/pubsub" })
317 :tag("publish", { node = push_info.node }) 313 :tag("publish", { node = push_info.node })
318 :tag("item") 314 :tag("item")
319 :tag("notification", { xmlns = xmlns_push }); 315 :tag("notification", { xmlns = xmlns_push });
320 local form_data = { 316 local form_data = {
321 ["message-count"] = tostring(push_info.count); 317 -- hardcode to 1 because other numbers are just meaningless (the XEP does not specify *what exactly* to count)
318 ["message-count"] = "1";
322 }; 319 };
323 if stanza and include_sender then 320 if stanza and include_sender then
324 form_data["last-message-sender"] = stanza.attr.from; 321 form_data["last-message-sender"] = stanza.attr.from;
325 end 322 end
326 if stanza and include_body then 323 if stanza and include_body then
405 -- smacks hibernation is ended 402 -- smacks hibernation is ended
406 local function restore_session(event) 403 local function restore_session(event)
407 local session = event.resumed; 404 local session = event.resumed;
408 if session then -- older smacks module versions send only the "intermediate" session in event.session and no session.resumed one 405 if session then -- older smacks module versions send only the "intermediate" session in event.session and no session.resumed one
409 filters.remove_filter(session, "stanzas/out", process_smacks_stanza); 406 filters.remove_filter(session, "stanzas/out", process_smacks_stanza);
410 -- this means the counter of outstanding push messages can be reset as well
411 if session.push_settings then
412 session.push_settings.count = 0;
413 push_store:set_identifier(session.username, session.push_identifier, session.push_settings);
414 end
415 end 407 end
416 end 408 end
417 409
418 -- smacks ack is delayed 410 -- smacks ack is delayed
419 local function ack_delayed(event) 411 local function ack_delayed(event)