Juan Lang : iphlpapi: Default to a default gateway when choosing the best route.
Alexandre Julliard
julliard at winehq.org
Fri Nov 16 08:31:15 CST 2007
Module: wine
Branch: master
Commit: 00c97a61bf2c4d47d012b5205d2a1589671d6ef8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=00c97a61bf2c4d47d012b5205d2a1589671d6ef8
Author: Juan Lang <juan.lang at gmail.com>
Date: Thu Nov 15 09:38:12 2007 -0800
iphlpapi: Default to a default gateway when choosing the best route.
---
dlls/iphlpapi/iphlpapi_main.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index 74fa938..24307d6 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -853,7 +853,7 @@ DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDRO
return ERROR_INVALID_PARAMETER;
ret = AllocateAndGetIpForwardTableFromStack(&table, FALSE, GetProcessHeap(), 0);
- if (table && !ret) {
+ if (!ret) {
DWORD ndx, matchedBits, matchedNdx = table->dwNumEntries;
for (ndx = 0, matchedBits = 0; ndx < table->dwNumEntries; ndx++) {
@@ -869,6 +869,11 @@ DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDRO
matchedBits = numShifts;
matchedNdx = ndx;
}
+ else if (!matchedBits && table->table[ndx].dwForwardType ==
+ MIB_IPROUTE_TYPE_INDIRECT) {
+ /* default to a default gateway */
+ matchedNdx = ndx;
+ }
}
}
if (matchedNdx < table->dwNumEntries) {
@@ -881,8 +886,6 @@ DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDRO
}
HeapFree(GetProcessHeap(), 0, table);
}
- else if (!ret)
- ret = ERROR_OUTOFMEMORY;
TRACE("returning %d\n", ret);
return ret;
}
More information about the wine-cvs
mailing list