From 469a81afb97fa413d0455719ea0c7a7f980715b1 Mon Sep 17 00:00:00 2001 From: m910q Date: Fri, 26 Aug 2022 18:12:57 +0200 Subject: [PATCH 1/3] Require listen IP when calling Socket.Listen() --- BeefLibs/corlib/src/Net/Socket.bf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/BeefLibs/corlib/src/Net/Socket.bf b/BeefLibs/corlib/src/Net/Socket.bf index 81489794..7d1473a9 100644 --- a/BeefLibs/corlib/src/Net/Socket.bf +++ b/BeefLibs/corlib/src/Net/Socket.bf @@ -117,7 +117,7 @@ namespace System.Net #endif [CRepr] - struct in_addr + public struct IPv4Address { public uint8 b1; public uint8 b2; @@ -144,7 +144,7 @@ namespace System.Net { public int16 sin_family; public uint16 sin_port; - public in_addr sin_addr; + public IPv4Address sin_addr; public char8[8] sin_zero; } @@ -339,7 +339,7 @@ namespace System.Net SetBlocking(mIsBlocking); } - public Result Listen(int32 port, int32 backlog = 5) + public Result Listen(IPv4Address address, int32 port, int32 backlog = 5) { Debug.Assert(mHandle == INVALID_SOCKET); @@ -356,7 +356,7 @@ namespace System.Net SockAddr_in service; service.sin_family = AF_INET; - service.sin_addr = in_addr(127, 0, 0, 1); + service.sin_addr = address; service.sin_port = (uint16)htons((int16)port); if (bind(mHandle, &service, sizeof(SockAddr_in)) == SOCKET_ERROR) @@ -388,7 +388,7 @@ namespace System.Net SockAddr_in sockAddr; sockAddr.sin_family = AF_INET; - Internal.MemCpy(&sockAddr.sin_addr, hostEnt.h_addr_list[0], sizeof(in_addr)); + Internal.MemCpy(&sockAddr.sin_addr, hostEnt.h_addr_list[0], sizeof(IPv4Address)); sockAddr.sin_port = (uint16)htons((int16)port); if (connect(mHandle, &sockAddr, sizeof(SockAddr_in)) == SOCKET_ERROR) From 7d26c115bb10c0e0deac02fabafc67116d7733da Mon Sep 17 00:00:00 2001 From: m910q Date: Fri, 26 Aug 2022 18:55:32 +0200 Subject: [PATCH 2/3] Default Socket.Listen() IP to 127.0.0.1 --- BeefLibs/corlib/src/Net/Socket.bf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BeefLibs/corlib/src/Net/Socket.bf b/BeefLibs/corlib/src/Net/Socket.bf index 7d1473a9..ef229cbe 100644 --- a/BeefLibs/corlib/src/Net/Socket.bf +++ b/BeefLibs/corlib/src/Net/Socket.bf @@ -339,7 +339,7 @@ namespace System.Net SetBlocking(mIsBlocking); } - public Result Listen(IPv4Address address, int32 port, int32 backlog = 5) + public Result Listen(int32 port, IPv4Address address = .(127, 0, 0, 1), int32 backlog = 5) { Debug.Assert(mHandle == INVALID_SOCKET); From c534afecf9bd263728292a7da2ab966eef4884e7 Mon Sep 17 00:00:00 2001 From: m910q Date: Fri, 26 Aug 2022 19:42:16 +0200 Subject: [PATCH 3/3] Created overload for Socket.Listen() with address --- BeefLibs/corlib/src/Net/Socket.bf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/BeefLibs/corlib/src/Net/Socket.bf b/BeefLibs/corlib/src/Net/Socket.bf index ef229cbe..02262092 100644 --- a/BeefLibs/corlib/src/Net/Socket.bf +++ b/BeefLibs/corlib/src/Net/Socket.bf @@ -339,7 +339,12 @@ namespace System.Net SetBlocking(mIsBlocking); } - public Result Listen(int32 port, IPv4Address address = .(127, 0, 0, 1), int32 backlog = 5) + public Result Listen(int32 port, int32 backlog = 5) + { + return Listen(.(127, 0, 0, 1), port, backlog); + } + + public Result Listen(IPv4Address address, int32 port, int32 backlog = 5) { Debug.Assert(mHandle == INVALID_SOCKET);