version 1.167, 2019/07/10 12:49:20 |
version 1.170, 2020/01/10 12:54:43 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2014, 2015, 2016, 2017, 2018 Ingo Schwarze <schwarze@usta.de> |
* Copyright (c) 2014-2019 Ingo Schwarze <schwarze@usta.de> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
Line 77 static void parse_query_string(struct req *, const c |
|
Line 77 static void parse_query_string(struct req *, const c |
|
static void pg_error_badrequest(const char *); |
static void pg_error_badrequest(const char *); |
static void pg_error_internal(void); |
static void pg_error_internal(void); |
static void pg_index(const struct req *); |
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_redirect(const struct req *, const char *); |
static void pg_search(const struct req *); |
static void pg_search(const struct req *); |
static void pg_searchres(const struct req *, |
static void pg_searchres(const struct req *, |
Line 339 resp_begin_http(int code, const char *msg) |
|
Line 340 resp_begin_http(int code, const char *msg) |
|
|
|
printf("Content-Type: text/html; charset=utf-8\r\n" |
printf("Content-Type: text/html; charset=utf-8\r\n" |
"Cache-Control: no-cache\r\n" |
"Cache-Control: no-cache\r\n" |
|
"Content-Security-Policy: default-src 'none'; " |
|
"style-src 'self' 'unsafe-inline'\r\n" |
"Pragma: no-cache\r\n" |
"Pragma: no-cache\r\n" |
"\r\n"); |
"\r\n"); |
|
|
Line 408 resp_searchform(const struct req *req, enum focus focu |
|
Line 411 resp_searchform(const struct req *req, enum focus focu |
|
{ |
{ |
int i; |
int i; |
|
|
printf("<form action=\"/%s\" method=\"get\">\n" |
printf("<form action=\"/%s\" method=\"get\" autocomplete=\"off\">\n" |
" <fieldset>\n" |
" <fieldset>\n" |
" <legend>Manual Page Search Parameters</legend>\n", |
" <legend>Manual Page Search Parameters</legend>\n", |
scriptname); |
scriptname); |
Line 546 pg_index(const struct req *req) |
|
Line 549 pg_index(const struct req *req) |
|
} |
} |
|
|
static void |
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); |
resp_searchform(req, FOCUS_QUERY); |
puts("<p>"); |
puts("<p>"); |
puts(msg); |
puts(user_msg); |
puts("</p>"); |
puts("</p>"); |
resp_end_html(); |
resp_end_html(); |
} |
} |
Line 1016 pg_search(const struct req *req) |
|
Line 1020 pg_search(const struct req *req) |
|
if (req->isquery && req->q.equal && argc == 1) |
if (req->isquery && req->q.equal && argc == 1) |
pg_redirect(req, argv[0]); |
pg_redirect(req, argv[0]); |
else if (mansearch(&search, &paths, argc, argv, &res, &ressz) == 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) |
else if (ressz == 0) |
pg_noresult(req, "No results found."); |
pg_noresult(req, 404, "Not Found", "No results found."); |
else |
else |
pg_searchres(req, res, ressz); |
pg_searchres(req, res, ressz); |
|
|