From 6cb85c8ae3205ce8633b3347fda8a1133de0a03b Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 9 Aug 2010 20:37:32 +0000 Subject: [PATCH] [DHCPCSVC] - Set the SO_BROADCAST option to 1 before we send data to the broadcast address so we don't get stonewalled by mswsock - DHCP is now compatible with mswsock_new svn path=/trunk/; revision=48493 --- reactos/dll/win32/dhcpcsvc/dhcp/adapter.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c b/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c index 7e22a3bd570..890972f945f 100644 --- a/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c +++ b/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c @@ -209,7 +209,7 @@ DWORD WINAPI AdapterDiscoveryThread(LPVOID Context) { PDHCP_ADAPTER Adapter = NULL; HANDLE AdapterStateChangedEvent = (HANDLE)Context; struct interface_info *ifi = NULL; - int i, AdapterCount = 0; + int i, AdapterCount = 0, Broadcast; /* FIXME: Kill this thread when the service is stopped */ @@ -285,6 +285,15 @@ DWORD WINAPI AdapterDiscoveryThread(LPVOID Context) { socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP ); if (DhcpSocket != INVALID_SOCKET) { + + /* Allow broadcast on this socket */ + Broadcast = 1; + setsockopt(DhcpSocket, + SOL_SOCKET, + SO_BROADCAST, + (const char *)&Broadcast, + sizeof(Broadcast)); + Adapter->ListenAddr.sin_family = AF_INET; Adapter->ListenAddr.sin_port = htons(LOCAL_PORT); Adapter->BindStatus =