mirror of
https://github.com/reactos/reactos.git
synced 2024-10-15 13:45:58 +00:00
[PING]
- Remove a broken "optimization" CORE-7509 #resolve svn path=/trunk/; revision=64782
This commit is contained in:
parent
0854129ae9
commit
74ea894067
|
@ -2,7 +2,7 @@
|
||||||
add_definitions(-D__USE_W32_SOCKETS)
|
add_definitions(-D__USE_W32_SOCKETS)
|
||||||
add_executable(ping ping.c ping.rc)
|
add_executable(ping ping.c ping.rc)
|
||||||
set_module_type(ping win32cui UNICODE)
|
set_module_type(ping win32cui UNICODE)
|
||||||
add_importlibs(ping ws2_32 msvcrt kernel32)
|
add_importlibs(ping user32 ws2_32 msvcrt kernel32)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
add_importlibs(ping ntdll)
|
add_importlibs(ping ntdll)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -114,30 +114,6 @@ static VOID DisplayBuffer(
|
||||||
}
|
}
|
||||||
#endif /* !NDEBUG */
|
#endif /* !NDEBUG */
|
||||||
|
|
||||||
LPWSTR
|
|
||||||
MyLoadString(UINT uID)
|
|
||||||
{
|
|
||||||
HRSRC hres;
|
|
||||||
HGLOBAL hResData;
|
|
||||||
WCHAR *pwsz;
|
|
||||||
UINT string_num, i;
|
|
||||||
|
|
||||||
hres = FindResourceW(NULL, MAKEINTRESOURCEW((LOWORD(uID) >> 4) + 1), RT_STRING);
|
|
||||||
if (!hres) return NULL;
|
|
||||||
|
|
||||||
hResData = LoadResource(NULL, hres);
|
|
||||||
if (!hResData) return NULL;
|
|
||||||
|
|
||||||
pwsz = LockResource(hResData);
|
|
||||||
if (!pwsz) return NULL;
|
|
||||||
|
|
||||||
string_num = uID & 15;
|
|
||||||
for (i = 0; i < string_num; i++)
|
|
||||||
pwsz += *pwsz + 1;
|
|
||||||
|
|
||||||
return pwsz + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FormatOutput(UINT uID, ...)
|
void FormatOutput(UINT uID, ...)
|
||||||
{
|
{
|
||||||
va_list valist;
|
va_list valist;
|
||||||
|
@ -146,15 +122,18 @@ void FormatOutput(UINT uID, ...)
|
||||||
CHAR AnsiBuf[1024];
|
CHAR AnsiBuf[1024];
|
||||||
LPWSTR pBuf = Buf;
|
LPWSTR pBuf = Buf;
|
||||||
PCHAR pAnsiBuf = AnsiBuf;
|
PCHAR pAnsiBuf = AnsiBuf;
|
||||||
LPWSTR Format;
|
WCHAR Format[1024];
|
||||||
DWORD written;
|
DWORD written;
|
||||||
UINT DataLength;
|
UINT DataLength;
|
||||||
int AnsiLength;
|
int AnsiLength;
|
||||||
|
|
||||||
va_start(valist, uID);
|
va_start(valist, uID);
|
||||||
|
|
||||||
Format = MyLoadString(uID);
|
if (!LoadString(GetModuleHandle(NULL), uID,
|
||||||
if (!Format) return;
|
Format, sizeof(Format) / sizeof(WCHAR)))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
DataLength = FormatMessage(FORMAT_MESSAGE_FROM_STRING, Format, 0, 0, Buf,\
|
DataLength = FormatMessage(FORMAT_MESSAGE_FROM_STRING, Format, 0, 0, Buf,\
|
||||||
sizeof(Buf) / sizeof(WCHAR), &valist);
|
sizeof(Buf) / sizeof(WCHAR), &valist);
|
||||||
|
@ -272,7 +251,7 @@ static BOOL ParseCmdline(int argc, LPWSTR argv[])
|
||||||
if (i + 1 < argc)
|
if (i + 1 < argc)
|
||||||
{
|
{
|
||||||
DataSize = wcstoul(argv[++i], NULL, 0);
|
DataSize = wcstoul(argv[++i], NULL, 0);
|
||||||
|
|
||||||
if (DataSize > ICMP_MAXSIZE - sizeof(ICMP_ECHO_PACKET) - sizeof(IPv4_HEADER))
|
if (DataSize > ICMP_MAXSIZE - sizeof(ICMP_ECHO_PACKET) - sizeof(IPv4_HEADER))
|
||||||
{
|
{
|
||||||
FormatOutput(IDS_BAD_VALUE_OPTION_L, ICMP_MAXSIZE - \
|
FormatOutput(IDS_BAD_VALUE_OPTION_L, ICMP_MAXSIZE - \
|
||||||
|
@ -484,7 +463,7 @@ static VOID QueryTime(PLARGE_INTEGER Time)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID TimeToMsString(LPWSTR String, LARGE_INTEGER Time)
|
static VOID TimeToMsString(LPWSTR String, ULONG Length, LARGE_INTEGER Time)
|
||||||
{
|
{
|
||||||
WCHAR Convstr[40];
|
WCHAR Convstr[40];
|
||||||
LARGE_INTEGER LargeTime;
|
LARGE_INTEGER LargeTime;
|
||||||
|
@ -494,8 +473,8 @@ static VOID TimeToMsString(LPWSTR String, LARGE_INTEGER Time)
|
||||||
|
|
||||||
_i64tow(LargeTime.QuadPart, Convstr, 10);
|
_i64tow(LargeTime.QuadPart, Convstr, 10);
|
||||||
wcscpy(String, Convstr);
|
wcscpy(String, Convstr);
|
||||||
ms = MyLoadString(IDS_MS);
|
ms = String + wcslen(String);
|
||||||
wcscat(String, ms);
|
LoadString(GetModuleHandle(NULL), IDS_MS, ms, Length - (ms - String));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Locate the ICMP data and print it. Returns TRUE if the packet was good,
|
/* Locate the ICMP data and print it. Returns TRUE if the packet was good,
|
||||||
|
@ -555,16 +534,13 @@ static BOOL DecodeResponse(PCHAR buffer, UINT size, PSOCKADDR_IN from)
|
||||||
|
|
||||||
if ((RelativeTime.QuadPart / TicksPerMs.QuadPart) < 1)
|
if ((RelativeTime.QuadPart / TicksPerMs.QuadPart) < 1)
|
||||||
{
|
{
|
||||||
LPWSTR ms1;
|
|
||||||
|
|
||||||
wcscpy(Sign, L"<");
|
wcscpy(Sign, L"<");
|
||||||
ms1 = MyLoadString(IDS_1MS);
|
LoadString(GetModuleHandle(NULL), IDS_1MS, Time, sizeof(Time) / sizeof(WCHAR));
|
||||||
wcscpy(Time, ms1);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wcscpy(Sign, L"=");
|
wcscpy(Sign, L"=");
|
||||||
TimeToMsString(Time, RelativeTime);
|
TimeToMsString(Time, sizeof(Time) / sizeof(WCHAR), RelativeTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -740,9 +716,9 @@ int wmain(int argc, LPWSTR argv[])
|
||||||
if (!MinRTTSet)
|
if (!MinRTTSet)
|
||||||
MinRTT = MaxRTT;
|
MinRTT = MaxRTT;
|
||||||
|
|
||||||
TimeToMsString(MinTime, MinRTT);
|
TimeToMsString(MinTime, sizeof(MinTime) / sizeof(WCHAR), MinRTT);
|
||||||
TimeToMsString(MaxTime, MaxRTT);
|
TimeToMsString(MaxTime, sizeof(MaxTime) / sizeof(WCHAR), MaxRTT);
|
||||||
TimeToMsString(AvgTime, AvgRTT);
|
TimeToMsString(AvgTime, sizeof(AvgTime) / sizeof(WCHAR), AvgRTT);
|
||||||
|
|
||||||
/* Print statistics */
|
/* Print statistics */
|
||||||
FormatOutput(IDS_PING_STATISTICS, TargetIP);
|
FormatOutput(IDS_PING_STATISTICS, TargetIP);
|
||||||
|
|
Loading…
Reference in a new issue