Mercurial > dovecot > original-hg > dovecot-1.2
diff src/pop3/client.c @ 1363:383e4b9e347c HEAD
Crashfix if there was some errors while opening mailbox
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 16 Apr 2003 17:24:12 +0300 |
parents | d805c2f1d6a9 |
children | ac714d7d0b67 |
line wrap: on
line diff
--- a/src/pop3/client.c Wed Apr 16 16:57:21 2003 +0300 +++ b/src/pop3/client.c Wed Apr 16 17:24:12 2003 +0300 @@ -103,7 +103,7 @@ return FALSE; } -struct client *client_create(int hin, int hout, struct mailbox *mailbox) +struct client *client_create(int hin, int hout, struct mail_storage *storage) { struct client *client; @@ -119,21 +119,24 @@ client->io = io_add(hin, IO_READ, client_input, client); client->last_input = ioloop_time; + client->storage = storage; - client->storage = mailbox->storage; - client->mailbox = mailbox; + storage->set_callbacks(storage, &mail_storage_callbacks, client); - mailbox->storage->set_callbacks(mailbox->storage, - &mail_storage_callbacks, client); + client->mailbox = storage->open_mailbox(storage, "INBOX", FALSE, FALSE); + if (client->mailbox == NULL) { + client_send_line(client, "-ERR No INBOX for user."); + return NULL; + } + + if (!init_mailbox(client)) { + client_destroy(client); + return NULL; + } i_assert(my_client == NULL); my_client = client; - if (!init_mailbox(client)) { - client_destroy(client); - client = NULL; - } - return client; }