Fixes . This fix was merged upstream in and will be in GnuTLS 3.7.3. Upstream commit: commit 110e2172dbef1fbdf7399dab1e80780847b61c0c Author: Ludovic Courtès Date: Sat Apr 24 22:02:14 2021 +0200 guile: Writes to record ports handle EAGAIN/EINTR transparently. diff --git a/guile/src/core.c b/guile/src/core.c index a13670fc7b..0926dc8a97 100644 --- a/guile/src/core.c +++ b/guile/src/core.c @@ -985,7 +985,10 @@ write_to_session_record_port (SCM port, const void *data, size_t size) c_result = gnutls_record_send (c_session, (char *) data + c_sent, size - c_sent); if (EXPECT_FALSE (c_result < 0)) - scm_gnutls_error (c_result, FUNC_NAME); + { + if (c_result != GNUTLS_E_AGAIN && c_result != GNUTLS_E_INTERRUPTED) + scm_gnutls_error (c_result, FUNC_NAME); + } else c_sent += c_result; } @@ -1069,7 +1072,8 @@ read_from_session_record_port (SCM port, SCM dst, size_t start, size_t count) #undef FUNC_NAME /* Return the file descriptor that backs PORT. This function is called upon a - blocking read--i.e., 'read_from_session_record_port' returned -1. */ + blocking read--i.e., 'read_from_session_record_port' or + 'write_to_session_record_port' returned -1. */ static int session_record_port_fd (SCM port) { @@ -1097,7 +1101,16 @@ write_to_session_record_port (SCM port, SCM src, size_t start, size_t count) c_session = scm_to_gnutls_session (session, 1, FUNC_NAME); data = (char *) SCM_BYTEVECTOR_CONTENTS (src) + start; - result = gnutls_record_send (c_session, data, count); + do + result = gnutls_record_send (c_session, data, count); + while (result == GNUTLS_E_INTERRUPTED + || (result == GNUTLS_E_AGAIN + && !SCM_GNUTLS_SESSION_TRANSPORT_IS_FD (c_session))); + + if (result == GNUTLS_E_AGAIN + && SCM_GNUTLS_SESSION_TRANSPORT_IS_FD (c_session)) + /* Tell Guile that reading would block. */ + return (size_t) -1; if (EXPECT_FALSE (result < 0)) scm_gnutls_error (result, FUNC_NAME); nu/machine/ssh.scm
AgeCommit message (Expand)Author
2024-08-11gnu: Replace (almost) all uses of /run/setuid-programs....…those good for master, anyway. * gnu/packages/admin.scm (ktsuss, opendoas, hosts) [arguments]: Replace /run/setuid-programs with /run/privileged/bin. * gnu/packages/containers.scm (slirp4netns)[arguments]: Likewise. * gnu/packages/debian.scm (pbuilder)[arguments]: Likewise. * gnu/packages/disk.scm (udevil)[arguments]: Likewise. * gnu/packages/enlightenment.scm (efl, enlightenment) [arguments]: Likewise. * gnu/packages/gnome.scm (gdm, gnome-control-center) [arguments]: Likewise. * gnu/packages/linux.scm (singularity)[arguments]: Likewise. * gnu/packages/lxde.scm (spacefm)[arguments]: Likewise. * gnu/packages/monitoring.scm (zabbix-agentd)[arguments]: Likewise. * gnu/packages/virtualization.scm (ganeti)[arguments]: Likewise. * gnu/packages/xdisorg.scm (xsecurelock)[arguments]: Likewise. * gnu/services/dbus.scm (dbus-configuration-directory): Likewise. * gnu/services/ganeti.scm (%default-ganeti-environment-variables): Likewise. * gnu/services/monitoring.scm (zabbix-agent-shepherd-service): Likewise. * gnu/tests/ldap.scm (marionette): Likewise. * gnu/tests/monitoring.scm (os): Likewise. Tobias Geerinckx-Rice
2024-06-04file-systems: Add support for mounting CIFS file systems...* gnu/build/file-systems (canonicalize-device-name): Do not attempt to resolve CIFS formatted device specifications. (mount-file-systems): Add mount-cifs nested function. * gnu/machine/ssh.scm (machine-check-file-system-availability): Skip checking for CIFS availability, similar to NFS. * guix/scripts/system.scm (check-file-system-availability): Likewise. Change-Id: I182e290eba64bbe5d1332815eb93bb68c01e0c3c Signed-off-by: Ludovic Courtès <ludo@gnu.org> Richard Sent
2024-02-19machine/ssh: Refresh parameterization of %CURRENT-SYSTEM....When using "guix deploy" on an x86_64-linux machine to deploy a system to i686-linux, DEPLOY-MANAGED-HOST would revert %CURRENT-SYSTEM to the host system's value by the time it evaluated UPGRADE-SHEPHERD-SERVICES. The earlier PARAMETERIZE would no longer be effective. * gnu/machine/ssh.scm (deploy-managed-host): Ensure that UPGRADE-SHEPHERD-SERVICES is evaluated for the architecture of the target machine. Change-Id: I0816da79cd7c46a69418717fa33b2fe4e2fabae0 Ricardo Wurmus