Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/jabglue.c @ 686:98de2d166a11
Use the new IQ system for authentication
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Mon, 06 Feb 2006 21:06:19 +0100 |
parents | 3282276e7413 |
children | 3c0a0a993de8 |
comparison
equal
deleted
inserted
replaced
685:f033345d1315 | 686:98de2d166a11 |
---|---|
107 jb_disconnect(); | 107 jb_disconnect(); |
108 | 108 |
109 utf8_jid = to_utf8(jid); | 109 utf8_jid = to_utf8(jid); |
110 if (!utf8_jid) return jc; | 110 if (!utf8_jid) return jc; |
111 | 111 |
112 s_id = 1; | |
113 jc = jab_new(utf8_jid, (char*)pass, (char*)server, port, ssl); | 112 jc = jab_new(utf8_jid, (char*)pass, (char*)server, port, ssl); |
114 g_free(utf8_jid); | 113 g_free(utf8_jid); |
115 | 114 |
116 /* These 3 functions can deal with a NULL jc, no worry... */ | 115 /* These 3 functions can deal with a NULL jc, no worry... */ |
117 jab_logger(jc, logger); | 116 jab_logger(jc, logger); |
169 KeepaliveDelay = delay; | 168 KeepaliveDelay = delay; |
170 } | 169 } |
171 | 170 |
172 void jb_main() | 171 void jb_main() |
173 { | 172 { |
174 xmlnode x, z; | |
175 char *cid; | |
176 | |
177 if (!online) { | 173 if (!online) { |
178 safe_usleep(10000); | 174 safe_usleep(10000); |
179 return; | 175 return; |
180 } | 176 } |
181 | 177 |
187 | 183 |
188 jab_poll(jc, 50); | 184 jab_poll(jc, 50); |
189 | 185 |
190 if (jstate == STATE_CONNECTING) { | 186 if (jstate == STATE_CONNECTING) { |
191 if (jc) { | 187 if (jc) { |
192 x = jutil_iqnew(JPACKET__GET, NS_AUTH); | 188 iqs *iqn; |
193 cid = jab_getid(jc); | 189 xmlnode z; |
194 xmlnode_put_attrib(x, "id", cid); | 190 |
195 // id = atoi(cid); | 191 iqn = iqs_new(JPACKET__GET, NS_AUTH, "auth", IQS_DEFAULT_TIMEOUT); |
196 | 192 iqn->callback = &iqscallback_auth; |
197 z = xmlnode_insert_tag(xmlnode_get_tag(x, "query"), "username"); | 193 |
194 z = xmlnode_insert_tag(xmlnode_get_tag(iqn->xmldata, "query"), | |
195 "username"); | |
198 xmlnode_insert_cdata(z, jc->user->user, (unsigned) -1); | 196 xmlnode_insert_cdata(z, jc->user->user, (unsigned) -1); |
199 jab_send(jc, x); | 197 jab_send(jc, iqn->xmldata); |
200 xmlnode_free(x); | |
201 | 198 |
202 jstate = STATE_GETAUTH; | 199 jstate = STATE_GETAUTH; |
203 } | 200 } |
204 | 201 |
205 if (!jc || jc->state == JCONN_STATE_OFF) { | 202 if (!jc || jc->state == JCONN_STATE_OFF) { |