summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/server.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server.c b/src/server.c
index 65b8204..3a07b9b 100644
--- a/src/server.c
+++ b/src/server.c
@@ -463,7 +463,11 @@ client_writable(struct gmnisrv_server *server, struct gmnisrv_client *client)
for (int w = 0; w < r; ) {
int q = write(client->sockfd, &buf[w], r - w);
if (q < 0) {
- assert(0); // TODO: handle write errors
+ client_error(&client->addr,
+ "client write: %s",
+ strerror(errno));
+ disconnect_client(server, client);
+ return DISCONNECTED;
}
w += q;
}