mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 03:53:09 +00:00
support error event, see #644
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user