Diffstat (limited to 'ui-shared.c')
| -rw-r--r-- | ui-shared.c | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/ui-shared.c b/ui-shared.c index cf06511..015c52b 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -36,7 +36,10 @@ void cgit_print_error(char *msg) char *cgit_httpscheme() { - if (ctx.env.https && !strcmp(ctx.env.https, "on")) + char *https; + + https = getenv("HTTPS"); + if (https != NULL && strcmp(https, "on") == 0) return "https://"; else return "http://"; @@ -44,13 +47,22 @@ char *cgit_httpscheme() char *cgit_hosturl() { - if (ctx.env.http_host) - return ctx.env.http_host; - if (!ctx.env.server_name) - return NULL; - if (!ctx.env.server_port || atoi(ctx.env.server_port) == 80) - return ctx.env.server_name; - return xstrdup(fmt("%s:%s", ctx.env.server_name, ctx.env.server_port)); + char *host, *port; + + host = getenv("HTTP_HOST"); + if (host) { + host = xstrdup(host); + } else { + host = getenv("SERVER_NAME"); + if (!host) + return NULL; + port = getenv("SERVER_PORT"); + if (port && atoi(port) != 80) + host = xstrdup(fmt("%s:%d", host, atoi(port))); + else + host = xstrdup(host); + } + return host; } char *cgit_rooturl() @@ -455,7 +467,9 @@ void cgit_print_age(time_t t, time_t max_relative, char *format) void cgit_print_http_headers(struct cgit_context *ctx) { - if (ctx->env.no_http && !strcmp(ctx->env.no_http, "1")) + const char *method = getenv("REQUEST_METHOD"); + + if (ctx->cfg.embedded) return; if (ctx->page.status) @@ -475,17 +489,14 @@ void cgit_print_http_headers(struct cgit_context *ctx) if (ctx->page.etag) htmlf("ETag: \"%s\"\n", ctx->page.etag); html("\n"); - if (ctx->env.request_method && !strcmp(ctx->env.request_method, "HEAD")) + if (method && !strcmp(method, "HEAD")) exit(0); } void cgit_print_docstart(struct cgit_context *ctx) { - if (ctx->cfg.embedded) { - if (ctx->cfg.header) - html_include(ctx->cfg.header); + if (ctx->cfg.embedded) return; - } char *host = cgit_hosturl(); html(cgit_doctype); @@ -523,13 +534,7 @@ void cgit_print_docstart(struct cgit_context *ctx) void cgit_print_docend() { - html("</div> <!-- class=content -->\n"); - if (ctx.cfg.embedded) { - html("</div> <!-- id=cgit -->\n"); - if (ctx.cfg.footer) - html_include(ctx.cfg.footer); - return; - } + html("</div>"); if (ctx.cfg.footer) html_include(ctx.cfg.footer); else { @@ -538,7 +543,9 @@ void cgit_print_docend() cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); html("</div>\n"); } - html("</div> <!-- id=cgit -->\n"); + html("</div>"); + if (ctx.cfg.embedded) + return; html("</body>\n</html>\n"); } |