iMerge branch 'master' of /srv/git/geomyidae - geomyidae - A small C-based gopherd. Err bitreich.org 70 hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70 1Log /scm/geomyidae/log.gph bitreich.org 70 1Files /scm/geomyidae/files.gph bitreich.org 70 1Refs /scm/geomyidae/refs.gph bitreich.org 70 1Tags /scm/geomyidae/tag bitreich.org 70 1README /scm/geomyidae/file/README.gph bitreich.org 70 1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit e9292b7acff19655482c6b53ff19f8c51f06bdcd /scm/geomyidae/commit/e9292b7acff19655482c6b53ff19f8c51f06bdcd.gph bitreich.org 70 1parent ecf782f0557effe122f791f839a509ec428d236e /scm/geomyidae/commit/ecf782f0557effe122f791f839a509ec428d236e.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Wed, 7 Feb 2018 19:59:31 +0100 Err bitreich.org 70 i Err bitreich.org 70 iMerge branch 'master' of /srv/git/geomyidae Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M README | 2 +- Err bitreich.org 70 i M geomyidae.8 | 49 ++++++++++++++++++------------- Err bitreich.org 70 i M ind.c | 15 --------------- Err bitreich.org 70 i M ind.h | 2 -- Err bitreich.org 70 i M main.c | 16 ++++++++++------ Err bitreich.org 70 i Err bitreich.org 70 i5 files changed, 39 insertions(+), 45 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/README b/README /scm/geomyidae/file/README.gph bitreich.org 70 i@@ -3,7 +3,7 @@ A gopherd for Linux/BSD. Err bitreich.org 70 i Features: Err bitreich.org 70 i * gopher menus (see index.gph for an example) Err bitreich.org 70 i * dir listings (if no index.gph was found) Err bitreich.org 70 i- * cgi support (.cgi files are executed) Err bitreich.org 70 i+ * CGI support (.cgi files are executed) Err bitreich.org 70 i * search support in CGI files Err bitreich.org 70 i * logging (-l option) and loglevels (-v option) Err bitreich.org 70 i Err bitreich.org 70 1diff --git a/geomyidae.8 b/geomyidae.8 /scm/geomyidae/file/geomyidae.8.gph bitreich.org 70 i@@ -328,6 +328,13 @@ All terms are tab-separated (per gopher protocol) which can cause some Err bitreich.org 70 i surprises depending on how a script is written. See the CGI file (included Err bitreich.org 70 i in the geomyidae source archive) for further elaboration. Err bitreich.org 70 i .Pp Err bitreich.org 70 i+QUIRK: The original gopher client tried to be too intelligent. It is using Err bitreich.org 70 i+gopher+ when you request some resource. When "search" is just the value "+", Err bitreich.org 70 i+"!", "$" or empty, geomyidae will display a gopher+ redirect instead of invoking the Err bitreich.org 70 i+script. Be careful to design your search script so the user is unlikely to Err bitreich.org 70 i+enter those values. The designers of gopher+ did not think of classic gopher Err bitreich.org 70 i+to survive. It survived gopher+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i Additionally to the above arguments several environment variables are set. Err bitreich.org 70 i .Pp Err bitreich.org 70 i .Dl GATEWAY_INTERFACE = `CGI/1.1' Err bitreich.org 70 i@@ -442,7 +449,7 @@ recursions, and/or unintended writes in the working directory. Err bitreich.org 70 i The log file (ie. /var/log/gopherd.log) has the following structure: Err bitreich.org 70 i . Err bitreich.org 70 i .Pp Err bitreich.org 70 i-.Ic [|] () Err bitreich.org 70 i+.Ic [|||] Err bitreich.org 70 i . Err bitreich.org 70 i .Pp Err bitreich.org 70 i where, Err bitreich.org 70 i@@ -452,40 +459,40 @@ where, Err bitreich.org 70 i = access date and time (std 'date' format) Err bitreich.org 70 i .Pp Err bitreich.org 70 i ex. Err bitreich.org 70 i-.Qq "Sun Feb 17 06:11:10 PST 2008" Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= client IP address and port served Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-ex. Err bitreich.org 70 i-.Qq "24.208.18.127:16857" Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= full path to item served Err bitreich.org 70 i+.Qq "2018-01-31 14:18:34 +0000" Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= client IP/Host served Err bitreich.org 70 i .Pp Err bitreich.org 70 i ex. Err bitreich.org 70 i-.D1 Qo "/PICS/simple2.jpg" Qc for an image file Err bitreich.org 70 i-.D1 Qo "/PICS" Qc for a directory access Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= query term submitted (Type 7 requests only) Err bitreich.org 70 i+.Qq "104.23.33.1" Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= client port served Err bitreich.org 70 i .Pp Err bitreich.org 70 i ex. Err bitreich.org 70 i-.Dl % snarf Qq "gopher://frog.bog/7/hello.cgi?Christoph" Err bitreich.org 70 i-.Dl would log Qo "Christoph" Qc as the query term. Err bitreich.org 70 i-.It Ic () Err bitreich.org 70 i+.Qq "16857" Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i = status of client request Err bitreich.org 70 i .Pp Err bitreich.org 70 i ex. - some common status entries: Err bitreich.org 70 i-.It Qo (serving) Qc Err bitreich.org 70 i+.It Qo serving Qc Err bitreich.org 70 i => a successful request Err bitreich.org 70 i-.It Qo (not found) Qc Err bitreich.org 70 i+.It Qo not found Qc Err bitreich.org 70 i => an unsuccessful request Err bitreich.org 70 i-.It Qo (HTTP redirect) Qc Err bitreich.org 70 i+.It Qo HTTP redirect Qc Err bitreich.org 70 i => web link redirect (Type h) Err bitreich.org 70 i-.It Qo (dir listing) Qc Err bitreich.org 70 i+.It Qo dir listing Qc Err bitreich.org 70 i => unindexed directory listing Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= full path to item served Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+ex. Err bitreich.org 70 i+.D1 Qo "/PICS/simple2.jpg" Qc for an image file Err bitreich.org 70 i+.D1 Qo "/PICS" Qc for a directory access Err bitreich.org 70 i .El Err bitreich.org 70 i . Err bitreich.org 70 i .Sh FILES Err bitreich.org 70 i-README, LICENSE, CGI, index.gph, rc.d/ Err bitreich.org 70 i+README, LICENSE, CGI, index.gph, rc.d/, LINKS, gph/ Err bitreich.org 70 i . Err bitreich.org 70 i .Sh SEE ALSO Err bitreich.org 70 i Links for further information on gopher: Err bitreich.org 70 1diff --git a/ind.c b/ind.c /scm/geomyidae/file/ind.c.gph bitreich.org 70 i@@ -262,7 +262,6 @@ getadv(char *str) Err bitreich.org 70 i char *b, *e, *o, *bo; Err bitreich.org 70 i Elems *ret; Err bitreich.org 70 i Err bitreich.org 70 i- Err bitreich.org 70 i ret = xcalloc(1, sizeof(Elems)); Err bitreich.org 70 i Err bitreich.org 70 i if (strchr(str, '\t')) { Err bitreich.org 70 i@@ -387,20 +386,6 @@ printelem(int fd, Elems *el, char *addr, char *port) Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i-int Err bitreich.org 70 i-initlogging(char *logf) Err bitreich.org 70 i-{ Err bitreich.org 70 i- return open(logf, O_APPEND | O_WRONLY | O_CREAT, 0644); Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i-void Err bitreich.org 70 i-stoplogging(int fd) Err bitreich.org 70 i-{ Err bitreich.org 70 i- close(fd); Err bitreich.org 70 i- Err bitreich.org 70 i- return; Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i char * Err bitreich.org 70 i smprintf(char *fmt, ...) Err bitreich.org 70 i { Err bitreich.org 70 1diff --git a/ind.h b/ind.h /scm/geomyidae/file/ind.h.gph bitreich.org 70 i@@ -46,8 +46,6 @@ void addindexs(Indexs *idx, Elems *el); Err bitreich.org 70 i void addelem(Elems *e, char *s); Err bitreich.org 70 i void freeindex(Indexs *i); Err bitreich.org 70 i void freeelem(Elems *e); Err bitreich.org 70 i-int initlogging(char *logf); Err bitreich.org 70 i-void stoplogging(int fd); Err bitreich.org 70 i char *smprintf(char *fmt, ...); Err bitreich.org 70 i char *reverselookup(char *host); Err bitreich.org 70 i void setcgienviron(char *file, char *path, char *port, char *base, Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/geomyidae/file/main.c.gph bitreich.org 70 i@@ -247,8 +247,10 @@ sighandler(int sig) Err bitreich.org 70 i case SIGABRT: Err bitreich.org 70 i case SIGTERM: Err bitreich.org 70 i case SIGKILL: Err bitreich.org 70 i- if (logfile != nil) Err bitreich.org 70 i- stoplogging(glfd); Err bitreich.org 70 i+ if (logfile != nil && glfd != -1) { Err bitreich.org 70 i+ close(glfd); Err bitreich.org 70 i+ glfd = -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i if (listfd >= 0) { Err bitreich.org 70 i shutdown(listfd, SHUT_RDWR); Err bitreich.org 70 i close(listfd); Err bitreich.org 70 i@@ -448,9 +450,9 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (logfile != nil) { Err bitreich.org 70 i- glfd = initlogging(logfile); Err bitreich.org 70 i+ glfd = open(logfile, O_APPEND | O_WRONLY | O_CREAT, 0644); Err bitreich.org 70 i if (glfd < 0) { Err bitreich.org 70 i- perror("initlogging"); Err bitreich.org 70 i+ perror("log"); Err bitreich.org 70 i return 1; Err bitreich.org 70 i } Err bitreich.org 70 i } else if (!dofork) { Err bitreich.org 70 i@@ -573,8 +575,10 @@ main(int argc, char *argv[]) Err bitreich.org 70 i Err bitreich.org 70 i shutdown(listfd, SHUT_RDWR); Err bitreich.org 70 i close(listfd); Err bitreich.org 70 i- if (logfile != nil) Err bitreich.org 70 i- stoplogging(glfd); Err bitreich.org 70 i+ if (logfile != nil && glfd != -1) { Err bitreich.org 70 i+ close(glfd); Err bitreich.org 70 i+ glfd = -1; Err bitreich.org 70 i+ } Err bitreich.org 70 i free(ohost); Err bitreich.org 70 i Err bitreich.org 70 i return 0; Err bitreich.org 70 .