Browse code

add logfile configuration option

Dario Rodriguez authored on 14/07/2014 12:29:25
Showing 3 changed files
... ...
@@ -26,6 +26,7 @@
26 26
 #include "kakumei_config.h"
27 27
 
28 28
 #define CONFIGFILE "kakumei.conf"
29
+#define CFLOGFILE "kakumei.log"
29 30
 #define CFCOOKIENAME "kakumeiauthid"
30 31
 #define CFCOOKIEDOMAIN "localhost"
31 32
 #define CFBANNERPATH "default.png"
... ...
@@ -60,13 +61,16 @@ main(int argc, char *argv[])
60 61
         }
61 62
         port=atoi(argv[1]);
62 63
         if(kaconfig_exists(CONFIGFILE)!=0) {
64
+		log_setlogfile(CFLOGFILE);
63 65
                 log_write("INIT","Config file not found, writing default file %s",CONFIGFILE);
64
-                kaconfig_write(CONFIGFILE,CFCOOKIENAME,CFCOOKIEDOMAIN,CFBANNERPATH,CFSSLPROXY);
66
+                kaconfig_write(CONFIGFILE,CFLOGFILE,CFCOOKIENAME,CFCOOKIEDOMAIN,CFBANNERPATH,CFSSLPROXY);
65 67
         }
66 68
         if((ka->config=kaconfig_init(CONFIGFILE))==NULL) {
69
+		log_setlogfile(CFLOGFILE);
67 70
                 log_write("INIT","ERROR: insufficient memory or config file error");
68 71
                 return(1);
69 72
         }
73
+	log_setlogfile((ka->config->logfile!=NULL)?ka->config->logfile:CFLOGFILE);
70 74
         if((ka->ssel=sselect_init())==NULL) {
71 75
                 log_write("INIT","ERROR: insufficient memory");
72 76
                 return(1);
... ...
@@ -86,7 +86,9 @@ kaconfig_init(char *configfile)
86 86
                                 continue;
87 87
                         }
88 88
                         /* identify key-value pair */
89
-                        if(strcmp(ptr,"cookiename")==0) {
89
+                        if(strcmp(ptr,"logfile")==0) {
90
+                                configvalue=&(config->logfile);
91
+                        } else if(strcmp(ptr,"cookiename")==0) {
90 92
                                 configvalue=&(config->cookiename);
91 93
                         } else if(strcmp(ptr,"cookiedomain")==0) {
92 94
                                 configvalue=&(config->cookiedomain);
... ...
@@ -128,6 +130,8 @@ kaconfig_free(kaconfig *config)
128 130
 {
129 131
         if(config==NULL)
130 132
                 return;
133
+        if(config->logfile!=NULL)
134
+                free(config->logfile),config->logfile=NULL;
131 135
         if(config->cookiename!=NULL)
132 136
                 free(config->cookiename),config->cookiename=NULL;
133 137
         if(config->cookiedomain!=NULL)
... ...
@@ -148,13 +152,14 @@ kaconfig_exists(char *configfile)
148 152
 }
149 153
 
150 154
 int
151
-kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *bannerpath, int sslproxy)
155
+kaconfig_write(char *configfile,char *logfile, char *cookiename,char *cookiedomain, char *bannerpath, int sslproxy)
152 156
 {
153 157
         FILE *f;
154 158
         if((f=fopen(configfile,"w"))==NULL)
155 159
                 return(-1);
156 160
         fprintf(f,"; kakumei config file\n");
157 161
         fprintf(f,"[general]\n");
162
+        fprintf(f,"logfile=%s\n",(logfile!=NULL)?logfile:"kakumei.log");
158 163
         fprintf(f,"cookiename=%s\n",(cookiename!=NULL)?cookiename:"kakumeiauthid");
159 164
         fprintf(f,"cookiedomain=%s\n",(cookiedomain!=NULL)?cookiedomain:"localhost");
160 165
         fprintf(f,"bannerpath=%s\n",(bannerpath!=NULL)?bannerpath:"default.png");
... ...
@@ -12,6 +12,7 @@
12 12
 #ifndef KAKUMEI_CONFIG_H
13 13
 #define KAKUMEI_CONFIG_H
14 14
 typedef struct kaconfig {
15
+        char *logfile;
15 16
         char *cookiename;
16 17
         char *cookiedomain;
17 18
         char *bannerpath;
... ...
@@ -22,5 +23,5 @@ kaconfig *kaconfig_init(char *configfile);
22 23
 void kaconfig_free(kaconfig *config);
23 24
 
24 25
 int kaconfig_exists(char *configfile);
25
-int kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *bannerpath, int sslproxy);
26
+int kaconfig_write(char *configfile,char *logfile,char *cookiename,char *cookiedomain, char *bannerpath, int sslproxy);
26 27
 #endif