michael-lazar / flask-gopher

A Flask extension to support the Gopher protocol
GNU General Public License v3.0
77 stars 6 forks source link

Question about state of ssl branch... #2

Closed ghost closed 5 years ago

ghost commented 5 years ago

Thanks so much for your work on this project. ran across mozz.us and saw your ssl test. The code and design look beautiful and I'd love to help any way I can (testing, docs, etc)...

Are you planning on releasing the ssl stuff soon? I imagine the current release is based off master, yeah?

Also curious about the port choice... was 7005 necessary for technical reasons related to ssl? Looks like you had a nice wrapper to transparently serve up the ssl or plaintext conditionally which nicely meets the requirements I saw discussed around having ssl solutions that don't block out existing clients.

Also, do you happen to know of a client that supports this? the piping to openssl command example you had worked nicely for me ( gopher://mozz.us:7005/1/demo-ssl ), but didn't have luck in lynx or any of the android clients I tried (Diggie Dog / Pocket Gopher)

TIA! Really excited to see your work on this. Just discovered gopher recently and it feels so deeply right and good. I found a way to actually maintain a blog :P

Been a long time since I've touched python, but you've given me a very good reason to!

michael-lazar commented 5 years ago

Hey there!

The SSL support is still experimental and based on some discussion that happened on the mailing list back in February / March:

https://lists.debian.org/gopher-project/2018/02/ https://lists.debian.org/gopher-project/2018/03/

As far as I know there are only a couple of command line gopher clients that support it. I don't remember exactly which ones, but hopefully you can find them in those threads. The reason I haven't released it is because I discovered a bug in my code where the server doesn't close the SSL socket after serving a page. It still works with the openssl command, but most gopher clients need the server to terminate the connection to work properly. Fixing the bug is tricky because I'm hooking into flask's HTTP server and the socket connection isn't directly exposed. I was working on a patch but I got... distracted.

The 7005 port choice is only because I'm running two python servers on the same machine (one for mozz.us and one for the flask-gopher demo) and they can't both be bound to port 70. I appreciate the simplicity of gopher in that all ports are considered equal.

Good luck and I look forward to seeing what you build in gopherspace!

ghost commented 5 years ago

Thanks so much for the info and again for all your work on this project. I'll take a peek at the ssl branch sometime soon.

Best!