aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os.zig
diff options
context:
space:
mode:
authorFrank Denis <github@pureftpd.org>2020-10-18 16:28:11 +0200
committerJakub Konka <kubkon@jakubkonka.com>2020-10-18 18:24:36 +0200
commit6ddb05d996ee23af585ad22c8cdb447d4550f2ea (patch)
tree9b6a21a6a761be32b5eaf34cac6a18a0e9c96f37 /lib/std/os.zig
parentb28992de7121802f3074d214d015d8bed66b624e (diff)
downloadzig-6ddb05d996ee23af585ad22c8cdb447d4550f2ea.tar.gz
zig-6ddb05d996ee23af585ad22c8cdb447d4550f2ea.zip
Darwin has arc4random(), too
Diffstat (limited to 'lib/std/os.zig')
-rw-r--r--lib/std/os.zig16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/std/os.zig b/lib/std/os.zig
index 8994884566..4ccdf57ad3 100644
--- a/lib/std/os.zig
+++ b/lib/std/os.zig
@@ -164,17 +164,17 @@ pub fn getrandom(buffer: []u8) GetRandomError!void {
}
return;
}
- if (builtin.os.tag == .netbsd or builtin.os.tag == .openbsd) {
- system.arc4random_buf(buffer.ptr, buffer.len);
- return;
- }
- if (builtin.os.tag == .wasi) {
- switch (wasi.random_get(buffer.ptr, buffer.len)) {
+ switch (builtin.os.tag) {
+ .netbsd, .openbsd, .macos, .ios, .tvos, .watchos => {
+ system.arc4random_buf(buffer.ptr, buffer.len);
+ return;
+ },
+ .wasi => switch (wasi.random_get(buffer.ptr, buffer.len)) {
0 => return,
else => |err| return unexpectedErrno(err),
- }
+ },
+ else => return getRandomBytesDevURandom(buffer),
}
- return getRandomBytesDevURandom(buffer);
}
fn getRandomBytesDevURandom(buf: []u8) !void {