summaryrefslogtreecommitdiffabout
path: root/kmicromail/libetpan/tests/frm.c
Unidiff
Diffstat (limited to 'kmicromail/libetpan/tests/frm.c') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libetpan/tests/frm.c158
1 files changed, 158 insertions, 0 deletions
diff --git a/kmicromail/libetpan/tests/frm.c b/kmicromail/libetpan/tests/frm.c
new file mode 100644
index 0000000..8ce9d9b
--- a/dev/null
+++ b/kmicromail/libetpan/tests/frm.c
@@ -0,0 +1,158 @@
1#include "option-parser.h"
2#include "frm-common.h"
3
4#include <libetpan/libetpan.h>
5
6#include <stdlib.h>
7#include <string.h>
8
9#define DEST_CHARSET "iso-8859-1"
10
11/* get the message list and display it */
12
13static void print_message_list(mailsession * session)
14{
15 int r;
16 uint32_t i;
17 struct mailmessage_list * env_list;
18 unsigned int count;
19
20 /* get the list of messages numbers of the folder */
21
22 r = mailsession_get_messages_list(session, &env_list);
23 if (r != MAIL_NO_ERROR) {
24 printf("error message list\n");
25 goto err;
26 }
27
28 /* get fields content of these messages */
29
30 r = mailsession_get_envelopes_list(session, env_list);
31 if (r != MAIL_NO_ERROR) {
32 printf("error envelopes list\n");
33 goto free_msg_list;
34 }
35
36 /* display all the messages */
37
38 count = 0;
39 for(i = 0 ; i < carray_count(env_list->msg_tab) ; i ++) {
40 mailmessage * msg;
41
42 msg = carray_get(env_list->msg_tab, i);
43
44 if (msg->msg_fields == NULL) {
45 printf("could not fetch envelope of message %i\n", i);
46 }
47 else {
48 print_mail_info("", msg);
49 count ++;
50 }
51 }
52 printf(" %i messages\n", count);
53
54 /* free structure */
55
56 mailmessage_list_free(env_list);
57
58 return;
59
60 free_msg_list:
61 mailmessage_list_free(env_list);
62 err:
63}
64
65int main(int argc, char ** argv)
66{
67 int r;
68 int driver;
69 char * server;
70 int port;
71 int connection_type;
72 char * user;
73 char * password;
74 int auth_type;
75 char * path;
76 char * cache_directory;
77 char * flags_directory;
78 struct mailstorage * storage;
79 struct mailfolder * folder;
80
81 /* get options */
82
83 r = parse_options(argc, argv,
84 &driver, &server, &port, &connection_type,
85 &user, &password, &auth_type,
86 &path, &cache_directory, &flags_directory);
87
88 /* build the storage structure */
89
90 storage = mailstorage_new(NULL);
91 if (storage == NULL) {
92 printf("error initializing storage\n");
93 goto free_opt;
94 }
95
96 r = init_storage(storage, driver, server, port, connection_type,
97 user, password, auth_type, path, cache_directory, flags_directory);
98 if (r != MAIL_NO_ERROR) {
99 printf("error initializing storage\n");
100 goto free_opt;
101 }
102
103 /* get the folder structure */
104
105 folder = mailfolder_new(storage, path, NULL);
106 if (folder == NULL) {
107 printf("error initializing folder\n");
108 goto free_storage;
109 }
110
111 r = mailfolder_connect(folder);
112 if (r != MAIL_NO_ERROR) {
113 printf("error connecting folder\n");
114 goto free_folder;
115 }
116
117 /* get and display the list of messages */
118
119 print_message_list(folder->fld_session);
120
121 mailfolder_free(folder);
122 mailstorage_free(storage);
123
124 if (server != NULL)
125 free(server);
126 if (user != NULL)
127 free(user);
128 if (password != NULL)
129 free(password);
130 if (path != NULL)
131 free(path);
132 if (cache_directory != NULL)
133 free(cache_directory);
134 if (flags_directory != NULL)
135 free(flags_directory);
136
137 return 0;
138
139 free_folder:
140 mailfolder_free(folder);
141 free_storage:
142 mailstorage_free(storage);
143 free_opt:
144 if (server != NULL)
145 free(server);
146 if (user != NULL)
147 free(user);
148 if (password != NULL)
149 free(password);
150 if (path != NULL)
151 free(path);
152 if (cache_directory != NULL)
153 free(cache_directory);
154 if (flags_directory != NULL)
155 free(flags_directory);
156 return -1;
157}
158