diff --git a/BeefLibs/corlib/src/Net/Socket.bf b/BeefLibs/corlib/src/Net/Socket.bf index cb8afc11..2a233076 100644 --- a/BeefLibs/corlib/src/Net/Socket.bf +++ b/BeefLibs/corlib/src/Net/Socket.bf @@ -397,8 +397,9 @@ namespace System.Net return .Ok; } - public Result Connect(StringView addr, int32 port) + public Result Connect(StringView addr, int32 port, out SockAddr_in sockAddr) { + sockAddr = default; mHandle = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (mHandle == INVALID_SOCKET) return .Err; @@ -407,7 +408,6 @@ namespace System.Net if (hostEnt == null) return .Err; - SockAddr_in sockAddr; sockAddr.sin_family = AF_INET; Internal.MemCpy(&sockAddr.sin_addr, hostEnt.h_addr_list[0], sizeof(IPv4Address)); sockAddr.sin_port = (uint16)htons((int16)port); @@ -428,9 +428,11 @@ namespace System.Net return .Ok; } - public Result AcceptFrom(Socket listenSocket) + public Result Connect(StringView addr, int32 port) => Connect(addr, port, ?); + + public Result AcceptFrom(Socket listenSocket, out SockAddr_in clientAddr) { - SockAddr_in clientAddr; + clientAddr = default; int32 clientAddrLen = sizeof(SockAddr_in); mHandle = accept(listenSocket.mHandle, &clientAddr, &clientAddrLen); if (mHandle == INVALID_SOCKET) @@ -445,6 +447,8 @@ namespace System.Net return .Ok; } + public Result AcceptFrom(Socket listenSocket) => AcceptFrom(listenSocket, ?); + public static int32 Select(FDSet* readFDS, FDSet* writeFDS, FDSet* exceptFDS, int waitTimeMS) { TimeVal timeVal;