* as this draft expires with this writing, you might need to search for
* the new one.
*
- * Copyright (c) 2007-2012 by the citadel.org team
+ * Copyright (c) 2007-2018 by the citadel.org team
*
- * This program is open source software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3.
- *
- *
+ * This program is open source software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3.
*
- * 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.
- *
- *
- *
- *
+ * 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.
*/
#include "sysdep.h"
#include "clientsocket.h"
#include "locate_host.h"
#include "citadel_dirs.h"
-
-#ifndef HAVE_SNPRINTF
-#include "snprintf.h"
-#endif
-
-
#include "ctdl_module.h"
#include "serv_sieve.h"
-/**
+/*
* http://tools.ietf.org/html/draft-martin-managesieve-06
*
* this is the draft this code tries to implement.
message = ReadString(GetSizeToken(parms[2]), parms[0]);
if (message != NULL) {/**< do we have tokenized login? */
- CtdlDecodeBase64(auth, MGSVE->transmitted_message, SIZ);
+ CtdlDecodeBase64(auth, MGSVE->transmitted_message, strlen(MGSVE->transmitted_message));
}
else
- CtdlDecodeBase64(auth, parms[2], SIZ);
+ CtdlDecodeBase64(auth, parms[2], strlen(parms[2]));
username = auth;
if ((*username == '\0') && (*(username + 1) != '\0'))
username ++;
- if (login_ok == CtdlLoginExistingUser(NULL, username))
+ if (login_ok == CtdlLoginExistingUser(username))
{
char *pass;
if (strlen(argbuf) >= 7) {
}
else {
- CtdlEncodeBase64(username_prompt, "Username:", 9, 0);
+ size_t len = CtdlEncodeBase64(username_prompt, "Username:", 9, 0);
+ if (username_prompt[len - 1] == '\n') {
+ username_prompt[len - 1] = '\0';
+ }
cprintf("334 %s\r\n", username_prompt);
}
return;
{
if (!threading)
{
- CtdlRegisterServiceHook(config.c_managesieve_port,
+ CtdlRegisterServiceHook(CtdlGetConfigInt("c_managesieve_port"),
NULL,
managesieve_greeting,
managesieve_command_loop,
NULL,
CitadelServiceManageSieve);
- CtdlRegisterSessionHook(managesieve_cleanup_function, EVT_STOP);
+ CtdlRegisterSessionHook(managesieve_cleanup_function, EVT_STOP, PRIO_STOP + 30);
}
/* return our module name for the log */