[PATCH 3/3] inetmib1/tests: Add function to trace result of GetUdpTable.
Bernhard Übelacker
bernhardu at mailbox.org
Thu Dec 16 04:29:09 CST 2021
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52224
Signed-off-by: Bernhard Übelacker <bernhardu at mailbox.org>
---
dlls/inetmib1/tests/main.c | 45 +++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
diff --git a/dlls/inetmib1/tests/main.c b/dlls/inetmib1/tests/main.c
index 5a48276074c..48bc910c93b 100644
--- a/dlls/inetmib1/tests/main.c
+++ b/dlls/inetmib1/tests/main.c
@@ -20,23 +20,30 @@
#include <windef.h>
#include <winbase.h>
#include <snmp.h>
+#include <iphlpapi.h>
+#include <winsock2.h>
#include "wine/test.h"
static BOOL (WINAPI *pSnmpExtensionInit)(DWORD, HANDLE*, AsnObjectIdentifier*);
static BOOL (WINAPI *pSnmpExtensionQuery)(BYTE, SnmpVarBindList*, AsnInteger32*, AsnInteger32*);
+static DWORD (WINAPI *pGetUdpTable)(PMIB_UDPTABLE, PDWORD, BOOL);
+
static HMODULE init_test_functions(void)
{
HMODULE mod = LoadLibraryA("inetmib1");
+ HMODULE mod_iphlpapi = LoadLibraryA("iphlpapi");
ok(mod != NULL, "failed to load inetmib1.dll\n");
-
if (!mod) return NULL;
pSnmpExtensionInit = (void *)GetProcAddress(mod, "SnmpExtensionInit");
pSnmpExtensionQuery = (void *)GetProcAddress(mod, "SnmpExtensionQuery");
+ if (mod_iphlpapi)
+ pGetUdpTable = (void *)GetProcAddress(mod_iphlpapi, "GetUdpTable");
+
return mod;
}
@@ -523,6 +530,41 @@ if (0) /* crashes on native */
SnmpUtilVarBindFree(&vars2[0]);
}
+static void trace_GetUdpTable(void)
+{
+ DWORD size = 0;
+ DWORD ret;
+
+ if (!pGetUdpTable)
+ {
+ skip("no GetUdpTable\n");
+ return;
+ }
+
+ ret = pGetUdpTable(NULL, &size, TRUE);
+
+ if (ret == ERROR_INSUFFICIENT_BUFFER)
+ {
+ MIB_UDPTABLE *table = HeapAlloc(GetProcessHeap(), 0, size);
+ if (table)
+ {
+ if (pGetUdpTable(table, &size, TRUE) == NO_ERROR)
+ {
+ for (int i = 0; i < table->dwNumEntries; i++)
+ {
+ trace("udp: %d.%d.%d.%d:%d\n",
+ (table->table[i].dwLocalAddr >> 0) & 0xff,
+ (table->table[i].dwLocalAddr >> 8) & 0xff,
+ (table->table[i].dwLocalAddr >> 16) & 0xff,
+ (table->table[i].dwLocalAddr >> 24) & 0xff,
+ ntohs(table->table[i].dwLocalPort));
+ }
+ }
+ HeapFree(GetProcessHeap(), 0, table);
+ }
+ }
+}
+
START_TEST(main)
{
HMODULE mod;
@@ -530,6 +572,7 @@ START_TEST(main)
if (!(mod = init_test_functions()))
return;
+ trace_GetUdpTable();
testInit();
testQuery();
--
2.34.1
More information about the wine-devel
mailing list