2 |
#define ACCOUNT_H |
#define ACCOUNT_H |
3 |
|
|
4 |
|
|
5 |
#include <sys/types.h> /* IEEE Std 1003.1-2001 non-conformance. */ |
#include <sys/types.h> /* IEEE Std 1003.1-2001 transitional. */ |
6 |
#include <regex.h> |
#include <regex.h> |
7 |
|
|
8 |
#include "config.h" |
#include "config.h" |
9 |
|
|
10 |
|
|
11 |
/* String lengths of account settings. */ |
/* String lengths of account settings. */ |
12 |
#define SERVER_LEN (635 + 1) /* Section 2.5 RFC 1123. */ |
#define SERVER_LEN (635 + 1) /* Section 2.5 RFC 1123. */ |
13 |
#define USERNAME_LEN 128 |
#define USER_LEN 128 |
14 |
#define PASSWORD_LEN 128 |
#define PASS_LEN 128 |
15 |
|
|
16 |
/* Attributes of a password. */ |
/* Attributes of a password. */ |
17 |
#define PASSWORD_NONE 0 |
#define PASS_ATTR_NONE 0 |
18 |
#define PASSWORD_PLAIN 1 |
#define PASS_ATTR_PLAIN 1 |
19 |
#define PASSWORD_ENCRYPTED 2 |
#define PASS_ATTR_CRYPT 2 |
20 |
|
|
21 |
/* Secure Socket Layer protocols. */ |
/* Secure Socket Layer protocols. */ |
22 |
#define SSL_DISABLED 0 |
#define SSL_DISABLED 0 |
23 |
#define SSL_SSL_V2 1 |
#define SSL_SSL_V2 1 |
24 |
#define SSL_SSL_V3 2 |
#define SSL_SSL_V3 2 |
25 |
#define SSL_TLS_V1 3 |
#define SSL_TLS_V1 3 |
26 |
|
|
27 |
/* String length of keys (aliases). */ |
/* String length of keys (aliases). */ |
28 |
#define KEY_LEN 32 |
#define KEY_LEN 32 |
29 |
|
|
30 |
/* String length of mailbox's name. */ |
/* String length of mailbox's name. */ |
31 |
#define MBOX_NAME_LEN 128 |
#define MBOX_LEN 128 |
32 |
|
|
33 |
/* Maximum filters assigned to a mailbox. */ |
/* Maximum filters assigned to a mailbox. */ |
34 |
#define MBOX_FILTERS_MAX 64 |
#define MBOX_FILTERS_MAX 64 |
35 |
|
|
36 |
/* Maximum mailboxes contained in a mailbox-group. */ |
/* Maximum mailboxes contained in a mailbox-group. */ |
37 |
#define MBOXGRP_MBOXES_MAX 64 |
#define MBOXGRP_MBOXES_MAX 64 |
38 |
|
|
39 |
|
|
40 |
/* Account. */ |
/* Account. */ |
42 |
char key[KEY_LEN]; /* Alias of account. */ |
char key[KEY_LEN]; /* Alias of account. */ |
43 |
char server[SERVER_LEN];/* Hostname of mail server. */ |
char server[SERVER_LEN];/* Hostname of mail server. */ |
44 |
unsigned short int port;/* Port to connect. */ |
unsigned short int port;/* Port to connect. */ |
45 |
char username[USERNAME_LEN]; /* Username. */ |
char user[USER_LEN]; /* Username. */ |
46 |
char *password; /* Password. */ |
char *pass; /* Password. */ |
47 |
int passwdattr; /* Password attributes. */ |
int pass_attr; /* Password attributes. */ |
48 |
unsigned int ssl; /* Secure Socket Layer support. */ |
unsigned int ssl; /* Secure Socket Layer support. */ |
49 |
struct mbox *mboxes; /* Mailboxes. */ |
struct mbox *mboxes; /* Mailboxes. */ |
50 |
struct account *next; /* Next node of linked list. */ |
struct account *next; /* Next node of linked list. */ |
52 |
|
|
53 |
/* Mailbox. */ |
/* Mailbox. */ |
54 |
typedef struct mbox { |
typedef struct mbox { |
55 |
char name[MBOX_NAME_LEN]; /* Name of mailbox. */ |
char name[MBOX_LEN]; /* Name of mailbox. */ |
56 |
struct filter *filters[MBOX_FILTERS_MAX]; /* Filters to be |
struct filter *filters[MBOX_FILTERS_MAX]; /* Filters to be |
57 |
* applied. */ |
* applied. */ |
58 |
struct mbox *next; /* Next node of linked list. */ |
struct mbox *next; /* Next node of linked list. */ |