iGive virtual path instead of real path. - 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 cdf260787abd32506e151744c411d0e1057757d8 /scm/geomyidae/commit/cdf260787abd32506e151744c411d0e1057757d8.gph bitreich.org 70 1parent 32c1854864ce91a873e607659294eda9012411e6 /scm/geomyidae/commit/32c1854864ce91a873e607659294eda9012411e6.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Wed, 23 Aug 2023 13:04:52 +0200 Err bitreich.org 70 i Err bitreich.org 70 iGive virtual path instead of real path. Err bitreich.org 70 i Err bitreich.org 70 i* Fix issue with symlinks to a completely different path. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M main.c | 7 ++++--- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 4 insertions(+), 3 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@@ -331,6 +331,7 @@ dothegopher: Err bitreich.org 70 i logentry(clienth, clientp, recvc, "not found"); Err bitreich.org 70 i return; Err bitreich.org 70 i } Err bitreich.org 70 i+ Err bitreich.org 70 i if (stat(rpath, &dir) != -1) { Err bitreich.org 70 i /* Err bitreich.org 70 i * If sticky bit is set, only serve if this is encrypted. Err bitreich.org 70 i@@ -359,7 +360,7 @@ dothegopher: Err bitreich.org 70 i } Err bitreich.org 70 i /* Err bitreich.org 70 i * The size check for strcat to work is Err bitreich.org 70 i- * above. Err bitreich.org 70 i+ * calculated above this comment. Err bitreich.org 70 i * Err bitreich.org 70 i * Until strlcat isn't properly in all Err bitreich.org 70 i * linux libcs, we keep to this. OpenBSD Err bitreich.org 70 i@@ -422,7 +423,7 @@ dothegopher: Err bitreich.org 70 i if (loglvl & FILES) Err bitreich.org 70 i logentry(clienth, clientp, recvc, "serving"); Err bitreich.org 70 i Err bitreich.org 70 i- type->f(sock, rpath, port, base, args, sear, ohost, Err bitreich.org 70 i+ type->f(sock, path, port, base, args, sear, ohost, Err bitreich.org 70 i clienth, serverh, istls, recvc, traverse); Err bitreich.org 70 i } Err bitreich.org 70 i } else { Err bitreich.org 70 i@@ -436,7 +437,7 @@ dothegopher: Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (!pathfallthrough && S_ISDIR(dir.st_mode)) { Err bitreich.org 70 i- handledir(sock, rpath, port, base, args, sear, ohost, Err bitreich.org 70 i+ handledir(sock, path, port, base, args, sear, ohost, Err bitreich.org 70 i clienth, serverh, istls, recvc, traverse); Err bitreich.org 70 i if (loglvl & DIRS) { Err bitreich.org 70 i logentry(clienth, clientp, recvc, Err bitreich.org 70 .