static ngx_int_t ngx_rtmp_record_node_close(ngx_rtmp_session_t *s, ngx_rtmp_record_node_ctx_t *rctx) { ngx_rtmp_record_node_t *rc; ngx_err_t err; rc = rctx->conf; if (rctx->file.fd == NGX_INVALID_FILE) { return NGX_OK; } if (ngx_close_file(rctx->file.fd) == NGX_FILE_ERROR) { err = ngx_errno; ngx_log_error(NGX_LOG_CRIT, s->connection->log, err, "record: %V error closing file", &rc->id); } rctx->file.fd = NGX_INVALID_FILE; ngx_log_debug1(NGX_LOG_DEBUG_RTMP, s->connection->log, 0, "record: %V closed", &rc->id); return ngx_rtmp_record_notify(s, rctx); }
static ngx_int_t ngx_rtmp_record_close(ngx_rtmp_session_t *s) { ngx_rtmp_record_ctx_t *ctx; ngx_err_t err; ctx = ngx_rtmp_get_module_ctx(s, ngx_rtmp_record_module); if (ctx == NULL || ctx->file.fd == NGX_INVALID_FILE) { return NGX_OK; } if (ngx_close_file(ctx->file.fd) == NGX_FILE_ERROR) { err = ngx_errno; ngx_log_error(NGX_LOG_CRIT, s->connection->log, err, "record: error closing file"); } ctx->file.fd = NGX_INVALID_FILE; ngx_log_debug0(NGX_LOG_DEBUG_RTMP, s->connection->log, 0, "record: closed"); return ngx_rtmp_record_notify(s); }