diff options
Diffstat (limited to 'src/imap/cmd-logout.c')
-rw-r--r-- | src/imap/cmd-logout.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/imap/cmd-logout.c b/src/imap/cmd-logout.c new file mode 100644 index 0000000..fbdd416 --- /dev/null +++ b/src/imap/cmd-logout.c @@ -0,0 +1,24 @@ +/* Copyright (c) 2002-2018 Dovecot authors, see the included COPYING file */ + +#include "imap-common.h" +#include "ostream.h" +#include "imap-commands.h" + +bool cmd_logout(struct client_command_context *cmd) +{ + struct client *client = cmd->client; + + client->logged_out = TRUE; + client_send_line(client, "* BYE Logging out"); + + if (client->mailbox != NULL) { + /* this could be done at client_disconnect() as well, + but eg. mbox rewrite takes a while so the waiting is + better to happen before "OK" message. */ + imap_client_close_mailbox(client); + } + + client_send_tagline(cmd, "OK Logout completed."); + client_disconnect(client, "Logged out"); + return TRUE; +} |