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);
 }