... | ... |
@@ -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 |