diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/http/ngx_http_spdy.c | 10 | ||||
| -rw-r--r-- | src/http/ngx_http_spdy.h | 2 | ||||
| -rw-r--r-- | src/http/ngx_http_spdy_filter_module.c | 6 |
3 files changed, 7 insertions, 11 deletions
diff --git a/src/http/ngx_http_spdy.c b/src/http/ngx_http_spdy.c index a040a388f..b5aa9931c 100644 --- a/src/http/ngx_http_spdy.c +++ b/src/http/ngx_http_spdy.c @@ -527,7 +527,9 @@ ngx_http_spdy_send_output_queue(ngx_http_spdy_connection_t *sc) } } - for ( /* void */ ; out; out = out->next) { + for ( /* void */ ; out; out = fn) { + fn = out->next; + if (out->handler(sc, out) != NGX_OK) { out->blocked = 1; out->priority = NGX_SPDY_HIGHEST_PRIORITY; @@ -1644,7 +1646,7 @@ ngx_http_spdy_get_ctl_frame(ngx_http_spdy_connection_t *sc, size_t size, frame = sc->free_ctl_frames; if (frame) { - sc->free_ctl_frames = frame->free; + sc->free_ctl_frames = frame->next; cl = frame->first; cl->buf->pos = cl->buf->start; @@ -1674,8 +1676,6 @@ ngx_http_spdy_get_ctl_frame(ngx_http_spdy_connection_t *sc, size_t size, frame->stream = NULL; } - frame->free = NULL; - #if (NGX_DEBUG) if (size > NGX_SPDY_CTL_FRAME_BUFFER_SIZE - NGX_SPDY_FRAME_HEADER_SIZE) { ngx_log_error(NGX_LOG_ALERT, sc->pool->log, 0, @@ -1705,7 +1705,7 @@ ngx_http_spdy_ctl_frame_handler(ngx_http_spdy_connection_t *sc, return NGX_AGAIN; } - frame->free = sc->free_ctl_frames; + frame->next = sc->free_ctl_frames; sc->free_ctl_frames = frame; return NGX_OK; diff --git a/src/http/ngx_http_spdy.h b/src/http/ngx_http_spdy.h index 49b07caef..3dab0fecb 100644 --- a/src/http/ngx_http_spdy.h +++ b/src/http/ngx_http_spdy.h @@ -141,8 +141,6 @@ struct ngx_http_spdy_out_frame_s { ngx_int_t (*handler)(ngx_http_spdy_connection_t *sc, ngx_http_spdy_out_frame_t *frame); - ngx_http_spdy_out_frame_t *free; - ngx_http_spdy_stream_t *stream; size_t size; diff --git a/src/http/ngx_http_spdy_filter_module.c b/src/http/ngx_http_spdy_filter_module.c index 7a7559ee8..bc39ec2aa 100644 --- a/src/http/ngx_http_spdy_filter_module.c +++ b/src/http/ngx_http_spdy_filter_module.c @@ -587,7 +587,6 @@ ngx_http_spdy_header_filter(ngx_http_request_t *r) frame->first = cl; frame->last = cl; frame->handler = ngx_http_spdy_syn_frame_handler; - frame->free = NULL; frame->stream = stream; frame->size = len; frame->priority = stream->priority; @@ -821,7 +820,7 @@ ngx_http_spdy_filter_get_data_frame(ngx_http_spdy_stream_t *stream, frame = stream->free_frames; if (frame) { - stream->free_frames = frame->free; + stream->free_frames = frame->next; } else { frame = ngx_palloc(stream->request->pool, @@ -881,7 +880,6 @@ ngx_http_spdy_filter_get_data_frame(ngx_http_spdy_stream_t *stream, frame->first = first; frame->last = last; frame->handler = ngx_http_spdy_data_frame_handler; - frame->free = NULL; frame->stream = stream; frame->size = NGX_SPDY_FRAME_HEADER_SIZE + len; frame->priority = stream->priority; @@ -1051,7 +1049,7 @@ ngx_http_spdy_handle_frame(ngx_http_spdy_stream_t *stream, stream->out_closed = 1; } - frame->free = stream->free_frames; + frame->next = stream->free_frames; stream->free_frames = frame; stream->queued--; |
