From cf9eced885cb0a2ac664c967ac3e391f0ebfdaf4 Mon Sep 17 00:00:00 2001 From: Austin English Date: Fri, 13 Apr 2018 16:11:15 -0500 Subject: [PATCH] iphlpapi: Add GetIpForwardTable2 stub. Signed-off-by: Austin English Signed-off-by: Alexandre Julliard --- 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 bbd1ed80719..1686644de0a 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 d81fb6a7efc..7911e9d8cf3 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 11cadf6e374..f15a80fdc80 100644 --- a/include/netioapi.h +++ b/include/netioapi.h @@ -21,6 +21,10 @@ #include +#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 1f96773c8e1..983b96c5529 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,