-/* $Id: cgi.c,v 1.11 2014/07/13 12:44:57 schwarze Exp $ */
+/* $Id: cgi.c,v 1.12 2014/07/13 12:55:24 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014 Ingo Schwarze <schwarze@usta.de>
static void http_putchar(char);
static void http_printquery(const struct req *);
static void pathgen(struct req *);
+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_search(const struct req *);
+static void pg_searchres(const struct req *,
+ struct manpage *, size_t);
static void pg_show(const struct req *, const char *);
static void resp_begin_html(int, const char *);
static void resp_begin_http(int, const char *);
static void resp_end_html(void);
-static void resp_error_badrequest(const char *);
-static void resp_error_internal(void);
-static void resp_index(const struct req *);
-static void resp_noresult(const struct req *,
- const char *);
-static void resp_search(const struct req *,
- struct manpage *, size_t);
static void resp_searchform(const struct req *);
static void resp_show(const struct req *, const char *);
}
static void
-resp_index(const struct req *req)
+pg_index(const struct req *req)
{
resp_begin_html(200, NULL);
}
static void
-resp_noresult(const struct req *req, const char *msg)
+pg_noresult(const struct req *req, const char *msg)
{
resp_begin_html(200, NULL);
resp_searchform(req);
}
static void
-resp_error_badrequest(const char *msg)
+pg_error_badrequest(const char *msg)
{
resp_begin_html(400, "Bad Request");
}
static void
-resp_error_internal(void)
+pg_error_internal(void)
{
resp_begin_html(500, "Internal Server Error");
puts("<P>Internal Server Error</P>");
}
static void
-resp_search(const struct req *req, struct manpage *r, size_t sz)
+pg_searchres(const struct req *req, struct manpage *r, size_t sz)
{
size_t i, iuse, isec;
int prio, priouse;
if (rc >= MANDOCLEVEL_FATAL) {
fprintf(stderr, "fatal mandoc error: %s/%s\n",
req->q.manpath, file);
- resp_error_internal();
+ pg_error_internal();
return;
}
if (NULL == man && NULL == mdoc) {
fprintf(stderr, "fatal mandoc error: %s/%s\n",
req->q.manpath, file);
- resp_error_internal();
+ pg_error_internal();
mparse_free(mp);
return;
}
char *sub;
if (NULL == path || NULL == (sub = strchr(path, '/'))) {
- resp_error_badrequest(
+ pg_error_badrequest(
"You did not specify a page to show.");
return;
}
*/
if (-1 == chdir(path)) {
- resp_error_badrequest(
+ pg_error_badrequest(
"You specified an invalid manpath.");
return;
}
*/
if (-1 == (chdir(req->q.manpath))) {
- resp_error_badrequest(
+ pg_error_badrequest(
"You specified an invalid manpath.");
return;
}
}
if (0 == mansearch(&search, &paths, sz, cp, "Nd", &res, &ressz))
- resp_noresult(req, "You entered an invalid query.");
+ pg_noresult(req, "You entered an invalid query.");
else if (0 == ressz)
- resp_noresult(req, "No results found.");
+ pg_noresult(req, "No results found.");
else
- resp_search(req, res, ressz);
+ pg_searchres(req, res, ressz);
for (i = 0; i < sz; i++)
free(cp[i]);
if (-1 == chdir(MAN_DIR)) {
fprintf(stderr, "MAN_DIR: %s: %s\n",
MAN_DIR, strerror(errno));
- resp_error_internal();
+ pg_error_internal();
return(EXIT_FAILURE);
}
else if (NULL != req.q.expr)
pg_search(&req);
else
- resp_index(&req);
+ pg_index(&req);
for (i = 0; i < (int)req.psz; i++)
free(req.p[i]);