grim/pidgin

Implement a function for sending <resume/> packets

2015-08-18, Koosha Khajehmoogahi
ab6afae4ec38
Parents 94a535d119e3
Children 1e541ca55e54
Implement a function for sending packets
--- a/libpurple/protocols/jabber/sm.c Mon Aug 17 20:51:01 2015 +0200
+++ b/libpurple/protocols/jabber/sm.c Tue Aug 18 01:46:55 2015 +0200
@@ -108,6 +108,27 @@
purple_xmlnode_free(ack);
}
+void jabber_stream_management_send_resume(JabberStream *js)
+{
+ PurpleXmlNode *resume;
+ gchar *h, *previd;
+
+ resume = purple_xmlnode_new("resume");
+ h = g_strdup_printf("%d", js->sm->stanzas_recvd);
+ purple_xmlnode_set_attrib(resume, "h", h);
+ g_free(h);
+
+ previd = purple_account_get_string(purple_connection_get_account(js->gc), "sm_id", NULL);
+ if (previd == NULL)
+ return;
+
+ purple_xmlnode_set_attrib(resume, "previd", previd);
+ g_free(previd);
+
+ purple_xmlnode_set_namespace(resume, NS_XMPP_SM);
+ jabber_send(js, resume);
+ purple_xmlnode_free(resume);
+}
static void send_ack_request(JabberStream *js)
{
--- a/libpurple/protocols/jabber/sm.h Mon Aug 17 20:51:01 2015 +0200
+++ b/libpurple/protocols/jabber/sm.h Tue Aug 18 01:46:55 2015 +0200
@@ -49,5 +49,6 @@
void jabber_stream_management_parse(JabberStream *js, PurpleXmlNode *packet);
void jabber_stream_management_send_ack(JabberStream *js);
void jabber_stream_management_recv_ack(JabberStream *js, PurpleXmlNode *packet);
+void jabber_stream_management_send_resume(JabberStream *js);
#endif /* PURPLE_JABBER_SM_H_ */