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); } }