[PATCH 1/1] iphlpapi: add GetIpForwardTable2 stub

Austin English austinenglish at gmail.com
Fri Apr 13 16:11:15 CDT 2018


Signed-off-by: Austin English <austinenglish at gmail.com>
---
 dlls/iphlpapi/iphlpapi.spec   |  2 +-
 dlls/iphlpapi/iphlpapi_main.c | 11 +++++++++++
 include/netioapi.h            | 32 ++++++++++++++++++++++++++++++++
 include/nldef.h               |  9 +++++++++
 4 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/dlls/iphlpapi/iphlpapi.spec b/dlls/iphlpapi/iphlpapi.spec
index bbd1ed8071..1686644de0 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 d81fb6a7ef..7911e9d8cf 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 11cadf6e37..e770859dc6 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,34 @@ 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 1f96773c8e..983b96c552 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,
-- 
2.16.1




More information about the wine-devel mailing list