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

Annotation of /imapfilter/request.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.54 - (hide annotations)
Thu Jul 31 15:53:19 2003 UTC (20 years, 8 months ago) by lefcha
Branch: MAIN
CVS Tags: release-0_9
Branch point for: release-0_9-patches
Changes since 1.53: +2 -865 lines
File MIME type: text/plain
Broke up program files and created some new header files.

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

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26