X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdll%2Fwin32%2Fdhcpcsvc%2Fdhcp%2Fadapter.c;h=73a45e07d4fcdd842535851a30ad0d2ca6716256;hp=324847819baf1e6e773d447fd56ce5fab37ef20b;hb=f4530b30f259b246dabd12265ab17b4c84b67aef;hpb=763a24d9d7084fda47e4228c9fce75b97e59e4e4 diff --git a/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c b/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c index 324847819ba..73a45e07d4f 100644 --- a/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c +++ b/reactos/dll/win32/dhcpcsvc/dhcp/adapter.c @@ -227,10 +227,11 @@ InterfaceConnected(MIB_IFROW IfEntry) /* * XXX Figure out the way to bind a specific adapter to a socket. */ -DWORD WINAPI AdapterDiscoveryThread(LPVOID Unused) { +DWORD WINAPI AdapterDiscoveryThread(LPVOID Context) { PMIB_IFTABLE Table = (PMIB_IFTABLE) malloc(sizeof(MIB_IFTABLE)); DWORD Error, Size = sizeof(MIB_IFTABLE); PDHCP_ADAPTER Adapter = NULL; + HANDLE AdapterStateChangedEvent = (HANDLE)Context; struct interface_info *ifi = NULL; int i; @@ -345,6 +346,8 @@ DWORD WINAPI AdapterDiscoveryThread(LPVOID Unused) { ApiLock(); InsertTailList( &AdapterList, &Adapter->ListEntry ); + DbgPrint("DHCPCSVC: Discovered new adapter [%s]\n", Adapter->DhclientInfo.name); + SetEvent(AdapterStateChangedEvent); ApiUnlock(); } else { free( Adapter ); Adapter = 0; } } else { free( Adapter ); Adapter = 0; } @@ -361,22 +364,27 @@ DWORD WINAPI AdapterDiscoveryThread(LPVOID Unused) { return Error; } -BOOLEAN StartAdapterDiscovery(VOID) { - HANDLE ThreadHandle; +HANDLE StartAdapterDiscovery(VOID) { + HANDLE ThreadHandle, EventHandle; + + EventHandle = CreateEvent(NULL, + FALSE, + FALSE, + NULL); ThreadHandle = CreateThread(NULL, 0, AdapterDiscoveryThread, - NULL, + (LPVOID)EventHandle, 0, NULL); if (ThreadHandle == NULL) - return FALSE; + return NULL; CloseHandle(ThreadHandle); - return TRUE; + return EventHandle; } void AdapterStop() {