On Mon, Dec 21 2020, Christoph Lohmann wrote:
Geomyidae uses a simple probing, which can be easily implemented inevery server. if (recv(sock, &byte0, 1, MSG_PEEK) < ) return 1; if (byte0 == 0x16) { do_tls(); }
That is a FANTASTIC trick! Actually it could be expanded to simply do plaintext for a non-TLS-capable client. I personally would prefer that, if only because I still want to use UMN gopher client sometimes. There is something about its lovely 90s feel...
A separate port will lead to a bifurcated gopher, because there is no support in gopher menus. Extending gopher menus leads to less legacysupport, which is what makes gopher so much fun.
Well, the gopher menu type does have a spot for port number, and a well-known TLS port could be a signal. But you're right, then we're back to the problem of what to do with non-TLS clients.
If the server could auto-detect TLS and hand out plaintext for those that don't do it, then hey, port 70 all the way.
- John