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) {