authorgravatar for inbox-121@johnlate.scnr.netjohnLate <inbox-121@johnlate.scnr.net> 2020-10-27 08:00:35+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-10-27 21:52:47+01:00
log23c28c72b7a5d9a3df3fc96ac9ab419fafeae819
tree7c17435691a5d3755057715603c7ae424ad6bba4
parent8044ed4c66840503186fc3bbeac4328c6cf76349

std.os.linux.accept/accept4: allow null for addr and len

std.os.accept already wants to allow null, which matches `man 3p accept`: > address Either a null pointer, or a pointer to a sockaddr structure > where the address of the connecting socket shall be re‐ > turned. > > address_len Either a null pointer, if address is a null pointer, or a > pointer to a socklen_t object which on input specifies the > length of the supplied sockaddr structure, and on output > specifies the length of the stored address. Fixes ziglang#6832.

1 files changed, 2 insertions(+), 2 deletions(-)

lib/std/os/linux.zig+2-2
...@@ -1003,14 +1003,14 @@ pub fn socketpair(domain: i32, socket_type: i32, protocol: i32, fd: [2]i32) usiz...@@ -1003,14 +1003,14 @@ pub fn socketpair(domain: i32, socket_type: i32, protocol: i32, fd: [2]i32) usiz
1003 return syscall4(.socketpair, @intCast(usize, domain), @intCast(usize, socket_type), @intCast(usize, protocol), @ptrToInt(&fd[0]));1003 return syscall4(.socketpair, @intCast(usize, domain), @intCast(usize, socket_type), @intCast(usize, protocol), @ptrToInt(&fd[0]));
1004}1004}
10051005
1006pub fn accept(fd: i32, noalias addr: *sockaddr, noalias len: *socklen_t) usize {1006pub fn accept(fd: i32, noalias addr: ?*sockaddr, noalias len: ?*socklen_t) usize {
1007 if (builtin.arch == .i386) {1007 if (builtin.arch == .i386) {
1008 return socketcall(SC_accept, &[4]usize{ fd, addr, len, 0 });1008 return socketcall(SC_accept, &[4]usize{ fd, addr, len, 0 });
1009 }1009 }
1010 return accept4(fd, addr, len, 0);1010 return accept4(fd, addr, len, 0);
1011}1011}
10121012
1013pub fn accept4(fd: i32, noalias addr: *sockaddr, noalias len: *socklen_t, flags: u32) usize {1013pub fn accept4(fd: i32, noalias addr: ?*sockaddr, noalias len: ?*socklen_t, flags: u32) usize {
1014 if (builtin.arch == .i386) {1014 if (builtin.arch == .i386) {
1015 return socketcall(SC_accept4, &[4]usize{ @bitCast(usize, @as(isize, fd)), @ptrToInt(addr), @ptrToInt(len), flags });1015 return socketcall(SC_accept4, &[4]usize{ @bitCast(usize, @as(isize, fd)), @ptrToInt(addr), @ptrToInt(len), flags });
1016 }1016 }