hxcpp
created pr with
hxcpp/ssl-short-read.1
added hxcpp/ssl-short-read.2
1: d70d1ca < -: ------- SSL read/write needs to return wouldblock if partial read
-: ------- > 1: dd64130 SSL read/write needs to return wouldblock if partial read
2: af61d88 = 2: d3fe10a Throw exceptions for more error codes
3: 124b85a = 3: 6f33bf1 Retry handshake on would block
4: e8e22fe = 4: 5a504b4 Include whole erorr message in exception
cmds
checkout latest patchset:
ssh pr.pico.sh pull hxcpp:ssl-short-read | git am -3checkout specific patchset revision:
ssh pr.pico.sh pull hxcpp:ssl-short-read [rev] | git am -3add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh hxcpp:ssl-short-readadd comment to patch request:
ssh pr.pico.sh comment hxcpp:ssl-short-read "lgtm!"
Patchset
hxcpp/ssl-short-read.1
SSL read/write needs to return wouldblock if partial read
Stephen Paul Weber
→ Throw exceptions for more error codes
2026-10-27T21:17:55ZStephen Paul Weber
Retry handshake on would block
2026-10-27T21:18:19ZStephen Paul Weber
Include whole erorr message in exception
2026-10-27T21:18:51ZStephen Paul Weber
2026-10-27T21:19:11Z
Throw exceptions for more error codes
Stephen Paul Weber
2026-10-27T21:18:19ZSemantic diff summary
0 added,
0 modified,
0 signature changed,
0 removed
across 0 analyzed files
(1 file skipped: unsupported file type)
+7
-4
Sources/c_borogove/src/hx/libs/ssl/SSL.cpp
#
| ... | ... | @@ -131,10 +131,13 @@ static OSStatus socket_write(SSLConnectionRef conn, const void *data, size_t *le | |
| 131 | 131 | void _hx_ssl_set_socket(Dynamic hssl, Dynamic hsocket) { | |
| 132 | 132 | sslctx* ctx = val_ssl(hssl); | |
| 133 | 133 | SocketWrapper* sock = val_socket(hsocket); | |
| 134 | - | SSLSetConnection(ctx->sslCtx, (SSLConnectionRef)(intptr_t)sock->socket); | |
| 135 | - | SSLSetIOFuncs(ctx->sslCtx, socket_read, socket_write); | |
| 136 | - | SSLSetProtocolVersionMin(ctx->sslCtx, kTLSProtocol1); | |
| 137 | - | SSLSetProtocolVersionMax(ctx->sslCtx, kTLSProtocol13); | |
| 134 | + | OSStatus s; | |
| 135 | + | ||
| 136 | + | s = SSLSetConnection(ctx->sslCtx, (SSLConnectionRef)(intptr_t)sock->socket); | |
| 137 | + | if (s != noErr) hx::Throw(HX_CSTRING("SSLSetConnection failed")); | |
| 138 | + | ||
| 139 | + | s = SSLSetIOFuncs(ctx->sslCtx, socket_read, socket_write); | |
| 140 | + | if (s != noErr) hx::Throw(HX_CSTRING("SSLSetIOFuncs failed")); | |
| 138 | 141 | } | |
| 139 | 142 | ||
| 140 | 143 | void _hx_ssl_set_hostname(Dynamic hssl, String hostname) { |