cmd-unselect.c revision 6ef7e31619edfaa17ed044b45861d106a86191ef
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen/* Copyright (C) 2002 Timo Sirainen */
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen#include "common.h"
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen#include "commands.h"
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainenbool cmd_unselect(struct client_command_context *cmd)
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen{
e60a349c641bb2f4723e4a395a25f55531682d2bTimo Sirainen struct client *client = cmd->client;
88ade75211d86266619d50aab44ccbdb7a151cbeTimo Sirainen struct mailbox *mailbox = client->mailbox;
82d99ea82e0f87cd47ea196c2245f4c604fcc7a8Timo Sirainen struct mail_storage *storage;
88ade75211d86266619d50aab44ccbdb7a151cbeTimo Sirainen
e60a349c641bb2f4723e4a395a25f55531682d2bTimo Sirainen if (!client_verify_open_mailbox(cmd))
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen return TRUE;
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen client->mailbox = NULL;
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen
82d99ea82e0f87cd47ea196c2245f4c604fcc7a8Timo Sirainen storage = mailbox_get_storage(mailbox);
82d99ea82e0f87cd47ea196c2245f4c604fcc7a8Timo Sirainen if (mailbox_close(mailbox) < 0)
82d99ea82e0f87cd47ea196c2245f4c604fcc7a8Timo Sirainen client_send_untagged_storage_error(client, storage);
88ade75211d86266619d50aab44ccbdb7a151cbeTimo Sirainen
e60a349c641bb2f4723e4a395a25f55531682d2bTimo Sirainen client_send_tagline(cmd, "OK Unselect completed.");
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen return TRUE;
e554622c1927eb3332500c962f46cba77e8c94a5Timo Sirainen}