bug#46009: exception from inside false-if-exception?

2024-04-29 Thread Maxime Devos
[Adding Andy Wingo because of the stack shenanigans] >Subject: exception from inside false-if-exception? Duplicate of #46009 - (backtrace) crash, string->number: Wrong type argument in position 1 (expecting string): #f - GNU bug report logs >the expression pointed to by debug.scm,72:40 is

bug#70645: Reliable HTTPS networking

2024-04-29 Thread Christopher Baines
Christopher Baines writes: > For years now I've been trying to work out how to do reliable HTTPS > networking with Guile, where reliable just means that it can't hang > indefinitely. > > After a few wrong turns, I believe the way to do this is use > non-blocking ports as that combined with

bug#70645: [PATCH 1/2] Allow specifying the socket style for open-socket-for-uri.

2024-04-29 Thread Christopher Baines
Since this allows specifying additional behaviours for the socket through using SOCK_CLOEXEC and/or SOCK_NONBLOCK (when bitwise or'ed with SOCK_STREAM). Note that Guile/guile-gnutls currently doesn't support performing the TLS handshake on a non-blocking socket, so this currently won't work. *

bug#70645: [PATCH 2/2] web: Handle non-blocking ports in tls-wrap.

2024-04-29 Thread Christopher Baines
As described in the GnuTLS documentation on Asynchronous operation, GNUTLS_NONBLOCK should be passed to gnutls_init, and the Guile equivalent is passing connection-flag/nonblock to make-session. Additionally, error/again or error/interrupted should lead to a retry of the handshake, after waiting

bug#70645: Reliable HTTPS networking

2024-04-29 Thread Christopher Baines
For years now I've been trying to work out how to do reliable HTTPS networking with Guile, where reliable just means that it can't hang indefinitely. After a few wrong turns, I believe the way to do this is use non-blocking ports as that combined with suspendable ports in Guile allows you to