Mercurial > pidgin
comparison src/protocols/jabber/auth.c @ 13806:25e63008d3bb
[gaim-migrate @ 16229]
Use libxml2 for XML parsing, if available. The biggest benefit from this is actual support for XML namespaces. This fixes a handful of Google Talk integration problems, including typing notifications and buddy icons.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Thu, 08 Jun 2006 01:03:51 +0000 |
parents | 0c4db52c6a3d |
children | b1ce2e9e494a |
comparison
equal
deleted
inserted
replaced
13805:853fefb07c79 | 13806:25e63008d3bb |
---|---|
65 xmlnode *auth; | 65 xmlnode *auth; |
66 GString *response; | 66 GString *response; |
67 gchar *enc_out; | 67 gchar *enc_out; |
68 | 68 |
69 auth = xmlnode_new("auth"); | 69 auth = xmlnode_new("auth"); |
70 xmlnode_set_attrib(auth, "xmlns", "urn:ietf:params:xml:ns:xmpp-sasl"); | 70 xmlnode_set_namespace(auth, "urn:ietf:params:xml:ns:xmpp-sasl"); |
71 | 71 |
72 response = g_string_new(""); | 72 response = g_string_new(""); |
73 response = g_string_append_len(response, "\0", 1); | 73 response = g_string_append_len(response, "\0", 1); |
74 response = g_string_append(response, js->user->node); | 74 response = g_string_append(response, js->user->node); |
75 response = g_string_append_len(response, "\0", 1); | 75 response = g_string_append_len(response, "\0", 1); |
267 } | 267 } |
268 } while (again); | 268 } while (again); |
269 | 269 |
270 if (js->sasl_state == SASL_CONTINUE || js->sasl_state == SASL_OK) { | 270 if (js->sasl_state == SASL_CONTINUE || js->sasl_state == SASL_OK) { |
271 auth = xmlnode_new("auth"); | 271 auth = xmlnode_new("auth"); |
272 xmlnode_set_attrib(auth, "xmlns", "urn:ietf:params:xml:ns:xmpp-sasl"); | 272 xmlnode_set_namespace(auth, "urn:ietf:params:xml:ns:xmpp-sasl"); |
273 xmlnode_set_attrib(auth,"mechanism", mech); | 273 xmlnode_set_attrib(auth,"mechanism", mech); |
274 if (clientout) { | 274 if (clientout) { |
275 if (coutlen == 0) { | 275 if (coutlen == 0) { |
276 xmlnode_insert_data(auth, "=", -1); | 276 xmlnode_insert_data(auth, "=", -1); |
277 } else { | 277 } else { |
384 if(digest_md5) { | 384 if(digest_md5) { |
385 xmlnode *auth; | 385 xmlnode *auth; |
386 | 386 |
387 js->auth_type = JABBER_AUTH_DIGEST_MD5; | 387 js->auth_type = JABBER_AUTH_DIGEST_MD5; |
388 auth = xmlnode_new("auth"); | 388 auth = xmlnode_new("auth"); |
389 xmlnode_set_attrib(auth, "xmlns", "urn:ietf:params:xml:ns:xmpp-sasl"); | 389 xmlnode_set_namespace(auth, "urn:ietf:params:xml:ns:xmpp-sasl"); |
390 xmlnode_set_attrib(auth, "mechanism", "DIGEST-MD5"); | 390 xmlnode_set_attrib(auth, "mechanism", "DIGEST-MD5"); |
391 | 391 |
392 jabber_send(js, auth); | 392 jabber_send(js, auth); |
393 xmlnode_free(auth); | 393 xmlnode_free(auth); |
394 } else if(plain) { | 394 } else if(plain) { |
718 gaim_debug_error("jabber", "Error is %d : %s\n",js->sasl_state,sasl_errdetail(js->sasl)); | 718 gaim_debug_error("jabber", "Error is %d : %s\n",js->sasl_state,sasl_errdetail(js->sasl)); |
719 gaim_connection_error(js->gc, _("SASL error")); | 719 gaim_connection_error(js->gc, _("SASL error")); |
720 return; | 720 return; |
721 } else { | 721 } else { |
722 response = xmlnode_new("response"); | 722 response = xmlnode_new("response"); |
723 xmlnode_set_attrib(response, "xmlns", "urn:ietf:params:xml:ns:xmpp-sasl"); | 723 xmlnode_set_namespace(response, "urn:ietf:params:xml:ns:xmpp-sasl"); |
724 if (c_out) { | 724 if (c_out) { |
725 enc_out = gaim_base64_encode((unsigned char*)c_out, clen); | 725 enc_out = gaim_base64_encode((unsigned char*)c_out, clen); |
726 xmlnode_insert_data(response, enc_out, -1); | 726 xmlnode_insert_data(response, enc_out, -1); |
727 g_free(enc_out); | 727 g_free(enc_out); |
728 } | 728 } |
733 #endif | 733 #endif |
734 } | 734 } |
735 | 735 |
736 void jabber_auth_handle_success(JabberStream *js, xmlnode *packet) | 736 void jabber_auth_handle_success(JabberStream *js, xmlnode *packet) |
737 { | 737 { |
738 const char *ns = xmlnode_get_attrib(packet, "xmlns"); | 738 const char *ns = xmlnode_get_namespace(packet); |
739 #ifdef HAVE_CYRUS_SASL | 739 #ifdef HAVE_CYRUS_SASL |
740 int *x; | 740 int *x; |
741 #endif | 741 #endif |
742 | 742 |
743 if(!ns || strcmp(ns, "urn:ietf:params:xml:ns:xmpp-sasl")) { | 743 if(!ns || strcmp(ns, "urn:ietf:params:xml:ns:xmpp-sasl")) { |