/[imapfilter]/imapfilter/request.c
ViewVC logotype

Annotation of /imapfilter/request.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.58 - (hide annotations)
Fri Feb 13 12:17:16 2004 UTC (20 years, 1 month ago) by lefcha
Branch: MAIN
Changes since 1.57: +28 -28 lines
File MIME type: text/plain
Stylistic changes.

1 lefcha 1.1 #include "config.h"
2     #include "imapfilter.h"
3    
4    
5 lefcha 1.58 extern connection_t connpri, connaux;
6     extern options_t opts;
7 lefcha 1.1
8 lefcha 1.3
9 lefcha 1.1 /*
10     * Test/ping server.
11     */
12 lefcha 1.42 int
13 lefcha 1.58 test(connection_t * conn)
14 lefcha 1.1 {
15 lefcha 1.58 return response_generic(conn, imap_noop(conn));
16 lefcha 1.1 }
17    
18 lefcha 1.10
19 lefcha 1.1 /*
20 lefcha 1.10 * Check server's capabilities.
21 lefcha 1.1 */
22 lefcha 1.42 int
23 lefcha 1.58 check_capabilities(connection_t * conn)
24 lefcha 1.1 {
25 lefcha 1.58 conn->caps = CAPS_NONE;
26 lefcha 1.18
27 lefcha 1.58 return response_capability(conn, imap_capability(conn));
28 lefcha 1.1 }
29    
30    
31     /*
32 lefcha 1.18 * Get namespace of mail server's mailboxes.
33     */
34 lefcha 1.42 int
35 lefcha 1.58 check_namespace(connection_t * conn)
36 lefcha 1.18 {
37 lefcha 1.58 conn->ns.prefix[0] = conn->ns.delim = '\0';
38 lefcha 1.18
39 lefcha 1.58 if (!opts.namespace || !(conn->caps & CAPS_NAMESPACE))
40 lefcha 1.42 return 0;
41     else
42 lefcha 1.58 return response_namespace(conn, imap_namespace(conn));
43 lefcha 1.18 }
44    
45    
46 lefcha 1.51 #ifdef SSL_TLS
47     /*
48     * Begin TLS negotiation (STARTTLS).
49     */
50     int
51 lefcha 1.58 negotiate_tls(connection_t * conn)
52 lefcha 1.51 {
53     int r;
54    
55 lefcha 1.58 r = response_generic(conn, imap_starttls(conn));
56 lefcha 1.54 init_secure_connection(conn, SSL_TLS_V1);
57 lefcha 1.51
58     return r;
59     }
60     #endif
61    
62    
63 lefcha 1.18 /*
64 lefcha 1.10 * Login to server.
65 lefcha 1.8 */
66 lefcha 1.42 int
67 lefcha 1.58 login(connection_t * conn, char *user, char *pass)
68 lefcha 1.8 {
69 lefcha 1.58 return response_generic(conn, imap_login(conn, user, pass));
70 lefcha 1.21 }
71    
72    
73    
74     /*
75     * Check if a mailbox exists.
76     */
77 lefcha 1.42 int
78 lefcha 1.58 check_mailbox(connection_t * conn, char *mbox)
79 lefcha 1.21 {
80 lefcha 1.58 return response_generic(conn, imap_status(conn, mbox, "MESSAGES"));
81 lefcha 1.8 }
82    
83 lefcha 1.18
84 lefcha 1.8 /*
85 lefcha 1.3 * Open mailbox in read-write mode.
86 lefcha 1.1 */
87 lefcha 1.42 int
88 lefcha 1.58 select_mailbox(connection_t * conn, char *mbox)
89 lefcha 1.1 {
90 lefcha 1.42 int r;
91 lefcha 1.5
92 lefcha 1.53 if (mailbox_status(conn, mbox) == -2)
93 lefcha 1.42 return -2; /* No messages exist. No filters need to be
94     * applied. */
95 lefcha 1.5
96 lefcha 1.58 r = response_select(conn, imap_select(conn,
97     apply_namespace(mbox, conn->ns.prefix, conn->ns.delim)));
98 lefcha 1.5
99 lefcha 1.58 log_info(LOG_MBOX, mbox);
100 lefcha 1.5
101 lefcha 1.42 return r;
102 lefcha 1.1 }
103    
104    
105     /*
106 lefcha 1.3 * Get mailbox's status.
107 lefcha 1.1 */
108 lefcha 1.42 int
109 lefcha 1.58 mailbox_status(connection_t * conn, char *mbox)
110 lefcha 1.1 {
111 lefcha 1.58 return response_status(conn, imap_status(conn,
112     apply_namespace(mbox, conn->ns.prefix, conn->ns.delim),
113 lefcha 1.42 "MESSAGES RECENT UNSEEN"), mbox);
114 lefcha 1.16 }
115 lefcha 1.5
116 lefcha 1.9
117 lefcha 1.1 /*
118     * Close examined/selected mailbox.
119     */
120 lefcha 1.42 int
121 lefcha 1.58 close_mailbox(connection_t * conn)
122 lefcha 1.1 {
123 lefcha 1.58 return response_generic(conn, imap_close(conn));
124 lefcha 1.1 }
125    
126    
127     /*
128     * Logout from server.
129     */
130 lefcha 1.42 int
131 lefcha 1.58 logout(connection_t * conn)
132 lefcha 1.1 {
133 lefcha 1.58 return response_logout(conn, imap_logout(conn));
134 lefcha 1.1 }

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26