24 |
fprintf(stderr, "debug: sending command (%s):\n\n%s\n", |
fprintf(stderr, "debug: sending command (%s):\n\n%s\n", |
25 |
(sock == &sockpri ? "primary" : "auxiliary"), cmd); |
(sock == &sockpri ? "primary" : "auxiliary"), cmd); |
26 |
#endif |
#endif |
27 |
|
verbose("%s: %s", (sock == &sockpri ? "C" : "c"), cmd); |
28 |
|
|
29 |
socket_write(sock, cmd); |
socket_write(sock, cmd); |
30 |
|
|
41 |
{ |
{ |
42 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
43 |
|
|
|
verbose("Client request: NOOP\n"); |
|
|
|
|
44 |
snprintf(cmd, SMALL_CMD, "%X NOOP\r\n", tag); |
snprintf(cmd, SMALL_CMD, "%X NOOP\r\n", tag); |
45 |
|
|
46 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
57 |
{ |
{ |
58 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
59 |
|
|
|
verbose("Client request: CAPABILITY\n"); |
|
|
|
|
60 |
snprintf(cmd, SMALL_CMD, "%X CAPABILITY\r\n", tag); |
snprintf(cmd, SMALL_CMD, "%X CAPABILITY\r\n", tag); |
61 |
|
|
62 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
72 |
{ |
{ |
73 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
74 |
|
|
|
verbose("Client request: NAMESPACE\n"); |
|
|
|
|
75 |
snprintf(cmd, SMALL_CMD, "%X NAMESPACE\r\n", tag); |
snprintf(cmd, SMALL_CMD, "%X NAMESPACE\r\n", tag); |
76 |
|
|
77 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
86 |
{ |
{ |
87 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
88 |
|
|
|
verbose("Client request: LOGOUT\n"); |
|
|
|
|
89 |
snprintf(cmd, SMALL_CMD, "%X LOGOUT\r\n", tag); |
snprintf(cmd, SMALL_CMD, "%X LOGOUT\r\n", tag); |
90 |
|
|
91 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
101 |
{ |
{ |
102 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
103 |
|
|
|
verbose("Client request: AUTHENTICATE\n"); |
|
|
|
|
104 |
snprintf(cmd, MEDIUM_CMD, "%X AUTHENTICATE %s\r\n", tag, auth); |
snprintf(cmd, MEDIUM_CMD, "%X AUTHENTICATE %s\r\n", tag, auth); |
105 |
|
|
106 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
118 |
|
|
119 |
cmd = (char *)smalloc(MEDIUM_CMD); |
cmd = (char *)smalloc(MEDIUM_CMD); |
120 |
|
|
|
verbose("Client request: LOGIN\n"); |
|
|
|
|
121 |
snprintf(cmd, MEDIUM_CMD, "%X LOGIN \"%s\" \"%s\"\r\n", tag, user, |
snprintf(cmd, MEDIUM_CMD, "%X LOGIN \"%s\" \"%s\"\r\n", tag, user, |
122 |
pass); |
pass); |
123 |
|
|
138 |
int r; |
int r; |
139 |
char cmd[BIG_CMD]; |
char cmd[BIG_CMD]; |
140 |
|
|
|
verbose("Client request: LIST\n"); |
|
|
|
|
141 |
snprintf(cmd, MEDIUM_CMD, "%X LIST \"%s\" \"%s\"\r\n", tag, refer, |
snprintf(cmd, MEDIUM_CMD, "%X LIST \"%s\" \"%s\"\r\n", tag, refer, |
142 |
mbox); |
mbox); |
143 |
|
|
156 |
{ |
{ |
157 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
158 |
|
|
|
verbose("Client request: SUBSCRIBE\n"); |
|
|
|
|
159 |
snprintf(cmd, MEDIUM_CMD, "%X SUBSCRIBE \"%s\"\r\n", tag, mbox); |
snprintf(cmd, MEDIUM_CMD, "%X SUBSCRIBE \"%s\"\r\n", tag, mbox); |
160 |
|
|
161 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
170 |
{ |
{ |
171 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
172 |
|
|
|
verbose("Client request: EXAMINE %s\n", mbox); |
|
|
|
|
173 |
snprintf(cmd, MEDIUM_CMD, "%X EXAMINE \"%s\"\r\n", tag, mbox); |
snprintf(cmd, MEDIUM_CMD, "%X EXAMINE \"%s\"\r\n", tag, mbox); |
174 |
|
|
175 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
184 |
{ |
{ |
185 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
186 |
|
|
|
verbose("Client request: SELECT\n"); |
|
|
|
|
187 |
snprintf(cmd, SMALL_CMD, "%X SELECT \"%s\"\r\n", tag, mbox); |
snprintf(cmd, SMALL_CMD, "%X SELECT \"%s\"\r\n", tag, mbox); |
188 |
|
|
189 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
198 |
{ |
{ |
199 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
200 |
|
|
|
verbose("Client request: STATUS\n"); |
|
|
|
|
201 |
snprintf(cmd, MEDIUM_CMD, "%X STATUS \"%s\" (%s)\r\n", tag, mbox, items); |
snprintf(cmd, MEDIUM_CMD, "%X STATUS \"%s\" (%s)\r\n", tag, mbox, items); |
202 |
|
|
203 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
212 |
{ |
{ |
213 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
214 |
|
|
|
verbose("Client request: CREATE\n"); |
|
|
|
|
215 |
snprintf(cmd, MEDIUM_CMD, "%X CREATE \"%s\"\r\n", tag, mbox); |
snprintf(cmd, MEDIUM_CMD, "%X CREATE \"%s\"\r\n", tag, mbox); |
216 |
|
|
217 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
226 |
{ |
{ |
227 |
char cmd[BIG_CMD]; |
char cmd[BIG_CMD]; |
228 |
|
|
|
verbose("Client request: SEARCH\n"); |
|
|
|
|
229 |
if (*charset) |
if (*charset) |
230 |
snprintf(cmd, BIG_CMD, "%X SEARCH CHARSET \"%s\" %s\r\n", tag, |
snprintf(cmd, BIG_CMD, "%X SEARCH CHARSET \"%s\" %s\r\n", tag, |
231 |
charset, search); |
charset, search); |
244 |
{ |
{ |
245 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
246 |
|
|
|
verbose("Client request: FETCH\n"); |
|
|
|
|
247 |
snprintf(cmd, MEDIUM_CMD, "%X FETCH %s %s\r\n", tag, mesg, items); |
snprintf(cmd, MEDIUM_CMD, "%X FETCH %s %s\r\n", tag, mesg, items); |
248 |
|
|
249 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
258 |
{ |
{ |
259 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
260 |
|
|
|
verbose("Client request: STORE\n"); |
|
|
|
|
261 |
snprintf(cmd, MEDIUM_CMD, "%X STORE %s %sFLAGS.SILENT (%s)\r\n", tag, |
snprintf(cmd, MEDIUM_CMD, "%X STORE %s %sFLAGS.SILENT (%s)\r\n", tag, |
262 |
mesg, (mode == STORE_FLAG_REPLACE ? "" : |
mesg, (mode == STORE_FLAG_REPLACE ? "" : |
263 |
mode == STORE_FLAG_ADD ? "+" : "-"), flags); |
mode == STORE_FLAG_ADD ? "+" : "-"), flags); |
274 |
{ |
{ |
275 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
276 |
|
|
|
verbose("Client request: COPY\n"); |
|
|
|
|
277 |
snprintf(cmd, MEDIUM_CMD, "%X COPY %s \"%s\"\r\n", tag, mesg, mbox); |
snprintf(cmd, MEDIUM_CMD, "%X COPY %s \"%s\"\r\n", tag, mesg, mbox); |
278 |
|
|
279 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
288 |
{ |
{ |
289 |
char cmd[MEDIUM_CMD]; |
char cmd[MEDIUM_CMD]; |
290 |
|
|
|
verbose("Client request: APPEND\n"); |
|
|
|
|
291 |
snprintf(cmd, MEDIUM_CMD, "%X APPEND \"%s\" {%d}\r\n", tag, mbox, size); |
snprintf(cmd, MEDIUM_CMD, "%X APPEND \"%s\" {%d}\r\n", tag, mbox, size); |
292 |
|
|
293 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
303 |
{ |
{ |
304 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
305 |
|
|
|
verbose("Client request: CLOSE\n"); |
|
|
|
|
306 |
snprintf(cmd, SMALL_CMD, "%X CLOSE\r\n", tag); |
snprintf(cmd, SMALL_CMD, "%X CLOSE\r\n", tag); |
307 |
|
|
308 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |
317 |
{ |
{ |
318 |
char cmd[SMALL_CMD]; |
char cmd[SMALL_CMD]; |
319 |
|
|
|
verbose("Client request: EXPUNGE\n"); |
|
|
|
|
320 |
snprintf(cmd, SMALL_CMD, "%X EXPUNGE\r\n", tag); |
snprintf(cmd, SMALL_CMD, "%X EXPUNGE\r\n", tag); |
321 |
|
|
322 |
return send_command(sock, cmd); |
return send_command(sock, cmd); |