~sircmpwn/gmnisrv

132f2ececc012cf4744ca5b8044fb637fed96a0c — Julian Maingot 2 years ago 1925bc3
notify clients about malformed requests

I think this has been broken for a while and I came across it while
implementing my own client. The server should notify the client that the
request is malformed but wasn't sending the response when SSL_read
returned SSL_ERROR_WANT_READ.
1 files changed, 4 insertions(+), 1 deletions(-)

M src/server.c
M src/server.c => src/server.c +4 -1
@@ 345,7 345,10 @@ client_readable(struct gmnisrv_server *server, struct gmnisrv_client *client)
		switch (e) {
		case SSL_ERROR_WANT_READ:
		case SSL_ERROR_WANT_WRITE:
			goto queue_ssl_write;
                        if (client->bufln == 0) {
                                goto queue_ssl_write;
                        }
                        // intentional fallthrough
		default:
			client_submit_response(client,
				GEMINI_STATUS_BAD_REQUEST, error, NULL);