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

Annotation of /imapfilter/request.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.56 - (hide annotations)
Mon Feb 9 17:34:56 2004 UTC (20 years, 2 months ago) by lefcha
Branch: MAIN
Changes since 1.55: +0 -2 lines
File MIME type: text/plain
Move DEBUG from compilation #define variable to runtime command line option.

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

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26