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

Diff of /imapfilter/request.c

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

revision 1.32 by lefcha, Sat Jul 27 14:56:51 2002 UTC revision 1.32.2.6 by lefcha, Sat Nov 9 16:13:26 2002 UTC
# Line 124  int close_mailbox(int *sock) Line 124  int close_mailbox(int *sock)
124   */   */
125  int logout(int *sock)  int logout(int *sock)
126  {  {
127      return server_response(sock, imap_logout(sock));      return logout_response(sock, imap_logout(sock));
128  }  }
129    
130    
# Line 433  int action_delete(char *mesgs, char *arg Line 433  int action_delete(char *mesgs, char *arg
433    
434      m = mcp = convert_messages(mesgs);      m = mcp = convert_messages(mesgs);
435    
436      while ((tok = strsep(&m, " ")))      tok = strtok_r(m, " ", &m);
437        while (tok) {
438          server_response(&sockpri, imap_store(&sockpri, tok,          server_response(&sockpri, imap_store(&sockpri, tok,
439                                               STORE_FLAG_ADD, "\\Deleted"));                                               STORE_FLAG_ADD, "\\Deleted"));
440    
441            tok = strtok_r(NULL, " ", &m);
442        }
443    
444      if (options & OPTION_EXPUNGE)      if (options & OPTION_EXPUNGE)
445          server_response(&sockpri, imap_expunge(&sockpri));          server_response(&sockpri, imap_expunge(&sockpri));
446    
# Line 458  int action_copy(char *mesgs, char *destm Line 462  int action_copy(char *mesgs, char *destm
462    
463      m = mcp = convert_messages(mesgs);      m = mcp = convert_messages(mesgs);
464    
465      while ((tok = strsep(&m, " "))) {      tok = strtok_r(m, " ", &m);
466        while (tok) {
467          if ((r = copy_response(&sockpri,          if ((r = copy_response(&sockpri,
468                                 imap_copy(&sockpri, tok, destmbox))) ==                                 imap_copy(&sockpri, tok, destmbox))) ==
469              RESPONSE_TRYCREATE)              RESPONSE_TRYCREATE)
# Line 469  int action_copy(char *mesgs, char *destm Line 474  int action_copy(char *mesgs, char *destm
474                  r = copy_response(&sockpri,                  r = copy_response(&sockpri,
475                                    imap_copy(&sockpri, tok, destmbox));                                    imap_copy(&sockpri, tok, destmbox));
476              }              }
477            tok = strtok_r(NULL, " ", &m);
478      }      }
479    
480      xfree(mcp);      xfree(mcp);
# Line 494  int action_move(char *mesgs, char *destm Line 500  int action_move(char *mesgs, char *destm
500   */   */
501  int action_rcopy(char *mesgs, account_t * destacc, char *destmbox, char *args)  int action_rcopy(char *mesgs, account_t * destacc, char *destmbox, char *args)
502  {  {
503      int r, at, ft;      int r, ta, tf;
504      char *tok, *m, *mcp, *ndm;      char *tok, *m, *mcp, *ndm;
505      unsigned int n;      unsigned int n;
506      char buf[RESPONSE_BUF];      char buf[RESPONSE_BUF * 2];
507    
508      if (init_connection(&sockaux, destacc->server, destacc->port,      if (init_connection(&sockaux, destacc->server, destacc->port,
509                          destacc->ssl))                          destacc->ssl))
# Line 542  int action_rcopy(char *mesgs, account_t Line 548  int action_rcopy(char *mesgs, account_t
548      }      }
549      m = mcp = xstrdup(mesgs);      m = mcp = xstrdup(mesgs);
550    
551      while ((tok = strsep(&m, " "))) {      tok = strtok_r(m, " ", &m);
552        while (tok) {
553          fetchsize_response(&sockpri, &n,          fetchsize_response(&sockpri, &n,
554                             imap_fetch(&sockpri, tok, "RFC822.SIZE"));                             imap_fetch(&sockpri, tok, "RFC822.SIZE"));
555    
556          at = imap_append(&sockaux, ndm, n);          ta = imap_append(&sockaux, ndm, n);
557    
558          fetch_response(&sockpri, 1, NULL, 0);          fetch_response(&sockpri, 0, 1, NULL);
559          ft = imap_fetch(&sockpri, tok, "RFC822.HEADER");          tf = imap_fetch(&sockpri, tok, "RFC822.HEADER");
560          do {          do {
561              r = fetch_response(&sockpri, 0, buf, ft);              r = fetch_response(&sockpri, tf, 0, buf);
562              socket_write(&sockaux, buf);              socket_write(&sockaux, buf);
563          } while (r == RESPONSE_NONE);          } while (r == RESPONSE_NONE);
564    
565          socket_write(&sockaux, "\r\n");          socket_write(&sockaux, "\r\n");
566    
567          fetch_response(&sockpri, 1, NULL, 0);          fetch_response(&sockpri, 0, 1, NULL);
568          ft = imap_fetch(&sockpri, tok, "BODY[TEXT]");          tf = imap_fetch(&sockpri, tok, "BODY[TEXT]");
569          do {          do {
570              r = fetch_response(&sockpri, 0, buf, ft);              r = fetch_response(&sockpri, tf, 0, buf);
571              socket_write(&sockaux, buf);              if (r != -3)
572                    socket_write(&sockaux, buf);
573          } while (r == RESPONSE_NONE);          } while (r == RESPONSE_NONE);
574    
575          socket_write(&sockaux, "\r\n\r\n");          if (r != -3)
576                socket_write(&sockaux, "\r\n\r\n");
577            else
578                socket_write(&sockaux, "\r\n");
579    
580          append_response(&sockaux, at);          append_response(&sockaux, ta);
581    
582            tok = strtok_r(NULL, " ", &m);
583      }      }
584    
585      logout(&sockaux);      logout(&sockaux);
# Line 632  int action_flag(char *mesgs, unsigned in Line 645  int action_flag(char *mesgs, unsigned in
645    
646      m = mcp = convert_messages(mesgs);      m = mcp = convert_messages(mesgs);
647    
648      while ((tok = strsep(&m, " ")))      tok = strtok_r(m, " ", &m);
649        while (tok) {
650          server_response(&sockpri, imap_store(&sockpri, tok, t, s));          server_response(&sockpri, imap_store(&sockpri, tok, t, s));
651    
652            tok = strtok_r(NULL, " ", &m);
653        }
654    
655      if (options & OPTION_EXPUNGE)      if (options & OPTION_EXPUNGE)
656          server_response(&sockpri, imap_expunge(&sockpri));          server_response(&sockpri, imap_expunge(&sockpri));
657    
# Line 660  int action_list(char *mesgs, char *args) Line 677  int action_list(char *mesgs, char *args)
677    
678      snprintf(s, ARGS_LEN + 27 - 1, "BODY.PEEK[HEADER.FIELDS (%s)]", args);      snprintf(s, ARGS_LEN + 27 - 1, "BODY.PEEK[HEADER.FIELDS (%s)]", args);
679    
680      while ((tok = strsep(&m, " "))) {      tok = strtok_r(m, " ", &m);
681        while (tok) {
682          /* Reset internal fetch counter. */          /* Reset internal fetch counter. */
683          fetch_response(&sockpri, 1, NULL, 0);          fetch_response(&sockpri, 0, 1, NULL);
684          t = imap_fetch(&sockpri, tok, s);          t = imap_fetch(&sockpri, tok, s);
685          do {          do
686              r = fetch_response(&sockpri, 0, hdrs, t);              r = fetch_response(&sockpri, t, 0, hdrs);
687            while (r == RESPONSE_NONE);
688    
689            if (*hdrs) {
690                if (options & OPTION_HEADERS)
691                    info("%s\n", hdrs);
692                log_info(LOG_WRITE, hdrs);
693            } else {
694                log_info(LOG_WRITE, NULL);
695            }
696    
697              if (*hdrs) {          tok = strtok_r(NULL, " ", &m);
                 if (options & OPTION_HEADERS)  
                     info("%s\n", hdrs);  
                 log_info(LOG_WRITE, hdrs);  
             } else {  
                 log_info(LOG_WRITE, NULL);  
             }  
         } while (r == RESPONSE_NONE);  
698      }      }
699    
700      xfree(mcp);      xfree(mcp);
# Line 707  unsigned int count_messages(char *mesgs) Line 727  unsigned int count_messages(char *mesgs)
727   */   */
728  char *convert_messages(char *mesgs)  char *convert_messages(char *mesgs)
729  {  {
730      unsigned int maxlen;      int maxlen;
731      unsigned int start, end, tmp;      unsigned int start, end, tmp;
732      char *c, *cp, *tail;      char *c, *cp, *tail;
733    

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.32.2.6

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26