comparison src/lib-storage/mail-storage.c @ 1138:340dea0150bf HEAD

Added client_workarounds setting, with currently one workaround for OE6.
author Timo Sirainen <tss@iki.fi>
date Tue, 11 Feb 2003 12:30:29 +0200
parents fd8888f6f037
children 058f6c26f405
comparison
equal deleted inserted replaced
1137:5b5716af5aa8 1138:340dea0150bf
2 2
3 #include "lib.h" 3 #include "lib.h"
4 #include "ioloop.h" 4 #include "ioloop.h"
5 #include "mail-storage.h" 5 #include "mail-storage.h"
6 6
7 #include <stdlib.h>
7 #include <time.h> 8 #include <time.h>
8 #include <ctype.h> 9 #include <ctype.h>
9 10
10 /* Message to show to users when critical error occurs */ 11 /* Message to show to users when critical error occurs */
11 #define CRITICAL_MSG "Internal error [%Y-%m-%d %H:%M:%S]" 12 #define CRITICAL_MSG "Internal error [%Y-%m-%d %H:%M:%S]"
13 struct mail_storage_list { 14 struct mail_storage_list {
14 struct mail_storage_list *next; 15 struct mail_storage_list *next;
15 struct mail_storage *storage; 16 struct mail_storage *storage;
16 }; 17 };
17 18
19 struct client_workaround_list {
20 const char *name;
21 enum client_workarounds num;
22 };
23
24 struct client_workaround_list client_workaround_list[] = {
25 { "oe6-fetch-no-newmail", WORKAROUND_OE6_FETCH_NO_NEWMAIL },
26 { NULL, 0 }
27 };
28
18 static struct mail_storage_list *storages = NULL; 29 static struct mail_storage_list *storages = NULL;
30 enum client_workarounds client_workarounds = 0;
31
32 void mail_storage_init(void)
33 {
34 struct client_workaround_list *list;
35 const char *env;
36 const char *const *str;
37
38 env = getenv("CLIENT_WORKAROUNDS");
39 if (env == NULL)
40 return;
41
42 for (str = t_strsplit(env, " "); *str != NULL; str++) {
43 list = client_workaround_list;
44 for (; list->name != NULL; list++) {
45 if (strcasecmp(*str, list->name) == 0)
46 client_workarounds |= list->num;
47 else
48 i_fatal("Unknown client workaround: %s", *str);
49 }
50 }
51 }
19 52
20 void mail_storage_class_register(struct mail_storage *storage_class) 53 void mail_storage_class_register(struct mail_storage *storage_class)
21 { 54 {
22 struct mail_storage_list *list, **pos; 55 struct mail_storage_list *list, **pos;
23 56