Austin English : iphlpapi: Add GetIpForwardTable2 stub.

Alexandre Julliard julliard at winehq.org
Tue Apr 17 14:53:58 CDT 2018


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

Author: Austin English <austinenglish at gmail.com>
Date:   Fri Apr 13 16:11:15 2018 -0500

iphlpapi: Add GetIpForwardTable2 stub.

Signed-off-by: Austin English <austinenglish at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/iphlpapi/iphlpapi.spec   |  2 +-
 dlls/iphlpapi/iphlpapi_main.c | 11 +++++++++++
 include/netioapi.h            | 35 +++++++++++++++++++++++++++++++++++
 include/nldef.h               |  9 +++++++++
 4 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/dlls/iphlpapi/iphlpapi.spec b/dlls/iphlpapi/iphlpapi.spec
index bbd1ed8..1686644 100644
--- a/dlls/iphlpapi/iphlpapi.spec
+++ b/dlls/iphlpapi/iphlpapi.spec
@@ -102,7 +102,7 @@
 #@ stub GetIpErrorString
 #@ stub GetIpForwardEntry2
 @ stdcall GetIpForwardTable( ptr ptr long )
-#@ stub GetIpForwardTable2
+@ stdcall GetIpForwardTable2( long ptr )
 @ stub GetIpForwardTableFromStack
 #@ stub GetIpInterfaceEntry
 #@ stub GetIpInterfaceTable
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index d81fb6a..7911e9d 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -3264,3 +3264,14 @@ PCHAR WINAPI IPHLP_if_indextoname(NET_IFINDEX index, PCHAR name)
 
     return getInterfaceNameByIndex(index, name);
 }
+
+/******************************************************************
+ *    GetIpForwardTable2 (IPHLPAPI.@)
+ */
+DWORD WINAPI GetIpForwardTable2(ADDRESS_FAMILY family, PMIB_IPFORWARD_TABLE2 *table)
+{
+    static int once;
+
+    if (!once++) FIXME("(%u %p): stub\n", family, table);
+    return ERROR_NOT_SUPPORTED;
+}
diff --git a/include/netioapi.h b/include/netioapi.h
index 11cadf6..f15a80f 100644
--- a/include/netioapi.h
+++ b/include/netioapi.h
@@ -21,6 +21,10 @@
 
 #include <ntddndis.h>
 
+#ifndef ANY_SIZE
+#define ANY_SIZE 1
+#endif
+
 typedef enum _MIB_IF_TABLE_LEVEL
 {
     MibIfTableNormal,
@@ -158,6 +162,37 @@ typedef struct _MIB_UNICASTIPADDRESS_TABLE
     MIB_UNICASTIPADDRESS_ROW Table[1];
 } MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE;
 
+typedef struct _IP_ADDRESS_PREFIX
+{
+    SOCKADDR_INET Prefix;
+    UINT8         PrefixLength;
+} IP_ADDRESS_PREFIX, *PIP_ADDRESS_PREFIX;
+
+typedef struct _MIB_IPFORWARD_ROW2
+{
+    NET_LUID          InterfaceLuid;
+    NET_IFINDEX       InterfaceIndex;
+    IP_ADDRESS_PREFIX DestinationPrefix;
+    SOCKADDR_INET     NextHop;
+    UCHAR             SitePrefixLength;
+    ULONG             ValidLifetime;
+    ULONG             PreferredLifetime;
+    ULONG             Metric;
+    NL_ROUTE_PROTOCOL Protocol;
+    BOOLEAN           Loopback;
+    BOOLEAN           AutoconfigureAddress;
+    BOOLEAN           Publish;
+    BOOLEAN           Immortal;
+    ULONG             Age;
+    NL_ROUTE_ORIGIN   Origin;
+} MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2;
+
+typedef struct _MIB_IPFORWARD_TABLE2
+{
+    ULONG              NumEntries;
+    MIB_IPFORWARD_ROW2 Table[ANY_SIZE];
+} MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2;
+
 typedef VOID (WINAPI *PIPINTERFACE_CHANGE_CALLBACK)(PVOID, PMIB_IPINTERFACE_ROW,
                                                     MIB_NOTIFICATION_TYPE);
 typedef VOID (WINAPI *PUNICAST_IPADDRESS_CHANGE_CALLBACK)(PVOID, PMIB_UNICASTIPADDRESS_ROW,
diff --git a/include/nldef.h b/include/nldef.h
index 1f96773..983b96c 100644
--- a/include/nldef.h
+++ b/include/nldef.h
@@ -28,6 +28,15 @@ typedef enum
     IpPrefixOriginUnchanged = 16,
 } NL_PREFIX_ORIGIN;
 
+typedef enum _NL_ROUTE_ORIGIN
+{
+    NlroManual,
+    NlroWellKnown,
+    NlroDHCP,
+    NlroRouterAdvertisement,
+    Nlro6to4,
+} NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN;
+
 typedef enum
 {
     IpSuffixOriginOther = 0,




More information about the wine-cvs mailing list