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

Diff of /imapfilter/log.c

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

revision 1.13 by lefcha, Mon Oct 1 11:48:51 2001 UTC revision 1.14 by lefcha, Tue Oct 2 07:33:21 2001 UTC
# Line 23  static FILE *logfp = NULL;     /* Pointer to Line 23  static FILE *logfp = NULL;     /* Pointer to
23  /*  /*
24   * Print message and/or write it into logfile.   * Print message and/or write it into logfile.
25   */   */
26  void info(const char *info, ...)  void info(const char *info,...)
27  {  {
28      va_list args;      va_list args;
29        
30      if (options & OPTION_DETAILS_QUITE)      if (options & OPTION_DETAILS_QUITE)
31          return;          return;
32        
33      va_start(args, info);      va_start(args, info);
34      vprintf(info, args);      vprintf(info, args);
35      va_end(args);      va_end(args);
# Line 39  void info(const char *info, ...) Line 39  void info(const char *info, ...)
39  /*  /*
40   * Print message if in OPTION_DETAILS_VERBOSE mode.   * Print message if in OPTION_DETAILS_VERBOSE mode.
41   */   */
42  void verbose(const char *info, ...)  void verbose(const char *info,...)
43  {  {
44      va_list args;      va_list args;
45    
# Line 53  void verbose(const char *info, ...) Line 53  void verbose(const char *info, ...)
53  /*  /*
54   * Print error message and write it into logfile.   * Print error message and write it into logfile.
55   */   */
56  void error(const char *errmsg, ...)  void error(const char *errmsg,...)
57  {  {
58      va_list args;      va_list args;
59    
60      va_start(args, errmsg);      va_start(args, errmsg);
61    
62        vfprintf(stderr, errmsg, args);
63    
64      if (logfp) {      if (logfp) {
65          vfprintf(logfp, errmsg, args);          vfprintf(logfp, errmsg, args);
66      }      }
67    
     vfprintf(stderr, errmsg, args);  
   
68      va_end(args);      va_end(args);
69  }  }
70    
# Line 72  void error(const char *errmsg, ...) Line 72  void error(const char *errmsg, ...)
72  /*  /*
73   * Print error message and exit program.   * Print error message and exit program.
74   */   */
75  void fatal(unsigned int errnum, const char *fatal, ...)  void fatal(unsigned int errnum, const char *fatal,...)
76  {  {
77      va_list args;      va_list args;
78        
79      va_start(args, fatal);      va_start(args, fatal);
       
80      vfprintf(stderr, fatal, args);      vfprintf(stderr, fatal, args);
       
81      va_end(args);      va_end(args);
82        
83      close_connection();      close_connection();
84      close_logfile();      close_logfile();
85        
86      exit(errnum);      exit(errnum);
87  }  }
88        
89    
90    
91  /*  /*
# Line 109  int open_logfile(void) Line 107  int open_logfile(void)
107    
108      if (!logfp) {      if (!logfp) {
109          error("imapfilter: opening logfile %s: %s\n",          error("imapfilter: opening logfile %s: %s\n",
110                  logfile, strerror(errno));                logfile, strerror(errno));
111          return ERROR_TRIVIAL;          return ERROR_TRIVIAL;
112      }      }
   
113      return 0;      return 0;
114  }  }
115    
# Line 131  int create_logfile(void) Line 128  int create_logfile(void)
128          return 0;          return 0;
129      } else if (!S_ISREG(fs.st_mode)) {      } else if (!S_ISREG(fs.st_mode)) {
130          error("imapfilter: file %s already exists and not a regular file\n",          error("imapfilter: file %s already exists and not a regular file\n",
131               logfile);                logfile);
132          return ERROR_TRIVIAL;          return ERROR_TRIVIAL;
133      }      }
   
134      return 0;      return 0;
135  }  }
136    
# Line 168  void log_info(int flag, void *ptr) Line 164  void log_info(int flag, void *ptr)
164      } inf = {      } inf = {
165          NULL, NULL, NULL, NULL, NULL, NULL, NULL          NULL, NULL, NULL, NULL, NULL, NULL, NULL
166      };      };
167        
168      if (!logfp)      if (!logfp)
169          return;          return;
170        
171      switch(flag) {      switch (flag) {
172      case LOG_WRITE:      case LOG_WRITE:
173          fprintf(logfp, "%s %s %s %s %s %s%s\n", get_time(),          fprintf(logfp, "%s %s %s %s %s %s%s\n", get_time(),
174                  inf.server, inf.username, inf.mbox, inf.filter,                  inf.server, inf.username, inf.mbox, inf.filter,
# Line 180  void log_info(int flag, void *ptr) Line 176  void log_info(int flag, void *ptr)
176                   *inf.action == FILTER_ACTION_COPY ? "copy " :                   *inf.action == FILTER_ACTION_COPY ? "copy " :
177                   *inf.action == FILTER_ACTION_MOVE ? "move " : "list"),                   *inf.action == FILTER_ACTION_MOVE ? "move " : "list"),
178                  (!inf.destmbox ? "" : inf.destmbox));                  (!inf.destmbox ? "" : inf.destmbox));
179            
180          if (ptr) {          if (ptr) {
181              inf.hdrs = (char *) ptr;              inf.hdrs = (char *) ptr;
182              fputc('\t', logfp);              fputc('\t', logfp);
# Line 200  void log_info(int flag, void *ptr) Line 196  void log_info(int flag, void *ptr)
196          break;          break;
197      case LOG_USERNAME:      case LOG_USERNAME:
198          inf.username = (char *) ptr;          inf.username = (char *) ptr;
199            break;
200      case LOG_MAILBOX:      case LOG_MAILBOX:
201          inf.mbox = (char *) ptr;          inf.mbox = (char *) ptr;
202          break;          break;
203      case LOG_FILTER:      case LOG_FILTER:
204          inf.filter = (char *) ptr;          inf.filter = (char *) ptr;
205            break;
206      case LOG_ACTION:      case LOG_ACTION:
207          inf.action = (unsigned int *) ptr;          inf.action = (unsigned int *) ptr;
208          break;          break;
209      case LOG_DESTINATION_MAILBOX:      case LOG_DESTINATION_MAILBOX:
210          inf.destmbox = (char *) ptr;          inf.destmbox = (char *) ptr;
211          break;          break;
     default:  
         break;  
212      }      }
213  }  }
214            
215    
216  /*  /*
217   * Return current local time and date.   * Return current local time and date.
# Line 224  char *get_time(void) Line 220  char *get_time(void)
220  {  {
221      char *ct;      char *ct;
222      time_t t;      time_t t;
223        
224      t = time(NULL);      t = time(NULL);
225        
226      ct = ctime(&t);      ct = ctime(&t);
227      *(strchr(ct, '\n')) = 0;      *(strchr(ct, '\n')) = 0;
228    

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26