# HG changeset patch # User Mikael Berthe # Date 1134508587 -3600 # Node ID 6c7fd289648fd8b3e7c9c5fc8d6dd6176ef45a6a # Parent 0c1d373008624ce63ecf437fc1516ee0a71ae758 Clean up handle_iq_result() diff -r 0c1d37300862 -r 6c7fd289648f mcabber/src/jab_iq.c --- 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); }