Skip to content

feat(ssh): ship OpenSSH 10.4p1 with hermetic libcrypto and Git transport#1739

Merged
NathanFlurry merged 12 commits into
mainfrom
stack/feat-ssh-real-openssh-client-10-4p1-without-openssl-for-wasm32-wasip1-git-over-ssh-mvlvqmkp
Jul 16, 2026
Merged

feat(ssh): ship OpenSSH 10.4p1 with hermetic libcrypto and Git transport#1739
NathanFlurry merged 12 commits into
mainfrom
stack/feat-ssh-real-openssh-client-10-4p1-without-openssl-for-wasm32-wasip1-git-over-ssh-mvlvqmkp

Conversation

@NathanFlurry

@NathanFlurry NathanFlurry commented Jul 10, 2026

Copy link
Copy Markdown
Member

No description provided.

…16KiB completes

The WASM runner dropped the SOCK_NONBLOCK bit from socket(2) and returned
EBADF for fcntl(F_GETFL/F_SETFL) on host-net socket fds, so guest libcurl
(git-remote-http, mbedTLS in-guest) ran its TLS socket in blocking mode.
Any smart-HTTP upload larger than one TLS record (16384 bytes plaintext)
deadlocked: curl checks for an early server response mid-upload, and the
blocking recv() waited on a server that was itself waiting for the rest of
the POST body. Also allocate host-net fds below FD_SETSIZE (1024) because
libcurl's select-based Curl_poll/curl_multi_fdset silently drop fds >=
FD_SETSIZE from the pollset, which stalls non-blocking transfers.

- wasm-runner.mjs: parse SOCK_NONBLOCK (0x4000) in net_socket, honor
  O_NONBLOCK via fd_fdstat_get/fd_fdstat_set_flags for host-net sockets,
  and start host-net fds at 600 instead of 4096.
- node_import_cache.rs: bump NODE_IMPORT_CACHE_ASSET_VERSION for the
  runner asset change.
@NathanFlurry
NathanFlurry force-pushed the stack/fix-vfs-propagate-guest-deletions-in-shadow-kernel-sync-rm-rmdir-failed-clone-cleanup-kwmpwxpt branch from 016254e to d894466 Compare July 16, 2026 07:40
@NathanFlurry
NathanFlurry force-pushed the stack/feat-ssh-real-openssh-client-10-4p1-without-openssl-for-wasm32-wasip1-git-over-ssh-mvlvqmkp branch from f7bc3b5 to c019380 Compare July 16, 2026 07:40
@NathanFlurry NathanFlurry changed the title feat(ssh): real OpenSSH client (10.4p1, --without-openssl) for wasm32-wasip1 + git-over-ssh feat(ssh): ship OpenSSH 10.4p1 with hermetic libcrypto and Git transport Jul 16, 2026
@NathanFlurry
NathanFlurry changed the base branch from stack/fix-vfs-propagate-guest-deletions-in-shadow-kernel-sync-rm-rmdir-failed-clone-cleanup-kwmpwxpt to main July 16, 2026 07:43
@NathanFlurry
NathanFlurry merged commit c019380 into main Jul 16, 2026
@NathanFlurry
NathanFlurry deleted the stack/feat-ssh-real-openssh-client-10-4p1-without-openssl-for-wasm32-wasip1-git-over-ssh-mvlvqmkp branch July 16, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant