File 0001-ping-Handle-output-with-icmp_req.patch of Package gnome-nettool
From 9af2e18755725dc47ae8eb2867e3f038c298bc09 Mon Sep 17 00:00:00 2001
From: Josselin Mouette <joss@debian.org>
Date: Sat, 13 Nov 2010 13:53:12 +0100
Subject: [PATCH] [ping] Handle output with icmp_req
iputils-ping displays icmp_req= instead of icmp_seq=. Handle the two
outputs correctly.
---
src/ping.c | 7 ++++---
src/ping.h | 8 ++++----
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/ping.c b/src/ping.c
index 2c973c3..74f3c19 100644
--- a/src/ping.c
+++ b/src/ping.c
@@ -405,7 +405,7 @@ ping_foreach_with_tree (Netinfo * netinfo, gchar * line, gint len,
if (len > 0) { /* there are data to show */
count = strip_line (line, &data, netinfo);
- if ((count == 5) || (count == 6)) {
+ if ((count == 5) || (count == 7)) {
/* Creation of GtkTreeView */
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW
@@ -519,6 +519,7 @@ static gint
strip_line (gchar * line, ping_data * data, Netinfo * netinfo)
{
gint count;
+ gchar dummy_buf[3];
if (netinfo_get_ip_version (netinfo) == IPV4)
line = g_strdelimit (line, ":", ' ');
@@ -530,9 +531,9 @@ strip_line (gchar * line, ping_data * data, Netinfo * netinfo)
&(data)->bytes, data->ip, &(data)->icmp_seq,
data->srtt, data->unit);
#endif
-#ifdef PING_PARAMS_6
+#ifdef PING_PARAMS_7
count = sscanf (line, PING_FORMAT,
- &(data)->bytes, data->ip, &(data)->icmp_seq,
+ &(data)->bytes, data->ip, dummy_buf, &(data)->icmp_seq,
&(data)->ttl, data->srtt, data->unit);
#endif
if (count != 5 && count != 6) {
diff --git a/src/ping.h b/src/ping.h
index 0d2e068..53dd5de 100644
--- a/src/ping.h
+++ b/src/ping.h
@@ -28,14 +28,14 @@
/* <path to program> ping -b [-c <count>] -n <host> */
# define PING_PROGRAM_FORMAT "%s ping -b%s-n %s"
# define PING_PROGRAM_FORMAT_6 "%s ping6%s-n %s"
-# define PING_FORMAT "%d bytes from %s icmp_seq=%d ttl=%d time=%s %s"
-# define PING_PARAMS_6
+# define PING_FORMAT "%d bytes from %s icmp_%3c=%d ttl=%d time=%s %s"
+# define PING_PARAMS_7
#elif defined(__OSF__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
/* <path to program> ping [-c <count>] -n <host> */
# define PING_PROGRAM_FORMAT "%s ping%s-n %s"
# define PING_PROGRAM_FORMAT_6 "%s ping6%s-n %s"
-# define PING_FORMAT "%d bytes from %s icmp_seq=%d ttl=%d time=%s %s"
-# define PING_PARAMS_6
+# define PING_FORMAT "%d bytes from %s icmp_%3c=%d ttl=%d time=%s %s"
+# define PING_PARAMS_7
#elif defined(__sun__)
/* <path to program> ping -s -n <host> [<count>] */
# define PING_PROGRAM_FORMAT "%s ping -s -n %s 56%s"
--
1.7.2.3