Stream ssl_preread: fixed $ssl_preread_server_name variable. Made sure to set the variable length only after successful SNI parsing.
diff --git a/src/stream/ngx_stream_ssl_preread_module.c b/src/stream/ngx_stream_ssl_preread_module.c index 166c093..e26c518 100644 --- a/src/stream/ngx_stream_ssl_preread_module.c +++ b/src/stream/ngx_stream_ssl_preread_module.c
@@ -333,11 +333,12 @@ return NGX_ERROR; } - ctx->host.len = size; dst = ctx->host.data; break; case sw_sni_host: + ctx->host.len = (p[1] << 8) + p[2]; + ngx_log_debug1(NGX_LOG_DEBUG_STREAM, ctx->log, 0, "ssl preread: SNI hostname \"%V\"", &ctx->host); return NGX_OK;