Rebase against d744f367d263a131feee96e103fb8220e8400b53

This commit is contained in:
Alistair Leslie-Hughes
2018-08-16 09:16:32 +10:00
parent e7bff1bb4f
commit ec47c04ab3
9 changed files with 59 additions and 438 deletions

View File

@@ -1,17 +1,16 @@
From a08076678e154c913713221f8eea87c70c11d788 Mon Sep 17 00:00:00 2001
From 04aceb5470fc9ca9133f7a6269144eb7aa8d6a10 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 13 Jun 2015 05:03:54 +0200
Subject: iphlpapi: Fallback to system ping when ICMP permissions are not
present.
Subject: [PATCH] iphlpapi: Fallback to system ping when ICMP permissions are
not present.
Based on an idea by Bruno Jesus.
---
dlls/iphlpapi/icmp.c | 256 ++++++++++++++++++++++++++++++++++++++++-
dlls/iphlpapi/tests/iphlpapi.c | 2 +-
2 files changed, 251 insertions(+), 7 deletions(-)
dlls/iphlpapi/icmp.c | 256 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 250 insertions(+), 6 deletions(-)
diff --git a/dlls/iphlpapi/icmp.c b/dlls/iphlpapi/icmp.c
index ebc2f2b..330dd73a 100644
index 0dc2f12..da3850b 100644
--- a/dlls/iphlpapi/icmp.c
+++ b/dlls/iphlpapi/icmp.c
@@ -5,6 +5,7 @@
@@ -50,7 +49,7 @@ index ebc2f2b..330dd73a 100644
#define USE_WS_PREFIX
@@ -209,6 +216,7 @@ DWORD WINAPI Icmp6SendEcho2(
@@ -212,6 +219,7 @@ DWORD WINAPI Icmp6SendEcho2(
*/
HANDLE WINAPI IcmpCreateFile(VOID)
{
@@ -58,7 +57,7 @@ index ebc2f2b..330dd73a 100644
icmp_t* icp;
int sid=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);
@@ -217,15 +225,14 @@ HANDLE WINAPI IcmpCreateFile(VOID)
@@ -220,15 +228,14 @@ HANDLE WINAPI IcmpCreateFile(VOID)
/* Mac OS X supports non-privileged ICMP via SOCK_DGRAM type. */
sid=socket(AF_INET,SOCK_DGRAM,IPPROTO_ICMP);
}
@@ -78,7 +77,7 @@ index ebc2f2b..330dd73a 100644
SetLastError(IP_NO_RESOURCES);
return INVALID_HANDLE_VALUE;
}
@@ -247,11 +254,242 @@ BOOL WINAPI IcmpCloseHandle(HANDLE IcmpHandle)
@@ -250,11 +257,242 @@ BOOL WINAPI IcmpCloseHandle(HANDLE IcmpHandle)
return FALSE;
}
@@ -322,7 +321,7 @@ index ebc2f2b..330dd73a 100644
/***********************************************************************
* IcmpSendEcho (IPHLPAPI.@)
@@ -301,6 +539,12 @@ DWORD WINAPI IcmpSendEcho(
@@ -308,6 +546,12 @@ DWORD WINAPI IcmpSendEcho(
return 0;
}
@@ -335,25 +334,6 @@ index ebc2f2b..330dd73a 100644
/* Prepare the request */
id=getpid() & 0xFFFF;
seq=InterlockedIncrement(&icmp_sequence) & 0xFFFF;
diff --git a/dlls/iphlpapi/tests/iphlpapi.c b/dlls/iphlpapi/tests/iphlpapi.c
index 73e4302..f9c6b99 100644
--- a/dlls/iphlpapi/tests/iphlpapi.c
+++ b/dlls/iphlpapi/tests/iphlpapi.c
@@ -1028,13 +1028,13 @@ todo_wine
replysz = sizeof(ICMP_ECHO_REPLY) + ICMP_MINLEN;
ret = pIcmpSendEcho(icmp, address, senddata, ICMP_MINLEN, NULL, replydata, replysz, 1000);
error = GetLastError();
-todo_wine
ok (ret, "IcmpSendEcho failed unexpectedly with error %d\n", error);
SetLastError(0xdeadbeef);
replysz = sizeof(ICMP_ECHO_REPLY) + ICMP_MINLEN;
ret = pIcmpSendEcho(icmp, address, senddata, ICMP_MINLEN + 1, NULL, replydata, replysz, 1000);
error = GetLastError();
+todo_wine
ok (!ret, "IcmpSendEcho succeeded unexpectedly\n");
todo_wine
ok (error == IP_GENERAL_FAILURE
--
2.8.0
1.9.1