os: Mark client as ready to read when closing due to write failure [100863]
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 <keithp@keithp.com> Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
a82971b070
commit
e2f68296ff
6
os/io.c
6
os/io.c
|
@ -635,7 +635,10 @@ SetCriticalOutputPending(void)
|
||||||
/*****************
|
/*****************
|
||||||
* AbortClient:
|
* AbortClient:
|
||||||
* When a write error occurs to a client, close
|
* 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
|
static void
|
||||||
|
@ -647,6 +650,7 @@ AbortClient(ClientPtr client)
|
||||||
_XSERVTransDisconnect(oc->trans_conn);
|
_XSERVTransDisconnect(oc->trans_conn);
|
||||||
_XSERVTransClose(oc->trans_conn);
|
_XSERVTransClose(oc->trans_conn);
|
||||||
oc->trans_conn = NULL;
|
oc->trans_conn = NULL;
|
||||||
|
mark_client_ready(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue