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

Diff of /imapfilter/imap.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.41 by lefcha, Mon Feb 9 17:34:56 2004 UTC revision 1.42 by lefcha, Mon Feb 9 22:03:12 2004 UTC
# Line 14  static unsigned int tag = 0x1000;      /* Eve Line 14  static unsigned int tag = 0x1000;      /* Eve
14                                           * a unique [:alnum:] string. */                                           * a unique [:alnum:] string. */
15    
16    
17  unsigned int send_command(conn_t * conn, char *cmd);  unsigned int send_command(conn_t * conn, char *cmd, char *alt);
18  void send_command_cont(conn_t * conn, char *cmd);  void send_command_cont(conn_t * conn, char *cmd);
19    
20    
# Line 22  void send_command_cont(conn_t * conn, ch Line 22  void send_command_cont(conn_t * conn, ch
22   * Send to server data; a command.   * Send to server data; a command.
23   */   */
24  unsigned int  unsigned int
25  send_command(conn_t * conn, char *cmd)  send_command(conn_t * conn, char *cmd, char *alt)
26  {  {
27          debug("sending command (%s):\n\n%s\n",          debug("sending command (%s):\n\n%s\n",
28              (conn == &connpri ? "primary" : "auxiliary"), cmd);              (conn == &connpri ? "primary" : "auxiliary"), (alt ? alt : cmd));
29          verbose("%s: %s", (conn == &connpri ? "C" : "c"), cmd);          verbose("%s: %s", (conn == &connpri ? "C" : "c"), (alt ? alt : cmd));
30    
31          socket_write(conn, cmd);          socket_write(conn, cmd);
32    
# Line 64  imap_noop(conn_t * conn) Line 64  imap_noop(conn_t * conn)
64    
65          snprintf(obuf.data, obuf.size, "%04X NOOP\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X NOOP\r\n", tag);
66    
67          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
68  }  }
69    
70    
# Line 79  imap_capability(conn_t * conn) Line 79  imap_capability(conn_t * conn)
79    
80          snprintf(obuf.data, obuf.size, "%04X CAPABILITY\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X CAPABILITY\r\n", tag);
81    
82          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
83  }  }
84    
85    
# Line 95  imap_namespace(conn_t * conn) Line 95  imap_namespace(conn_t * conn)
95    
96          snprintf(obuf.data, obuf.size, "%04X NAMESPACE\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X NAMESPACE\r\n", tag);
97    
98          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
99  }  }
100    
101    
# Line 110  imap_logout(conn_t * conn) Line 110  imap_logout(conn_t * conn)
110    
111          snprintf(obuf.data, obuf.size, "%04X LOGOUT\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X LOGOUT\r\n", tag);
112    
113          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
114  }  }
115    
116    
# Line 125  imap_starttls(conn_t * conn) Line 125  imap_starttls(conn_t * conn)
125    
126          snprintf(obuf.data, obuf.size, "%04X STARTTLS\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X STARTTLS\r\n", tag);
127    
128          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
129  }  }
130    
131    
# Line 143  imap_authenticate(conn_t * conn, char *a Line 143  imap_authenticate(conn_t * conn, char *a
143          if (!cont) {          if (!cont) {
144                  snprintf(obuf.data, obuf.size, "%04X AUTHENTICATE %s\r\n",                  snprintf(obuf.data, obuf.size, "%04X AUTHENTICATE %s\r\n",
145                      tag, auth);                      tag, auth);
146                  return send_command(conn, obuf.data);                  return send_command(conn, obuf.data, NULL);
147          } else {          } else {
148                  send_command_cont(conn, auth);                  send_command_cont(conn, auth);
149                  return 0;                  return 0;
# Line 161  imap_login(conn_t * conn, char *user, ch Line 161  imap_login(conn_t * conn, char *user, ch
161          int r, n;          int r, n;
162          char *sbuf;          char *sbuf;
163    
164            /* Command to send to server. */
165          n = strlen("LOGIN") + strlen(user) + strlen(pass) + 18;          n = strlen("LOGIN") + strlen(user) + strlen(pass) + 18;
166          sbuf = (char *)smalloc(n);          sbuf = (char *)smalloc(n);
   
167          snprintf(sbuf, n, "%04X LOGIN \"%s\" \"%s\"\r\n", tag, user, pass);          snprintf(sbuf, n, "%04X LOGIN \"%s\" \"%s\"\r\n", tag, user, pass);
168    
169          r = send_command(conn, sbuf);          /* Alternate command with password shrouded for safe printing. */
170            reset_buffer(&obuf);
171            check_buffer(&obuf, strlen("LOGIN") + strlen(user) + 18);
172            snprintf(obuf.data, obuf.size, "%04X LOGIN \"%s\" \"\"\r\n", tag, user);
173    
174            r = send_command(conn, sbuf, obuf.data);
175    
176          sfree(sbuf);          sfree(sbuf);
177    
# Line 188  int imap_list(conn_t *conn, char *refer, Line 193  int imap_list(conn_t *conn, char *refer,
193          snprintf(obuf.data, obuf.size, "%04X LIST \"%s\" \"%s\"\r\n", tag,          snprintf(obuf.data, obuf.size, "%04X LIST \"%s\" \"%s\"\r\n", tag,
194              refer, mbox);              refer, mbox);
195    
196          r = send_command(conn, obuf.data);          r = send_command(conn, obuf.data, NULL);
197    
198          return r;          return r;
199  }*/  }*/
# Line 206  imap_subscribe(conn_t * conn, char *mbox Line 211  imap_subscribe(conn_t * conn, char *mbox
211    
212          snprintf(obuf.data, obuf.size, "%04X SUBSCRIBE \"%s\"\r\n", tag, mbox);          snprintf(obuf.data, obuf.size, "%04X SUBSCRIBE \"%s\"\r\n", tag, mbox);
213    
214          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
215  }  }
216    
217    
# Line 221  imap_examine(conn_t *conn, char *mbox) Line 226  imap_examine(conn_t *conn, char *mbox)
226    
227          snprintf(obuf.data, MEDIUM_CMD, "%04X EXAMINE \"%s\"\r\n", tag, mbox);          snprintf(obuf.data, MEDIUM_CMD, "%04X EXAMINE \"%s\"\r\n", tag, mbox);
228    
229          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
230  }*/  }*/
231    
232    
# Line 236  imap_select(conn_t * conn, char *mbox) Line 241  imap_select(conn_t * conn, char *mbox)
241    
242          snprintf(obuf.data, obuf.size, "%04X SELECT \"%s\"\r\n", tag, mbox);          snprintf(obuf.data, obuf.size, "%04X SELECT \"%s\"\r\n", tag, mbox);
243    
244          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
245  }  }
246    
247    
# Line 252  imap_status(conn_t * conn, char *mbox, c Line 257  imap_status(conn_t * conn, char *mbox, c
257    
258          snprintf(obuf.data, obuf.size, "%04X STATUS \"%s\" (%s)\r\n", tag, mbox, items);          snprintf(obuf.data, obuf.size, "%04X STATUS \"%s\" (%s)\r\n", tag, mbox, items);
259    
260          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
261  }  }
262    
263    
# Line 267  imap_create(conn_t * conn, char *mbox) Line 272  imap_create(conn_t * conn, char *mbox)
272    
273          snprintf(obuf.data, obuf.size, "%04X CREATE \"%s\"\r\n", tag, mbox);          snprintf(obuf.data, obuf.size, "%04X CREATE \"%s\"\r\n", tag, mbox);
274    
275          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
276  }  }
277    
278    
# Line 287  imap_search(conn_t * conn, char *charset Line 292  imap_search(conn_t * conn, char *charset
292          else          else
293                  snprintf(obuf.data, obuf.size, "%04X SEARCH %s\r\n", tag, search);                  snprintf(obuf.data, obuf.size, "%04X SEARCH %s\r\n", tag, search);
294    
295          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
296  }  }
297    
298    
# Line 302  imap_fetch(conn_t * conn, char *mesg, ch Line 307  imap_fetch(conn_t * conn, char *mesg, ch
307    
308          snprintf(obuf.data, obuf.size, "%04X FETCH %s %s\r\n", tag, mesg, items);          snprintf(obuf.data, obuf.size, "%04X FETCH %s %s\r\n", tag, mesg, items);
309    
310          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
311  }  }
312    
313    
# Line 320  imap_store(conn_t * conn, char *mesg, un Line 325  imap_store(conn_t * conn, char *mesg, un
325              tag, mesg, (mode == STORE_FLAG_REPLACE ? "" :              tag, mesg, (mode == STORE_FLAG_REPLACE ? "" :
326                  mode == STORE_FLAG_ADD ? "+" : "-"), flags);                  mode == STORE_FLAG_ADD ? "+" : "-"), flags);
327    
328          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
329  }  }
330    
331    
# Line 335  imap_copy(conn_t * conn, char *mesg, cha Line 340  imap_copy(conn_t * conn, char *mesg, cha
340    
341          snprintf(obuf.data, obuf.size, "%04X COPY %s \"%s\"\r\n", tag, mesg, mbox);          snprintf(obuf.data, obuf.size, "%04X COPY %s \"%s\"\r\n", tag, mesg, mbox);
342    
343          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
344  }  }
345    
346    
# Line 352  imap_append(conn_t * conn, char *mbox, c Line 357  imap_append(conn_t * conn, char *mbox, c
357          snprintf(obuf.data, obuf.size, "%04X APPEND \"%s\" (%s) \"%s\" {%d}\r\n",          snprintf(obuf.data, obuf.size, "%04X APPEND \"%s\" (%s) \"%s\" {%d}\r\n",
358              tag, mbox, flags, date, size);              tag, mbox, flags, date, size);
359    
360          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
361  }  }
362    
363    
# Line 368  imap_close(conn_t * conn) Line 373  imap_close(conn_t * conn)
373    
374          snprintf(obuf.data, obuf.size, "%04X CLOSE\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X CLOSE\r\n", tag);
375    
376          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
377  }  }
378    
379    
# Line 383  imap_expunge(conn_t * conn) Line 388  imap_expunge(conn_t * conn)
388    
389          snprintf(obuf.data, obuf.size, "%04X EXPUNGE\r\n", tag);          snprintf(obuf.data, obuf.size, "%04X EXPUNGE\r\n", tag);
390    
391          return send_command(conn, obuf.data);          return send_command(conn, obuf.data, NULL);
392  }  }

Legend:
Removed from v.1.41  
changed lines
  Added in v.1.42

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26