From 74ea8940677fe9d601240fab1149cfb215fe92a3 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Fri, 17 Oct 2014 13:21:06 +0000 Subject: [PATCH] [PING] - Remove a broken "optimization" CORE-7509 #resolve svn path=/trunk/; revision=64782 --- .../applications/network/ping/CMakeLists.txt | 2 +- reactos/base/applications/network/ping/ping.c | 54 ++++++------------- 2 files changed, 16 insertions(+), 40 deletions(-) diff --git a/reactos/base/applications/network/ping/CMakeLists.txt b/reactos/base/applications/network/ping/CMakeLists.txt index ff77e11fb9d..003e90ecd62 100644 --- a/reactos/base/applications/network/ping/CMakeLists.txt +++ b/reactos/base/applications/network/ping/CMakeLists.txt @@ -2,7 +2,7 @@ add_definitions(-D__USE_W32_SOCKETS) add_executable(ping ping.c ping.rc) set_module_type(ping win32cui UNICODE) -add_importlibs(ping ws2_32 msvcrt kernel32) +add_importlibs(ping user32 ws2_32 msvcrt kernel32) if(MSVC) add_importlibs(ping ntdll) endif() diff --git a/reactos/base/applications/network/ping/ping.c b/reactos/base/applications/network/ping/ping.c index f0f2f732443..7b8bc6ec2cc 100644 --- a/reactos/base/applications/network/ping/ping.c +++ b/reactos/base/applications/network/ping/ping.c @@ -114,30 +114,6 @@ static VOID DisplayBuffer( } #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, ...) { va_list valist; @@ -146,15 +122,18 @@ void FormatOutput(UINT uID, ...) CHAR AnsiBuf[1024]; LPWSTR pBuf = Buf; PCHAR pAnsiBuf = AnsiBuf; - LPWSTR Format; + WCHAR Format[1024]; DWORD written; UINT DataLength; int AnsiLength; va_start(valist, uID); - Format = MyLoadString(uID); - if (!Format) return; + if (!LoadString(GetModuleHandle(NULL), uID, + Format, sizeof(Format) / sizeof(WCHAR))) + { + return; + } DataLength = FormatMessage(FORMAT_MESSAGE_FROM_STRING, Format, 0, 0, Buf,\ sizeof(Buf) / sizeof(WCHAR), &valist); @@ -272,7 +251,7 @@ static BOOL ParseCmdline(int argc, LPWSTR argv[]) if (i + 1 < argc) { DataSize = wcstoul(argv[++i], NULL, 0); - + if (DataSize > ICMP_MAXSIZE - sizeof(ICMP_ECHO_PACKET) - sizeof(IPv4_HEADER)) { 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]; LARGE_INTEGER LargeTime; @@ -494,8 +473,8 @@ static VOID TimeToMsString(LPWSTR String, LARGE_INTEGER Time) _i64tow(LargeTime.QuadPart, Convstr, 10); wcscpy(String, Convstr); - ms = MyLoadString(IDS_MS); - wcscat(String, ms); + ms = String + wcslen(String); + LoadString(GetModuleHandle(NULL), IDS_MS, ms, Length - (ms - String)); } /* 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) { - LPWSTR ms1; - wcscpy(Sign, L"<"); - ms1 = MyLoadString(IDS_1MS); - wcscpy(Time, ms1); + LoadString(GetModuleHandle(NULL), IDS_1MS, Time, sizeof(Time) / sizeof(WCHAR)); } else { 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) MinRTT = MaxRTT; - TimeToMsString(MinTime, MinRTT); - TimeToMsString(MaxTime, MaxRTT); - TimeToMsString(AvgTime, AvgRTT); + TimeToMsString(MinTime, sizeof(MinTime) / sizeof(WCHAR), MinRTT); + TimeToMsString(MaxTime, sizeof(MaxTime) / sizeof(WCHAR), MaxRTT); + TimeToMsString(AvgTime, sizeof(AvgTime) / sizeof(WCHAR), AvgRTT); /* Print statistics */ FormatOutput(IDS_PING_STATISTICS, TargetIP);