/soc/2015/koosha/main: e3797065ca3c: Write a draft of <resumed/>...
Koosha Khajehmoogahi <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: e3797065ca3ced1132b622361af69e75f2198677 Author: Koosha Khajehmoogahi <[email protected]> Date: 2015-08-20 20:32 +0200 Branch: default URL: https://hg.pidgin.im/soc/2015/koosha/main/rev/e3797065ca3c Description: Write a draft of <resumed/> packets handler diffstat: libpurple/protocols/jabber/jabber.c | 2 ++ libpurple/protocols/jabber/sm.c | 19 +++++++++++++++++++ libpurple/protocols/jabber/sm.h | 1 + 3 files changed, 22 insertions(+), 0 deletions(-) diffs (48 lines): diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c +++ b/libpurple/protocols/jabber/jabber.c @@ -396,6 +396,8 @@ void jabber_process_packet(JabberStream jabber_stream_management_send_ack(js); } else if (purple_strequal(name, "a") && purple_strequal(xmlns, NS_XMPP_SM)) { jabber_stream_management_recv_ack(js, *packet); + } else if (purple_strequal(name, "resumed") && purple_strequal(xmlns, NS_XMPP_SM)) { + jabber_stream_management_handle_resume(js, *packet); } else { purple_debug_warning("jabber", "Unknown packet: %s\n", name); } diff --git a/libpurple/protocols/jabber/sm.c b/libpurple/protocols/jabber/sm.c --- a/libpurple/protocols/jabber/sm.c +++ b/libpurple/protocols/jabber/sm.c @@ -229,3 +229,22 @@ void jabber_stream_management_recv_ack(J h_val = g_ascii_strtoll(h, NULL, 10); remove_old_packets_from_buffer(js, h_val); } + +void jabber_stream_management_handle_resume(JabberStream *js, PurpleXmlNode *packet) +{ + char *h, *previd; + guint32 h_val, previd_val; + + h = purple_xmlnode_get_attrib(packet, "h"); + if (h == NULL) + return; + + previd = purple_xmlnode_get_attrib(packet, "previd"); + if (previd == NULL) + return; + + h_val = g_ascii_strtoll(h, NULL, 10); + previd_val = g_ascii_strtoll(previd, NULL, 10); + /* TODO: write stream management resumption code here */ +} + diff --git a/libpurple/protocols/jabber/sm.h b/libpurple/protocols/jabber/sm.h --- a/libpurple/protocols/jabber/sm.h +++ b/libpurple/protocols/jabber/sm.h @@ -50,5 +50,6 @@ void jabber_stream_management_parse(Jabb 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); +void jabber_stream_management_handle_resume(JabberStream *js, PurpleXmlNode *packet); #endif /* PURPLE_JABBER_SM_H_ */ _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits