stable now but there are GIANT PIECES MISSING
[citadel.git] / citadel / modules / imap / serv_imap.c
index e3c55ae4ff7739a718f165f323fc7daa5ae5d62b..1609f8ee5b3a819da4ddaa91ddb20288b44c51c7 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * IMAP server for the Citadel system
  *
- * Copyright (C) 2000-2017 by Art Cancro and others.
+ * Copyright (C) 2000-2021 by Art Cancro and others.
  * This code is released under the terms of the GNU General Public License.
  *
  * WARNING: the IMAP protocol is badly designed.  No implementation of it
 #include <pwd.h>
 #include <errno.h>
 #include <sys/types.h>
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
+#include <time.h>
 #include <sys/wait.h>
 #include <ctype.h>
 #include <string.h>
@@ -90,10 +79,6 @@ void registerImapCMD(const char *First, long FLen,
        }
 }
 
-void imap_cleanup(void)
-{
-       DeleteHash(&ImapCmds);
-}
 
 const imap_handler_hook *imap_lookup(int num_parms, ConstStr *Params)
 {
@@ -628,7 +613,7 @@ void imap_login(int num_parms, ConstStr *Params)
                        return;
                }
        case 4:
-               if (CtdlLoginExistingUser(NULL, Params[2].Key) == login_ok) {
+               if (CtdlLoginExistingUser(Params[2].Key) == login_ok) {
                        if (CtdlTryPassword(Params[3].Key, Params[3].len) == pass_ok) {
                                /* hm, thats not doable by IReply :-( */
                                IAPrintf("%s OK [", Params[0].Key);
@@ -744,10 +729,10 @@ void imap_auth_plain(void)
        Imap->authstate = imap_as_normal;
 
        if (!IsEmptyStr(ident)) {
-               result = CtdlLoginExistingUser(user, ident);
+               result = CtdlLoginExistingUser(ident);
        }
        else {
-               result = CtdlLoginExistingUser(NULL, user);
+               result = CtdlLoginExistingUser(user);
        }
 
        if (result == login_ok) {
@@ -768,7 +753,7 @@ void imap_auth_login_user(long state)
        switch (state){
        case imap_as_expecting_username:
                StrBufDecodeBase64(Imap->Cmd.CmdBuf);
-               CtdlLoginExistingUser(NULL, ChrPtr(Imap->Cmd.CmdBuf));
+               CtdlLoginExistingUser(ChrPtr(Imap->Cmd.CmdBuf));
                size_t len = CtdlEncodeBase64(PWBuf, "Password:", 9, 0);
                if (PWBuf[len - 1] == '\n') {
                        PWBuf[len - 1] = '\0';
@@ -780,7 +765,7 @@ void imap_auth_login_user(long state)
                return;
        case imap_as_expecting_multilineusername:
                extract_token(PWBuf, ChrPtr(Imap->Cmd.CmdBuf), 1, ' ', sizeof(PWBuf));
-               CtdlLoginExistingUser(NULL, ChrPtr(Imap->Cmd.CmdBuf));
+               CtdlLoginExistingUser(ChrPtr(Imap->Cmd.CmdBuf));
                IAPuts("+ go ahead\r\n");
                Imap->authstate = imap_as_expecting_multilinepassword;
                return;
@@ -1738,7 +1723,6 @@ CTDL_MODULE_INIT(imap)
                                        NULL, imaps_greeting, imap_command_loop, NULL, CitadelServiceIMAPS);
 #endif
                CtdlRegisterSessionHook(imap_cleanup_function, EVT_STOP, PRIO_STOP + 30);
-               CtdlRegisterCleanupHook(imap_cleanup);
        }
        
        /* return our module name for the log */