记一次使用nginx的nginx-rtmp-module出hls流定制开发模块时m3u8文件不被关闭的bug

为了让我司的服务器

记一次使用nginx的nginx-rtmp-module出hls流定制开发模块时m3u8文件不被关闭的bug_第1张图片

 

 

static void
ngx_http_close_request(ngx_http_request_t *r, ngx_int_t rc)
{
    ngx_connection_t  *c;

    r = r->main;
    c = r->connection;

    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
                   "http request count:%d blk:%d", r->count, r->blocked);

    ngx_log_error(NGX_LOG_ALERT, c->log, 0, "http request %p count  is %d", r, r->count);
	
    if (r->count == 0) {
        ngx_log_error(NGX_LOG_ALERT, c->log, 0, "http request %p count is zero !!!!!!!!!!!!", r);
    }

    r->count--;

    if (r->count || r->blocked) {
        return;  //在这里返回了,导致下面ngx_http_free_request里文件没有被关
                 //ngx_http_close_connection里连接没有被关
    }

#if (NGX_HTTP_V2)
    if (r->stream) {
        ngx_http_v2_close_stream(r->stream, rc);
        return;
    }
#endif

    ngx_http_free_request(r, rc);
    ngx_http_close_connection(c);
}

 

你可能感兴趣的:(记一次使用nginx的nginx-rtmp-module出hls流定制开发模块时m3u8文件不被关闭的bug)