aboutsummaryrefslogtreecommitdiffstats
path: root/ui-shared.c
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2009-08-10 08:21:09 +0200
committerLars Hjemli <hjemli@gmail.com>2009-08-10 08:21:09 +0200
commit60a26272e0ca529407fe6b613f061f04ba585d53 (patch)
treec2b6ee3c19a44bd276043650298229c481ca4535 /ui-shared.c
parente6cd7121edf55c13f04cd5d6fca8f07c4035ce0a (diff)
downloadcgit-60a26272e0ca529407fe6b613f061f04ba585d53.tar.gz
cgit-60a26272e0ca529407fe6b613f061f04ba585d53.tar.bz2
cgit-60a26272e0ca529407fe6b613f061f04ba585d53.zip
Cleanup handling of environment variables
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-shared.c')
-rw-r--r--ui-shared.c32
1 files changed, 9 insertions, 23 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 015c52b..538ddda 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -36,10 +36,7 @@ void cgit_print_error(char *msg)
char *cgit_httpscheme()
{
- char *https;
-
- https = getenv("HTTPS");
- if (https != NULL && strcmp(https, "on") == 0)
+ if (ctx.env.https && !strcmp(ctx.env.https, "on"))
return "https://";
else
return "http://";
@@ -47,22 +44,13 @@ char *cgit_httpscheme()
char *cgit_hosturl()
{
- 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;
+ 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 *cgit_rooturl()
@@ -467,8 +455,6 @@ void cgit_print_age(time_t t, time_t max_relative, char *format)
void cgit_print_http_headers(struct cgit_context *ctx)
{
- const char *method = getenv("REQUEST_METHOD");
-
if (ctx->cfg.embedded)
return;
@@ -489,7 +475,7 @@ void cgit_print_http_headers(struct cgit_context *ctx)
if (ctx->page.etag)
htmlf("ETag: \"%s\"\n", ctx->page.etag);
html("\n");
- if (method && !strcmp(method, "HEAD"))
+ if (ctx->env.request_method && !strcmp(ctx->env.request_method, "HEAD"))
exit(0);
}