details: https://hg.nginx.org/nginx/rev/072ca4906154 branches: changeset: 9269:072ca4906154 user: Roman Arutyunyan <a...@nginx.com> date: Thu Jun 27 17:29:56 2024 +0400 description: Stream: allow servers with no handler.
Previously handlers were mandatory. However they are not always needed. For example, a server configured with ssl_reject_handshake does not need a handler. Such servers required a fake handler to pass the check. Now handler absence check is moved to runtime. If handler is missing, the connection is closed with 500 code. diffstat: src/stream/ngx_stream_core_module.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diffs (31 lines): diff -r 02e9411009b9 -r 072ca4906154 src/stream/ngx_stream_core_module.c --- a/src/stream/ngx_stream_core_module.c Tue May 28 17:22:30 2024 +0400 +++ b/src/stream/ngx_stream_core_module.c Thu Jun 27 17:29:56 2024 +0400 @@ -458,6 +458,13 @@ ngx_stream_core_content_phase(ngx_stream return NGX_OK; } + if (cscf->handler == NULL) { + ngx_log_debug0(NGX_LOG_DEBUG_STREAM, c->log, 0, + "no handler for server"); + ngx_stream_finalize_session(s, NGX_STREAM_INTERNAL_SERVER_ERROR); + return NGX_OK; + } + cscf->handler(s); return NGX_OK; @@ -734,13 +741,6 @@ ngx_stream_core_merge_srv_conf(ngx_conf_ conf->resolver = prev->resolver; } - if (conf->handler == NULL) { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "no handler for server in %s:%ui", - conf->file_name, conf->line); - return NGX_CONF_ERROR; - } - if (conf->error_log == NULL) { if (prev->error_log) { conf->error_log = prev->error_log; _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel