From a9baf7e2585c54f1f31d5bf47c6b8c388ecdaa60 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 15 Apr 2026 15:03:58 +0300 Subject: [PATCH] net.ssl: fix cannot get whole response body on concurrent requests with -prod (fixes #20962) --- vlib/net/ssl/ssl_d_use_openssl.v | 7 ++----- vlib/net/ssl/ssl_notd_use_openssl.v | 14 ++++---------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/vlib/net/ssl/ssl_d_use_openssl.v b/vlib/net/ssl/ssl_d_use_openssl.v index 4e23f94cd..40b378692 100644 --- a/vlib/net/ssl/ssl_d_use_openssl.v +++ b/vlib/net/ssl/ssl_d_use_openssl.v @@ -2,9 +2,7 @@ module ssl import net.openssl -pub struct SSLConn { - openssl.SSLConn -} +pub type SSLConn = openssl.SSLConn @[params] pub struct SSLConnectConfig { @@ -13,6 +11,5 @@ pub struct SSLConnectConfig { // new_ssl_conn returns a new SSLConn with the given config. pub fn new_ssl_conn(config SSLConnectConfig) !&SSLConn { - c := openssl.new_ssl_conn(config.SSLConnectConfig) or { return err } - return &SSLConn{c} + return openssl.new_ssl_conn(config.SSLConnectConfig) or { return err } } diff --git a/vlib/net/ssl/ssl_notd_use_openssl.v b/vlib/net/ssl/ssl_notd_use_openssl.v index f0572d925..853c09998 100644 --- a/vlib/net/ssl/ssl_notd_use_openssl.v +++ b/vlib/net/ssl/ssl_notd_use_openssl.v @@ -9,9 +9,7 @@ $if tinyc && (freebsd || openbsd) { $if tinyc && (freebsd || openbsd) { // TinyCC hangs in the bundled mbedtls path on FreeBSD/OpenBSD. // Prefer the OpenSSL backend there, which does not exhibit the issue. - pub struct SSLConn { - openssl.SSLConn - } + pub type SSLConn = openssl.SSLConn @[params] pub struct SSLConnectConfig { @@ -20,13 +18,10 @@ $if tinyc && (freebsd || openbsd) { // new_ssl_conn returns a new SSLConn with the given config. pub fn new_ssl_conn(config SSLConnectConfig) !&SSLConn { - c := openssl.new_ssl_conn(config.SSLConnectConfig) or { return err } - return &SSLConn{c} + return openssl.new_ssl_conn(config.SSLConnectConfig) or { return err } } } $else { - pub struct SSLConn { - mbedtls.SSLConn - } + pub type SSLConn = mbedtls.SSLConn @[params] pub struct SSLConnectConfig { @@ -35,7 +30,6 @@ $if tinyc && (freebsd || openbsd) { // new_ssl_conn returns a new SSLConn with the given config. pub fn new_ssl_conn(config SSLConnectConfig) !&SSLConn { - c := mbedtls.new_ssl_conn(config.SSLConnectConfig) or { return err } - return &SSLConn{c} + return mbedtls.new_ssl_conn(config.SSLConnectConfig) or { return err } } } -- 2.39.5