From c0fb3f2307fc80d2d85cc1ab16c3fd262bba49a6 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sat, 18 Mar 2017 16:48:24 +0000 Subject: Simplify: write HTTP 303 redirects with relative locations. Suggested by bentley@. Delete the HTTP_HOST configuration variable that is now obsolete. --- cgi.c | 23 ++++++++++++----------- cgi.h.example | 1 - man.cgi.8 | 9 ++------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/cgi.c b/cgi.c index d1d1199e..da638dcf 100644 --- a/cgi.c +++ b/cgi.c @@ -1,4 +1,4 @@ -/* $Id: cgi.c,v 1.152 2017/03/18 16:19:11 schwarze Exp $ */ +/* $Id: cgi.c,v 1.153 2017/03/18 16:48:24 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze @@ -554,8 +554,8 @@ pg_error_internal(void) static void pg_redirect(const struct req *req, const char *name) { - printf("Status: 303 See Other\r\n"); - printf("Location: http://%s/", HTTP_HOST); + printf("Status: 303 See Other\r\n" + "Location: /"); if (*scriptname != '\0') printf("%s/", scriptname); if (strcmp(req->q.manpath, req->p[0])) @@ -591,14 +591,15 @@ pg_searchres(const struct req *req, struct manpage *r, size_t sz) * If we have just one result, then jump there now * without any delay. */ - printf("Status: 303 See Other\r\n"); - printf("Location: http://%s/%s%s%s/%s", - HTTP_HOST, scriptname, - *scriptname == '\0' ? "" : "/", - req->q.manpath, r[0].file); - printf("\r\n" - "Content-Type: text/html; charset=utf-8\r\n" - "\r\n"); + printf("Status: 303 See Other\r\n" + "Location: /"); + if (*scriptname != '\0') + printf("%s/", scriptname); + if (strcmp(req->q.manpath, req->p[0])) + printf("%s/", req->q.manpath); + printf("%s\r\n" + "Content-Type: text/html; charset=utf-8\r\n\r\n", + r[0].file); return; } diff --git a/cgi.h.example b/cgi.h.example index 7e5f3917..2ccbe25b 100644 --- a/cgi.h.example +++ b/cgi.h.example @@ -1,6 +1,5 @@ /* Example compile-time configuration file for man.cgi(8). */ -#define HTTP_HOST "mdocml.bsd.lv" #define SCRIPT_NAME "cgi-bin/man.cgi" #define MAN_DIR "/man" #define CSS_DIR "" diff --git a/man.cgi.8 b/man.cgi.8 index 8e3222ae..eba3cec4 100644 --- a/man.cgi.8 +++ b/man.cgi.8 @@ -1,4 +1,4 @@ -.\" $Id: man.cgi.8,v 1.21 2017/03/17 12:56:57 schwarze Exp $ +.\" $Id: man.cgi.8,v 1.22 2017/03/18 16:48:24 schwarze Exp $ .\" .\" Copyright (c) 2014, 2015, 2016 Ingo Schwarze .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: March 17 2017 $ +.Dd $Mdocdate: March 18 2017 $ .Dt MAN.CGI 8 .Os .Sh NAME @@ -186,11 +186,6 @@ Otherwise, a leading slash is needed. This is used in generated HTML code. .It Dv CUSTOMIZE_TITLE An ASCII string to be used for the HTML element. -.It Dv HTTP_HOST -The FQDN of the (possibly virtual) host the HTTP server is running on. -This is used for -.Ic Location: -headers in HTTP 303 responses. .It Dv MAN_DIR A file system path to the .Nm -- cgit v1.2.3-56-ge451