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

Diff of /imapfilter/request.c

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

revision 1.17 by lefcha, Sat Nov 10 15:34:48 2001 UTC revision 1.17.2.2 by lefcha, Wed Dec 5 21:17:11 2001 UTC
# Line 9  Line 9 
9    
10    
11  extern unsigned int options;  extern unsigned int options;
12    extern unsigned int capabilities;
13    
14    static struct namespace_t namesp;
15    
16    
17  #ifdef DEBUG  #ifdef DEBUG
# Line 27  int test(void) Line 30  int test(void)
30   */   */
31  int check_capabilities(void)  int check_capabilities(void)
32  {  {
33        capabilities = CAPABILITY_NONE;
34    
35      return capability_response(imap_capability());      return capability_response(imap_capability());
36  }  }
37    
38    
39  /*  /*
40     * Get namespace of mail server's mailboxes.
41     */
42    int check_namespace(void)
43    {
44        namesp.prefix[0] = namesp.delim = 0;
45    
46        if (!(options & OPTION_NAMESPACE) ||
47            !(capabilities & CAPABILITY_NAMESPACE))
48            return 0;
49        else
50            return namespace_response(imap_namespace(), &namesp);
51    }
52    
53    
54    /*
55   * Login to server.   * Login to server.
56   */   */
57  int login(char *user, char *pass)  int login(char *user, char *pass)
# Line 41  int login(char *user, char *pass) Line 61  int login(char *user, char *pass)
61      return server_response(imap_login(user, pass));      return server_response(imap_login(user, pass));
62  }  }
63    
64    
65  /*  /*
66   * Open mailbox in read-write mode.   * Open mailbox in read-write mode.
67   */   */
# Line 52  int select_mailbox(char *mbox) Line 73  int select_mailbox(char *mbox)
73          return -2;              /* No messages exist. No filters need to          return -2;              /* No messages exist. No filters need to
74                                     be applied. */                                     be applied. */
75    
76      r = select_response(imap_select(mbox));      r = select_response(imap_select(apply_namespace(mbox, namesp.prefix,
77                                                        namesp.delim)));
78    
79      log_info(LOG_MAILBOX, mbox);      log_info(LOG_MAILBOX, mbox);
80    
# Line 65  int select_mailbox(char *mbox) Line 87  int select_mailbox(char *mbox)
87   */   */
88  int mailbox_status(char *mbox)  int mailbox_status(char *mbox)
89  {  {
90      return status_response(imap_status(mbox, "MESSAGES RECENT UNSEEN"), mbox);      return status_response(imap_status(apply_namespace(mbox, namesp.prefix,
91                                                           namesp.delim),
92                                           "MESSAGES RECENT UNSEEN"), mbox);
93    
94  }  }
95    
96    
# Line 104  int apply_filters(filter_t ** filters) Line 129  int apply_filters(filter_t ** filters)
129          log_info(LOG_FILTER, filters[i]->key);          log_info(LOG_FILTER, filters[i]->key);
130    
131          apply_action(mesgs, &(filters[i]->action.type),          apply_action(mesgs, &(filters[i]->action.type),
132                     filters[i]->action.destmbox, filters[i]->action.args);                       filters[i]->action.destmbox, filters[i]->action.args);
133    
134          free(mesgs);          free(mesgs);
135      }      }
# Line 342  int apply_action(char *mesgs, unsigned i Line 367  int apply_action(char *mesgs, unsigned i
367      case FILTER_ACTION_COPY:      case FILTER_ACTION_COPY:
368          info("%d message%s copied to mailbox %s.\n", cnt, plural(cnt),          info("%d message%s copied to mailbox %s.\n", cnt, plural(cnt),
369               destmbox);               destmbox);
370          action_copy(mesgs, destmbox, args);          action_copy(mesgs, apply_namespace(destmbox, namesp.prefix,
371                                               namesp.delim), args);
372          break;          break;
373      case FILTER_ACTION_MOVE:      case FILTER_ACTION_MOVE:
374          info("%d message%s moved to mailbox %s.\n", cnt, plural(cnt),          info("%d message%s moved to mailbox %s.\n", cnt, plural(cnt),
375               destmbox);               destmbox);
376          action_move(mesgs, destmbox, args);          action_move(mesgs, apply_namespace(destmbox, namesp.prefix,
377                                               namesp.delim), args);
378          break;          break;
379      case FILTER_ACTION_LIST:      case FILTER_ACTION_LIST:
380          info("%d message%s listed.\n", cnt, plural(cnt));          info("%d message%s listed.\n", cnt, plural(cnt));

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.17.2.2

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26