X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Flib%2Fiphlpapi%2Fiphlpapi_main.c;h=c0a2bfec5491f7a69a9136a14b7f84743431d8aa;hp=7cb92952e774641dfea1e7332813837f9202d25a;hb=1c7c9e87d1515c01d820d55984595e2979fffb92;hpb=f968d716fa6202c5b476889bd62985e0e0327e0d diff --git a/reactos/lib/iphlpapi/iphlpapi_main.c b/reactos/lib/iphlpapi/iphlpapi_main.c index 7cb92952e77..c0a2bfec549 100644 --- a/reactos/lib/iphlpapi/iphlpapi_main.c +++ b/reactos/lib/iphlpapi/iphlpapi_main.c @@ -82,11 +82,9 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) * DWORD * */ -DWORD WINAPI AddIPAddress(IPAddr Address, IPMask IpMask, DWORD IfIndex, PULONG NTEContext, PULONG NTEInstance) +DWORD WINAPI AddIPAddress(IPAddr Address, IPMask Netmask, DWORD IfIndex, PULONG NteContext, PULONG NteInstance) { - FIXME(":stub\n"); - /* marking Win2K+ functions not supported */ - return ERROR_NOT_SUPPORTED; + return addIPAddress( Address, Netmask, IfIndex, NteContext, NteInstance ); } @@ -404,9 +402,7 @@ DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex) DWORD WINAPI DeleteIPAddress(ULONG NTEContext) { TRACE("NTEContext %ld\n", NTEContext); - FIXME(":stub\n"); - /* marking Win2K+ functions not supported */ - return ERROR_NOT_SUPPORTED; + return deleteIpAddress( NTEContext ); } @@ -617,6 +613,7 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen) winsEnabled = TRUE; RegCloseKey(hKey); } + for (ndx = 0; ndx < table->numIndexes; ndx++) { PIP_ADAPTER_INFO ptr = &pAdapterInfo[ndx]; DWORD addrLen = sizeof(ptr->Address), type; @@ -939,8 +936,9 @@ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen) if (!dwOutBufLen) ret = ERROR_INVALID_PARAMETER; else { - DWORD numInterfaces = getNumInterfaces(); - ULONG size = sizeof(IP_INTERFACE_INFO) + (numInterfaces - 1) * + DWORD numNonLoopbackInterfaces = getNumNonLoopbackInterfaces(); + DPRINT("numNonLoopbackInterfaces == 0x%x\n", numNonLoopbackInterfaces); + ULONG size = sizeof(IP_INTERFACE_INFO) + (numNonLoopbackInterfaces) * sizeof(IP_ADAPTER_INDEX_MAP); if (!pIfTable || *dwOutBufLen < size) { @@ -948,10 +946,11 @@ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen) ret = ERROR_INSUFFICIENT_BUFFER; } else { - InterfaceIndexTable *table = getInterfaceIndexTable(); + InterfaceIndexTable *table = getNonLoopbackInterfaceIndexTable(); + DPRINT("table->numIndexes == 0x%x\n", table->numIndexes); if (table) { - size = sizeof(IP_INTERFACE_INFO) + (table->numIndexes - 1) * + size = sizeof(IP_INTERFACE_INFO) + (table->numIndexes) * sizeof(IP_ADAPTER_INDEX_MAP); if (*dwOutBufLen < size) { *dwOutBufLen = size;