author | Lars Hjemli <hjemli@gmail.com> | 2009-07-25 09:40:25 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-07-25 09:41:06 (UTC) |
commit | fbe091a716447be496519ce439451d36d5b9fc24 (patch) (side-by-side diff) | |
tree | c6560c6f2ab6b4760ac6eaecda1759321da2746e | |
parent | e429fb0cca1e8c78da0ec38fe578bafdeec65534 (diff) | |
parent | 694dd43886f23723f415aed3afb62131cdbcaa51 (diff) | |
download | cgit-fbe091a716447be496519ce439451d36d5b9fc24.zip cgit-fbe091a716447be496519ce439451d36d5b9fc24.tar.gz cgit-fbe091a716447be496519ce439451d36d5b9fc24.tar.bz2 |
Merge branch 'do/https'
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-atom.c | 6 | ||||
-rw-r--r-- | ui-shared.c | 14 | ||||
-rw-r--r-- | ui-shared.h | 1 |
3 files changed, 18 insertions, 3 deletions
@@ -49,13 +49,14 @@ void add_entry(struct commit *commit, char *host) } html("</author>\n"); html("<published>"); cgit_print_date(info->author_date, FMT_ATOMDATE, ctx.cfg.local_time); html("</published>\n"); if (host) { - html("<link rel='alternate' type='text/html' href='http://"); + html("<link rel='alternate' type='text/html' href='"); + html(cgit_httpscheme()); html_attr(host); html_attr(cgit_pageurl(ctx.repo->url, "commit", NULL)); if (ctx.cfg.virtual_root) delim = '?'; htmlf("%cid=%s", delim, hex); html("'/>\n"); @@ -110,13 +111,14 @@ void cgit_print_atom(char *tip, char *path, int max_count) html_txt(ctx.repo->name); html("</title>\n"); html("<subtitle>"); html_txt(ctx.repo->desc); html("</subtitle>\n"); if (host) { - html("<link rel='alternate' type='text/html' href='http://"); + html("<link rel='alternate' type='text/html' href='"); + html(cgit_httpscheme()); html_attr(host); html_attr(cgit_repourl(ctx.repo->url)); html("'/>\n"); } while ((commit = get_revision(&rev)) != NULL) { add_entry(commit, host); diff --git a/ui-shared.c b/ui-shared.c index 2630f23..29036d0 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -31,12 +31,23 @@ void cgit_print_error(char *msg) { html("<div class='error'>"); html_txt(msg); html("</div>\n"); } +char *cgit_httpscheme() +{ + char *https; + + https = getenv("HTTPS"); + if (https != NULL && strcmp(https, "on") == 0) + return "https://"; + else + return "http://"; +} + char *cgit_hosturl() { char *host, *port; host = getenv("HTTP_HOST"); if (host) { @@ -491,13 +502,14 @@ void cgit_print_docstart(struct cgit_context *ctx) if (ctx->cfg.favicon) { html("<link rel='shortcut icon' href='"); html_attr(ctx->cfg.favicon); html("'/>\n"); } if (host && ctx->repo) { - html("<link rel='alternate' title='Atom feed' href='http://"); + html("<link rel='alternate' title='Atom feed' href='"); + html(cgit_httpscheme()); html_attr(cgit_hosturl()); html_attr(cgit_fileurl(ctx->repo->url, "atom", ctx->qry.path, fmt("h=%s", ctx->qry.head))); html("' type='application/atom+xml'/>"); } html("</head>\n"); diff --git a/ui-shared.h b/ui-shared.h index 5a3821f..bff4826 100644 --- a/ui-shared.h +++ b/ui-shared.h @@ -1,9 +1,10 @@ #ifndef UI_SHARED_H #define UI_SHARED_H +extern char *cgit_httpscheme(); extern char *cgit_hosturl(); extern char *cgit_repourl(const char *reponame); extern char *cgit_fileurl(const char *reponame, const char *pagename, const char *filename, const char *query); extern char *cgit_pageurl(const char *reponame, const char *pagename, const char *query); |