Mercurial > hg
changeset 596:6c7fd289648f
Clean up handle_iq_result()
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Tue, 13 Dec 2005 22:16:27 +0100 |
parents | 0c1d37300862 |
children | 96831b222903 |
files | mcabber/src/jab_iq.c |
diffstat | 1 files changed, 29 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/jab_iq.c Tue Dec 13 20:08:46 2005 +0100 +++ b/mcabber/src/jab_iq.c Tue Dec 13 22:16:27 2005 +0100 @@ -158,37 +158,40 @@ xmlnode x; char *p; char *ns; + int iid; - if ((p = xmlnode_get_attrib(xmldata, "id")) != NULL) { - int iid = atoi(p); + p = xmlnode_get_attrib(xmldata, "id"); + if (!p) { + scr_LogPrint(LPRINT_LOG, "IQ result stanza with no ID, ignored."); + return; + } - //scr_LogPrint(LPRINT_DEBUG, "iid = %d", iid); - if (iid == s_id) { // Authentication - if (jstate == STATE_GETAUTH) { - if ((x = xmlnode_get_tag(xmldata, "query")) != NULL) - if (!xmlnode_get_tag(x, "digest")) { - jc->sid = 0; - } + iid = atoi(p); // XXX + if (iid == s_id) { // Authentication + if (jstate == STATE_GETAUTH) { + if ((x = xmlnode_get_tag(xmldata, "query")) != NULL) + if (!xmlnode_get_tag(x, "digest")) { + jc->sid = 0; + } - s_id = atoi(jab_auth(jc)); - jstate = STATE_SENDAUTH; - } else if (jstate == STATE_SENDAUTH) { - gotloggedin(); - jstate = STATE_LOGGED; - } - return; + s_id = atoi(jab_auth(jc)); + jstate = STATE_SENDAUTH; + } else if (jstate == STATE_SENDAUTH) { + gotloggedin(); + jstate = STATE_LOGGED; } + return; + } - if (!strcmp(p, "VCARDreq")) { - x = xmlnode_get_firstchild(xmldata); - if (!x) x = xmldata; + if (!strcmp(p, "VCARDreq")) { + x = xmlnode_get_firstchild(xmldata); + if (!x) x = xmldata; - scr_LogPrint(LPRINT_LOGNORM, "Got VCARD"); // TODO - return; - } else if (!strcmp(p, "versionreq")) { - scr_LogPrint(LPRINT_LOGNORM, "Got version"); // TODO - return; - } + scr_LogPrint(LPRINT_LOGNORM, "Got VCARD"); // TODO + return; + } else if (!strcmp(p, "versionreq")) { + scr_LogPrint(LPRINT_LOGNORM, "Got version"); // TODO + return; } x = xmlnode_get_tag(xmldata, "query"); @@ -239,6 +242,7 @@ xmlnode_put_attrib(y, "type", "cancel"); z = xmlnode_insert_tag(y, "feature-not-implemented"); xmlnode_put_attrib(z, "xmlns", NS_XMPP_STANZAS); + jab_send(conn, x); xmlnode_free(x); }