Skip to content
Snippets Groups Projects
Commit 72dba099 authored by Andy Green's avatar Andy Green
Browse files

timeout check take copies since he may be deleted

parent ed6b3961
Branches
Tags
No related merge requests found
...@@ -379,9 +379,9 @@ lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int t ...@@ -379,9 +379,9 @@ lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int t
lws_sockfd_type our_fd = 0; lws_sockfd_type our_fd = 0;
struct lws_tokens eff_buf; struct lws_tokens eff_buf;
unsigned int pending = 0; unsigned int pending = 0;
struct lws *wsi, *wsi1;
char draining_flow = 0; char draining_flow = 0;
int timed_out = 0; int timed_out = 0;
struct lws *wsi;
time_t now; time_t now;
int n, m; int n, m;
int more; int more;
...@@ -411,13 +411,17 @@ lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int t ...@@ -411,13 +411,17 @@ lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int t
wsi = context->timeout_list; wsi = context->timeout_list;
while (wsi) { while (wsi) {
if (lws_service_timeout_check(wsi, (unsigned int)now)) /* we have to take copies, because he may be deleted */
wsi1 = wsi->timeout_list;
m = wsi->sock;
if (lws_service_timeout_check(wsi, (unsigned int)now)) {
/* he did time out... */ /* he did time out... */
if (wsi->sock == our_fd) if (m == our_fd)
/* it was the guy we came to service! */ /* it was the guy we came to service! */
timed_out = 1; timed_out = 1;
/* he's gone, no need to mark as handled */ /* he's gone, no need to mark as handled */
wsi = wsi->timeout_list; }
wsi = wsi1;
} }
} }
......
...@@ -277,8 +277,8 @@ struct fuzxy_rule { ...@@ -277,8 +277,8 @@ struct fuzxy_rule {
}; };
struct fuzxy_rule r = { struct fuzxy_rule r = {
{ "Host:", "\x0d", " \x0d" }, { "Host:", "\x0d", "\xe0\x00\x0d" },
{ 5, 1, 2 }, { 5, 1, 3 },
65536 65536
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment