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

Annotation of /imapfilter/request.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.55 - (hide annotations)
Fri Aug 8 00:18:45 2003 UTC (20 years, 7 months ago) by lefcha
Branch: MAIN
Changes since 1.54: +0 -2 lines
File MIME type: text/plain
Corrected header includes.

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

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26