Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@ members = ["tests/wasm_bindgen"]
log = { version = "0.4", optional = true }
cfg-if = "0.1"

[target.'cfg(any(unix, target_os = "redox", target_os = "wasi"))'.dependencies]
[target.'cfg(any(unix, target_os = "redox"))'.dependencies]
libc = "0.2.60"

[target.'cfg(any(target_os = "wasi"))'.dependencies]
Comment thread
newpavlov marked this conversation as resolved.
Outdated
wasi = "0.5"

[target.wasm32-unknown-unknown.dependencies]
wasm-bindgen = { version = "0.2.29", optional = true }
stdweb = { version = "0.4.9", optional = true }
Expand Down
6 changes: 3 additions & 3 deletions src/wasi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
//! Implementation for WASI
use crate::Error;
use core::num::NonZeroU32;
use wasi::wasi_unstable::random_get;

pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
let ret =
unsafe { libc::__wasi_random_get(dest.as_mut_ptr() as *mut libc::c_void, dest.len()) };
let ret = random_get(dest);
if let Some(code) = NonZeroU32::new(ret as u32) {
error!("WASI: __wasi_random_get: failed with {}", ret);
error!("WASI: random_get failed with return value {}", code);
Err(Error::from(code))
} else {
Ok(()) // Zero means success for WASI
Expand Down