Bump version and dependencies
Sort directory listings, grouped by dirs then files
Heya! Thanks for putting Gemserv out there!
This changes directory listings so that all directories are listed (sorted), then all filenames are listed (sorted). You can see the output of this patch running at gemini://gemini.freeradical.zone/log/ . The downside is that now you’ll temporarily have 2 copies of the directory listing in RAM during the request: one in `list`, and a second copy divided across `dirs` and `files`. It seems unlikely that anyone’s currently using Gemserv to serve directories that just barely fit in RAM, so that seems pretty low risk. 🙂
update config.toml and bumb version
Implement proxy_all for proxying entire domains
I wanted to add another domain behind a reverse proxy. The existing
reverse proxy functionality seemed to only work for subpaths so I
implemented this. (I'm happy with another better way if you can point one
I also implemented streaming responses when reverse proxying. That way
the responses stay as similar as possible to the upstream server.
Stopped ignoring Cargo.lock in git
Added CGI vars AUTH_TYPE, REMOTE_USER and TLS_CLIENT_HASH
Add CGI env parameter PATH_INFO
This means that a CGI script, say, /cgi-bin/foo can be requested using a
subpath like /cgi-bin/foo/bar/baz. In that case, PATH_INFO is set to
"/bar/baz". As it is easy to compute SCRIPT_NAME along with PATH_INFO,
we also refactor it. SCRIPT_NAME now contains the URL to the script, not
just the basename of it. This is typical CGI behavior.
Since the cgi handling code was needed in two places, it was refactored
a bit. Other parts of handle_connection could be refactored similarly.
The code now supports executables inside subdirectories of cgipath.
Previously the executable had to be in cgipath, subdirs not allowed.
Url encoding and decoding
If there's no extension or unknown file type it will send text/plain
Added UPDATING FILE. also fixed a few bugs
Fixed typo in config.toml
Timeout for request and cgi