... | ... |
@@ -29,6 +29,7 @@ |
29 | 29 |
#define CFCOOKIENAME "kakumeiauthid" |
30 | 30 |
#define CFCOOKIEDOMAIN "localhost" |
31 | 31 |
#define CFBANNERPATH "default.png" |
32 |
+#define CFSSLPROXY 0 |
|
32 | 33 |
|
33 | 34 |
static int signal_init(int signum, void (*fn)(int)); |
34 | 35 |
static void sigint(int signum); |
... | ... |
@@ -60,7 +61,7 @@ main(int argc, char *argv[]) |
60 | 61 |
port=atoi(argv[1]); |
61 | 62 |
if(kaconfig_exists(CONFIGFILE)!=0) { |
62 | 63 |
log_write("INIT","Config file not found, writing default file %s",CONFIGFILE); |
63 |
- kaconfig_write(CONFIGFILE,CFCOOKIENAME,CFCOOKIEDOMAIN,CFBANNERPATH); |
|
64 |
+ kaconfig_write(CONFIGFILE,CFCOOKIENAME,CFCOOKIEDOMAIN,CFBANNERPATH,CFSSLPROXY); |
|
64 | 65 |
} |
65 | 66 |
if((ka->config=kaconfig_init(CONFIGFILE))==NULL) { |
66 | 67 |
log_write("INIT","ERROR: insufficient memory or config file error"); |
... | ... |
@@ -298,7 +299,7 @@ http_login(wk *web, int connid, wk_uri *uri, void *userptr) |
298 | 299 |
/* valid login */ |
299 | 300 |
snprintf(reply,sizeof(reply),"/posts.html?s=%s",session); |
300 | 301 |
reply[sizeof(reply)-1]='\0'; |
301 |
- wk_serve_cookieadd(web,connid,ka->config->cookiename,authid,ka->config->cookiedomain,21600 /* 6h */,"secure"); |
|
302 |
+ wk_serve_cookieadd(web,connid,ka->config->cookiename,authid,ka->config->cookiedomain,21600 /* 6h */,(ka->config->sslproxy)?"secure":NULL); |
|
302 | 303 |
wk_serve_buffer_as_file(web,connid,reply,strlen(reply),"text/plain"); |
303 | 304 |
log_write("LGIN","Reply: %s",reply); |
304 | 305 |
return(wkact_finished); |
... | ... |
@@ -354,7 +355,7 @@ http_newuser(wk *web, int connid, wk_uri *uri, void *userptr) |
354 | 355 |
/* valid login */ |
355 | 356 |
snprintf(reply,sizeof(reply),"/posts.html?s=%s",session); |
356 | 357 |
reply[sizeof(reply)-1]='\0'; |
357 |
- wk_serve_cookieadd(web,connid,ka->config->cookiename,authid,ka->config->cookiedomain,21600 /* 6h */,"secure"); |
|
358 |
+ wk_serve_cookieadd(web,connid,ka->config->cookiename,authid,ka->config->cookiedomain,21600 /* 6h */,(ka->config->sslproxy)?"secure":NULL); |
|
358 | 359 |
wk_serve_buffer_as_file(web,connid,reply,strlen(reply),"text/plain"); |
359 | 360 |
log_write("NEWU","Reply: %s",reply); |
360 | 361 |
return(wkact_finished); |
... | ... |
@@ -31,6 +31,7 @@ kaconfig_init(char *configfile) |
31 | 31 |
int generalsection; |
32 | 32 |
int lineno; |
33 | 33 |
char **configvalue; |
34 |
+ char *sslproxydummy; |
|
34 | 35 |
if((f=fopen(configfile,"r"))==NULL) |
35 | 36 |
return(NULL); |
36 | 37 |
if((config=malloc(sizeof(kaconfig)))==NULL) { |
... | ... |
@@ -91,6 +92,12 @@ kaconfig_init(char *configfile) |
91 | 92 |
configvalue=&(config->cookiedomain); |
92 | 93 |
} else if(strcmp(ptr,"bannerpath")==0) { |
93 | 94 |
configvalue=&(config->bannerpath); |
95 |
+ } else if(strcmp(ptr,"sslproxy")==0) { |
|
96 |
+ if(strcmp(value,"true")==0 || strcmp(value,"1")==0 || strcmp(value,"yes")==0) |
|
97 |
+ config->sslproxy=1; |
|
98 |
+ else |
|
99 |
+ config->sslproxy=0; |
|
100 |
+ continue; |
|
94 | 101 |
} else { |
95 | 102 |
log_write("CONF","%s:%i: unknown key, ignoring key-value pair; key:\"%s\"\n",configfile,lineno,ptr); |
96 | 103 |
continue; |
... | ... |
@@ -141,7 +148,7 @@ kaconfig_exists(char *configfile) |
141 | 148 |
} |
142 | 149 |
|
143 | 150 |
int |
144 |
-kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *bannerpath) |
|
151 |
+kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *bannerpath, int sslproxy) |
|
145 | 152 |
{ |
146 | 153 |
FILE *f; |
147 | 154 |
if((f=fopen(configfile,"w"))==NULL) |
... | ... |
@@ -151,6 +158,7 @@ kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *banne |
151 | 158 |
fprintf(f,"cookiename=%s\n",(cookiename!=NULL)?cookiename:"kakumeiauthid"); |
152 | 159 |
fprintf(f,"cookiedomain=%s\n",(cookiedomain!=NULL)?cookiedomain:"localhost"); |
153 | 160 |
fprintf(f,"bannerpath=%s\n",(bannerpath!=NULL)?bannerpath:"default.png"); |
161 |
+ fprintf(f,"sslproxy=%s\n",(sslproxy==0)?"no":"yes"); |
|
154 | 162 |
return(0); |
155 | 163 |
} |
156 | 164 |
|
... | ... |
@@ -15,11 +15,12 @@ typedef struct kaconfig { |
15 | 15 |
char *cookiename; |
16 | 16 |
char *cookiedomain; |
17 | 17 |
char *bannerpath; |
18 |
+ int sslproxy; |
|
18 | 19 |
} kaconfig; |
19 | 20 |
|
20 | 21 |
kaconfig *kaconfig_init(char *configfile); |
21 | 22 |
void kaconfig_free(kaconfig *config); |
22 | 23 |
|
23 | 24 |
int kaconfig_exists(char *configfile); |
24 |
-int kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *bannerpath); |
|
25 |
+int kaconfig_write(char *configfile,char *cookiename,char *cookiedomain, char *bannerpath, int sslproxy); |
|
25 | 26 |
#endif |