107 |
|
|
108 |
|
|
109 |
/* Account. */ |
/* Account. */ |
110 |
typedef struct account_t { |
typedef struct account { |
111 |
char server[SERVER_LEN]; /* Hostname of mail server. */ |
char server[SERVER_LEN]; /* Hostname of mail server. */ |
112 |
unsigned short int port; /* Port to connect. */ |
unsigned short int port; /* Port to connect. */ |
113 |
|
|
114 |
char username[USERNAME_LEN];/* Username. */ |
char username[USERNAME_LEN];/* Username. */ |
115 |
char password[PASSWORD_LEN];/* Password. */ |
char password[PASSWORD_LEN];/* Password. */ |
116 |
|
int nopassword; |
117 |
#ifdef SSL_TLS |
#ifdef SSL_TLS |
118 |
unsigned int ssl; /* Secure Socket Layer support. */ |
unsigned int ssl; /* Secure Socket Layer support. */ |
119 |
#endif |
#endif |
120 |
struct mbox_t *mboxes; /* Mailboxes. */ |
struct mbox *mboxes; /* Mailboxes. */ |
121 |
struct account_t *next; /* Next node of linked list. */ |
struct account *next; /* Next node of linked list. */ |
122 |
} account_t; |
} account_t; |
123 |
|
|
124 |
/* Mailbox. */ |
/* Mailbox. */ |
125 |
typedef struct mbox_t { |
typedef struct mbox { |
126 |
char name[MBOX_NAME_LEN]; /* Name of mailbox. */ |
char name[MBOX_NAME_LEN]; /* Name of mailbox. */ |
127 |
struct filter_t *filters[MBOX_FILTERS_MAX]; /* Filters to be applied. */ |
struct filter *filters[MBOX_FILTERS_MAX]; /* Filters to be applied. */ |
128 |
struct mbox_t *next; /* Next node of linked list. */ |
struct mbox *next; /* Next node of linked list. */ |
129 |
} mbox_t; |
} mbox_t; |
130 |
|
|
131 |
/* Group of mailboxes. */ |
/* Group of mailboxes. */ |
132 |
typedef struct mboxgrp_t { |
typedef struct mboxgrp { |
133 |
char key[KEY_LEN]; /* Alias of mailbox group. */ |
char key[KEY_LEN]; /* Alias of mailbox group. */ |
134 |
struct mbox_t *mboxes[MBOXGRP_MBOXES_MAX]; /* Mailboxes of group. */ |
struct mbox *mboxes[MBOXGRP_MBOXES_MAX]; /* Mailboxes of group. */ |
135 |
struct mboxgrp_t *left, *right; /* Left/right nodes of tree. */ |
struct mboxgrp *left, *right; /* Left/right nodes of tree. */ |
136 |
} mboxgrp_t; |
} mboxgrp_t; |
137 |
|
|
138 |
/* Filter. */ |
/* Filter. */ |
139 |
typedef struct filter_t { |
typedef struct filter { |
140 |
char key[KEY_LEN]; /* Alias of filter. */ |
char key[KEY_LEN]; /* Alias of filter. */ |
141 |
unsigned int mode; /* AND/OR mode. */ |
unsigned int mode; /* AND/OR mode. */ |
142 |
|
|
146 |
char args[ARGS_LEN]; /* Action's arguments. */ |
char args[ARGS_LEN]; /* Action's arguments. */ |
147 |
} action; |
} action; |
148 |
|
|
149 |
struct mask_t *masks; /* Masks comprising the filter. */ |
struct mask *masks; /* Masks comprising the filter. */ |
150 |
unsigned int masknum; /* Total number of masks. */ |
unsigned int masknum; /* Total number of masks. */ |
151 |
unsigned int masklen; /* Total length of body of masks. */ |
unsigned int masklen; /* Total length of body of masks. */ |
152 |
|
|
153 |
struct filter_t *left, *right; /* Left/right node of tree. */ |
struct filter *left, *right;/* Left/right node of tree. */ |
154 |
} filter_t; |
} filter_t; |
155 |
|
|
156 |
/* Mask. */ |
/* Mask. */ |
157 |
typedef struct mask_t { |
typedef struct mask { |
158 |
char body[MASK_BODY_LEN]; /* Body of mask. */ |
char body[MASK_BODY_LEN]; /* Body of mask. */ |
159 |
unsigned int type; /* AND/OR type. */ |
unsigned int type; /* AND/OR type. */ |
160 |
struct mask_t *next; /* Next node of linked list. */ |
struct mask *next; /* Next node of linked list. */ |
161 |
} mask_t; |
} mask_t; |
162 |
|
|
163 |
|
|
197 |
void string_upper(char *str, size_t size); |
void string_upper(char *str, size_t size); |
198 |
int string_decode(char *str); |
int string_decode(char *str); |
199 |
|
|
200 |
|
char *apply_namespace(char *mbox, char *prefix, char delim); |
201 |
|
|
202 |
#endif /* DATA_H */ |
#endif /* DATA_H */ |