From 47a93b16afa28ee2d2fa893da198d7fce639a350 Mon Sep 17 00:00:00 2001 From: Lienol <23146169+Lienol@users.noreply.github.com> Date: Fri, 5 Mar 2021 22:16:00 +0800 Subject: [PATCH] pingos: update nginx to 1.19.6 Signed-off-by: Tianling Shen --- package/lienol/luci-app-nginx-pingos/Makefile | 9 ++++++--- .../modules/nginx-rtmp-module/ngx_rtmp.h | 1 + .../modules/nginx-rtmp-module/ngx_rtmp_init.c | 20 +++++++++++++++++++ .../root/etc/init.d/pingos | 0 .../etc/uci-defaults/luci-app-nginx-pingos | 0 .../root/resource/conf-template/nginx.conf | 8 ++++---- 6 files changed, 31 insertions(+), 7 deletions(-) mode change 100644 => 100755 package/lienol/luci-app-nginx-pingos/root/etc/init.d/pingos mode change 100644 => 100755 package/lienol/luci-app-nginx-pingos/root/etc/uci-defaults/luci-app-nginx-pingos diff --git a/package/lienol/luci-app-nginx-pingos/Makefile b/package/lienol/luci-app-nginx-pingos/Makefile index 91eb160400..3f1b36725d 100644 --- a/package/lienol/luci-app-nginx-pingos/Makefile +++ b/package/lienol/luci-app-nginx-pingos/Makefile @@ -3,12 +3,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-nginx-pingos -PKG_VERSION:=1.19.0 -PKG_RELEASE:=4 +PKG_VERSION:=1.19.6 +PKG_RELEASE:=1 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://nginx.org/download/ -PKG_HASH:=44a616171fcd7d7ad7c6af3e6f3ad0879b54db5a5d21be874cd458b5691e36c8 +PKG_HASH:=b11195a02b1d3285ddf2987e02c6b6d28df41bb1b1dd25f33542848ef4fc33b5 PKG_DIR:=$(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR:=$(PKG_DIR)/nginx-$(PKG_VERSION) @@ -77,6 +77,9 @@ define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/etc/uci-defaults $(INSTALL_CONF) ./root/etc/uci-defaults/* $(1)/etc/uci-defaults + $(INSTALL_DIR) $(1)/usr/share/rpcd/acl.d + cp -pR ./root/usr/share/rpcd/acl.d/* $(1)/usr/share/rpcd/acl.d + $(INSTALL_DIR) $(1)/usr/share/pingos cp -pR $(PKG_INSTALL_DIR)/usr/share/pingos/conf $(1)/usr/share/pingos $(INSTALL_DATA) ./root/resource/conf-template/nginx.conf $(1)/usr/share/pingos/conf/nginx.conf diff --git a/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp.h b/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp.h index 5df632e7f2..c5867d8f91 100644 --- a/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp.h +++ b/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp.h @@ -360,6 +360,7 @@ struct ngx_rtmp_session_s { unsigned published:1; unsigned closed:1; unsigned publishing:1; + unsigned finalized:1; /* live type: 0- RTMP 1- http-flv 2- hls */ unsigned live_type:2; diff --git a/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp_init.c b/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp_init.c index 3cbc62868f..ef4c519bf1 100644 --- a/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp_init.c +++ b/package/lienol/luci-app-nginx-pingos/modules/nginx-rtmp-module/ngx_rtmp_init.c @@ -374,6 +374,11 @@ ngx_rtmp_async_finalize_http_request(ngx_event_t *ev) ngx_log_error(NGX_LOG_INFO, s->log, 0, "asyn finalize http request"); + if (!r) { + ngx_log_error(NGX_LOG_ERR, s->log, 0, "Http request is null"); + return; + } + if (r->header_sent) { ngx_http_finalize_request(r, NGX_HTTP_CLIENT_CLOSED_REQUEST); ngx_http_run_posted_requests(r->connection); @@ -407,6 +412,13 @@ ngx_rtmp_finalize_session(ngx_rtmp_session_t *s) return; } + if (s->finalized) { + ngx_log_error(NGX_LOG_WARN, s->log, 0, "The session has been finalized."); + return; + } + + s->finalized = 1; + if (s->live_type != NGX_RTMP_LIVE) { e = &s->close; e->data = s; @@ -437,6 +449,14 @@ ngx_rtmp_finalize_fake_session(ngx_rtmp_session_t *s) { ngx_log_error(NGX_LOG_INFO, s->log, 0, "finalize fake session"); + + if (s->finalized) { + ngx_log_error(NGX_LOG_WARN, s->log, 0, "The fake session has been finalized."); + return; + } + + s->finalized = 1; + ngx_rtmp_fire_event(s, NGX_RTMP_DISCONNECT, NULL, NULL); ngx_rtmp_close_session(s); diff --git a/package/lienol/luci-app-nginx-pingos/root/etc/init.d/pingos b/package/lienol/luci-app-nginx-pingos/root/etc/init.d/pingos old mode 100644 new mode 100755 diff --git a/package/lienol/luci-app-nginx-pingos/root/etc/uci-defaults/luci-app-nginx-pingos b/package/lienol/luci-app-nginx-pingos/root/etc/uci-defaults/luci-app-nginx-pingos old mode 100644 new mode 100755 diff --git a/package/lienol/luci-app-nginx-pingos/root/resource/conf-template/nginx.conf b/package/lienol/luci-app-nginx-pingos/root/resource/conf-template/nginx.conf index e22f688b57..0d80be84b8 100644 --- a/package/lienol/luci-app-nginx-pingos/root/resource/conf-template/nginx.conf +++ b/package/lienol/luci-app-nginx-pingos/root/resource/conf-template/nginx.conf @@ -1,7 +1,7 @@ user root; daemon on; master_process on; -worker_processes 4; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -109,9 +109,9 @@ http { hash $arg_session consistent; # 这里需要注意,你要开几个进程,就要按这个规则写几条记录 server unix:/tmp/http.0; - server unix:/tmp/http.1; - server unix:/tmp/http.2; - server unix:/tmp/http.3; +# server unix:/tmp/http.1; +# server unix:/tmp/http.2; +# server unix:/tmp/http.3; } server {