/[imapfilter]/imapfilter/imapfilter.h
ViewVC logotype

Diff of /imapfilter/imapfilter.h

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

revision 1.8 by lefcha, Sun Aug 26 19:56:50 2001 UTC revision 1.9 by lefcha, Mon Sep 10 23:43:29 2001 UTC
# Line 1  Line 1 
1  /* Flags that control the program options that have been selected. */  #ifndef IMAPFILTER_H
2  #define OPT_TEST_MODE                   0x00000001  #define IMAPFILTER_H
 #define OPT_TEST_MODE_STICKY            0x00000002  
 #define OPT_DETAILS_QUITE               0x00000004  
 #define OPT_DETAILS_NORMAL              0x00000008  
 #define OPT_DETAILS_VERBOSE             0x00000010  
 #define OPT_DETAILS_CLEAR               0xffffffe3  
 #define OPT_SHOW_HEADERS                0x00000020  
 #define OPT_UNSEEN_ONLY                 0x00000040  
   
 /* Lengths of strings to save account settings. */  
 #define SERVER_MAX                      128  
 #define USERID_MAX                      64  
 #define PASSWD_MAX                      32  
   
 /* Lengths of strings that comprise the HEADER of a filter. */  
 #define FIELD_NAME_MAX                  64  
 #define FIELD_BODY_MAX                  512  
3    
4  #define min(A, B)                       ((A) < (B) ? (A) : (B))  #include <stdio.h>
5    
6    #ifndef DATA_H
7    #include "data.h"
8    #endif
9    
10    
11    /* Flags that control the program's options. */
12    #define OPTION_DETAILS_QUITE            0x01
13    #define OPTION_DETAILS_NORMAL           0x02
14    #define OPTION_DETAILS_VERBOSE          0x04
15    #define OPTION_DETAILS_CLEAR            0xf8
16    
17    /* Buffer size of the the IMAP command. */
18    #define SMALL_CMD                       64
19    #define MEDIUM_CMD                      256
20    #define BIG_CMD                         8192
21    
22    /* Buffer size of server's response. */
23    #define RESPONSE_BUF                    16384
24    #define RESULT_BUF                      512
25    
26    /* Buffer size of message's headers. */
27    #define HEADERS_BUF                     8192
28    
29    /* Maximum items in FIFO inventory. */
30    #define FIFO_MAX                        512
31    
32    /* Buffer size of filter's search string. */
33    #define SEARCH_BUF                      2048
34    
35  /* Account settings. */  /* Buffer size of search results. */
36  typedef struct account {  #define SEARCH_MESSAGES_BUF             512
     char server[SERVER_MAX];    /* Hostname of mail server. */  
     unsigned short int port;    /* Port to connect. */  
     char userid[USERID_MAX];    /* Username. */  
     char passwd[PASSWD_MAX];    /* Password. */  
     struct account *next;       /* Next node of linked list. */  
 } account_t;  
   
 /* A header filter entry. */  
 typedef struct filter {  
     char name[FIELD_NAME_MAX];  /* Header field name. */  
     int custom;                 /* If field name one of FROM, TO,  
                                    CC, BCC, SUBJECT then zero. */  
     char body[FIELD_BODY_MAX];  /* Header field body. */  
     struct filter *next;        /* Next node of linked list. */  
 } filter_t;  
37    
38    
39  void apply_filters(void);  #define min(A, B)                       ((A) < (B) ? (A) : (B))
40    
41    
42    /*      connect.c       */
43    int init_connection(char *serv, unsigned int port);
44    int close_connection(void);
45    
46    /*      file.c          */
47    int read_config(char *cfg);
48    #ifdef CHECK_PERMISSIONS
49    int check_permissions(char *cfg);
50    #endif
51    int parse_config(FILE * fp);
52    
53    /*      imapfilter.c    */
54  void usage(void);  void usage(void);
55    
56    /*      imap.c          */
57    int send_command(char *cmd);
58    #ifdef DEBUG
59    int imap_noop(void);
60    #endif
61    int imap_logout(void);
62    int imap_login(char *user, char *pass);
63    int imap_examine(char *mbox);
64    int imap_select(char *mbox);
65    int imap_status(char *mbox, char *items);
66    int imap_create(char *mbox);
67    int imap_search(char *search);
68    int imap_fetch(char *mesg, char *headers);
69    int imap_store(char *mesg, char *flags);
70    int imap_copy(char *mesg, char *mbox);
71    int imap_close(void);
72    int imap_expunge(void);
73    
74    /*      log.c           */
75    void info(const char *info, ...);
76    void verbose(const char *info, ...);
77    void error(const char *errmsg, ...);
78    int open_logfile(void);
79    int create_logfile(void);
80    int close_logfile(void);
81    void log_info(const char *info, ...);
82    
83    /*      response.c      */
84    int receive_response(char *buf);
85    int server_response(void);
86    int status_response(void);
87    int search_response(char *mesgs);
88    int fetch_response(char *headers);
89    int copy_response(void);
90    int analyze_response(char *buf);
91    
92    /*      request.c       */
93    int test(void);
94    int login(char *user, char *pass);
95    int examine_mailbox(char *mbox);
96    int select_mailbox(char *mbox);
97    int close_mailbox(void);
98    int logout(void);
99    
100    int apply_filters(filter_t ** filters, char *mbox);
101    int match_filter(filter_t * filter, char *mesgs);
102    
103    void empty_fifo(mask_t ** mfifo);
104    void to_fifo(mask_t ** mfifo, mask_t * mask);
105    mask_t *from_fifo(mask_t ** mfifo);
106    
107    void generate_filter_and(char *search, mask_t * mask);
108    void generate_filter_or(char *search, mask_t * mask);
109    
110    int apply_action(char *mesgs, unsigned int type, char *args);
111    int action_delete(char *mesgs, char *args);
112    int action_copy(char *mesgs, char *args);
113    int action_move(char *mesgs, char *mbox);
114    int action_list(char *mesgs, char *mbox);
115    
116    unsigned int convert_messages(char *mesgs);
117    
118    #endif

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26