Skip to content

Commit 339b1cd

Browse files
committed
Enable optional logging of failures
1 parent d33356f commit 339b1cd

10 files changed

+14
-4
lines changed

src/cloudabi.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
1818
if errno == cloudabi::errno::SUCCESS {
1919
Ok(())
2020
} else {
21+
error!("cloudabi::random_get syscall failed with code {}", errno);
2122
let code = NonZeroU32::new(errno as u32).unwrap();
2223
Err(Error::from(code))
2324
}

src/dummy.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use std::num::NonZeroU32;
1212
use {Error, ERROR_UNAVAILABLE};
1313

1414
pub fn getrandom_inner(_: &mut [u8]) -> Result<(), Error> {
15+
error!("no support for this platform");
1516
Err(ERROR_UNAVAILABLE)
1617
}
1718

src/freebsd.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
2626
)
2727
};
2828
if ret == -1 || len != chunk.len() {
29+
error!("freebsd: kern.arandom syscall failed");
2930
return Err(io::Error::last_os_error().into());
3031
}
3132
}

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ extern crate wasm_bindgen;
113113

114114
#[cfg(feature = "log")] #[macro_use] extern crate log;
115115
#[allow(unused)]
116-
#[cfg(not(feature = "log"))] macro_rules! warn { ($($x:tt)*) => () }
116+
#[cfg(not(feature = "log"))] macro_rules! error { ($($x:tt)*) => () }
117117

118118
#[cfg(any(
119119
target_os = "android",

src/linux_android.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ fn syscall_getrandom(dest: &mut [u8]) -> Result<(), io::Error> {
3434
libc::syscall(libc::SYS_getrandom, dest.as_mut_ptr(), dest.len(), 0)
3535
};
3636
if ret < 0 || (ret as usize) != dest.len() {
37+
error!("Linux getrandom syscall failed with return value {}", ret);
3738
return Err(io::Error::last_os_error());
3839
}
3940
Ok(())

src/macos.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
3636
)
3737
};
3838
if ret == -1 {
39+
error!("SecRandomCopyBytes call failed");
3940
Err(io::Error::last_os_error().into())
4041
} else {
4142
Ok(())

src/openbsd_bitrig.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
2222
)
2323
};
2424
if ret == -1 {
25+
error!("libc::getentropy call failed");
2526
return Err(io::Error::last_os_error().into());
2627
}
2728
}

src/solarish.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ fn libc_getrandom(rand: GetRandomFn, dest: &mut [u8]) -> Result<(), Error> {
4545
let ret = unsafe { rand(dest.as_mut_ptr(), dest.len(), 0) as libc::ssize_t };
4646

4747
if ret == -1 || ret != dest.len() as libc::ssize_t {
48+
error!("getrandom syscall failed with ret={}", ret);
4849
Err(io::Error::last_os_error().into())
4950
} else {
5051
Ok(())

src/wasm32_stdweb.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ fn getrandom_init() -> Result<RngSource, Error> {
6666
else { unreachable!() }
6767
} else {
6868
let err: WebError = js!{ return @{ result }.error }.try_into().unwrap();
69-
warn!("getrandom unavailable: {}", err);
69+
error!("getrandom unavailable: {}", err);
7070
Err(ERROR_UNAVAILABLE)
7171
}
7272
}
@@ -102,7 +102,7 @@ fn getrandom_fill(source: &mut RngSource, dest: &mut [u8]) -> Result<(), Error>
102102

103103
if js!{ return @{ result.as_ref() }.success } != true {
104104
let err: WebError = js!{ return @{ result }.error }.try_into().unwrap();
105-
warn!("getrandom failed: {}", err);
105+
error!("getrandom failed: {}", err);
106106
return Err(ERROR_UNKNOWN)
107107
}
108108
}

src/windows.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
2020
let ret = unsafe {
2121
RtlGenRandom(dest.as_mut_ptr() as PVOID, dest.len() as ULONG)
2222
};
23-
if ret == 0 { return Err(io::Error::last_os_error().into()); }
23+
if ret == 0 {
24+
error!("RtlGenRandom call failed");
25+
return Err(io::Error::last_os_error().into());
26+
}
2427
Ok(())
2528
}
2629

0 commit comments

Comments
 (0)