support error event, see #644

This commit is contained in:
Cloud Wu
2017-05-27 10:41:29 +08:00
parent a504c5e624
commit 7400e51451
4 changed files with 22 additions and 4 deletions

View File

@@ -1302,6 +1302,21 @@ socket_server_poll(struct socket_server *ss, struct socket_message * result, int
break;
return type;
}
if (e->error) {
// close when error
int error;
socklen_t len = sizeof(error);
int code = getsockopt(s->fd, SOL_SOCKET, SO_ERROR, &error, &len);
if (code < 0) {
result->data = strerror(errno);
} else if (error != 0) {
result->data = strerror(error);
} else {
result->data = "Unknown error";
}
force_close(ss, s, result);
return SOCKET_ERR;
}
break;
}
}