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;