--- a/mcabber/src/jab_iq.c Mon Feb 06 20:04:58 2006 +0100
+++ b/mcabber/src/jab_iq.c Mon Feb 06 21:06:19 2006 +0100
@@ -33,8 +33,6 @@
#include "settings.h"
-int s_id; // XXX
-
static GSList *iqs_list;
@@ -230,6 +228,28 @@
scr_ShowBuddyWindow();
}
+void iqscallback_auth(iqs *iqp, xmlnode xml_result)
+{
+ if (jstate == STATE_GETAUTH) {
+ iqs *iqn;
+
+ if (xml_result) {
+ xmlnode x = xmlnode_get_tag(xml_result, "query");
+ if (x && !xmlnode_get_tag(x, "digest"))
+ jc->sid = 0;
+ }
+
+ iqn = iqs_new(JPACKET__SET, NS_AUTH, "auth", IQS_DEFAULT_TIMEOUT);
+ iqn->callback = &iqscallback_auth;
+ jab_auth_mcabber(jc, iqn->xmldata);
+ jab_send(jc, iqn->xmldata);
+ jstate = STATE_SENDAUTH;
+ } else if (jstate == STATE_SENDAUTH) {
+ request_roster();
+ jstate = STATE_LOGGED;
+ }
+}
+
static void handle_iq_result(jconn conn, char *from, xmlnode xmldata)
{
xmlnode x;
@@ -242,22 +262,6 @@
return;
}
- if (atoi(id) == s_id) { // Authentication XXX
- 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) {
- request_roster();
- jstate = STATE_LOGGED;
- }
- return;
- }
-
if (!iqs_callback(id, xmldata))
return;