From: Joshua Colp Date: Mon, 16 Jul 2012 12:58:18 +0000 (+0000) Subject: Fix an issue where specifying the resource in the username would cause authentication... X-Git-Tag: 11.0.0-beta1~115 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d20f603376e230129f3801004fe6eebdbc0b6df;p=thirdparty%2Fasterisk.git Fix an issue where specifying the resource in the username would cause authentication to fail. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370073 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_xmpp.c b/res/res_xmpp.c index 63e6384c74..42d15ce85d 100644 --- a/res/res_xmpp.c +++ b/res/res_xmpp.c @@ -2557,7 +2557,14 @@ static int xmpp_client_authenticate_sasl(struct ast_xmpp_client *client, struct iks_insert_attrib(auth, "xmlns", IKS_NS_XMPP_SASL); iks_insert_attrib(auth, "mechanism", "PLAIN"); - snprintf(combined, sizeof(combined), "%c%s%c%s", 0, cfg->user, 0, cfg->password); + if (strchr(cfg->user, '/')) { + char *user = ast_strdupa(cfg->user); + + snprintf(combined, sizeof(combined), "%c%s%c%s", 0, strsep(&user, "/"), 0, cfg->password); + } else { + snprintf(combined, sizeof(combined), "%c%s%c%s", 0, cfg->user, 0, cfg->password); + } + ast_base64encode(base64, (const unsigned char *) combined, len - 1, (len + 2) * 4 / 3); iks_insert_cdata(auth, base64, 0);