Client behavior when server doesn't close connection?

Hi all,

I'm juhani, new here, and implementing an Android gemini client.

While testing with live sites for the first time I found that some sites worked,
and on others the response handling hung. Comparison of tcp streams revealed
that on the working sites the last packet from the server had FIN flag, and on
the failing sites it didn't.

I changed the client so it doesn't try to read the whole response before parsing
the header. And added timeout to make sure the connection is closed.

These changes make sense to me, but what should the client do if it cant be sure
it has the complete payload? With line based content it's possible to show what
you've got. The clients I've tried, so far, seem to do that, but is it correct?
And what about binary content?


~juhani

gemini://envs.net/~juhani
https://git.envs.net/juhani/minigem

---

Next in thread (2 of 16): 🗣️ Petite Abeille (petite.abeille (a) gmail.com)

View entire thread.