Client behavior when server doesn't close connection?

juhani juhani at envs.net
Thu Jul 9 13:27:54 BST 2020


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



More information about the Gemini mailing list