diff options
author | Marcus Lundblad <malu@pidgin.im> | 2010-08-31 18:28:10 +0000 |
---|---|---|
committer | Marcus Lundblad <malu@pidgin.im> | 2010-08-31 18:28:10 +0000 |
commit | 5fc609e8fed5539079413d29fa6c23167e9cc718 (patch) | |
tree | 09fe88b7b9c8ad75a3980b876ca970adc0d458f3 /libpurple/protocols/jabber/parser.c | |
parent | 24f0a2f2edff9c48f57dd3607ad17b709470a1ff (diff) | |
parent | d96df2d0de45a2b4b0dc5e0dfddb2e13b3c8bb44 (diff) | |
download | pidgin-cpw.malu.xmpp.google_refactor.tar.gz |
propagate from branch 'im.pidgin.pidgin' (head f9599fe0199c86262cea569a5dfb4081df23691d)cpw.malu.xmpp.google_refactor
to branch 'im.pidgin.cpw.malu.xmpp.google_refactor' (head 93935229617363d8fdaf50a9a350c93f0987f66c)
Diffstat (limited to 'libpurple/protocols/jabber/parser.c')
-rw-r--r-- | libpurple/protocols/jabber/parser.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libpurple/protocols/jabber/parser.c b/libpurple/protocols/jabber/parser.c index 2c0dae610f..7e6e622c58 100644 --- a/libpurple/protocols/jabber/parser.c +++ b/libpurple/protocols/jabber/parser.c @@ -93,10 +93,25 @@ jabber_parser_element_start_libxml(void *user_data, } } - if (js->stream_id == NULL) + if (js->stream_id == NULL) { +#if 0 + /* This was underspecified in rfc3920 as only being a SHOULD, so + * we cannot rely on it. See #12331 and Oracle's server. + */ purple_connection_error_reason(js->gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_IMPOSSIBLE, _("XMPP stream missing ID")); +#else + /* Instead, let's make up a placeholder stream ID, which we need + * to do because we flag on it being NULL as a special case + * in this parsing code. + */ + js->stream_id = g_strdup(""); + purple_debug_info("jabber", "Server failed to specify a stream " + "ID (underspecified in rfc3920, but intended " + "to be a MUST; digest legacy auth may fail."); +#endif + } } else { if(js->current) |