From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (mandoc.bsd.lv [local]) by mandoc.bsd.lv (OpenSMTPD) with ESMTPA id 5b585e3a for ; Tue, 1 Oct 2019 12:54:44 -0500 (EST) Date: Tue, 1 Oct 2019 12:54:44 -0500 (EST) X-Mailinglist: mandoc-source Reply-To: source@mandoc.bsd.lv MIME-Version: 1.0 From: schwarze@mandoc.bsd.lv To: source@mandoc.bsd.lv Subject: mandoc: For invalid queries and for valid queries returning no result, X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Message-ID: <8d0693d83904532f@mandoc.bsd.lv> Log Message: ----------- For invalid queries and for valid queries returning no result, return the appropriate 40x status code rather than 200. Improvement suggested and diff tested by John Gardner . Modified Files: -------------- mandoc: cgi.c Revision Data ------------- Index: cgi.c =================================================================== RCS file: /home/cvs/mandoc/mandoc/cgi.c,v retrieving revision 1.167 retrieving revision 1.168 diff -Lcgi.c -Lcgi.c -u -p -r1.167 -r1.168 --- cgi.c +++ cgi.c @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons - * Copyright (c) 2014, 2015, 2016, 2017, 2018 Ingo Schwarze + * Copyright (c) 2014-2019 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -77,7 +77,8 @@ static void parse_query_string(struct static void pg_error_badrequest(const char *); static void pg_error_internal(void); static void pg_index(const struct req *); -static void pg_noresult(const struct req *, const char *); +static void pg_noresult(const struct req *, int, const char *, + const char *); static void pg_redirect(const struct req *, const char *); static void pg_search(const struct req *); static void pg_searchres(const struct req *, @@ -546,12 +547,13 @@ pg_index(const struct req *req) } static void -pg_noresult(const struct req *req, const char *msg) +pg_noresult(const struct req *req, int code, const char *http_msg, + const char *user_msg) { - resp_begin_html(200, NULL, NULL); + resp_begin_html(code, http_msg, NULL); resp_searchform(req, FOCUS_QUERY); puts("

"); - puts(msg); + puts(user_msg); puts("

"); resp_end_html(); } @@ -1016,9 +1018,10 @@ pg_search(const struct req *req) if (req->isquery && req->q.equal && argc == 1) pg_redirect(req, argv[0]); else if (mansearch(&search, &paths, argc, argv, &res, &ressz) == 0) - pg_noresult(req, "You entered an invalid query."); + pg_noresult(req, 400, "Bad Request", + "You entered an invalid query."); else if (ressz == 0) - pg_noresult(req, "No results found."); + pg_noresult(req, 404, "Not Found", "No results found."); else pg_searchres(req, res, ressz); -- To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv