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

Annotation of /imapfilter/log.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sat Aug 11 15:54:57 2001 UTC (22 years, 7 months ago) by lefcha
Branch: MAIN
Changes since 1.1: +3 -1 lines
File MIME type: text/plain
Added ALLOW type filters

1 lefcha 1.1 #include <stdio.h>
2     #include <stdlib.h>
3     #include <errno.h>
4     #include <string.h>
5     #include <stdarg.h>
6     #include <limits.h>
7    
8     #include "config.h"
9     #include "imapfilter.h"
10     #include "log.h"
11    
12    
13     extern int options;
14     extern account_data account;
15     static FILE *logfp; /* Points to logfile. */
16    
17    
18     /*
19     * Print message if in OPTION_DETAILS_VERBOSE mode.
20     */
21     void verbose(const char *info, ...)
22     {
23     va_list args;
24    
25     if (options & OPTION_DETAILS_VERBOSE) {
26     va_start(args, info);
27     vprintf(info, args);
28     va_end(args);
29     }
30     }
31    
32     /*
33     * Prints error message and writes it into logfile.
34     */
35     void error(const char *errmsg, ...)
36     {
37     va_list args;
38    
39     va_start(args, errmsg);
40    
41     if (!(options & OPTION_LOGGING_DISABLED)) {
42     vfprintf(logfp, errmsg, args);
43     }
44    
45     vfprintf(stderr, errmsg, args);
46     va_end(args);
47     }
48    
49    
50     /*
51     * Opens the file to save logging information.
52     */
53     int open_logfile(void)
54     {
55     char *home;
56    
57     if (options & OPTION_LOGGING_DISABLED)
58     return SUCCESS;
59    
60     if (!account.logfile[0]) {
61     home = getenv("HOME");
62    
63     snprintf(account.logfile, PATH_MAX, "%s/%s", home,
64     ".imapfilter_log");
65     }
66     #ifdef DEBUG
67     printf("debug: logfile: %s\n", account.logfile);
68     #endif
69    
70     logfp = fopen(account.logfile, "a");
71    
72     if (!logfp) {
73     fprintf(stderr, "imapfilter: opening logfile %s: %s\n",
74     account.logfile, strerror(errno));
75     return FAILURE;
76     }
77    
78     return SUCCESS;
79     }
80    
81    
82     /*
83     * Closes the logfile.
84     */
85     int close_logfile(void)
86     {
87     if (options & OPTION_LOGGING_DISABLED)
88     return SUCCESS;
89     else
90     return fclose(logfp);
91     }
92    
93    
94 lefcha 1.2 /*
95     * Writes information to logfile.
96     */
97 lefcha 1.1 void log_info(const char *info, ...)
98     {
99     va_list args;
100    
101     if (!(options & OPTION_LOGGING_DISABLED)) {
102     va_start(args, info);
103     vfprintf(logfp, info, args);
104     va_end(args);
105     }
106     }

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26