From dc5a52bb5ad1efb8ddb061d73827c9a0ef5b7b9d Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 25 Sep 2009 23:27:44 +0000 Subject: [PATCH] - Fix implementation of WSHGetWildcardSockaddr - Implement WSHGetBroadcastSockaddr svn path=/trunk/; revision=43153 --- reactos/dll/win32/wshtcpip/wshtcpip.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/wshtcpip/wshtcpip.c b/reactos/dll/win32/wshtcpip/wshtcpip.c index ada85216a8c..b13fabc6324 100644 --- a/reactos/dll/win32/wshtcpip/wshtcpip.c +++ b/reactos/dll/win32/wshtcpip/wshtcpip.c @@ -75,7 +75,17 @@ WSHGetBroadcastSockaddr( OUT PSOCKADDR Sockaddr, OUT PINT SockaddrLength) { - UNIMPLEMENTED + DWORD Size = 2 * sizeof(UINT); + + if (*SockaddrLength < Size) + return WSAEFAULT; + + RtlZeroMemory(Sockaddr, *SockaddrLength); + + Sockaddr->sa_family = AF_INET; + *((PUINT)Sockaddr->sa_data) = INADDR_BROADCAST; + + *SockaddrLength = Size; return 0; } @@ -172,8 +182,18 @@ WSHGetWildcardSockaddr( OUT PSOCKADDR Sockaddr, OUT PINT SockaddrLength) { - RtlZeroMemory((PVOID)Sockaddr, *SockaddrLength); + DWORD Size = 2 * sizeof(UINT); + + if (*SockaddrLength < Size) + return WSAEFAULT; + + RtlZeroMemory(Sockaddr, *SockaddrLength); + Sockaddr->sa_family = AF_INET; + *((PUINT)Sockaddr->sa_data) = INADDR_ANY; + + *SockaddrLength = Size; + return 0; }