mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 12:20:41 +00:00
can't write to listen fd, See issue #294
This commit is contained in:
@@ -687,7 +687,11 @@ send_socket(struct socket_server *ss, struct request_send * request, struct sock
|
|||||||
so.free_func(request->buffer);
|
so.free_func(request->buffer);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
assert(s->type != SOCKET_TYPE_PLISTEN && s->type != SOCKET_TYPE_LISTEN);
|
if (s->type == SOCKET_TYPE_PLISTEN || s->type == SOCKET_TYPE_LISTEN) {
|
||||||
|
fprintf(stderr, "socket-server: write to listen fd %d.\n", id);
|
||||||
|
so.free_func(request->buffer);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if (send_buffer_empty(s) && s->type == SOCKET_TYPE_CONNECTED) {
|
if (send_buffer_empty(s) && s->type == SOCKET_TYPE_CONNECTED) {
|
||||||
if (s->protocol == PROTOCOL_TCP) {
|
if (s->protocol == PROTOCOL_TCP) {
|
||||||
int n = write(s->fd, so.buffer, so.sz);
|
int n = write(s->fd, so.buffer, so.sz);
|
||||||
@@ -700,6 +704,7 @@ send_socket(struct socket_server *ss, struct request_send * request, struct sock
|
|||||||
default:
|
default:
|
||||||
fprintf(stderr, "socket-server: write to %d (fd=%d) error :%s.\n",id,s->fd,strerror(errno));
|
fprintf(stderr, "socket-server: write to %d (fd=%d) error :%s.\n",id,s->fd,strerror(errno));
|
||||||
force_close(ss,s,result);
|
force_close(ss,s,result);
|
||||||
|
so.free_func(request->buffer);
|
||||||
return SOCKET_CLOSE;
|
return SOCKET_CLOSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user