| ... | @@ -537,7 +537,7 @@ test "sendmsg/recvmsg" { | ... | @@ -537,7 +537,7 @@ test "sendmsg/recvmsg" { |
| 537 | | 537 | |
| 538 | // set address_server to the OS-chosen IP/port. | 538 | // set address_server to the OS-chosen IP/port. |
| 539 | var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); | 539 | var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); |
| 540 | try posix.getsockname(server, addrAny(&address_server), &slen); | 540 | try getsockname(server, addrAny(&address_server), &slen); |
| 541 | | 541 | |
| 542 | const client = try socket(address_server.family, posix.SOCK.DGRAM, 0); | 542 | const client = try socket(address_server.family, posix.SOCK.DGRAM, 0); |
| 543 | defer posix.close(client); | 543 | defer posix.close(client); |
| ... | @@ -1041,7 +1041,7 @@ test "shutdown" { | ... | @@ -1041,7 +1041,7 @@ test "shutdown" { |
| 1041 | | 1041 | |
| 1042 | // set address to the OS-chosen IP/port. | 1042 | // set address to the OS-chosen IP/port. |
| 1043 | var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); | 1043 | var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); |
| 1044 | try posix.getsockname(server, addrAny(&address), &slen); | 1044 | try getsockname(server, addrAny(&address), &slen); |
| 1045 | | 1045 | |
| 1046 | const shutdown_sqe = try ring.shutdown(0x445445445, server, linux.SHUT.RD); | 1046 | const shutdown_sqe = try ring.shutdown(0x445445445, server, linux.SHUT.RD); |
| 1047 | try testing.expectEqual(linux.IORING_OP.SHUTDOWN, shutdown_sqe.opcode); | 1047 | try testing.expectEqual(linux.IORING_OP.SHUTDOWN, shutdown_sqe.opcode); |
| ... | @@ -2462,7 +2462,7 @@ test "bind/listen/connect" { | ... | @@ -2462,7 +2462,7 @@ test "bind/listen/connect" { |
| 2462 | | 2462 | |
| 2463 | // Read system assigned port into addr | 2463 | // Read system assigned port into addr |
| 2464 | var addr_len: posix.socklen_t = @sizeOf(linux.sockaddr.in); | 2464 | var addr_len: posix.socklen_t = @sizeOf(linux.sockaddr.in); |
| 2465 | try posix.getsockname(listen_fd, addrAny(&addr), &addr_len); | 2465 | try getsockname(listen_fd, addrAny(&addr), &addr_len); |
| 2466 | | 2466 | |
| 2467 | break :brk listen_fd; | 2467 | break :brk listen_fd; |
| 2468 | }; | 2468 | }; |
| ... | @@ -2666,7 +2666,7 @@ fn createListenerSocket(address: *linux.sockaddr.in) !posix.socket_t { | ... | @@ -2666,7 +2666,7 @@ fn createListenerSocket(address: *linux.sockaddr.in) !posix.socket_t { |
| 2666 | | 2666 | |
| 2667 | // set address to the OS-chosen IP/port. | 2667 | // set address to the OS-chosen IP/port. |
| 2668 | var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); | 2668 | var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); |
| 2669 | try posix.getsockname(listener_socket, addrAny(address), &slen); | 2669 | try getsockname(listener_socket, addrAny(address), &slen); |
| 2670 | | 2670 | |
| 2671 | return listener_socket; | 2671 | return listener_socket; |
| 2672 | } | 2672 | } |
| ... | @@ -2717,3 +2717,10 @@ fn listen(sock: posix.socket_t, backlog: u31) !void { | ... | @@ -2717,3 +2717,10 @@ fn listen(sock: posix.socket_t, backlog: u31) !void { |
| 2717 | else => return error.ListenFailure, | 2717 | else => return error.ListenFailure, |
| 2718 | } | 2718 | } |
| 2719 | } | 2719 | } |
| | 2720 | |
| | 2721 | fn getsockname(sock: posix.socket_t, addr: *posix.sockaddr, addrlen: *posix.socklen_t) !void { |
| | 2722 | switch (posix.errno(posix.system.getsockname(sock, addr, addrlen))) { |
| | 2723 | .SUCCESS => return, |
| | 2724 | else => return error.GetSockNameFailure, |
| | 2725 | } |
| | 2726 | } |