[PING] Minor fixes by Tim Crawford. Please see CORE-12022 for the list of changes.
authorAmine Khaldi <amine.khaldi@reactos.org>
Tue, 27 Sep 2016 18:37:45 +0000 (18:37 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Tue, 27 Sep 2016 18:37:45 +0000 (18:37 +0000)
svn path=/trunk/; revision=72831

18 files changed:
reactos/base/applications/network/ping/lang/bg-BG.rc
reactos/base/applications/network/ping/lang/cs-CZ.rc
reactos/base/applications/network/ping/lang/de-DE.rc
reactos/base/applications/network/ping/lang/en-US.rc
reactos/base/applications/network/ping/lang/es-ES.rc
reactos/base/applications/network/ping/lang/fr-FR.rc
reactos/base/applications/network/ping/lang/it-IT.rc
reactos/base/applications/network/ping/lang/pl-PL.rc
reactos/base/applications/network/ping/lang/ro-RO.rc
reactos/base/applications/network/ping/lang/ru-RU.rc
reactos/base/applications/network/ping/lang/sq-AL.rc
reactos/base/applications/network/ping/lang/sv-SE.rc
reactos/base/applications/network/ping/lang/tr-TR.rc
reactos/base/applications/network/ping/lang/uk-UA.rc
reactos/base/applications/network/ping/lang/zh-CN.rc
reactos/base/applications/network/ping/lang/zh-TW.rc
reactos/base/applications/network/ping/ping.c
reactos/base/applications/network/ping/resource.h

index 28380d9..d75e485 100644 (file)
@@ -61,4 +61,6 @@ Ping statistics for %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 3b8d460..0f84b94 100644 (file)
@@ -61,4 +61,6 @@ Statistika pro %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Přibližná doba do přijetí odezvy v milisekundách:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Průměr = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 8541397..4ab7a0f 100644 (file)
@@ -61,4 +61,6 @@ Ping Statistik für %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Durchschnittliche Antwortzeit in Millisekunden:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Durchschnitt = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 235ce91..ca84c6c 100644 (file)
@@ -61,4 +61,6 @@ Ping statistics for %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 9e67741..1cd0229 100644 (file)
@@ -61,4 +61,6 @@ Estadísticas de ping para %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Tiempos aproximados de ida y vuelta en milisegundos:\n\
     Mínimo = %1!u!ms, Máximo = %2!u!ms, Media = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index cd31719..08cdb8d 100644 (file)
@@ -61,4 +61,6 @@ Statistiques du ping de %1!s! :\n\
 
     IDS_APPROXIMATE_RTT "Délai approximatif de réponse en millisecondes :\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Moyenne = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index e23e3f9..035e9a6 100644 (file)
@@ -61,4 +61,6 @@ Statistiche di Ping per %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Tempo approssimato di andata e ritorno in milli-secondi:\n\
     Minimo = %1!u!ms, Massimo = %2!u!ms, Media = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 5ce426a..b90282b 100644 (file)
@@ -61,4 +61,6 @@ Statystyka rezultatu badania hosta %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Całkowity, przybliżony czas podróży pakietu w millisekundach:\n\
     Minimum = %1!u!ms, Maksimum = %2!u!ms, Uśredniony = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 5adb4e9..3e40f3d 100644 (file)
@@ -61,4 +61,6 @@ statistici de transmisie pentru %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "timpul aproximativ de tur-retur, in milisecunde:\n\
     minim = %1!u!ms, maxim = %2!u!ms, mediu = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 5c5c553..e59dde5 100644 (file)
@@ -61,4 +61,6 @@ BEGIN
 
     IDS_APPROXIMATE_RTT "Приблизительное время приема-передачи в мс:\n\
     Минимальное = %1!u!ms, Максимальное = %2!u!ms, Среднее = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 52ad245..cd765d9 100644 (file)
@@ -61,4 +61,6 @@ Statistikat e Ping për %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Afersisht koha e matjes në mili-sekonda:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Mesatar = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 5b24145..cdcba9c 100644 (file)
@@ -61,4 +61,6 @@ Ping statistk för %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Ungefärliga slingtider i millisekunder:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Genomsnittlig = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 90bea31..7e52a6c 100644 (file)
@@ -61,4 +61,6 @@ Options:\n\
 
     IDS_APPROXIMATE_RTT "Mili sâniye olarak yaklaşık gidiş geliş süreleri:\n\
     En Az = %1!u!ms, En Çok = %2!u!ms, Ortalama = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 7426eb0..c102f44 100644 (file)
@@ -61,4 +61,6 @@ Ping statistics for %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 0509364..869ee39 100644 (file)
@@ -61,4 +61,6 @@ Ping statistics for %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index 2da6927..1356eee 100644 (file)
@@ -61,4 +61,6 @@ Ping statistics for %1!s!:\n\
 
     IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
     Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
+
+    IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
 END
index bea3900..a82ce2a 100644 (file)
@@ -55,6 +55,7 @@ static void PrintStats(void);
 static BOOL WINAPI ConsoleCtrlHandler(DWORD ControlType);
 static void PrintString(UINT id, ...);
 
+static HANDLE hStdOut;
 static HANDLE hIcmpFile = INVALID_HANDLE_VALUE;
 static ULONG Timeout = 4000;
 static int Family = AF_UNSPEC;
@@ -82,9 +83,12 @@ wmain(int argc, WCHAR *argv[])
     WSADATA wsaData;
     ULONG i;
     DWORD StrLen = 46;
+    int Status;
 
     IpOptions.Ttl = 128;
 
+    hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
+
     if (!ParseCmdLine(argc, argv))
     {
         return 1;
@@ -92,14 +96,15 @@ wmain(int argc, WCHAR *argv[])
 
     if (!SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE))
     {
-        DPRINT1("Failed to set control handler: %lu\n", GetLastError());
+        DPRINT("Failed to set control handler: %lu\n", GetLastError());
 
         return 1;
     }
 
-    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
+    Status = WSAStartup(MAKEWORD(2, 2), &wsaData);
+    if (Status != 0)
     {
-        DPRINT1("WSAStartup failed\n");
+        PrintString(IDS_WINSOCK_FAIL, Status);
 
         return 1;
     }
@@ -113,7 +118,7 @@ wmain(int argc, WCHAR *argv[])
 
     if (WSAAddressToStringW(Target->ai_addr, (DWORD)Target->ai_addrlen, NULL, Address, &StrLen) != 0)
     {
-        DPRINT1("WSAAddressToStringW failed: %d\n", WSAGetLastError());
+        DPRINT("WSAAddressToStringW failed: %d\n", WSAGetLastError());
         FreeAddrInfoW(Target);
         WSACleanup();
 
@@ -132,7 +137,7 @@ wmain(int argc, WCHAR *argv[])
 
     if (hIcmpFile == INVALID_HANDLE_VALUE)
     {
-        DPRINT1("IcmpCreateFile failed: %lu\n", GetLastError());
+        DPRINT("IcmpCreateFile failed: %lu\n", GetLastError());
         FreeAddrInfoW(Target);
         WSACleanup();
 
@@ -177,12 +182,12 @@ PrintString(UINT id, ...)
 {
     WCHAR Format[1024];
     WCHAR Msg[1024];
-    DWORD Len;
+    DWORD Len, written;
     va_list args;
 
     if (!LoadStringW(GetModuleHandleW(NULL), id, Format, _countof(Format)))
     {
-        DPRINT1("LoadStringW failed: %lu\n", GetLastError());
+        DPRINT("LoadStringW failed: %lu\n", GetLastError());
 
         return;
     }
@@ -196,13 +201,14 @@ PrintString(UINT id, ...)
 
     if (Len == 0)
     {
-        DPRINT1("FormatMessageW failed: %lu\n", GetLastError());
+        DPRINT("FormatMessageW failed: %lu\n", GetLastError());
 
         va_end(args);
         return;
     }
 
-    wprintf(L"%s", Msg);
+    // TODO: Handle writing to file.
+    WriteConsole(hStdOut, Msg, Len, &written, NULL);
 
     va_end(args);
 }
@@ -468,9 +474,7 @@ ResolveTarget(PCWSTR target)
 
         if (Status != 0)
         {
-            DPRINT1("GetNameInfoW failed: %d\n", Status);
-
-            return FALSE;
+            DPRINT("GetNameInfoW failed: %d\n", WSAGetLastError());
         }
     }
 
@@ -605,6 +609,8 @@ Ping(void)
                     RTTMax = pEchoReply->RoundTripTime;
                 }
 
+                wprintf(L"\n");
+
                 RTTTotal += pEchoReply->RoundTripTime;
                 break;
 
index 8990c24..4eedede 100644 (file)
@@ -28,3 +28,4 @@
 #define IDS_TRANSMIT_FAILED       125
 #define IDS_STATISTICS            126
 #define IDS_APPROXIMATE_RTT       127
+#define IDS_WINSOCK_FAIL          128