SMOLNET PORTAL home about changes
iFirst stub for new http-compatibility feature. - 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 3a876cbe4fb9b93ecf98decfa79e7f9b27dbc320	/scm/geomyidae/commit/3a876cbe4fb9b93ecf98decfa79e7f9b27dbc320.gph	bitreich.org	70
1parent 646c0c9ac1c8944393c3640c63ffefd6f400c2a5	/scm/geomyidae/commit/646c0c9ac1c8944393c3640c63ffefd6f400c2a5.gph	bitreich.org	70
hAuthor: Christoph Lohmann <20h@r-36.net>	URL:mailto:20h@r-36.net	bitreich.org	70
iDate:   Sat, 22 Jul 2023 17:14:59 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iFirst stub for new http-compatibility feature.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M main.c                              |      19 +++++++++++++++++++	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 19 insertions(+), 0 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/main.c b/main.c	/scm/geomyidae/file/main.c.gph	bitreich.org	70
i@@ -187,6 +187,25 @@ handlerequest(int sock, char *req, int rlen, char *base, char *ohost,	Err	bitreich.org	70
i         if (c)	Err	bitreich.org	70
i                 c[0] = '\0';	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+        /*	Err	bitreich.org	70
i+         * Try to guess if we have some HTTP-like protocol compatibility	Err	bitreich.org	70
i+         * mode.	Err	bitreich.org	70
i+         */	Err	bitreich.org	70
i+        if (!nocgi && recvb[0] != '/' && (c = strchr(recvb, " "))) {	Err	bitreich.org	70
i+                *c = '\0';	Err	bitreich.org	70
i+                if (strchr(recvb, '/'))	Err	bitreich.org	70
i+                        goto dothegopher;	Err	bitreich.org	70
i+                if (snprintf(path, "%s/%s", base, recvb) <= sizeof(path)) {	Err	bitreich.org	70
i+                        if (realpath(path, (char *)rpath)) {	Err	bitreich.org	70
i+                                if (stat(rpath, &dir)) {	Err	bitreich.org	70
i+                                        handlecgi(sock, rpath, port, base, NULL, NULL, ohost,	Err	bitreich.org	70
i+                                                clienth, serverh, istls, req, NULL);	Err	bitreich.org	70
i+                                }	Err	bitreich.org	70
i+                        }	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+dothegopher:	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         /* Do not allow requests including "..". */	Err	bitreich.org	70
i         if (strstr(recvb, "..")) {	Err	bitreich.org	70
i                 dprintf(sock, "%s", selinval);	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/geomyidae/commit/3a876cbe4fb9...
Content-Typetext/plain; charset=utf-8