From e2f68296ffb8e40035c0ebd949b67d1e2e424e11 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 29 Apr 2017 00:26:10 -0700 Subject: [PATCH] os: Mark client as ready to read when closing due to write failure [100863] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes sure the server will go look at the client again, notice that the FD is no longer valid and close the client down. Bugzilla: https://bugs.freedesktop.org/100863 Signed-off-by: Keith Packard Reviewed-and-Tested-by: Michel Dänzer --- os/io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/os/io.c b/os/io.c index 9b6a7d459..e1b90d17e 100644 --- a/os/io.c +++ b/os/io.c @@ -635,7 +635,10 @@ SetCriticalOutputPending(void) /***************** * AbortClient: * When a write error occurs to a client, close - * the connection and clean things up. + * the connection and clean things up. Mark + * the client as 'ready' so that the server will + * try to read from it again, notice that the fd is + * closed and clean up from there. *****************/ static void @@ -647,6 +650,7 @@ AbortClient(ClientPtr client) _XSERVTransDisconnect(oc->trans_conn); _XSERVTransClose(oc->trans_conn); oc->trans_conn = NULL; + mark_client_ready(client); } }