Give virtual path instead of real path. - geomyidae - a small C-based gopherd (… | |
git clone git://git.codemadness.org/geomyidae | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit cdf260787abd32506e151744c411d0e1057757d8 | |
parent 32c1854864ce91a873e607659294eda9012411e6 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Wed, 23 Aug 2023 13:04:52 +0200 | |
Give virtual path instead of real path. | |
* Fix issue with symlinks to a completely different path. | |
Diffstat: | |
M main.c | 7 ++++--- | |
1 file changed, 4 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/main.c b/main.c | |
@@ -331,6 +331,7 @@ dothegopher: | |
logentry(clienth, clientp, recvc, "not found"); | |
return; | |
} | |
+ | |
if (stat(rpath, &dir) != -1) { | |
/* | |
* If sticky bit is set, only serve if this is encrypted. | |
@@ -359,7 +360,7 @@ dothegopher: | |
} | |
/* | |
* The size check for strcat to work is | |
- * above. | |
+ * calculated above this comment. | |
* | |
* Until strlcat isn't properly in all | |
* linux libcs, we keep to this. OpenBSD | |
@@ -422,7 +423,7 @@ dothegopher: | |
if (loglvl & FILES) | |
logentry(clienth, clientp, recvc, "serving"); | |
- type->f(sock, rpath, port, base, args, sear, ohost, | |
+ type->f(sock, path, port, base, args, sear, ohost, | |
clienth, serverh, istls, recvc, traverse); | |
} | |
} else { | |
@@ -436,7 +437,7 @@ dothegopher: | |
} | |
if (!pathfallthrough && S_ISDIR(dir.st_mode)) { | |
- handledir(sock, rpath, port, base, args, sear, ohost, | |
+ handledir(sock, path, port, base, args, sear, ohost, | |
clienth, serverh, istls, recvc, traverse); | |
if (loglvl & DIRS) { | |
logentry(clienth, clientp, recvc, |