Fix leak of second+ receive/send object.
This commit is contained in:
@@ -144,6 +144,9 @@ void receive_new(int fd, void *unused, struct peer *on_close) {
|
|||||||
receive->parser_wrapper = receive_autodetect_parse;
|
receive->parser_wrapper = receive_autodetect_parse;
|
||||||
receive->prev = NULL;
|
receive->prev = NULL;
|
||||||
receive->next = receive_head;
|
receive->next = receive_head;
|
||||||
|
if (receive->next) {
|
||||||
|
receive->next->prev = receive;
|
||||||
|
}
|
||||||
receive_head = receive;
|
receive_head = receive;
|
||||||
peer_epoll_add((struct peer *) receive, EPOLLIN);
|
peer_epoll_add((struct peer *) receive, EPOLLIN);
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,9 @@ void send_new(int fd, struct serializer *serializer, struct peer *on_close) {
|
|||||||
send->serializer = serializer;
|
send->serializer = serializer;
|
||||||
send->prev = NULL;
|
send->prev = NULL;
|
||||||
send->next = serializer->send_head;
|
send->next = serializer->send_head;
|
||||||
|
if (send->next) {
|
||||||
|
send->next->prev = send;
|
||||||
|
}
|
||||||
serializer->send_head = send;
|
serializer->send_head = send;
|
||||||
|
|
||||||
peer_epoll_add((struct peer *) send, EPOLLIN);
|
peer_epoll_add((struct peer *) send, EPOLLIN);
|
||||||
|
|||||||
Reference in New Issue
Block a user