It appears that hostnames configured as virtual hosts with gmnisrv are
case-sensitive. Since DNS hostnames are case insensitive I would have
expected gmnisrv to lowercase-ify incoming requests prior to matching
the directives in the INI file.
To test this I attempted to load gemini://gopher.black (which uses
gmnisrv) and gemini://GOPHER.BLACK via a variety of clients. Some
clients handle lowercasifying the request on their end, but many do not.
Amfora is a good example. Use that returns either the correct gemini
site or Proxy Request Refused in the case of the capitalized version.
I've not touched C much in 20 years, but I grabbed the source thinking
this should be an
easy fix. "Proxy Request Refused" is response code 53. I see it defined
in the source as
GEMINI_STATUS_PROXY_REQUEST_REFUSED, but the only reference is in
serve.c where
the error message is "Refusing proxy to non-gemini URL". Based on the
code I would have
expected this to hit the "Protocol error: hostname does not match SNI"
block and given
a GEMINI_STATUS_BAD_REQUEST response instead of the 53 I'm seeing.
I'm guessing I'm just not following the logic as to what's going on
here. I'm sure it's an
easy patch for someone a bit more versed in the language.