source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: namespace cleanups: CGI variable: s/CACHE_DIR/MAN_DIR/  because
@ 2014-07-09 14:18 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-07-09 14:18 UTC (permalink / raw)
  To: source

Log Message:
-----------
namespace cleanups:
CGI variable: s/CACHE_DIR/MAN_DIR/  because it's static, not a cache
default MAN_DIR: /cache/man.cgi/ -> /man/  see above
global variable: s/cache/mandir/  see above        
global variable: s/css/cssdir/  for consistency with mandir
global variable: s/host/httphost/  for consistency with HTTP_HOST
global variable: s/progname/scriptname/  for consistency with SCRIPT_NAME
struct query: member s/manroot/manpath/  for consistency with QUERY_STRING

Modified Files:
--------------
    mdocml:
        cgi.c

Revision Data
-------------
Index: cgi.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/cgi.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -Lcgi.c -Lcgi.c -u -p -r1.57 -r1.58
--- cgi.c
+++ cgi.c
@@ -20,6 +20,7 @@
 #endif
 
 #include <ctype.h>
+#include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
 #include <stdio.h>
@@ -44,7 +45,7 @@ enum	page {
  * A query as passed to the search function.
  */
 struct	query {
-	const char	*manroot; /* manual root directory */
+	const char	*manpath; /* desired manual directory */
 	const char	*arch; /* architecture */
 	const char	*sec; /* manual section */
 	const char	*expr; /* unparsed expression string */
@@ -52,10 +53,10 @@ struct	query {
 };
 
 struct	req {
-	struct query	 q;
-	char		**p; /* array of available manroots */
-	size_t		 psz; /* number of available manroots */
-	enum page	 page;
+	struct query	  q;
+	char		**p; /* array of available manpaths */
+	size_t		  psz; /* number of available manpaths */
+	enum page	  page;
 };
 
 static	void		 catman(const struct req *, const char *);
@@ -85,10 +86,10 @@ static	void		 resp_search(const struct r
 				struct manpage *, size_t);
 static	void		 resp_searchform(const struct req *);
 
-static	const char	 *progname; /* cgi script name */
-static	const char	 *cache; /* cache directory */
-static	const char	 *css; /* css directory */
-static	const char	 *host; /* hostname */
+static	const char	 *scriptname; /* CGI script name */
+static	const char	 *mandir; /* contains all manpath directories */
+static	const char	 *cssdir; /* css directory */
+static	const char	 *httphost; /* hostname used in the URIs */
 
 static	const char * const pages[PAGE__MAX] = {
 	"index", /* PAGE_INDEX */ 
@@ -127,9 +128,9 @@ static void
 http_printquery(const struct req *req)
 {
 
-	if (NULL != req->q.manroot) {
+	if (NULL != req->q.manpath) {
 		printf("&manpath=");
-		http_print(req->q.manroot);
+		http_print(req->q.manpath);
 	}
 	if (NULL != req->q.sec) {
 		printf("&sec=");
@@ -149,9 +150,9 @@ static void
 html_printquery(const struct req *req)
 {
 
-	if (NULL != req->q.manroot) {
+	if (NULL != req->q.manpath) {
 		printf("&amp;manpath=");
-		html_print(req->q.manroot);
+		html_print(req->q.manpath);
 	}
 	if (NULL != req->q.sec) {
 		printf("&amp;sec=");
@@ -203,7 +204,7 @@ http_parse(struct req *req, char *p)
 	int		 legacy;
 
 	memset(&req->q, 0, sizeof(struct query));
-	req->q.manroot = req->p[0];
+	req->q.manpath = req->p[0];
 
 	legacy = -1;
 	while ('\0' != *p) {
@@ -237,7 +238,7 @@ http_parse(struct req *req, char *p)
 		else if (0 == strcmp(key, "arch"))
 			req->q.arch = val;
 		else if (0 == strcmp(key, "manpath"))
-			req->q.manroot = val;
+			req->q.manpath = val;
 		else if (0 == strcmp(key, "apropos"))
 			legacy = 0 == strcmp(val, "0");
 	}
@@ -342,7 +343,8 @@ resp_begin_html(int code, const char *ms
 	       "<TITLE>System Manpage Reference</TITLE>\n"
 	       "</HEAD>\n"
 	       "<BODY>\n"
-	       "<!-- Begin page content. //-->\n", css, css);
+	       "<!-- Begin page content. //-->\n",
+	       cssdir, cssdir);
 }
 
 static void
@@ -366,7 +368,7 @@ resp_searchform(const struct req *req)
 	       "<INPUT TYPE=\"submit\" "
 	       " VALUE=\"Search\"> for manuals satisfying \n"
 	       "<INPUT TYPE=\"text\" NAME=\"expr\" VALUE=\"",
-	       progname);
+	       scriptname);
 	html_print(req->q.expr ? req->q.expr : "");
 	printf("\">, section "
 	       "<INPUT TYPE=\"text\""
@@ -381,8 +383,8 @@ resp_searchform(const struct req *req)
 		puts(", <SELECT NAME=\"manpath\">");
 		for (i = 0; i < (int)req->psz; i++) {
 			printf("<OPTION ");
-			if (NULL == req->q.manroot ? 0 == i :
-			    0 == strcmp(req->q.manroot, req->p[i]))
+			if (NULL == req->q.manpath ? 0 == i :
+			    0 == strcmp(req->q.manpath, req->p[i]))
 				printf("SELECTED=\"selected\" ");
 			printf("VALUE=\"");
 			html_print(req->p[i]);
@@ -419,7 +421,7 @@ resp_error400(void)
 	       "The query your entered was malformed.\n"
 	       "Try again from the\n"
 	       "<A HREF=\"%s/index.html\">main page</A>.\n"
-	       "</P>", progname);
+	       "</P>", scriptname);
 	resp_end_html();
 }
 
@@ -436,8 +438,8 @@ resp_error404(const char *page)
 	printf("</B>,\n"
 	       "could not be found.\n"
 	       "Try searching from the\n"
-	       "<A HREF=\"%s/index.html\">main page</A>.\n"
-	       "</P>", progname);
+	       "<A HREF=\"%s\">main page</A>.\n"
+	       "</P>", scriptname);
 	resp_end_html();
 }
 
@@ -445,7 +447,7 @@ static void
 resp_bad(void)
 {
 	resp_begin_html(500, "Internal Server Error");
-	puts("<P>Generic badness happened.</P>");
+	puts("<P>Internal Server Error</P>");
 	resp_end_html();
 }
 
@@ -470,7 +472,7 @@ resp_search(const struct req *req, struc
 		 */
 		puts("Status: 303 See Other");
 		printf("Location: http://%s%s/show/%s/%s?",
-		    host, progname, req->q.manroot, r[0].file);
+		    httphost, scriptname, req->q.manpath, r[0].file);
 		http_printquery(req);
 		puts("\n"
 		     "Content-Type: text/html; charset=utf-8\n");
@@ -499,7 +501,7 @@ resp_search(const struct req *req, struc
 		printf("<TR>\n"
 		       "<TD CLASS=\"title\">\n"
 		       "<A HREF=\"%s/show/%s/%s?", 
-		    progname, req->q.manroot, r[i].file);
+		    scriptname, req->q.manpath, r[i].file);
 		html_printquery(req);
 		printf("\">");
 		html_print(r[i].names);
@@ -677,7 +679,7 @@ format(const struct req *req, const char
 	}
 
 	mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_FATAL, NULL,
-	    req->q.manroot);
+	    req->q.manpath);
 	rc = mparse_readfd(mp, fd, file);
 	close(fd);
 
@@ -688,7 +690,7 @@ format(const struct req *req, const char
 
 	snprintf(opts, sizeof(opts),
 	    "fragment,man=%s/search?sec=%%S&expr=Nm~^%%N$",
-	    progname);
+	    scriptname);
 
 	mparse_result(mp, &mdoc, &man, NULL);
 	if (NULL == man && NULL == mdoc) {
@@ -726,7 +728,7 @@ pg_show(const struct req *req, char *pat
 	*sub++ = '\0';
 
 	/*
-	 * Begin by chdir()ing into the manroot.
+	 * Begin by chdir()ing into the manpath.
 	 * This way we can pick up the database files, which are
 	 * relative to the manpath root.
 	 */
@@ -760,8 +762,8 @@ pg_search(const struct req *req, char *p
 	 * relative to the manpath root.
 	 */
 
-	if (-1 == (chdir(req->q.manroot))) {
-		perror(req->q.manroot);
+	if (-1 == (chdir(req->q.manpath))) {
+		perror(req->q.manpath);
 		resp_search(req, NULL, 0);
 		return;
 	}
@@ -823,30 +825,31 @@ main(void)
 {
 	int		 i;
 	struct req	 req;
-	char		*p, *path, *subpath;
+	char		*querystring, *path, *subpath;
 
 	/* Scan our run-time environment. */
 
-	if (NULL == (cache = getenv("CACHE_DIR")))
-		cache = "/cache/man.cgi";
+	if (NULL == (mandir = getenv("MAN_DIR")))
+		mandir = "/man";
 
-	if (NULL == (progname = getenv("SCRIPT_NAME")))
-		progname = "";
+	if (NULL == (scriptname = getenv("SCRIPT_NAME")))
+		scriptname = "";
 
-	if (NULL == (css = getenv("CSS_DIR")))
-		css = "";
+	if (NULL == (cssdir = getenv("CSS_DIR")))
+		cssdir = "";
 
-	if (NULL == (host = getenv("HTTP_HOST")))
-		host = "localhost";
+	if (NULL == (httphost = getenv("HTTP_HOST")))
+		httphost = "localhost";
 
 	/*
-	 * First we change directory into the cache directory so that
+	 * First we change directory into the mandir so that
 	 * subsequent scanning for manpath directories is rooted
 	 * relative to the same position.
 	 */
 
-	if (-1 == chdir(cache)) {
-		perror(cache);
+	if (-1 == chdir(mandir)) {
+		fprintf(stderr, "MAN_DIR: %s: %s\n",
+		    mandir, strerror(errno));
 		resp_bad();
 		return(EXIT_FAILURE);
 	} 
@@ -856,8 +859,8 @@ main(void)
 
 	/* Next parse out the query string. */
 
-	if (NULL != (p = getenv("QUERY_STRING")))
-		http_parse(&req, p);
+	if (NULL != (querystring = getenv("QUERY_STRING")))
+		http_parse(&req, querystring);
 
 	/*
 	 * Now juggle paths to extract information.
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-07-09 14:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-09 14:18 mdocml: namespace cleanups: CGI variable: s/CACHE_DIR/MAN_DIR/ because schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).