[dovecot-cvs] dovecot/src/pop3 client.c,1.5,1.6 client.h,1.2,1.3 main.c,1.3,1.4
cras at procontrol.fi
cras at procontrol.fi
Wed Apr 16 18:24:14 EEST 2003
- Previous message: [dovecot-cvs] dovecot/src/lib-index/maildir Makefile.am,1.4,1.5 maildir-build.c,1.20,1.21 maildir-index.h,1.16,1.17 maildir-update.c,1.15,NONE
- Next message: [dovecot-cvs] dovecot/src/pop3 main.c,1.4,1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/pop3
In directory danu:/tmp/cvs-serv9287/pop3
Modified Files:
client.c client.h main.c
Log Message:
Crashfix if there was some errors while opening mailbox
Index: client.c
===================================================================
RCS file: /home/cvs/dovecot/src/pop3/client.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- client.c 30 Jan 2003 19:52:39 -0000 1.5
+++ client.c 16 Apr 2003 14:24:12 -0000 1.6
@@ -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,20 +119,23 @@
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;
-
- mailbox->storage->set_callbacks(mailbox->storage,
- &mail_storage_callbacks, client);
+ storage->set_callbacks(storage, &mail_storage_callbacks, client);
- i_assert(my_client == NULL);
- my_client = 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);
- client = NULL;
+ return NULL;
}
+
+ i_assert(my_client == NULL);
+ my_client = client;
return client;
}
Index: client.h
===================================================================
RCS file: /home/cvs/dovecot/src/pop3/client.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- client.h 27 Jan 2003 06:44:49 -0000 1.2
+++ client.h 16 Apr 2003 14:24:12 -0000 1.3
@@ -27,7 +27,7 @@
/* Create new client with specified input/output handles. socket specifies
if the handle is a socket. */
-struct client *client_create(int hin, int hout, struct mailbox *mailbox);
+struct client *client_create(int hin, int hout, struct mail_storage *storage);
void client_destroy(struct client *client);
/* Disconnect client connection */
Index: main.c
===================================================================
RCS file: /home/cvs/dovecot/src/pop3/main.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- main.c 10 Apr 2003 22:37:25 -0000 1.3
+++ main.c 16 Apr 2003 14:24:12 -0000 1.4
@@ -56,11 +56,10 @@
restrict_access_by_env(!IS_STANDALONE());
}
-static void main_init(void)
+static int main_init(void)
{
struct client *client;
struct mail_storage *storage;
- struct mailbox *mailbox;
const char *mail;
lib_init_signals(sig_quit);
@@ -95,11 +94,8 @@
}
}
- mailbox = storage->open_mailbox(storage, "INBOX", FALSE, FALSE);
- if (mailbox == NULL)
- i_fatal("No INBOX for user");
-
- client = client_create(0, 1, mailbox);
+ client = client_create(0, 1, storage);
+ return client != NULL;
}
static void main_deinit(void)
@@ -129,8 +125,8 @@
process_title_init(argv, envp);
ioloop = io_loop_create(system_pool);
- main_init();
- io_loop_run(ioloop);
+ if (main_init())
+ io_loop_run(ioloop);
main_deinit();
io_loop_destroy(ioloop);
- Previous message: [dovecot-cvs] dovecot/src/lib-index/maildir Makefile.am,1.4,1.5 maildir-build.c,1.20,1.21 maildir-index.h,1.16,1.17 maildir-update.c,1.15,NONE
- Next message: [dovecot-cvs] dovecot/src/pop3 main.c,1.4,1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list