aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorPePerRoNii <wachiraphol.yin@gmail.com>2025-06-11 13:05:16 +0700
committerPePerRoNii <wachiraphol.yin@gmail.com>2025-06-11 13:05:16 +0700
commit297fdd4075c18c8102ef7a453bc10675cccef3a5 (patch)
tree87b78a04758a3a0f044dbbc37b56c5bf74b72ef3 /core
parent7ba4427d52d201b6dd913395d6fb2eb94506ecf6 (diff)
added freebsd implementation NOTE: bsd's tcp_recv_error does not cover all cases
Diffstat (limited to 'core')
-rw-r--r--core/net/socket_freebsd.odin14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/net/socket_freebsd.odin b/core/net/socket_freebsd.odin
index b510346ba..681d0e038 100644
--- a/core/net/socket_freebsd.odin
+++ b/core/net/socket_freebsd.odin
@@ -154,6 +154,20 @@ _bound_endpoint :: proc(sock: Any_Socket) -> (ep: Endpoint, err: Listen_Error) {
}
@(private)
+_peer_endpoint :: proc(sock: Any_Socket) -> (ep: Endpoint, err: TCP_Recv_Error) {
+ sockaddr: freebsd.Socket_Address_Storage
+
+ errno := freebsd.getpeername(cast(Fd)any_socket_to_socket(sock), &sockaddr)
+ if errno != nil {
+ err = _tcp_recv_error(errno)
+ return
+ }
+
+ ep = _sockaddr_to_endpoint(&sockaddr)
+ return
+}
+
+@(private)
_accept_tcp :: proc(sock: TCP_Socket, options := DEFAULT_TCP_OPTIONS) -> (client: TCP_Socket, source: Endpoint, err: Accept_Error) {
sockaddr: freebsd.Socket_Address_Storage