ui-shared: add support for NO_HTTP=1/--nohttp
cgit_print_http_headers() used to do nothing if 'embedded' was specified in cgitrc, but that was wrong - we never want to skip the headers when invoked as a CGI app. Sadly, there's no easy way to detect if we're invoked as a CGI app or if we're invoked by another CGI app, so for the latter case cgit needs to be invoked with either --nohttp on the command line or NO_HTTP=1 in the environment. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
		
							
								
								
									
										4
									
								
								cgit.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								cgit.c
									
									
									
									
									
								
							| @@ -253,6 +253,7 @@ static void prepare_context(struct cgit_context *ctx) | ||||
| 	ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG")); | ||||
| 	ctx->env.http_host = xstrdupn(getenv("HTTP_HOST")); | ||||
| 	ctx->env.https = xstrdupn(getenv("HTTPS")); | ||||
| 	ctx->env.no_http = xstrdupn(getenv("NO_HTTP")); | ||||
| 	ctx->env.path_info = xstrdupn(getenv("PATH_INFO")); | ||||
| 	ctx->env.query_string = xstrdupn(getenv("QUERY_STRING")); | ||||
| 	ctx->env.request_method = xstrdupn(getenv("REQUEST_METHOD")); | ||||
| @@ -445,6 +446,9 @@ static void cgit_parse_args(int argc, const char **argv) | ||||
| 		if (!strcmp(argv[i], "--nocache")) { | ||||
| 			ctx.cfg.nocache = 1; | ||||
| 		} | ||||
| 		if (!strcmp(argv[i], "--nohttp")) { | ||||
| 			ctx.env.no_http = "1"; | ||||
| 		} | ||||
| 		if (!strncmp(argv[i], "--query=", 8)) { | ||||
| 			ctx.qry.raw = xstrdup(argv[i]+8); | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										1
									
								
								cgit.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								cgit.h
									
									
									
									
									
								
							| @@ -211,6 +211,7 @@ struct cgit_environment { | ||||
| 	char *cgit_config; | ||||
| 	char *http_host; | ||||
| 	char *https; | ||||
| 	char *no_http; | ||||
| 	char *path_info; | ||||
| 	char *query_string; | ||||
| 	char *request_method; | ||||
|   | ||||
| @@ -455,7 +455,7 @@ void cgit_print_age(time_t t, time_t max_relative, char *format) | ||||
|  | ||||
| void cgit_print_http_headers(struct cgit_context *ctx) | ||||
| { | ||||
| 	if (ctx->cfg.embedded) | ||||
| 	if (ctx->env.no_http && !strcmp(ctx->env.no_http, "1")) | ||||
| 		return; | ||||
|  | ||||
| 	if (ctx->page.status) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Lars Hjemli
					Lars Hjemli