Skip to content

Commit

Permalink
wasi-js-bindings: Basic implemention of sock_send and sock_recv
Browse files Browse the repository at this point in the history
WASI's sock_send and sock_recv are very similar to fd_write and fd_read,
but with an extra flag parameter. This CL makes sock_send/sock_recv
delegate to fd_write/fd_read if no flags are passed in.

See github.com/WebAssembly/WASI/issues/4 for additional context.

Bug: b/276352391
Change-Id: I52af0213bb928fb284adf6c74521cdaf451f10fc
Reviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/4389201
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
  • Loading branch information
robbiemc committed Apr 3, 2023
1 parent 7bf55fa commit 0f85dc5
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions wasi-js-bindings/js/syscall_entry.js
Original file line number Diff line number Diff line change
Expand Up @@ -851,13 +851,20 @@ export class WasiPreview1 extends Base {
}

/** @override */
sys_sock_recv(fd, ri_data, ri_flags, ro_datalen_ptr, ro_flags_ptr) {
return WASI.errno.ENOSYS;
sys_sock_recv(fd, ri_data_ptr, ri_data_len, ri_flags, ro_datalen_ptr,
ro_flags_ptr) {
if (ri_flags !== 0) {
return WASI.errno.ENOTSUP;
}
return this.sys_fd_read(fd, ri_data_ptr, ri_data_len, ro_datalen_ptr);
}

/** @override */
sys_sock_send(fd, si_data, si_flags, so_datalen_ptr) {
return WASI.errno.ENOSYS;
sys_sock_send(fd, si_data_ptr, si_data_len, si_flags, so_datalen_ptr) {
if (si_flags !== 0) {
return WASI.errno.ENOTSUP;
}
return this.sys_fd_write(fd, si_data_ptr, si_data_len, so_datalen_ptr);
}

/** @override */
Expand Down

0 comments on commit 0f85dc5

Please sign in to comment.