X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fjabber%2Fxmpp_sasl_service.c;h=f015236e0146528097d3174688c33372b5ab2a6e;hb=8c47559cb5ae97ec0fa35660ee16fd61a9451c72;hp=8a32aee22058d8a6bf1661fd96a79a991d57ef7b;hpb=cf934431c7c8c1091b38c0b374f6a3b9293841ca;p=citadel.git diff --git a/citadel/modules/jabber/xmpp_sasl_service.c b/citadel/modules/jabber/xmpp_sasl_service.c index 8a32aee22..f015236e0 100644 --- a/citadel/modules/jabber/xmpp_sasl_service.c +++ b/citadel/modules/jabber/xmpp_sasl_service.c @@ -5,8 +5,21 @@ * * Note: RFC3920 says we "must" support DIGEST-MD5 but we only support PLAIN. * - * Copyright (c) 2007 by Art Cancro - * This code is released under the terms of the GNU General Public License. + * Copyright (c) 2007-2009 by Art Cancro + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ @@ -59,10 +72,10 @@ int xmpp_auth_plain(char *authstring) char user[256]; char pass[256]; int result; - char *ptr = NULL; /* Take apart the authentication string */ + memset(pass, 0, sizeof(pass)); CtdlDecodeBase64(decoded_authstring, authstring, strlen(authstring)); safestrncpy(ident, decoded_authstring, sizeof ident); @@ -117,9 +130,15 @@ void xmpp_sasl_auth(char *sasl_auth_mech, char *authstring) { return; } - if (CC->logged_in) logout(CC); /* Client may try to log in twice. Handle this. */ + if (CC->logged_in) logout(); /* Client may try to log in twice. Handle this. */ + + if (CC->nologin) { + cprintf(""); + cprintf(""); + cprintf(""); + } - if (xmpp_auth_plain(authstring) == 0) { + else if (xmpp_auth_plain(authstring) == 0) { cprintf(""); } @@ -138,7 +157,7 @@ void xmpp_sasl_auth(char *sasl_auth_mech, char *authstring) { void jabber_non_sasl_authenticate(char *iq_id, char *username, char *password, char *resource) { int result; - if (CC->logged_in) logout(CC); /* Client may try to log in twice. Handle this. */ + if (CC->logged_in) logout(); /* Client may try to log in twice. Handle this. */ result = CtdlLoginExistingUser(NULL, username); if (result == login_ok) {