Juan Lang : iphlpapi: Honor GAA_FLAG_SKIP_UNICAST.

Alexandre Julliard julliard at winehq.org
Tue Oct 12 11:26:59 CDT 2010


Module: wine
Branch: master
Commit: c44c16cf740e3b970cd7d23838a4742c0364adf0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c44c16cf740e3b970cd7d23838a4742c0364adf0

Author: Juan Lang <juan.lang at gmail.com>
Date:   Mon Oct 11 13:19:34 2010 -0700

iphlpapi: Honor GAA_FLAG_SKIP_UNICAST.

---

 dlls/iphlpapi/iphlpapi_main.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index fef5637..190c0ca 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -719,14 +719,15 @@ static PMIB_IPFORWARDROW findIPv4Gateway(DWORD index,
 static ULONG adapterAddressesFromIndex(ULONG family, ULONG flags, DWORD index,
                                        IP_ADAPTER_ADDRESSES *aa, ULONG *size)
 {
-    ULONG ret, i, num_v4addrs = 0, num_v4_gateways = 0, num_v6addrs = 0, total_size;
+    ULONG ret = ERROR_SUCCESS, i, num_v4addrs = 0, num_v4_gateways = 0, num_v6addrs = 0, total_size;
     DWORD *v4addrs = NULL;
     SOCKET_ADDRESS *v6addrs = NULL;
     PMIB_IPFORWARDTABLE routeTable = NULL;
 
     if (family == WS_AF_INET)
     {
-        ret = v4addressesFromIndex(index, &v4addrs, &num_v4addrs);
+        if (!(flags & GAA_FLAG_SKIP_UNICAST))
+            ret = v4addressesFromIndex(index, &v4addrs, &num_v4addrs);
         if (!ret && flags & GAA_FLAG_INCLUDE_ALL_GATEWAYS)
         {
             ret = AllocateAndGetIpForwardTableFromStack(&routeTable, FALSE,
@@ -736,10 +737,14 @@ static ULONG adapterAddressesFromIndex(ULONG family, ULONG flags, DWORD index,
         }
     }
     else if (family == WS_AF_INET6)
-        ret = v6addressesFromIndex(index, &v6addrs, &num_v6addrs);
+    {
+        if (!(flags & GAA_FLAG_SKIP_UNICAST))
+            ret = v6addressesFromIndex(index, &v6addrs, &num_v6addrs);
+    }
     else if (family == WS_AF_UNSPEC)
     {
-        ret = v4addressesFromIndex(index, &v4addrs, &num_v4addrs);
+        if (!(flags & GAA_FLAG_SKIP_UNICAST))
+            ret = v4addressesFromIndex(index, &v4addrs, &num_v4addrs);
         if (!ret && flags & GAA_FLAG_INCLUDE_ALL_GATEWAYS)
         {
             ret = AllocateAndGetIpForwardTableFromStack(&routeTable, FALSE,
@@ -747,7 +752,8 @@ static ULONG adapterAddressesFromIndex(ULONG family, ULONG flags, DWORD index,
             if (!ret)
             {
                 num_v4_gateways = count_v4_gateways(index, routeTable);
-                ret = v6addressesFromIndex(index, &v6addrs, &num_v6addrs);
+                if (!(flags & GAA_FLAG_SKIP_UNICAST))
+                    ret = v6addressesFromIndex(index, &v6addrs, &num_v6addrs);
             }
         }
     }




More information about the wine-cvs mailing list