mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
x/os/socket: use sockaddr_storage for accept()
This commit is contained in:
parent
d3871af724
commit
e739b2b7d6
@ -55,11 +55,11 @@ pub const Socket = struct {
|
||||
/// Accept a pending incoming connection queued to the kernel backlog
|
||||
/// of the socket.
|
||||
pub fn accept(self: Socket, flags: u32) !Socket.Connection {
|
||||
var address: os.sockaddr = undefined;
|
||||
var address_len: u32 = @sizeOf(os.sockaddr);
|
||||
var address: os.sockaddr_storage = undefined;
|
||||
var address_len: u32 = @sizeOf(os.sockaddr_storage);
|
||||
|
||||
const socket = Socket{ .fd = try os.accept(self.fd, &address, &address_len, flags) };
|
||||
const socket_address = Socket.Address.fromNative(@alignCast(4, &address));
|
||||
const socket = Socket{ .fd = try os.accept(self.fd, @ptrCast(*os.sockaddr, &address), &address_len, flags) };
|
||||
const socket_address = Socket.Address.fromNative(@alignCast(4, @ptrCast(*os.sockaddr, &address)));
|
||||
|
||||
return Socket.Connection.from(socket, socket_address);
|
||||
}
|
||||
|
||||
@ -149,10 +149,10 @@ pub const Socket = struct {
|
||||
/// Accept a pending incoming connection queued to the kernel backlog
|
||||
/// of the socket.
|
||||
pub fn accept(self: Socket, flags: u32) !Socket.Connection {
|
||||
var address: ws2_32.sockaddr = undefined;
|
||||
var address_len: c_int = @sizeOf(ws2_32.sockaddr);
|
||||
var address: ws2_32.sockaddr_storage = undefined;
|
||||
var address_len: c_int = @sizeOf(ws2_32.sockaddr_storage);
|
||||
|
||||
const rc = ws2_32.accept(self.fd, &address, &address_len);
|
||||
const rc = ws2_32.accept(self.fd, @ptrCast(*ws2_32.sockaddr, &address), &address_len);
|
||||
if (rc == ws2_32.INVALID_SOCKET) {
|
||||
return switch (ws2_32.WSAGetLastError()) {
|
||||
.WSANOTINITIALISED => unreachable,
|
||||
@ -169,7 +169,7 @@ pub const Socket = struct {
|
||||
}
|
||||
|
||||
const socket = Socket.from(rc);
|
||||
const socket_address = Socket.Address.fromNative(@alignCast(4, &address));
|
||||
const socket_address = Socket.Address.fromNative(@alignCast(4, @ptrCast(*ws2_32.sockaddr, &address)));
|
||||
|
||||
return Socket.Connection.from(socket, socket_address);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user