[gnome-network] Ubuntu (new upstream) gnome-nettool 2.30.0-1ubuntu2



This e-mail has been sent due to an upload to Ubuntu of a new upstream
version which still contains Ubuntu changes.  It contains the difference
between the Ubuntu version and the equivalent base version in Debian, note
that this difference may include the upstream changes.
Format: 1.8
Date: Mon, 07 Jun 2010 14:57:49 +1000
Source: gnome-nettool
Binary: gnome-nettool
Architecture: source
Version: 2.30.0-1ubuntu2
Distribution: maverick
Urgency: low
Maintainer: Ubuntu Desktop Team <ubuntu-desktop lists ubuntu com>
Changed-By: Robert Ancell <robert ancell canonical com>
Description: 
 gnome-nettool - network information tool for GNOME
Changes: 
 gnome-nettool (2.30.0-1ubuntu2) maverick; urgency=low
 .
   * debian/control.in:
     - Build-depend on gnome-common
 .
 gnome-nettool (2.30.0-1ubuntu1) maverick; urgency=low
 .
   * Merge from Debian unstable, remaining Ubuntu changes:
   * debian/control.in:
     - Build-depend on liblaunchpad-integration-dev
     - Depend on "iputils-tracepath" rather than "tcptraceroute | traceroute"
     - Make the description mention tracepath rather than traceroute
     - Add Vcs-Bzr link
   * debian/rules:
     - Run autotools on build
   * debian/patches/02_lpi.patch:
     - Add Launchpad integration
   * debian/patches/03_use_tracepath.patch:
     - Use tracepath instead of tcptraceroute or traceroute
   * debian/patches/04_menu_change.patch:
     - Move from Utilities to Settings
   * debian/watch:
     - Watch for unstable versions
 .
 gnome-nettool (2.30.0-1) unstable; urgency=low
 .
   * New upstream release.
   * debian/control.in:
     - Updated Standards-Version to 3.8.4, no additional changes needed.
   * Switch to source format 3.0 (quilt).
     - Add debian/source/format.
     - Add debian/patches/series.
     - Remove /usr/share/cdbs/1/rules/simple-patchsys.mk include.
   * debian/patches/01_network-manager.patch:
     - Refreshed.
   * debian/patches/02_kfreebsd.patch:
     - Removed, applied upstream.
Checksums-Sha1: 
 1e625528daa5c1f69fe95f1b9c234bb4b1831230 1689 gnome-nettool_2.30.0-1ubuntu2.dsc
 ad7732bbd2462a953926f80e5b83fa372f9e1d58 11277 gnome-nettool_2.30.0-1ubuntu2.debian.tar.gz
Checksums-Sha256: 
 49d02065e263c5c7762a219ef5384784ad7554f6900c2ec0fc37a3ffedf4069c 1689 gnome-nettool_2.30.0-1ubuntu2.dsc
 be5c736e204a9c95e283ce191bbb3bbd02c287efb9dec30612023e3e76c93f9a 11277 gnome-nettool_2.30.0-1ubuntu2.debian.tar.gz
Files: 
 48a9ff90edb1e888463325c2949c1631 1689 gnome optional gnome-nettool_2.30.0-1ubuntu2.dsc
 da21ccc50710b77d3c6ad583e1722cc6 11277 gnome optional gnome-nettool_2.30.0-1ubuntu2.debian.tar.gz
Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers lists alioth debian org>
diff -pruN 2.30.0-1/configure.in 2.30.0-1ubuntu2/configure.in
--- 2.30.0-1/configure.in	2010-03-30 05:21:29.000000000 +0100
+++ 2.30.0-1ubuntu2/configure.in	2010-06-07 08:40:17.000000000 +0100
@@ -33,6 +33,7 @@ GCONF_REQUIRED=1.1.11
 
 PKG_CHECK_MODULES(NETTOOL, 
 		  gtk+-2.0       >= $GTK_REQUIRED 
+		  launchpad-integration              
 		  gconf-2.0      >= $GCONF_REQUIRED
 		  gmodule-export-2.0
 		  gnome-doc-utils
diff -pruN 2.30.0-1/debian/changelog 2.30.0-1ubuntu2/debian/changelog
--- 2.30.0-1/debian/changelog	2010-04-12 09:05:35.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/changelog	2010-06-07 06:09:31.000000000 +0100
@@ -1,3 +1,31 @@
+gnome-nettool (2.30.0-1ubuntu2) maverick; urgency=low
+
+  * debian/control.in:
+    - Build-depend on gnome-common
+
+ -- Robert Ancell <robert ancell canonical com>  Mon, 07 Jun 2010 14:57:49 +1000
+
+gnome-nettool (2.30.0-1ubuntu1) maverick; urgency=low
+
+  * Merge from Debian unstable, remaining Ubuntu changes:
+  * debian/control.in:
+    - Build-depend on liblaunchpad-integration-dev
+    - Depend on "iputils-tracepath" rather than "tcptraceroute | traceroute"
+    - Make the description mention tracepath rather than traceroute
+    - Add Vcs-Bzr link
+  * debian/rules:
+    - Run autotools on build
+  * debian/patches/02_lpi.patch:
+    - Add Launchpad integration
+  * debian/patches/03_use_tracepath.patch:
+    - Use tracepath instead of tcptraceroute or traceroute
+  * debian/patches/04_menu_change.patch:
+    - Move from Utilities to Settings
+  * debian/watch:
+    - Watch for unstable versions
+
+ -- Robert Ancell <robert ancell canonical com>  Mon, 07 Jun 2010 14:24:05 +1000
+
 gnome-nettool (2.30.0-1) unstable; urgency=low
 
   * New upstream release.
@@ -66,6 +94,69 @@ gnome-nettool (2.26.2-1) unstable; urgen
 
  -- Josselin Mouette <joss debian org>  Wed, 24 Jun 2009 19:11:18 +0200
 
+gnome-nettool (2.26.2-0ubuntu1) karmic; urgency=low
+
+  * New upstream version (LP: #388238)
+    - #583286: Compilation fixes for DragonFly BSD (Thomas Klausner)
+  * debian/control.in:
+  * debian/control:
+    - Added VCS link
+  * debian/patches/03_autoconf.patch:
+    - Updated
+
+ -- Robert Ancell <robert ancell canonical com>  Wed, 17 Jun 2009 12:49:15 +1000
+
+gnome-nettool (2.26.1-0ubuntu2) karmic; urgency=low
+
+  * Drop unnecessary dependency on finger (LP: #354866).
+
+ -- Alessio Treglia <quadrispro ubuntu com>  Sat, 18 Apr 2009 03:23:36 +0200
+
+gnome-nettool (2.26.1-0ubuntu1) jaunty; urgency=low
+
+  * New upstream version (LP: #353491)
+     - Fix glibtop initialization order in order to
+       make it work on BSD (Joe Marcus Clarke)
+     - Removed warnings from the Glade UI (Diego Escalante)
+     - Remove deprecated gtk/gdk functions (Andre Klapper)
+     - Improved accesability (Germán Póo-Caamaño)
+     - Fixed support for unlimited pings (Germán Póo-Caamaño)
+     - Gnome Nettool now is 1024x600 friendly (Germán Póo-Caamaño)
+     - Added basic NetBSD support (Thomas Klausner)
+     - Added menu for the documentation (Germán Póo-Caamaño)
+     - Restored the behaviour of 'Edit/Copy' as default in
+       Gnome.  Added 'Copy as text report' to copy all the values
+       in a tab window (Germán Póo-Caamaño)
+     - Removed Linux-dependency on NIC Information through the
+       use of ligbtop instead of ioctl calls and reading from
+       /proc/net (Germán Póo-Caamaño)
+     - Updated About dialog (Alejandro Andrés)
+     - Use pinky instead of finger to reduce one dependency in
+       Linux systems (Germán Póo-Caamaño)
+     - Removed deprecated symbols from glib (Maxim Ermilov)
+     - Fixed unlocalized string in copyright (Claude Paroz)
+     - Fixed unlocalized string in port scan (Takao Fujiwara)
+     - Improved documentation metadata for library.gnome.org
+       (Germán Póo-Caamaño)
+     - Clean up Gtk+ includes (Maxim Ermilov)
+     - Updated translations
+  * debian/patches
+    - update 02_lpi.patch to apply cleanly
+
+ -- Andreas Moog <andreas moog warperbbs de>  Thu, 02 Apr 2009 01:52:30 +0200
+
+gnome-nettool (2.25.3-0ubuntu1) jaunty; urgency=low
+
+  * New upstream version (LP: #315566)
+  * debian/control.in:
+    - add libgtop2-dev in Build-Depends
+  * debian/patches/02_lpi.patch:
+    - updated
+  * debian/patches/03_autoconf.patch:
+    - updated
+
+ -- Baptiste Mille-Mathias <baptiste millemathias gmail com>  Thu, 08 Jan 2009 21:11:25 +0100
+
 gnome-nettool (2.22.1-1) unstable; urgency=low
 
   [ Loic Minier ]
@@ -80,6 +171,14 @@ gnome-nettool (2.22.1-1) unstable; urgen
 
  -- Josselin Mouette <joss debian org>  Sun, 04 Jan 2009 11:17:51 +0100
 
+gnome-nettool (2.22.1-0ubuntu1) intrepid; urgency=low
+
+  * New upstream version
+  * debian/patches/03_autoconf.patch:
+    - new version update
+
+ -- Sebastien Bacher <seb128 ubuntu com>  Wed, 24 Sep 2008 18:21:16 +0200
+
 gnome-nettool (2.22.0-1) unstable; urgency=low
 
   * New upstream stable release.
@@ -90,6 +189,32 @@ gnome-nettool (2.22.0-1) unstable; urgen
 
  -- Sebastian Dröge <slomo debian org>  Fri, 14 Mar 2008 12:46:50 +0100
 
+gnome-nettool (2.22.0-0ubuntu1) hardy; urgency=low
+
+  * New upstream version:
+    - #470264: Added icon for size 24x24 
+    - #451925: Replace SIOCGMIIPHY definitions by including linux/sockios.h
+    - #508610: Translated DNS lookup type 
+
+ -- Sebastien Bacher <seb128 canonical com>  Tue, 11 Mar 2008 12:33:15 +0100
+
+gnome-nettool (2.20.0-1ubuntu1) hardy; urgency=low
+
+  * Merge from Debian unstable (LP: #164345) remaining changes:
+    - debian/control, debian/control.in:
+      - updated Maintainer field
+      - added liblaunchpad-integration-dev to Build-Depends
+      - depends on "iputils-tracepath" rather than "tcptraceroute | traceroute"
+      - make the description mention tracepath rather than traceroute
+    - debian/patches:
+      - 01_use_tracepath.patch: updated.
+      - 02_lpi.patch: updated.
+      - 03_autoconf.patch: updated.
+      - 04_menu_change.patch: updated.
+      - 05_gksu_for_network_admin.patch: updated.
+  
+ -- Mario Bonino <mariobonino ubuntu-it org>  Wed, 21 Nov 2007 14:53:49 +0100
+
 gnome-nettool (2.20.0-1) unstable; urgency=low
 
   [ Loic Minier ]
diff -pruN 2.30.0-1/debian/control 2.30.0-1ubuntu2/debian/control
--- 2.30.0-1/debian/control	2010-04-12 09:09:25.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/control	2010-06-07 06:09:32.000000000 +0100
@@ -6,19 +6,23 @@
 Source: gnome-nettool
 Section: gnome
 Priority: optional
-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers lists alioth debian org>
+Maintainer: Ubuntu Desktop Team <ubuntu-desktop lists ubuntu com>
+XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers lists alioth debian org>
 Build-Depends: autotools-dev,
                cdbs (>= 0.4.41),
                debhelper (>= 5),
                dh-buildinfo,
+               gnome-common,
                gnome-pkg-tools (>= 0.10),
                intltool (>= 0.35.0),
                libgtk2.0-dev (>= 2.12.0),
                libgconf2-dev (>= 1.1.11),
                libgtop2-dev,
                gnome-doc-utils,
-               docbook-xml
-Uploaders: Josselin Mouette <joss debian org>, Loic Minier <lool dooz org>, Sebastian Dröge <slomo debian org>
+               docbook-xml,
+               liblaunchpad-integration-dev
+Uploaders: Andrea Veri <andrea veri89 gmail com>, Debian GNOME Maintainers <pkg-gnome-maintainers lists alioth debian org>, Josselin Mouette <joss debian org>
+Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-nettool/ubuntu
 Standards-Version: 3.8.4
 Homepage: http://projects.gnome.org/gnome-network/
 
@@ -30,7 +34,7 @@ Depends: ${shlibs:Depends},
          dnsutils,
          net-tools,
          iputils-ping | ping,
-         tcptraceroute | traceroute,
+         iputils-tracepath,
          whois
 Suggests: gnome-system-tools
 Conflicts: gnome-network (<= 1.99.5)
@@ -40,7 +44,7 @@ Description: network information tool fo
     * ifconfig
     * ping
     * netstat
-    * traceroute
+    * tracepath
     * port scanning
     * DNS lookup
     * finger
diff -pruN 2.30.0-1/debian/control.in 2.30.0-1ubuntu2/debian/control.in
--- 2.30.0-1/debian/control.in	2010-04-10 19:05:27.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/control.in	2010-06-07 06:09:31.000000000 +0100
@@ -1,19 +1,23 @@
 Source: gnome-nettool
 Section: gnome
 Priority: optional
-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers lists alioth debian org>
+Maintainer: Ubuntu Desktop Team <ubuntu-desktop lists ubuntu com>
+XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers lists alioth debian org>
 Build-Depends: autotools-dev,
                cdbs (>= 0.4.41),
                debhelper (>= 5),
                dh-buildinfo,
+               gnome-common,
                gnome-pkg-tools (>= 0.10),
                intltool (>= 0.35.0),
                libgtk2.0-dev (>= 2.12.0),
                libgconf2-dev (>= 1.1.11),
                libgtop2-dev,
                gnome-doc-utils,
-               docbook-xml
+               docbook-xml,
+               liblaunchpad-integration-dev
 Uploaders: @GNOME_TEAM@
+Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-nettool/ubuntu
 Standards-Version: 3.8.4
 Homepage: http://projects.gnome.org/gnome-network/
 
@@ -25,7 +29,7 @@ Depends: ${shlibs:Depends},
          dnsutils,
          net-tools,
          iputils-ping | ping,
-         tcptraceroute | traceroute,
+         iputils-tracepath,
          whois
 Suggests: gnome-system-tools
 Conflicts: gnome-network (<= 1.99.5)
@@ -35,7 +39,7 @@ Description: network information tool fo
     * ifconfig
     * ping
     * netstat
-    * traceroute
+    * tracepath
     * port scanning
     * DNS lookup
     * finger
diff -pruN 2.30.0-1/debian/patches/02_lpi.patch 2.30.0-1ubuntu2/debian/patches/02_lpi.patch
--- 2.30.0-1/debian/patches/02_lpi.patch	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/patches/02_lpi.patch	2010-06-07 06:09:31.000000000 +0100
@@ -0,0 +1,54 @@
+Description: Add Launchpad integration
+Author: ?
+
+diff -Nur -x '*.orig' -x '*~' gnome-nettool-2.27.4/configure.in gnome-nettool-2.27.4.new/configure.in
+--- gnome-nettool-2.27.4/configure.in	2009-07-15 17:51:43.000000000 +0200
++++ gnome-nettool-2.27.4.new/configure.in	2009-07-20 22:25:51.000000000 +0200
+@@ -33,6 +33,7 @@
+ 
+ PKG_CHECK_MODULES(NETTOOL, 
+ 		  gtk+-2.0       >= $GTK_REQUIRED 
++		  launchpad-integration              
+ 		  gconf-2.0      >= $GCONF_REQUIRED
+ 		  gmodule-export-2.0
+ 		  gnome-doc-utils
+diff -Nur -x '*.orig' -x '*~' gnome-nettool-2.27.4/src/gnome-nettool.ui gnome-nettool-2.27.4.new/src/gnome-nettool.ui
+--- gnome-nettool-2.27.4/src/gnome-nettool.ui	2009-07-15 17:49:48.000000000 +0200
++++ gnome-nettool-2.27.4.new/src/gnome-nettool.ui	2009-07-20 22:25:51.000000000 +0200
+@@ -158,6 +158,7 @@
+         </menu>
+         <menu action="help1">
+           <menuitem action="m_help_contents"/>
++          <placeholder name="LaunchpadItems"/>
+           <menuitem action="m_about"/>
+         </menu>
+       </menubar>
+diff -Nur -x '*.orig' -x '*~' gnome-nettool-2.27.4/src/main.c gnome-nettool-2.27.4.new/src/main.c
+--- gnome-nettool-2.27.4/src/main.c	2009-07-15 17:49:48.000000000 +0200
++++ gnome-nettool-2.27.4.new/src/main.c	2009-07-20 22:26:05.000000000 +0200
+@@ -24,6 +24,7 @@
+ 
+ #include <string.h>
+ #include <glib/gi18n.h>
++#include <launchpad-integration.h>
+ 
+ #include <glibtop.h>
+ 
+@@ -57,6 +58,7 @@
+ 	GtkBuilder *builder;
+ 	GtkWidget *notebook;
+ 	GtkWidget *statusbar;
++	GtkUIManager *ui;
+ 	const gchar *dialog = DATADIR "gnome-nettool.ui";
+ 	Netinfo *pinger;
+ 	Netinfo *tracer;
+@@ -218,6 +220,9 @@
+ 	g_object_set_data (G_OBJECT (notebook), "whois", whois);
+ 	
+ 	menu_beep = GTK_WIDGET (gtk_builder_get_object (builder, "m_beep"));
++	ui = GTK_UI_MANAGER (gtk_builder_get_object (builder, "uimanager1"));
++	g_object_ref (ui);
++	launchpad_integration_add_ui (ui, "/ui/menubar1/help1/LaunchpadItems");
+ 
+ 	g_signal_connect (G_OBJECT (menu_beep), "activate",
+ 			  G_CALLBACK (on_beep_activate),
diff -pruN 2.30.0-1/debian/patches/03_use_tracepath.patch 2.30.0-1ubuntu2/debian/patches/03_use_tracepath.patch
--- 2.30.0-1/debian/patches/03_use_tracepath.patch	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/patches/03_use_tracepath.patch	2010-06-07 06:09:31.000000000 +0100
@@ -0,0 +1,105 @@
+Description: Use tracepath instead of tcptraceroute or traceroute
+Author: ?
+
+diff -Nur -x '*.orig' -x '*~' gnome-nettool-2.20.0/src/traceroute.c gnome-nettool-2.20.0.new/src/traceroute.c
+--- gnome-nettool-2.20.0/src/traceroute.c	2007-09-14 22:35:51.000000000 +0200
++++ gnome-nettool-2.20.0.new/src/traceroute.c	2007-11-21 15:10:11.000000000 +0100
+@@ -71,20 +71,16 @@
+ 	switch (netinfo_get_ip_version (netinfo))
+ 	{
+ 	case IPV4:
+-		program = util_find_program_in_path ("tcptraceroute", NULL);
++
+ #ifdef DEBUG
+-		g_print ("tcptraceroute: %s\n", program);
++		g_print ("tracepath: %s\n", program);
+ #endif /* DEBUG */
+-		if (program != NULL) {
+-			program_name = g_strdup ("tcptraceroute");
+-		} else {
+-			program = util_find_program_dialog ("traceroute", parent);
+-			program_name = g_strdup ("traceroute");
+-		}
++		program = util_find_program_dialog ("tracepath", parent);
++		program_name = g_strdup ("tracepath");
+ 		break;
+ 	case IPV6:
+-		program = util_find_program_in_path ("traceroute6", NULL);
+-		program_name = g_strdup ("traceroute6");
++		program = util_find_program_in_path ("tracepath6", NULL);
++		program_name = g_strdup ("tracepath6");
+ 		break;
+ 	default:
+ 		program = NULL;
+@@ -93,8 +89,7 @@
+ 
+ 	if (program != NULL) {
+ 		command =
+-                  g_strdup_printf ("%s %s %s %s", program, program_name,
+-                                   TCPTRACEROUTE_OPTIONS, host);
++                  g_strdup_printf ("%s %s %s", program, program_name, host);
+ 	
+ 		netinfo->command_line = g_strsplit (command, " ", -1);
+ 	
+@@ -217,7 +212,7 @@
+ 	
+ 	count = sscanf (line, TRACE_FORMAT,
+ 			&(data)->hop_count, data->hostname, data->ip,
+-			data->rtt1, data->rtt2/*, data->rtt3*/);
++			data->rtt1/*, data->rtt2, data->rtt3*/);
+ 	
+ 	if (count == TRACE_NUM_ARGS) {
+ 		return count;
+@@ -225,7 +220,7 @@
+ 
+ 	if (count == TRACE_NUM_ERR) {
+ 		g_sprintf (data->rtt1, "*");
+-		g_sprintf (data->rtt2, "*");
++		//g_sprintf (data->rtt2, "*");
+ 		return TRACE_NUM_ARGS;
+ 	}
+ 	/* The last line is different, because it has a 
+@@ -235,14 +230,14 @@
+ 
+ 	count = sscanf (line, TRACE_FORMAT_OPEN,
+ 			&(data)->hop_count, data->hostname, data->ip,
+-			data->rtt1, data->rtt2/*, data->rtt3*/);
++			data->rtt1/*, data->rtt2, data->rtt3*/);
+ 
+ 	if (count == TRACE_NUM_ARGS) {
+ 		return count;
+ 	} else {
+ 		count = sscanf (line, TRACE_FORMAT_CLOSE,
+ 				&(data)->hop_count, data->hostname,
+-				data->ip, data->rtt1, data->rtt2 /*,
++				data->ip, data->rtt1/*, data->rtt2,
+ 				data->rtt3*/);
+ 	}
+ 
+@@ -301,7 +296,7 @@
+ 	    gtk_tree_view_column_new_with_attributes
+ 	    (_("Time 2"), renderer, "text", TRACE_RTT2, NULL);
+ 	g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
+-	gtk_tree_view_append_column (widget, column);
++	//gtk_tree_view_append_column (widget, column);
+ 
+ 	model = GTK_TREE_MODEL (gtk_list_store_new
+ 				(TRACE_NUM_COLUMNS,
+diff -Nur -x '*.orig' -x '*~' gnome-nettool-2.20.0/src/traceroute.h gnome-nettool-2.20.0.new/src/traceroute.h
+--- gnome-nettool-2.20.0/src/traceroute.h	2007-09-14 22:35:51.000000000 +0200
++++ gnome-nettool-2.20.0.new/src/traceroute.h	2007-11-21 15:11:06.000000000 +0100
+@@ -23,12 +23,12 @@
+ 
+ #include "nettool.h"
+ 
+-#define TRACE_FORMAT "%d %s %s %s ms %s ms"
++#define TRACE_FORMAT "%d: %s %s %sms"
+ #define TRACE_FORMAT_CLOSE "%d %s %s [closed] %s ms %s ms"
+ #define TRACE_FORMAT_OPEN "%d %s %s [open] %s ms %s ms"
+ #define TRACE_SELECT_DEVICE "Selected device %s address %s port %d for outgoing packets"
+ #define TRACE_TRACE_PATH "Tracing the path to %s (146.83.195.14) on TCP port 80 %d hops max"
+-#define TRACE_NUM_ARGS 5
++#define TRACE_NUM_ARGS 4
+ #define TRACE_NUM_ERR  3
+ 
+ /* Try 40 hops maximum and send only 1 packet */
diff -pruN 2.30.0-1/debian/patches/04_menu_change.patch 2.30.0-1ubuntu2/debian/patches/04_menu_change.patch
--- 2.30.0-1/debian/patches/04_menu_change.patch	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/patches/04_menu_change.patch	2010-06-07 06:09:31.000000000 +0100
@@ -0,0 +1,20 @@
+Description: Move from Utilities to Settings
+Author: ?
+
+diff -Nur -x '*.orig' -x '*~' gnome-nettool-2.20.0/src/gnome-nettool.desktop.in.in gnome-nettool-2.20.0.new/src/gnome-nettool.desktop.in.in
+--- gnome-nettool-2.20.0/src/gnome-nettool.desktop.in.in	2007-09-14 22:35:50.000000000 +0200
++++ gnome-nettool-2.20.0.new/src/gnome-nettool.desktop.in.in	2007-11-21 15:17:51.000000000 +0100
+@@ -1,12 +1,11 @@
+ [Desktop Entry]
+-Encoding=UTF-8
+ _Name=Network Tools
+ _Comment=View information about your network
+ Exec=gnome-nettool
+ Icon=gnome-nettool
+ Terminal=false
+ Type=Application
+-Categories=System;Utility;GNOME;GTK;
++Categories=System;Settings;GNOME;GTK;
+ StartupNotify=true
+ X-GNOME-Bugzilla-Bugzilla=GNOME
+ X-GNOME-Bugzilla-Product=gnome-nettool
diff -pruN 2.30.0-1/debian/patches/series 2.30.0-1ubuntu2/debian/patches/series
--- 2.30.0-1/debian/patches/series	2010-04-10 19:05:27.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/patches/series	2010-06-07 06:09:31.000000000 +0100
@@ -1 +1,4 @@
 01_network-manager.patch
+02_lpi.patch
+03_use_tracepath.patch
+04_menu_change.patch
diff -pruN 2.30.0-1/debian/rules 2.30.0-1ubuntu2/debian/rules
--- 2.30.0-1/debian/rules	2010-04-10 19:05:27.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/rules	2010-06-07 06:09:31.000000000 +0100
@@ -11,6 +11,12 @@ include /usr/share/cdbs/1/class/gnome.mk
 include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
 -include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
 
+DEB_AUTO_UPDATE_LIBTOOL=pre
+DEB_AUTO_UPDATE_ACLOCAL=1.11
+DEB_AUTO_UPDATE_AUTOCONF=1
+DEB_AUTO_UPDATE_AUTOHEADER=1
+DEB_AUTO_UPDATE_AUTOMAKE=1.11
+
 # Compile options
 LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed
 DEB_CONFIGURE_EXTRA_FLAGS += --disable-scrollkeeper
diff -pruN 2.30.0-1/debian/watch 2.30.0-1ubuntu2/debian/watch
--- 2.30.0-1/debian/watch	2006-06-26 21:30:25.000000000 +0100
+++ 2.30.0-1ubuntu2/debian/watch	2010-06-07 06:09:31.000000000 +0100
@@ -1,4 +1,4 @@
 version=2
-http://ftp.gnome.org/pub/GNOME/sources/gnome-nettool/([\d\.]+)[02468]/ \
+http://ftp.gnome.org/pub/GNOME/sources/gnome-nettool/([\d\.]+)\d/ \
 	gnome-nettool-(.*)\.tar\.gz \
 	debian uupdate
diff -pruN 2.30.0-1/.pc/02_lpi.patch/configure.in 2.30.0-1ubuntu2/.pc/02_lpi.patch/configure.in
--- 2.30.0-1/.pc/02_lpi.patch/configure.in	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/02_lpi.patch/configure.in	2010-03-30 05:21:29.000000000 +0100
@@ -0,0 +1,91 @@
+AC_PREREQ(2.59)
+AC_INIT([GNOME Nettool], [2.30.0], [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-nettool], [gnome-nettool])
+AC_CONFIG_SRCDIR([src/ping.c])
+
+dnl Useful to call aclocal after 'make'
+AC_SUBST(ACLOCAL_AMFLAGS, "$ACLOCAL_FLAGS")
+
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([1.9 foreign])
+AC_CONFIG_MACRO_DIR([m4])
+AM_MAINTAINER_MODE
+
+IT_PROG_INTLTOOL([0.35.0])
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_HEADER_STDC([])
+AC_CHECK_HEADERS(sys/sockio.h)
+AC_CHECK_HEADERS(sys/socket.h ifaddrs.h,,AC_MSG_ERROR(Required header not found: $ac_header))
+dnl AC_ARG_PROGRAM
+AM_PROG_LIBTOOL
+
+GNOME_COMPILE_WARNINGS(yes)
+CFLAGS="$CFLAGS $WARN_CFLAGS"
+
+dnl ******************************************
+dnl ** pkg-config dependacy checks          **
+dnl ******************************************
+
+
+GTK_REQUIRED=2.12.0
+GCONF_REQUIRED=1.1.11
+
+PKG_CHECK_MODULES(NETTOOL, 
+		  gtk+-2.0       >= $GTK_REQUIRED 
+		  gconf-2.0      >= $GCONF_REQUIRED
+		  gmodule-export-2.0
+		  gnome-doc-utils
+		  libgtop-2.0)
+AC_SUBST(NETTOOL_CFLAGS)
+AC_SUBST(NETTOOL_LIBS)
+
+dnl
+dnl Translations
+dnl
+GETTEXT_PACKAGE=gnome-nettool
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The gettext package])
+AM_GLIB_GNU_GETTEXT
+
+AC_SUBST(CFLAGS)
+AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
+
+GNOME_DOC_INIT
+
+dnl
+dnl Debugging flags
+dnl
+set_debug=no
+AC_ARG_ENABLE(debug,
+[  --enable-debug       Lots of noisy debug messages],
+set_debug="$enableval")
+
+AC_MSG_CHECKING(if debug messages are enabled)
+if test "$set_debug" != "no"; then
+        AC_MSG_RESULT(yes)
+        CFLAGS="-DGRD_DEBUG $CFLAGS"
+else
+        AC_MSG_RESULT(no)
+fi
+
+AC_CONFIG_FILES([
+Makefile
+po/Makefile.in
+pixmaps/Makefile
+pixmaps/icons/Makefile
+pixmaps/icons/16x16/Makefile
+pixmaps/icons/16x16/apps/Makefile
+pixmaps/icons/22x22/Makefile
+pixmaps/icons/22x22/apps/Makefile
+pixmaps/icons/24x24/Makefile
+pixmaps/icons/24x24/apps/Makefile
+pixmaps/icons/32x32/Makefile
+pixmaps/icons/32x32/apps/Makefile
+pixmaps/icons/scalable/Makefile
+pixmaps/icons/scalable/apps/Makefile
+help/Makefile
+src/Makefile
+src/gnome-nettool.desktop.in])
+AC_OUTPUT
diff -pruN 2.30.0-1/.pc/02_lpi.patch/src/gnome-nettool.ui 2.30.0-1ubuntu2/.pc/02_lpi.patch/src/gnome-nettool.ui
--- 2.30.0-1/.pc/02_lpi.patch/src/gnome-nettool.ui	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/02_lpi.patch/src/gnome-nettool.ui	2010-03-30 05:11:19.000000000 +0100
@@ -0,0 +1,2525 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">99</property>
+    <property name="lower">1</property>
+    <property name="page_increment">10</property>
+    <property name="step_increment">1</property>
+    <property name="page_size">0</property>
+    <property name="value">5</property>
+  </object>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Host</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model2">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Host</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model3">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Host</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model4">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Host</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model5">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Host</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model6">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">User</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model7">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Host</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkUIManager" id="uimanager1">
+    <child>
+      <object class="GtkActionGroup" id="actiongroup1">
+        <child>
+          <object class="GtkAction" id="tool1">
+            <property name="name">tool1</property>
+            <property name="label" translatable="yes">_Tool</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkToggleAction" id="m_beep">
+            <property name="name">m_beep</property>
+            <property name="label" translatable="yes">Beep on ping</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="m_quit">
+            <property name="stock_id">gtk-quit</property>
+            <property name="name">m_quit</property>
+            <signal handler="gn_quit_app" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="edit1">
+            <property name="name">edit1</property>
+            <property name="label" translatable="yes">_Edit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="m_copy">
+            <property name="name">m_copy</property>
+            <property name="label" translatable="yes">Copy as text _report</property>
+            <signal handler="on_copy_activate" name="activate" object="notebook"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="m_clear_history">
+            <property name="stock_id">gtk-clear</property>
+            <property name="name">m_clear_history</property>
+            <property name="label" translatable="yes">Clear _History</property>
+            <signal handler="on_clear_history_activate" name="activate" object="notebook"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="help1">
+            <property name="name">help1</property>
+            <property name="label" translatable="yes">_Help</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="m_help_contents">
+            <property name="stock_id">gtk-help</property>
+            <property name="name">m_help_contents</property>
+            <signal handler="on_help_activate" name="activate" object="main_window"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="m_about">
+            <property name="stock_id">gtk-about</property>
+            <property name="name">m_about</property>
+            <signal after="yes" handler="on_about_activate" name="activate" object="main_window"/>
+          </object>
+        </child>
+      </object>
+    </child>
+    <ui>
+      <menubar name="menubar1">
+        <menu action="tool1">
+          <menuitem action="m_beep"/>
+          <separator/>
+          <menuitem action="m_quit"/>
+        </menu>
+        <menu action="edit1">
+          <menuitem action="m_copy"/>
+          <separator/>
+          <menuitem action="m_clear_history"/>
+        </menu>
+        <menu action="help1">
+          <menuitem action="m_help_contents"/>
+          <menuitem action="m_about"/>
+        </menu>
+      </menubar>
+    </ui>
+  </object>
+  <object class="GtkWindow" id="main_window">
+    <property name="visible">True</property>
+    <property comments="Dear Translator: This is the Window Title" name="title" translatable="yes">Devices - Network Tools</property>
+    <child>
+      <object class="GtkVBox" id="vbox_main">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkMenuBar" constructor="uimanager1" id="menubar1">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkNotebook" id="notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="border_width">4</property>
+            <signal handler="on_page_switch" name="switch_page"/>
+            <child>
+              <object class="GtkVBox" id="vbox_info">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkHBox" id="hbox33">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkLabel" id="info_combo_label">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_Network device:</property>
+                        <property name="use_underline">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBox" id="info_combo">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
+                        <accessibility>
+                          <relation target="info_combo_label" type="labelled-by"/>
+                        </accessibility>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="info_configure_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment33">
+                            <property name="visible">True</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox44">
+                                <property name="visible">True</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image13">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-preferences</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label122">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Configure</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="info_ipv6_frame">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">GTK_SHADOW_NONE</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment17">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkScrolledWindow" id="scrolledwindow8">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="border_width">6</property>
+                            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                            <property name="shadow_type">GTK_SHADOW_IN</property>
+                            <child>
+                              <object class="GtkTreeView" id="info_list_ip_addr">
+                                <property name="height_request">120</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="rules_hint">True</property>
+                                <property name="enable_search">False</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label96">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;IP Information&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox_info_detail">
+                    <property name="visible">True</property>
+                    <property name="spacing">4</property>
+                    <child>
+                      <object class="GtkVBox" id="vbox16">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkFrame" id="frame11">
+                            <property name="visible">True</property>
+                            <property name="label_xalign">0</property>
+                            <property name="shadow_type">GTK_SHADOW_NONE</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment32">
+                                <property name="visible">True</property>
+                                <property name="left_padding">12</property>
+                                <child>
+                                  <object class="GtkTable" id="table13">
+                                    <property name="visible">True</property>
+                                    <property name="border_width">6</property>
+                                    <property name="n_rows">5</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">6</property>
+                                    <property name="row_spacing">6</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label_hw_address">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Hardware address:</property>
+                                        <accessibility>
+                                          <relation target="info_hw_address" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_multicast">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Multicast:</property>
+                                        <accessibility>
+                                          <relation target="info_multicast" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_mtu">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">MTU:</property>
+                                        <accessibility>
+                                          <relation target="info_mtu" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_link_speed">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Link speed:</property>
+                                        <accessibility>
+                                          <relation target="info_link_speed" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_state">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">State:</property>
+                                        <accessibility>
+                                          <relation target="info_state" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">4</property>
+                                        <property name="bottom_attach">5</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_hw_address">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_hw_address" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_multicast">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_multicast" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_mtu">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_mtu" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_link_speed">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_link_speed" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_state">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_state" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">4</property>
+                                        <property name="bottom_attach">5</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <child type="label">
+                              <object class="GtkLabel" id="label121">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;b&gt;Interface Information&lt;/b&gt;</property>
+                                <property name="use_markup">True</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox17">
+                        <property name="visible">True</property>
+                        <child>
+                          <object class="GtkFrame" id="frame4">
+                            <property name="visible">True</property>
+                            <property name="label_xalign">0</property>
+                            <property name="shadow_type">GTK_SHADOW_NONE</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment16">
+                                <property name="visible">True</property>
+                                <property name="left_padding">12</property>
+                                <child>
+                                  <object class="GtkTable" id="table_statitics">
+                                    <property name="visible">True</property>
+                                    <property name="border_width">6</property>
+                                    <property name="n_rows">7</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">6</property>
+                                    <property name="row_spacing">6</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label_tx_bytes">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Transmitted bytes:</property>
+                                        <accessibility>
+                                          <relation target="info_tx_bytes" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_rx_bytes">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Received bytes:</property>
+                                        <accessibility>
+                                          <relation target="info_rx_bytes" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_rx_bytes">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_rx_bytes" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_tx_bytes">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_tx_bytes" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_tx_errors">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_tx_errors" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_tx_errors">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Transmission errors:</property>
+                                        <accessibility>
+                                          <relation target="info_tx_errors" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_tx">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_tx" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_tx">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Transmitted packets:</property>
+                                        <accessibility>
+                                          <relation target="info_rx" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_rx">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_rx" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">4</property>
+                                        <property name="bottom_attach">5</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_rx">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Received packets:</property>
+                                        <accessibility>
+                                          <relation target="info_rx" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">4</property>
+                                        <property name="bottom_attach">5</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_rx_errors">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_rx_errors" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">5</property>
+                                        <property name="bottom_attach">6</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_rx_errors">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Reception errors:</property>
+                                        <accessibility>
+                                          <relation target="info_rx_errors" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">5</property>
+                                        <property name="bottom_attach">6</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="info_collisions">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Not Available</property>
+                                        <property name="selectable">True</property>
+                                        <accessibility>
+                                          <relation target="label_collisions" type="labelled-by"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">6</property>
+                                        <property name="bottom_attach">7</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label_collisions">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Collisions:</property>
+                                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                                        <accessibility>
+                                          <relation target="info_collisions" type="label-for"/>
+                                        </accessibility>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">6</property>
+                                        <property name="bottom_attach">7</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"/>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <child type="label">
+                              <object class="GtkLabel" id="label95">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">&lt;b&gt;Interface Statistics&lt;/b&gt;</property>
+                                <property name="use_markup">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="device">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Devices</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_ping">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox18">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table6">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox25">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox9">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="ping_limited">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="label" translatable="yes">Only</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkSpinButton" id="ping_count">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment1</property>
+                                    <property name="climb_rate">1</property>
+                                    <accessibility>
+                                      <relation target="ping_count_label" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="ping_count_label">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">requests</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="ping_unlimited">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Unlimited requests</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">ping_limited</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label109">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Send:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"/>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="ping_host">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <accessibility>
+                              <relation target="ping_host_label" type="labelled-by"/>
+                            </accessibility>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry1">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter the network address to ping. For example: www.domain.com or 192.168.2.1</property>
+                                <accessibility>
+                                  
+                                </accessibility>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-comboboxentry-entry11">
+                                    <property name="AtkObject::accessible_name" translatable="yes">Network address</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <property name="model">model1</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer1"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                            <child internal-child="accessible">
+                              <object class="AtkObject" id="a11y-ping_host1">
+                                <property name="AtkObject::accessible_name" translatable="yes">Network address</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="ping_host_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Network address:</property>
+                            <property name="use_underline">True</property>
+                            <accessibility>
+                              <relation target="ping_host" type="label-for"/>
+                            </accessibility>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"/>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox2">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="ping_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment5">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox12">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image5">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label27">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Ping</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox35">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkFrame" id="frame8">
+                        <property name="visible">True</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">GTK_SHADOW_NONE</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment20">
+                            <property name="visible">True</property>
+                            <property name="left_padding">12</property>
+                            <child>
+                              <object class="GtkTable" id="table1">
+                                <property name="visible">True</property>
+                                <property name="border_width">6</property>
+                                <property name="n_rows">3</property>
+                                <property name="n_columns">3</property>
+                                <property name="column_spacing">6</property>
+                                <property name="row_spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="ping_maximum">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">0.0</property>
+                                    <property name="selectable">True</property>
+                                    <accessibility>
+                                      <relation target="label_maximum" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">2</property>
+                                    <property name="bottom_attach">3</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="ping_average">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">0.0</property>
+                                    <property name="selectable">True</property>
+                                    <accessibility>
+                                      <relation target="label_average" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="ping_minimum">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">0.0</property>
+                                    <property name="selectable">True</property>
+                                    <accessibility>
+                                      <relation target="label_minimum" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label39">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property comments="Translators: this is the abbreviation for milliseconds" name="label" translatable="yes">ms</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">2</property>
+                                    <property name="right_attach">3</property>
+                                    <property name="top_attach">2</property>
+                                    <property name="bottom_attach">3</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label38">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">ms</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">2</property>
+                                    <property name="right_attach">3</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label37">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">ms</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">2</property>
+                                    <property name="right_attach">3</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_maximum">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Maximum:</property>
+                                    <accessibility>
+                                      <relation target="ping_maximum" type="label-for"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">2</property>
+                                    <property name="bottom_attach">3</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_average">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Average:</property>
+                                    <accessibility>
+                                      <relation target="ping_average" type="label-for"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_minimum">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Minimum:</property>
+                                    <accessibility>
+                                      <relation target="ping_minimum" type="label-for"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label99">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Round Trip Time Statistics&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame9">
+                        <property name="visible">True</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">GTK_SHADOW_NONE</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment21">
+                            <property name="visible">True</property>
+                            <property name="left_padding">12</property>
+                            <child>
+                              <object class="GtkTable" id="table2">
+                                <property name="visible">True</property>
+                                <property name="border_width">6</property>
+                                <property name="n_rows">3</property>
+                                <property name="n_columns">2</property>
+                                <property name="column_spacing">6</property>
+                                <property name="row_spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="label_packets_transmitted">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Packets transmitted:</property>
+                                    <accessibility>
+                                      <relation target="ping_packets_transmitted" type="label-for"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="ping_packets_success">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">0%</property>
+                                    <property name="selectable">True</property>
+                                    <accessibility>
+                                      <relation target="label_packets_success" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">2</property>
+                                    <property name="bottom_attach">3</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="ping_packets_received">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">0</property>
+                                    <property name="selectable">True</property>
+                                    <accessibility>
+                                      <relation target="label_packets_received" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="ping_packets_transmitted">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">0</property>
+                                    <property name="selectable">True</property>
+                                    <accessibility>
+                                      <relation target="label_packets_transmitted" type="labelled-by"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_packets_success">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Successful packets:</property>
+                                    <accessibility>
+                                      <relation target="ping_packets_success" type="label-for"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">2</property>
+                                    <property name="bottom_attach">3</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_packets_received">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">Packets received:</property>
+                                    <accessibility>
+                                      <relation target="ping_packets_received" type="label-for"/>
+                                    </accessibility>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"/>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label100">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Transmission Statistics&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkDrawingArea" id="ping_graph">
+                    <property name="visible">True</property>
+                  </object>
+                  <packing>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkExpander" id="expander1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrolledwindow">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="border_width">6</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <object class="GtkTreeView" id="ping_output">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="border_width">6</property>
+                            <property name="enable_search">False</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label123">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Details</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="pack_type">GTK_PACK_END</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="ping">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Ping</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_netstat">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox19">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox43">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label110">
+                            <property name="visible">True</property>
+                            <property name="yalign">0</property>
+                            <property name="label" translatable="yes">Display:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="vbox7">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkRadioButton" id="netstat_routing">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Routing Table Information</property>
+                                <property name="use_underline">True</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="netstat_protocol">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Active Network Services</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">netstat_routing</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="netstat_multicast">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Multicast Information</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">netstat_routing</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">4</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox4">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="netstat_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment8">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox16">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image7">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label31">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Netstat</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">6</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <object class="GtkTreeView" id="netstat_output">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip-text" translatable="yes">Output for net stat</property>
+                        <property name="enable_search">False</property>
+                        <accessibility>
+                          
+                        </accessibility>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="a11y-netstat_output1">
+                            <property name="AtkObject::accessible_name" translatable="yes">Netstat output</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="netstat">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Netstat</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_traceroute">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox20">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox36">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="traceroute_host_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Network address:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="traceroute_host">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry2">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter the network address to scan for open ports. For example: www.domain.com or 192.168.2.1</property>
+                                <accessibility>
+                                  <relation target="traceroute_host_label" type="labelled-by"/>
+                                </accessibility>
+                              </object>
+                            </child>
+                            <property name="model">model2</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer2"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox3">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="traceroute_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment7">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox15">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image6">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label30">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Trace</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow3">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">6</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <object class="GtkTreeView" id="traceroute_output">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip-text" translatable="yes">Output for traceroute</property>
+                        <property name="enable_search">False</property>
+                        <accessibility>
+                          
+                        </accessibility>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="a11y-traceroute_output1">
+                            <property name="AtkObject::accessible_name" translatable="yes">Traceroute output</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="traceroute">
+                <property name="visible">True</property>
+                <property name="has_tooltip">True</property>
+                <property name="tooltip_text" translatable="yes">Enter the network address to trace a route to. For example: www.domain.com or 192.168.2.1</property>
+                <property name="label" translatable="yes">Traceroute</property>
+              </object>
+              <packing>
+                <property name="position">3</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_scan">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox21">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox37">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="scan_host_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Network address:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="scan_host">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry3">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter the network address to scan for open ports. For example: www.domain.com or 192.168.2.1</property>
+                                <accessibility>
+                                  
+                                </accessibility>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-comboboxentry-entry31">
+                                    <property name="AtkObject::accessible_name" translatable="yes">Network address</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <property name="model">model3</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer3"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox5">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="scan_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment9">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox18">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image8">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label47">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Scan</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">6</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <object class="GtkTreeView" id="scan_output">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip-text" translatable="yes">Output for port scan</property>
+                        <property name="enable_search">False</property>
+                        <accessibility>
+                          
+                        </accessibility>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="a11y-scan_output1">
+                            <property name="AtkObject::accessible_name" translatable="yes">Port scan output</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="scan">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Port Scan</property>
+              </object>
+              <packing>
+                <property name="position">4</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_lookup">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox23">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table7">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkComboBox" id="lookup_type">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="lookup_type_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Information type:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"/>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="lookup_host">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry4">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter the network address to lookup. For example: www.domain.com or 192.168.2.1</property>
+                                <accessibility>
+                                  
+                                </accessibility>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-comboboxentry-entry41">
+                                    <property name="AtkObject::accessible_name" translatable="yes">Network address</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <property name="model">model4</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer4"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="lookup_host_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Network address:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"/>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox6">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="lookup_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment10">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox27">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image9">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label68">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Lookup</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow5">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">6</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <object class="GtkTreeView" id="lookup_output">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip-text" translatable="yes">Output for lookup</property>
+                        <accessibility>
+                          
+                        </accessibility>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="a11y-lookup_output1">
+                            <property name="AtkObject::accessible_name" translatable="yes">Lookup output</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="lookup">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Lookup</property>
+              </object>
+              <packing>
+                <property name="position">5</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_finger">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox24">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkTable" id="table8">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="finger_host">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry6">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter the network address to finger that user. For example: www.domain.com or 192.168.2.1</property>
+                                <accessibility>
+                                  
+                                </accessibility>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-comboboxentry-entry61">
+                                    <property name="AtkObject::accessible_name" translatable="yes">Network address</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <property name="model">model5</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer5"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="finger_user">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry5">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter the user to finger</property>
+                                <accessibility>
+                                  
+                                </accessibility>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-comboboxentry-entry51">
+                                    <property name="AtkObject::accessible_name" translatable="yes">User name</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <property name="model">model6</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer6"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="finger_host_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Network address:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"/>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="finger_user_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Username:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"/>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox7">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="finger_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment11">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox30">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image10">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label78">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Finger</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">6</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <object class="GtkTextView" id="finger_output">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip-text" translatable="yes">Output for finger</property>
+                        <property name="editable">False</property>
+                        <accessibility>
+                          
+                        </accessibility>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="a11y-finger_output1">
+                            <property name="AtkObject::accessible_name" translatable="yes">Finger output</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="finger">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Finger</property>
+              </object>
+              <packing>
+                <property name="position">6</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_whois">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkVBox" id="vbox22">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox38">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="whois_host_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Domain address:</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxEntry" id="whois_host">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry7">
+                                <property name="has_tooltip">True</property>
+                                <property name="tooltip_text" translatable="yes">Enter a domain address to lookup its whois information. For example: www.domain.com or 192.168.2.1</property>
+                                <accessibility>
+                                  
+                                </accessibility>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-comboboxentry-entry71">
+                                    <property name="AtkObject::accessible_name" translatable="yes">Domain address</property>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <property name="model">model7</property>
+                            <child>
+                              <object class="GtkCellRendererText" id="renderer7"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox8">
+                        <property name="visible">True</property>
+                        <property name="layout_style">GTK_BUTTONBOX_END</property>
+                        <child>
+                          <object class="GtkButton" id="whois_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <child>
+                              <object class="GtkAlignment" id="alignment12">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkHBox" id="hbox32">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <object class="GtkImage" id="image11">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-ok</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label85">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Whois</property>
+                                        <property name="use_underline">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow7">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">6</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <object class="GtkTextView" id="whois_output">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip-text" translatable="yes">Output for whois</property>
+                        <property name="editable">False</property>
+                        <accessibility>
+                          
+                          
+                        </accessibility>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="a11y-whois_output1">
+                            <property name="AtkObject::accessible_description" translatable="yes">Whois output</property>
+                            <property name="AtkObject::accessible_name" translatable="yes">Whois output</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="whois">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Output for whois</property>
+                <property name="label" translatable="yes">Whois</property>
+                <accessibility>
+                  
+                </accessibility>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="a11y-whois1">
+                    <property name="AtkObject::accessible_name" translatable="yes">Whois output</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">7</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox42">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkProgressBar" id="progress_bar">
+                <property name="visible">True</property>
+                <property name="pulse_step">0.10000000149</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkStatusbar" id="statusbar">
+                <property name="visible">True</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff -pruN 2.30.0-1/.pc/02_lpi.patch/src/main.c 2.30.0-1ubuntu2/.pc/02_lpi.patch/src/main.c
--- 2.30.0-1/.pc/02_lpi.patch/src/main.c	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/02_lpi.patch/src/main.c	2010-03-30 05:11:19.000000000 +0100
@@ -0,0 +1,970 @@
+/* -*- mode:C; indent-tabs-mode:t; tab-width:8; c-basic-offset:8; -*- */
+
+/* gnome-netinfo - A GUI Interface for network utilities
+ * Copyright (C) 2002, 2003 by German Poo-Caaman~o
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <string.h>
+#include <glib/gi18n.h>
+
+#include <glibtop.h>
+
+#include "callbacks.h"
+#include "ping.h"
+#include "traceroute.h"
+#include "info.h"
+#include "netstat.h"
+#include "scan.h"
+#include "lookup.h"
+#include "finger.h"
+#include "whois.h"
+#include "utils.h"
+#include "gn-combo-history.h"
+
+Netinfo *load_ping_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_traceroute_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_netstat_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_scan_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_lookup_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_finger_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_whois_widgets_from_builder (GtkBuilder * builder);
+Netinfo *load_info_widgets_from_builder (GtkBuilder * builder);
+static gboolean start_initial_process_cb (gpointer data);
+
+int
+main (int argc, char *argv[])
+{
+	GtkWidget *window;
+	GtkWidget *menu_beep;
+	GtkBuilder *builder;
+	GtkWidget *notebook;
+	GtkWidget *statusbar;
+	const gchar *dialog = DATADIR "gnome-nettool.ui";
+	Netinfo *pinger;
+	Netinfo *tracer;
+	Netinfo *netstat;
+	Netinfo *info;
+	Netinfo *scan;
+	Netinfo *lookup;
+	Netinfo *finger;
+	Netinfo *whois;
+	gint current_page = 0;
+	static gchar *info_input = NULL;
+	static gchar *ping_input = NULL;
+	static gchar *netstat_input = NULL;
+	static gchar *scan_input = NULL;
+	static gchar *traceroute_input = NULL;
+	static gchar *lookup_input = NULL;
+	static gchar *finger_input = NULL;
+	static gchar *whois_input = NULL;
+	GError *error = NULL;
+
+	GOptionEntry options[] = {
+		{ "info", 'i', 0, G_OPTION_ARG_STRING, &info_input,
+ 		  N_("Load information for a network device"),
+ 		  N_("DEVICE") },
+
+		{ "ping", 'p', 0, G_OPTION_ARG_STRING, &ping_input,
+ 		  N_("Send a ping to a network address"),
+ 		  N_("HOST") },
+
+		{ "netstat", 'n', 0, G_OPTION_ARG_STRING, &netstat_input,
+ 		  N_("Get netstat information.  Valid options are: route, active, multicast."),
+ 		  N_("COMMAND") },
+
+		{ "traceroute", 't', 0, G_OPTION_ARG_STRING, &traceroute_input,
+ 		  N_("Trace a route to a network address"),
+ 		  N_("HOST") },
+
+		{ "port-scan", 's', 0, G_OPTION_ARG_STRING, &scan_input,
+ 		  N_("Port scan a network address"),
+ 		  N_("HOST") },
+
+		{ "lookup", 'l', 0, G_OPTION_ARG_STRING, &lookup_input,
+ 		  N_("Look up a network address"),
+ 		  N_("HOST") },
+
+		{ "finger", 'f', 0, G_OPTION_ARG_STRING, &finger_input,
+ 		  N_("Finger command to run"),
+ 		  N_("USER") },
+
+		{ "whois", 'w', 0, G_OPTION_ARG_STRING, &whois_input,
+ 		  N_("Perform a whois lookup for a network domain"),
+ 		  N_("DOMAIN") },
+
+		{ NULL, '\0', 0, 0, NULL, NULL, NULL }
+ 	};
+
+#ifdef ENABLE_NLS
+	bindtextdomain (GETTEXT_PACKAGE, GNOME_NETTOOL_LOCALEDIR);
+	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	textdomain (GETTEXT_PACKAGE);
+#endif
+
+	glibtop_init ();
+
+	if (!gtk_init_with_args (&argc, &argv, NULL, options, NULL, &error)) {
+		g_print ("%s\n\n", error->message);
+		return -1;
+	}
+
+	if (!g_file_test (dialog, G_FILE_TEST_EXISTS)) {
+		g_critical (_("The file %s doesn't exist, "
+			      "please check if gnome-nettool is correctly installed"),
+			    dialog);
+		return -1;
+	}
+
+	gtk_window_set_default_icon_name ("gnome-nettool");
+	
+	builder = gtk_builder_new ();
+        gtk_builder_add_from_file (builder, dialog, NULL);
+	window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	statusbar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	gtk_statusbar_push (GTK_STATUSBAR (statusbar), 0, _("Idle"));
+
+	g_signal_connect (G_OBJECT (window), "delete-event",
+			  G_CALLBACK (gn_quit_app), NULL);
+	
+	pinger = load_ping_widgets_from_builder (builder);
+	tracer = load_traceroute_widgets_from_builder (builder);
+	netstat = load_netstat_widgets_from_builder (builder);
+	info = load_info_widgets_from_builder (builder);
+	scan = load_scan_widgets_from_builder (builder);
+	lookup = load_lookup_widgets_from_builder (builder);
+	finger = load_finger_widgets_from_builder (builder);
+	whois = load_whois_widgets_from_builder (builder);
+
+	if (info_input) {
+		current_page = INFO;
+		info_set_nic (info, info_input);
+	}
+	if (ping_input) {
+		current_page = PING;
+		netinfo_set_host (pinger, ping_input);
+		g_idle_add (start_initial_process_cb, pinger);
+	}
+	if (netstat_input) {
+		current_page = NETSTAT;
+		if (! strcmp (netstat_input, "route"))
+			gtk_toggle_button_set_active
+				(GTK_TOGGLE_BUTTON (netstat->routing), TRUE);
+		else if (! strcmp (netstat_input, "active"))
+			gtk_toggle_button_set_active
+				(GTK_TOGGLE_BUTTON (netstat->protocol), TRUE);
+		else if (! strcmp (netstat_input, "multicast"))
+			gtk_toggle_button_set_active
+				(GTK_TOGGLE_BUTTON (netstat->multicast), TRUE);
+		g_idle_add (start_initial_process_cb, netstat);
+	}
+	if (traceroute_input) {
+		current_page = TRACEROUTE;
+		netinfo_set_host (tracer, traceroute_input);
+		g_idle_add (start_initial_process_cb, tracer);
+	}
+	if (scan_input) {
+		current_page = PORTSCAN;
+		netinfo_set_host (scan, scan_input);
+		g_idle_add (start_initial_process_cb, scan);
+	}
+	if (lookup_input) {
+		current_page = LOOKUP;
+		netinfo_set_host (lookup, lookup_input);
+		g_idle_add (start_initial_process_cb, lookup);
+	}
+	if (finger_input) {
+		gchar **split_input = NULL;
+		current_page = FINGER;
+		split_input = g_strsplit (finger_input, "@", 2);
+		if (split_input[0])
+			netinfo_set_user (finger, split_input[0]);
+		if (split_input[1])
+			netinfo_set_host (finger, split_input[1]);
+		g_strfreev (split_input);
+		g_idle_add (start_initial_process_cb, finger);
+	}
+	if (whois_input) {
+		current_page = WHOIS;
+		netinfo_set_host (whois, whois_input);
+		g_idle_add (start_initial_process_cb, whois);
+	}
+
+	notebook = GTK_WIDGET (gtk_builder_get_object (builder, "notebook"));
+	g_object_set_data (G_OBJECT (notebook), "pinger", pinger);
+	g_object_set_data (G_OBJECT (notebook), "tracer", tracer);
+	g_object_set_data (G_OBJECT (notebook), "netstat", netstat);
+	g_object_set_data (G_OBJECT (notebook), "info", info);
+	g_object_set_data (G_OBJECT (notebook), "scan", scan);
+	g_object_set_data (G_OBJECT (notebook), "lookup", lookup);
+	g_object_set_data (G_OBJECT (notebook), "finger", finger);
+	g_object_set_data (G_OBJECT (notebook), "whois", whois);
+	
+	menu_beep = GTK_WIDGET (gtk_builder_get_object (builder, "m_beep"));
+
+	g_signal_connect (G_OBJECT (menu_beep), "activate",
+			  G_CALLBACK (on_beep_activate),
+			  (gpointer) pinger); 
+	
+	gtk_builder_connect_signals (builder, NULL);
+	g_object_unref (G_OBJECT (builder));
+
+	gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), current_page);
+
+	gtk_widget_show (window);
+
+	gtk_main ();
+
+	glibtop_close ();
+
+	g_free (pinger);
+	g_free (tracer);
+	g_free (netstat);
+	g_free (info);
+	g_free (scan);
+	g_free (lookup);
+	g_free (finger);
+	g_free (whois);
+
+	return 0;
+}
+
+static gboolean
+start_initial_process_cb (gpointer data)
+{
+	Netinfo *ni = data;
+	NetinfoActivateFn fn_cb;
+
+	g_return_val_if_fail (data != NULL, FALSE);
+
+	fn_cb = (NetinfoActivateFn) ni->button_callback;
+	if (fn_cb)
+		(*fn_cb) (ni->button, data);
+	return FALSE;
+}
+
+/* The value returned must be released from memory */
+Netinfo *
+load_ping_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *pinger;
+	GtkWidget *vbox_ping;
+	GtkWidget *label;
+	GtkEntry  *entry_host;
+	GtkTreeModel *model;
+	GtkEntryCompletion *completion;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	pinger = g_new0 (Netinfo, 1);
+
+	pinger->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	pinger->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	pinger->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "ping"));
+	pinger->running = FALSE;
+	pinger->child_pid = 0;
+	pinger->host = GTK_WIDGET (gtk_builder_get_object (builder, "ping_host"));
+	pinger->count = GTK_WIDGET (gtk_builder_get_object (builder, "ping_count"));
+	pinger->output = GTK_WIDGET (gtk_builder_get_object (builder, "ping_output"));
+	pinger->limited = GTK_WIDGET (gtk_builder_get_object (builder, "ping_limited"));
+	pinger->button = GTK_WIDGET (gtk_builder_get_object (builder, "ping_button"));
+	pinger->graph = GTK_WIDGET (gtk_builder_get_object (builder, "ping_graph"));
+	pinger->sensitive = pinger->host;
+	pinger->label_run = _("Ping");
+	pinger->label_stop = NULL;
+	pinger->routing = NULL;
+	pinger->protocol = NULL;
+	pinger->multicast = NULL;
+	pinger->min = GTK_WIDGET (gtk_builder_get_object (builder, "ping_minimum"));
+	pinger->avg = GTK_WIDGET (gtk_builder_get_object (builder, "ping_average"));
+	pinger->max = GTK_WIDGET (gtk_builder_get_object (builder, "ping_maximum"));
+	pinger->packets_transmitted = GTK_WIDGET (gtk_builder_get_object (builder, "ping_packets_transmitted"));
+	pinger->packets_received = GTK_WIDGET (gtk_builder_get_object (builder, "ping_packets_received"));
+	pinger->packets_success = GTK_WIDGET (gtk_builder_get_object (builder, "ping_packets_success"));
+
+	pinger->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	pinger->stbar_text = NULL;
+
+	vbox_ping = GTK_WIDGET (gtk_builder_get_object (builder, "vbox_ping"));
+
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "ping_host_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), pinger->host);
+	
+	pinger->button_callback = G_CALLBACK (on_ping_activate);
+	pinger->process_line = NETINFO_FOREACH_FUNC (ping_foreach_with_tree);
+	pinger->copy_output = NETINFO_COPY_FUNC (ping_copy_to_clipboard);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (pinger->host), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (pinger->host), 0);*/
+
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (pinger->host)));
+	
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	pinger->history = gn_combo_history_new ();
+	gn_combo_history_set_id (pinger->history, "GNOME_Network_netinfo_host");
+	gn_combo_history_set_combo (pinger->history, GTK_COMBO_BOX (pinger->host));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  G_CALLBACK (on_ping_activate),
+			  pinger);
+	g_signal_connect (G_OBJECT (pinger->limited), "toggled",
+			  G_CALLBACK (on_ping_toggled),
+			  pinger);
+	g_signal_connect (G_OBJECT (pinger->button), "clicked",
+			  pinger->button_callback,
+			  pinger);
+	g_signal_connect (G_OBJECT (pinger->graph), "expose-event",
+			  G_CALLBACK (on_ping_graph_expose),
+			  pinger);
+
+	return pinger;
+}
+
+/* The value returned must be released from memory */
+Netinfo *
+load_traceroute_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *tracer;
+	GtkWidget *vbox_traceroute;
+	GtkWidget *label;
+	GtkEntry  *entry_host;
+	GtkTreeModel *model;
+	GtkEntryCompletion *completion;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	tracer = g_new0 (Netinfo, 1);
+
+	tracer->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	tracer->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	tracer->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "traceroute"));
+	tracer->running = FALSE;
+	tracer->child_pid = 0;
+	tracer->host = GTK_WIDGET (gtk_builder_get_object (builder, "traceroute_host"));
+	tracer->output = GTK_WIDGET (gtk_builder_get_object (builder, "traceroute_output"));
+	tracer->button = GTK_WIDGET (gtk_builder_get_object (builder, "traceroute_button"));
+	tracer->count = NULL;
+	tracer->limited = NULL;
+	tracer->sensitive = tracer->host;
+	tracer->label_run = _("Trace");
+	tracer->label_stop = NULL;
+	tracer->routing = NULL;
+	tracer->protocol = NULL;
+	tracer->multicast = NULL;
+
+	tracer->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	tracer->stbar_text = NULL;
+	
+	vbox_traceroute = GTK_WIDGET (gtk_builder_get_object (builder, "vbox_traceroute"));
+
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "traceroute_host_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), tracer->host);
+
+	tracer->button_callback = G_CALLBACK (on_traceroute_activate);
+	tracer->process_line = NETINFO_FOREACH_FUNC (traceroute_foreach_with_tree);
+	tracer->copy_output = NETINFO_COPY_FUNC (traceroute_copy_to_clipboard);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (tracer->host), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (tracer->host), 0);*/
+
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (tracer->host)));
+
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	tracer->history = gn_combo_history_new ();
+	gn_combo_history_set_id (tracer->history, "GNOME_Network_netinfo_host");
+	gn_combo_history_set_combo (tracer->history, GTK_COMBO_BOX (tracer->host));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  G_CALLBACK (on_traceroute_activate),
+			  tracer);
+	g_signal_connect (G_OBJECT (tracer->button), "clicked",
+			  tracer->button_callback,
+			  tracer);
+
+	return tracer;
+}
+
+Netinfo *
+load_netstat_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *netstat;
+	GtkWidget *vbox_netstat;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	netstat = g_new0 (Netinfo, 1);
+
+	netstat->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	netstat->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	netstat->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "netstat"));
+	netstat->running = FALSE;
+	netstat->child_pid = 0;
+	netstat->host = NULL;
+	netstat->count = NULL;
+	netstat->output = GTK_WIDGET (gtk_builder_get_object (builder, "netstat_output"));
+	netstat->limited = NULL;
+	netstat->button = GTK_WIDGET (gtk_builder_get_object (builder, "netstat_button"));
+	netstat->routing = GTK_WIDGET (gtk_builder_get_object (builder, "netstat_routing"));
+	netstat->protocol = GTK_WIDGET (gtk_builder_get_object (builder, "netstat_protocol"));
+	netstat->multicast = GTK_WIDGET (gtk_builder_get_object (builder, "netstat_multicast"));
+	netstat->sensitive = NULL;
+	netstat->label_run = _("Netstat");
+	netstat->label_stop = NULL;
+
+	netstat->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	netstat->stbar_text = NULL;
+	
+	vbox_netstat = GTK_WIDGET (gtk_builder_get_object (builder, "vbox_netstat"));
+	
+	netstat->button_callback = G_CALLBACK (on_netstat_activate);
+	netstat->process_line = NETINFO_FOREACH_FUNC (netstat_foreach_with_tree);
+	netstat->copy_output = NETINFO_COPY_FUNC (netstat_copy_to_clipboard);	
+	
+	g_signal_connect (G_OBJECT (netstat->button), "clicked",
+				  netstat->button_callback,
+				  netstat);
+/*
+	g_signal_connect (G_OBJECT (netstat->protocol), "toggled",
+				  G_CALLBACK (on_protocol_button_toggled),
+				  netstat);
+	g_signal_connect (G_OBJECT (netstat->routing), "toggled",
+				  G_CALLBACK (on_protocol_button_toggled),
+				  netstat);
+	g_signal_connect (G_OBJECT (netstat->multicast), "toggled",
+				  G_CALLBACK (on_protocol_button_toggled),
+				  netstat);
+*/
+	return netstat;
+}
+
+static void
+info_list_ip_addr_add_columns (GtkWidget *list_ip_addr)
+{
+	GtkTreeViewColumn *column;
+	GtkCellRenderer   *renderer;
+
+	renderer = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Protocol"),
+							   renderer,
+							   "text", 0,
+							   NULL);
+	gtk_tree_view_insert_column (GTK_TREE_VIEW (list_ip_addr), column, 0);
+
+	renderer = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("IP Address"),
+							   renderer,
+							   "text", 1,
+							   NULL);
+	gtk_tree_view_insert_column (GTK_TREE_VIEW (list_ip_addr), column, 1);
+
+	renderer = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Netmask / Prefix"),
+							   renderer,
+							   "text", 2,
+							   NULL);
+	gtk_tree_view_insert_column (GTK_TREE_VIEW (list_ip_addr), column, 2);
+	
+	renderer = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Broadcast"),
+							   renderer,
+							   "text", 3,
+							   NULL);
+	gtk_tree_view_insert_column (GTK_TREE_VIEW (list_ip_addr), column, 3);
+	
+	renderer = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Scope"),
+							   renderer,
+							   "text", 4,
+							   NULL);
+	gtk_tree_view_insert_column (GTK_TREE_VIEW (list_ip_addr), column, 4);
+
+	
+}
+
+/* The value returned must be released from memory */
+Netinfo *
+load_info_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo      *info;
+	GtkTreeModel *model;
+	GtkWidget    *label1;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	info = g_malloc (sizeof (Netinfo));
+
+	info->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	info->running = FALSE;
+	info->combo = GTK_WIDGET (gtk_builder_get_object (builder, "info_combo"));
+	info->ipv6_frame = GTK_WIDGET (gtk_builder_get_object (builder, "info_ipv6_frame"));
+	info->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	info->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "device"));
+	info->hw_address = GTK_WIDGET (gtk_builder_get_object (builder, "info_hw_address"));
+	info->ip_address = GTK_WIDGET (gtk_builder_get_object (builder, "info_ip_address"));
+	info->netmask = GTK_WIDGET (gtk_builder_get_object (builder, "info_netmask"));
+	info->broadcast = GTK_WIDGET (gtk_builder_get_object (builder, "info_broadcast"));
+	info->multicast = GTK_WIDGET (gtk_builder_get_object (builder, "info_multicast"));
+	info->link_speed = GTK_WIDGET (gtk_builder_get_object (builder, "info_link_speed"));
+	info->state = GTK_WIDGET (gtk_builder_get_object (builder, "info_state"));
+	info->mtu = GTK_WIDGET (gtk_builder_get_object (builder, "info_mtu"));
+	info->tx_bytes = GTK_WIDGET (gtk_builder_get_object (builder, "info_tx_bytes"));
+	info->tx = GTK_WIDGET (gtk_builder_get_object (builder, "info_tx"));
+	info->tx_errors = GTK_WIDGET (gtk_builder_get_object (builder, "info_tx_errors"));
+	info->rx_bytes = GTK_WIDGET (gtk_builder_get_object (builder, "info_rx_bytes"));
+	info->rx = GTK_WIDGET (gtk_builder_get_object (builder, "info_rx"));
+	info->rx_errors = GTK_WIDGET (gtk_builder_get_object (builder, "info_rx_errors"));
+	info->collisions = GTK_WIDGET (gtk_builder_get_object (builder, "info_collisions"));
+	info->list_ip_addr = GTK_WIDGET (gtk_builder_get_object (builder, "info_list_ip_addr"));
+	info->configure_button = GTK_WIDGET (gtk_builder_get_object (builder, "info_configure_button"));
+
+	info->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	info->stbar_text = NULL;
+
+	info->network_tool_path = util_find_program_in_path (GST_NETWORK_TOOL, NULL);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (5, G_TYPE_STRING, G_TYPE_STRING,
+						    G_TYPE_STRING, G_TYPE_STRING,
+						    G_TYPE_STRING));
+	gtk_tree_view_set_model (GTK_TREE_VIEW (info->list_ip_addr), model);
+	g_object_unref (model);
+	
+	info_list_ip_addr_add_columns (info->list_ip_addr);
+
+	label1 = GTK_WIDGET (gtk_builder_get_object (builder, "info_combo_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label1), info->combo);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (3, GDK_TYPE_PIXBUF,
+						    G_TYPE_STRING,
+						    G_TYPE_POINTER));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (info->combo), model);
+
+	g_object_unref (model);
+
+	g_signal_connect (G_OBJECT (info->configure_button), "clicked",
+			  G_CALLBACK (on_configure_button_clicked),
+			  info);
+
+	g_signal_connect (G_OBJECT (info->combo), "changed",
+			  G_CALLBACK (info_nic_changed),
+			  info);
+	
+	info_load_iface (info);
+	info->copy_output = NETINFO_COPY_FUNC (info_copy_to_clipboard);
+
+	return info;
+}
+
+Netinfo *
+load_scan_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *scan;
+	GtkEntry  *entry_host;
+	GtkWidget *label;
+	GtkTreeModel *model;
+	GtkEntryCompletion *completion;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	scan = g_new0 (Netinfo, 1);
+
+	scan->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	scan->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	scan->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "scan"));
+	scan->running = FALSE;
+	scan->child_pid = 0;
+	scan->host = GTK_WIDGET (gtk_builder_get_object (builder, "scan_host"));
+	scan->count = NULL;
+	scan->output = GTK_WIDGET (gtk_builder_get_object (builder, "scan_output"));
+	scan->limited = NULL;
+	scan->button = GTK_WIDGET (gtk_builder_get_object (builder, "scan_button"));
+	scan->routing = NULL;
+	scan->protocol = NULL;
+	scan->multicast = NULL;
+	scan->sensitive = NULL;
+	scan->label_run = _("Scan");
+	scan->label_stop = NULL;
+
+	scan->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	scan->stbar_text = NULL;
+	
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "scan_host_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), scan->host);
+
+	scan->button_callback = G_CALLBACK (on_scan_activate);
+	scan->copy_output = NETINFO_COPY_FUNC (scan_copy_to_clipboard);
+	scan->process_line = NETINFO_FOREACH_FUNC (scan_foreach);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (scan->host), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (scan->host), 0);*/
+
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (scan->host)));
+
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	scan->history = gn_combo_history_new ();
+	gn_combo_history_set_id (scan->history, "GNOME_Network_netinfo_host");
+	gn_combo_history_set_combo (scan->history, GTK_COMBO_BOX (scan->host));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  scan->button_callback,
+			  scan);
+	g_signal_connect (G_OBJECT (scan->button), "clicked",
+                          scan->button_callback,
+                          scan);
+
+	return scan;
+}
+
+static void
+nettool_lookup_setup_combo_type (Netinfo *lookup)
+{
+	gint i;
+	GtkTreeModel *model;
+	GtkTreeIter   iter;
+	GtkCellRenderer *renderer;
+	gchar *types[] = {
+		N_("Default Information"),
+		N_("Internet Address"),
+		N_("Canonical Name"),
+		N_("CPU / OS Type"),
+		/* When asking for MX record in DNS context */
+		N_("Mailbox Exchange"),
+		N_("Mailbox Information"),
+		/* When asking for NS record in DNS context */
+		N_("Name Server"),
+		N_("Host name for Address"),
+		N_("Start-of-authority"),
+		N_("Text Information"),
+		N_("Well Known Services"),
+		N_("Any / All Information"),
+		NULL
+	};
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	
+	for (i=0; types[i]; i++) {
+		gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+		gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+				    0, _(types[i]), -1);
+	}
+	
+	gtk_combo_box_set_model (GTK_COMBO_BOX (lookup->type), model);
+
+	g_object_unref (model);
+
+	gtk_cell_layout_clear (GTK_CELL_LAYOUT (lookup->type));
+	renderer = gtk_cell_renderer_text_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (lookup->type), renderer, TRUE);
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (lookup->type), renderer,
+					"text", 0, NULL);
+
+	gtk_combo_box_set_active (GTK_COMBO_BOX (lookup->type), 0);
+}
+
+/* The value returned must be released from memory */
+Netinfo *
+load_lookup_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *lookup;
+	GtkWidget *vbox_lookup;
+	GtkWidget *label;
+	GtkEntry  *entry_host;
+	GtkTreeModel *model;
+	GtkEntryCompletion *completion;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	lookup = g_new0 (Netinfo, 1);
+
+	lookup->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	lookup->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	lookup->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "lookup"));
+	lookup->running = FALSE;
+	lookup->child_pid = 0;
+	lookup->host = GTK_WIDGET (gtk_builder_get_object (builder, "lookup_host"));
+	lookup->output = GTK_WIDGET (gtk_builder_get_object (builder, "lookup_output"));
+	lookup->button = GTK_WIDGET (gtk_builder_get_object (builder, "lookup_button"));
+	lookup->type = GTK_WIDGET (gtk_builder_get_object (builder, "lookup_type"));
+	lookup->count = NULL;
+	lookup->limited = NULL;
+	lookup->sensitive = lookup->host;
+	lookup->label_run = _("Lookup");
+	lookup->label_stop = NULL;
+	lookup->routing = NULL;
+	lookup->protocol = NULL;
+	lookup->multicast = NULL;
+
+	lookup->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	lookup->stbar_text = NULL;
+	
+	vbox_lookup = GTK_WIDGET (gtk_builder_get_object (builder, "vbox_lookup"));
+
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "lookup_host_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), lookup->host);
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "lookup_type_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), lookup->type);
+
+	lookup->button_callback = G_CALLBACK (on_lookup_activate);
+	lookup->process_line = NETINFO_FOREACH_FUNC (lookup_foreach_with_tree);
+	lookup->copy_output = NETINFO_COPY_FUNC (lookup_copy_to_clipboard);
+
+	nettool_lookup_setup_combo_type (lookup);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (lookup->host), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (lookup->host), 0);*/
+
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (lookup->host)));
+
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	lookup->history = gn_combo_history_new ();
+	gn_combo_history_set_id (lookup->history, "GNOME_Network_netinfo_host");
+	gn_combo_history_set_combo (lookup->history, GTK_COMBO_BOX (lookup->host));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  G_CALLBACK (on_lookup_activate),
+			  lookup);
+	g_signal_connect (G_OBJECT (lookup->button), "clicked",
+			  lookup->button_callback,
+			  lookup);
+
+	return lookup;
+}
+
+/* The value returned must be released from memory */
+Netinfo *
+load_finger_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *finger;
+	GtkWidget *vbox_finger;
+	GtkWidget *label;
+	PangoFontDescription *font_desc;
+	GtkEntry  *entry_host;
+	GtkTreeModel *model;
+	GtkEntryCompletion *completion;
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	finger = g_new0 (Netinfo, 1);
+
+	finger->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	finger->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	finger->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "finger"));
+	finger->running = FALSE;
+	finger->child_pid = 0;
+	finger->user = GTK_WIDGET (gtk_builder_get_object (builder, "finger_user"));
+	finger->host = GTK_WIDGET (gtk_builder_get_object (builder, "finger_host"));
+	finger->output = GTK_WIDGET (gtk_builder_get_object (builder, "finger_output"));
+	finger->button = GTK_WIDGET (gtk_builder_get_object (builder, "finger_button"));
+	finger->type = GTK_WIDGET (gtk_builder_get_object (builder, "finger_type"));
+	finger->count = NULL;
+	finger->limited = NULL;
+	finger->sensitive = GTK_WIDGET (gtk_builder_get_object (builder, "finger_input_box"));
+	finger->label_run = _("Finger");
+	finger->label_stop = NULL;
+	finger->routing = NULL;
+	finger->protocol = NULL;
+	finger->multicast = NULL;
+
+	finger->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	finger->stbar_text = NULL;
+	
+	vbox_finger = GTK_WIDGET (gtk_builder_get_object (builder, "vbox_finger"));
+
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "finger_user_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), finger->user);
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "finger_host_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), finger->host);
+
+	font_desc = pango_font_description_new ();
+	pango_font_description_set_family (font_desc, "monospace");
+	gtk_widget_modify_font (finger->output, font_desc);
+	pango_font_description_free (font_desc);
+
+	finger->button_callback = G_CALLBACK (on_finger_activate);
+	finger->process_line = NETINFO_FOREACH_FUNC (finger_foreach);
+	finger->copy_output = NETINFO_COPY_FUNC (finger_copy_to_clipboard);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (finger->user), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (finger->user), 0);*/
+
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (finger->user)));
+
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	finger->history_user = gn_combo_history_new ();
+	gn_combo_history_set_id (finger->history_user, "GNOME_Network_netinfo_user");
+	gn_combo_history_set_combo (finger->history_user, GTK_COMBO_BOX (finger->user));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  G_CALLBACK (on_finger_activate),
+			  finger);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (finger->host), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (finger->host), 0);*/
+
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (finger->host)));
+
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	finger->history = gn_combo_history_new ();
+	gn_combo_history_set_id (finger->history, "GNOME_Network_netinfo_host");
+	gn_combo_history_set_combo (finger->history, GTK_COMBO_BOX (finger->host));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  G_CALLBACK (on_finger_activate),
+			  finger);
+
+	g_signal_connect (G_OBJECT (finger->button), "clicked",
+			  finger->button_callback,
+			  finger);
+
+	return finger;
+}
+
+/* The value returned must be released from memory */
+Netinfo *
+load_whois_widgets_from_builder (GtkBuilder * builder)
+{
+	Netinfo *whois;
+	GtkWidget *vbox_whois;
+	GtkWidget *label;
+	GtkEntry  *entry_host;
+	GtkTreeModel *model;
+	GtkEntryCompletion *completion;
+	PangoFontDescription *font_desc;
+	
+
+	g_return_val_if_fail (builder != NULL, NULL);
+
+	whois = g_new0 (Netinfo, 1);
+
+	whois->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "main_window"));
+	whois->progress_bar = GTK_WIDGET (gtk_builder_get_object (builder, "progress_bar"));
+	whois->page_label = GTK_WIDGET (gtk_builder_get_object (builder, "whois"));
+	whois->running = FALSE;
+	whois->child_pid = 0;
+	whois->host = GTK_WIDGET (gtk_builder_get_object (builder, "whois_host"));
+	whois->output = GTK_WIDGET (gtk_builder_get_object (builder, "whois_output"));
+	whois->button = GTK_WIDGET (gtk_builder_get_object (builder, "whois_button"));
+	whois->count = NULL;
+	whois->limited = NULL;
+	whois->sensitive = GTK_WIDGET (gtk_builder_get_object (builder, "whois_input_box"));
+	whois->label_run = _("Whois");
+	whois->label_stop = NULL;
+	whois->routing = NULL;
+	whois->protocol = NULL;
+	whois->multicast = NULL;
+
+	whois->status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "statusbar"));
+	whois->stbar_text = NULL;
+
+	vbox_whois = GTK_WIDGET (gtk_builder_get_object (builder, "vbox_whois"));
+
+	label = GTK_WIDGET (gtk_builder_get_object (builder, "whois_host_label"));
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), whois->host);
+
+	font_desc = pango_font_description_new ();
+	pango_font_description_set_family (font_desc, "monospace");
+	gtk_widget_modify_font (whois->output, font_desc);
+	pango_font_description_free (font_desc);
+
+	whois->button_callback = G_CALLBACK (on_whois_activate);
+	whois->process_line = NETINFO_FOREACH_FUNC (whois_foreach);
+	whois->copy_output = NETINFO_COPY_FUNC (whois_copy_to_clipboard);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+	gtk_combo_box_set_model (GTK_COMBO_BOX (whois->host), model);
+	g_object_unref (model);
+
+	/*gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (whois->host), 0);*/
+	
+	entry_host = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (whois->host)));
+	
+	completion = gtk_entry_completion_new ();
+	gtk_entry_set_completion (entry_host, completion);
+	g_object_unref (completion);
+	gtk_entry_completion_set_model (completion, model);
+	gtk_entry_completion_set_text_column (completion, 0);
+	g_object_unref (model);
+
+	whois->history = gn_combo_history_new ();
+	gn_combo_history_set_id (whois->history, "GNOME_Network_netinfo_domain");
+	gn_combo_history_set_combo (whois->history, GTK_COMBO_BOX (whois->host));
+
+	g_signal_connect (G_OBJECT (entry_host), "activate",
+			  G_CALLBACK (on_whois_activate),
+			  whois);
+	g_signal_connect (G_OBJECT (whois->button), "clicked",
+			  whois->button_callback,
+			  whois);
+
+	return whois;
+}
diff -pruN 2.30.0-1/.pc/03_use_tracepath.patch/src/traceroute.c 2.30.0-1ubuntu2/.pc/03_use_tracepath.patch/src/traceroute.c
--- 2.30.0-1/.pc/03_use_tracepath.patch/src/traceroute.c	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/03_use_tracepath.patch/src/traceroute.c	2010-03-30 05:11:19.000000000 +0100
@@ -0,0 +1,339 @@
+/* -*- mode:C; indent-tabs-mode:t; tab-width:8; c-basic-offset:8; -*- */
+/* gnome-netinfo - A GUI Interface for network utilities
+ * Copyright (C) 2002, 2003 by German Poo-Caaman~o
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+
+#include "traceroute.h"
+#include "utils.h"
+
+static gint strip_line (gchar * line, traceroute_data * data);
+static GtkTreeModel *traceroute_create_model (GtkTreeView *widget);
+
+void
+traceroute_stop (Netinfo * netinfo)
+{
+	g_return_if_fail (netinfo != NULL);
+
+	netinfo_stop_process_command (netinfo);
+}
+
+void
+traceroute_do (Netinfo * netinfo)
+{
+	const gchar *host = NULL;
+	gchar *command = NULL;
+	gchar *program = NULL;
+	gchar *program_name = NULL;
+	GtkTreeModel *model;
+	GtkWidget *parent;
+        
+	g_return_if_fail (netinfo != NULL);
+
+	/* Because of the delay, we can't check twice for a hostname/IP.
+	 * It was made before this function was called.  Anyway, we
+	 * check at least if we have a text as hostname */
+	if (netinfo_validate_domain (netinfo) == FALSE) {
+		netinfo_stop_process_command (netinfo);
+		return;
+	}
+
+	host = netinfo_get_host (netinfo);
+
+	if (netinfo->stbar_text)
+		g_free (netinfo->stbar_text);
+	netinfo->stbar_text = g_strdup_printf (_("Tracing route to %s"), host);
+
+	model = gtk_tree_view_get_model (GTK_TREE_VIEW (netinfo->output));
+	if (GTK_IS_LIST_STORE (model)) {
+		gtk_list_store_clear (GTK_LIST_STORE (model));
+	}
+
+	parent = gtk_widget_get_toplevel (netinfo->output);
+	
+	switch (netinfo_get_ip_version (netinfo))
+	{
+	case IPV4:
+		program = util_find_program_in_path ("tcptraceroute", NULL);
+#ifdef DEBUG
+		g_print ("tcptraceroute: %s\n", program);
+#endif /* DEBUG */
+		if (program != NULL) {
+			program_name = g_strdup ("tcptraceroute");
+		} else {
+			program = util_find_program_dialog ("traceroute", parent);
+			program_name = g_strdup ("traceroute");
+		}
+		break;
+	case IPV6:
+		program = util_find_program_in_path ("traceroute6", NULL);
+		program_name = g_strdup ("traceroute6");
+		break;
+	default:
+		program = NULL;
+		break;
+	}
+
+	if (program != NULL) {
+		command =
+                  g_strdup_printf ("%s %s %s %s", program, program_name,
+                                   TCPTRACEROUTE_OPTIONS, host);
+	
+		netinfo->command_line = g_strsplit (command, " ", -1);
+	
+		netinfo_process_command (netinfo);
+
+		g_strfreev (netinfo->command_line);
+		g_free (command);
+		g_free (program);
+		g_free (program_name);
+	}
+}
+
+/* Process each line from ping command */
+void
+traceroute_foreach (Netinfo * netinfo, gchar * line, gssize len,
+		    gpointer user_data)
+{
+	gchar *text_utf8;
+	gsize bytes_written;
+	GtkTextBuffer *buffer = NULL;
+	GtkTextIter iter;
+
+	g_return_if_fail (netinfo != NULL);
+	g_return_if_fail (line != NULL);
+
+	buffer =
+	    gtk_text_view_get_buffer (GTK_TEXT_VIEW (netinfo->output));
+	gtk_text_buffer_get_end_iter (buffer, &iter);
+
+	if (len > 0) {
+		text_utf8 = g_locale_to_utf8 (line, len,
+					      NULL, &bytes_written, NULL);
+
+		gtk_text_buffer_insert
+		    (GTK_TEXT_BUFFER (buffer), &iter, text_utf8,
+		     bytes_written);
+		g_free (text_utf8);
+	}
+}
+
+void
+traceroute_foreach_with_tree (Netinfo * netinfo, gchar * line, gint len,
+			      gpointer user_data)
+{
+	GtkTreeIter iter;
+	GList *columns;
+	GtkTreePath *path;
+	GtkTreeModel *model;
+	GtkTreeView *widget;
+	gint count;
+	traceroute_data data;
+
+	g_return_if_fail (netinfo != NULL);
+	g_return_if_fail (line != NULL);
+
+	widget = (GTK_TREE_VIEW (netinfo->output));
+
+	if (len > 0) {		/* there are data to show */
+		/* count = traceroute_strip_line (line, &data); */
+
+		count = strip_line (line, &data);
+
+		if (count == TRACE_NUM_ARGS) {
+
+			gtk_tree_view_set_rules_hint (GTK_TREE_VIEW
+						      (widget), TRUE);
+			columns =
+			    gtk_tree_view_get_columns (GTK_TREE_VIEW
+						       (widget));
+
+			if (g_list_length (columns) == 0) {
+
+				model = traceroute_create_model (widget);
+				gtk_tree_view_set_model (GTK_TREE_VIEW
+							 (widget), model);
+			}
+
+			g_list_free (columns);
+
+			model =
+			    gtk_tree_view_get_model (GTK_TREE_VIEW
+						     (widget));
+			
+			gtk_tree_view_get_cursor (GTK_TREE_VIEW (widget),
+						  &path, NULL);
+
+			gtk_list_store_append (GTK_LIST_STORE
+						  (model), &iter);
+
+			gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+					    TRACE_HOP, data.hop_count,
+					    TRACE_HOSTNAME, data.hostname,
+					    TRACE_IP, data.ip,
+					    TRACE_RTT1, data.rtt1,
+					    TRACE_RTT2, data.rtt2,
+/*					    TRACE_RTT3, data.rtt3,*/ -1);
+
+			gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
+						 model);
+
+			if (path) {
+				gtk_tree_view_set_cursor (
+					GTK_TREE_VIEW (widget),
+					path, NULL, FALSE);
+				gtk_tree_path_free (path);
+			}
+		}
+	}
+	while (gtk_events_pending ()) {
+		  gtk_main_iteration_do (FALSE);
+	}
+}
+
+static gint
+strip_line (gchar * line, traceroute_data * data)
+{
+	gint count;
+
+	line = g_strdelimit (line, "()", ' ');
+	
+	count = sscanf (line, TRACE_FORMAT,
+			&(data)->hop_count, data->hostname, data->ip,
+			data->rtt1, data->rtt2/*, data->rtt3*/);
+	
+	if (count == TRACE_NUM_ARGS) {
+		return count;
+	}
+
+	if (count == TRACE_NUM_ERR) {
+		g_sprintf (data->rtt1, "*");
+		g_sprintf (data->rtt2, "*");
+		return TRACE_NUM_ARGS;
+	}
+	/* The last line is different, because it has a 
+	   extra [open] or [close] string. That string it 
+	   does not matter to us 
+	 */
+
+	count = sscanf (line, TRACE_FORMAT_OPEN,
+			&(data)->hop_count, data->hostname, data->ip,
+			data->rtt1, data->rtt2/*, data->rtt3*/);
+
+	if (count == TRACE_NUM_ARGS) {
+		return count;
+	} else {
+		count = sscanf (line, TRACE_FORMAT_CLOSE,
+				&(data)->hop_count, data->hostname,
+				data->ip, data->rtt1, data->rtt2 /*,
+				data->rtt3*/);
+	}
+
+	return count;
+}
+
+static GtkTreeModel *
+traceroute_create_model (GtkTreeView *widget)
+{
+	GtkCellRenderer *renderer = NULL;
+	static GtkTreeViewColumn *column;
+	GtkTreeModel *model;
+
+	/*FIXME: Set correctly the align for each renderer */
+	
+	renderer = gtk_cell_renderer_text_new ();
+	/* Number of sequence of each hop in a traceroute output */
+	column =
+	    gtk_tree_view_column_new_with_attributes
+	    (_("Hop"), renderer, "text", TRACE_HOP, NULL);
+	g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
+	gtk_tree_view_append_column (widget, column);
+
+	renderer = gtk_cell_renderer_text_new ();
+	/* Hostname of target we are tracing the route */
+	column =
+	    gtk_tree_view_column_new_with_attributes
+	    (_("Hostname"), renderer, "text", TRACE_HOSTNAME, NULL);
+	gtk_tree_view_column_set_alignment (column, 0.5);
+	gtk_tree_view_append_column (widget, column);
+
+	renderer = gtk_cell_renderer_text_new ();
+	/* IP address of the hostname we are tracing the route */
+	column =
+	    gtk_tree_view_column_new_with_attributes
+	    (_("IP"), renderer, "text", TRACE_IP, NULL);
+	g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL);
+	gtk_tree_view_column_set_alignment (column, 0.5);
+	gtk_tree_view_append_column (widget, column);
+
+
+	renderer = gtk_cell_renderer_text_new ();
+	/* Time elapsed between a packets was sent and
+	   when was received its reply (1st sample) */
+	column =
+	    gtk_tree_view_column_new_with_attributes
+	    (_("Time 1"), renderer, "text", TRACE_RTT1, NULL);
+	g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
+	gtk_tree_view_append_column (widget, column);
+
+
+	renderer = gtk_cell_renderer_text_new ();
+	/* Time elapsed between a packets was sent and
+	   when was received its reply (2nd sample) */
+	column =
+	    gtk_tree_view_column_new_with_attributes
+	    (_("Time 2"), renderer, "text", TRACE_RTT2, NULL);
+	g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
+	gtk_tree_view_append_column (widget, column);
+
+	model = GTK_TREE_MODEL (gtk_list_store_new
+				(TRACE_NUM_COLUMNS,
+				 G_TYPE_INT,
+				 G_TYPE_STRING,
+				 G_TYPE_STRING,
+				 G_TYPE_STRING,
+				 G_TYPE_STRING));
+
+	return model;
+}
+
+void
+traceroute_copy_to_clipboard (Netinfo * netinfo, gpointer user_data)
+{
+	GString *result, *content;
+
+	g_return_if_fail (netinfo != NULL);
+
+	/* The traceroute output in text format:
+	   Hop count, Hostname, IP, Round Trip Time 1 (Time1),
+	   Round Trip Time 2 (Time2),
+	   It's a tabular output, and these belongs to the column titles */
+	result = g_string_new (_("Hop\tHostname\tIP\tTime 1\tTime 2\n"));
+
+	content = util_tree_model_to_string (GTK_TREE_VIEW (netinfo->output));
+	
+	g_string_append_printf (result, "%s", content->str);
+	
+	gtk_clipboard_set_text (gtk_clipboard_get (GDK_NONE), result->str,
+				result->len);
+
+	g_string_free (content, TRUE);
+	g_string_free (result, TRUE);
+}
diff -pruN 2.30.0-1/.pc/03_use_tracepath.patch/src/traceroute.h 2.30.0-1ubuntu2/.pc/03_use_tracepath.patch/src/traceroute.h
--- 2.30.0-1/.pc/03_use_tracepath.patch/src/traceroute.h	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/03_use_tracepath.patch/src/traceroute.h	2010-03-30 05:11:19.000000000 +0100
@@ -0,0 +1,69 @@
+/* gnome-netinfo - A GUI Interface for network utilities
+ * Copyright (C) 2002, 2003 by German Poo-Caaman~o
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+#include <glib.h>
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include "nettool.h"
+
+#define TRACE_FORMAT "%d %s %s %s ms %s ms"
+#define TRACE_FORMAT_CLOSE "%d %s %s [closed] %s ms %s ms"
+#define TRACE_FORMAT_OPEN "%d %s %s [open] %s ms %s ms"
+#define TRACE_SELECT_DEVICE "Selected device %s address %s port %d for outgoing packets"
+#define TRACE_TRACE_PATH "Tracing the path to %s (146.83.195.14) on TCP port 80 %d hops max"
+#define TRACE_NUM_ARGS 5
+#define TRACE_NUM_ERR  3
+
+/* Try 40 hops maximum and send only 1 packet */
+#define TCPTRACEROUTE_OPTIONS "-q 2 -m 40"
+
+typedef struct _traceroute_data traceroute_data;
+typedef struct _trace_source_data trace_source_data;
+
+struct _traceroute_data {
+	gint hop_count;
+	gchar hostname[128];
+	gchar ip[128];
+	gchar rtt1[128];
+	gchar rtt2[128];
+};
+
+struct _trace_source_data {
+	gchar device[64];
+	gchar ip_src[128];
+	gint port;
+	gchar ip_dst[128];
+	gint  hops;
+};
+
+enum {
+	TRACE_HOP,
+	TRACE_HOSTNAME,
+	TRACE_IP,
+	TRACE_RTT1,
+	TRACE_RTT2,
+	TRACE_NUM_COLUMNS
+};
+
+void traceroute_do (Netinfo *netinfo);
+void traceroute_stop (Netinfo *netinfo);
+void traceroute_foreach (Netinfo * netinfo, gchar * line, gssize len, gpointer user_data);
+void traceroute_foreach_with_tree (Netinfo * netinfo, gchar * line, gint len, gpointer user_data);
+void traceroute_copy_to_clipboard (Netinfo * netinfo, gpointer user_data);
diff -pruN 2.30.0-1/.pc/04_menu_change.patch/src/gnome-nettool.desktop.in.in 2.30.0-1ubuntu2/.pc/04_menu_change.patch/src/gnome-nettool.desktop.in.in
--- 2.30.0-1/.pc/04_menu_change.patch/src/gnome-nettool.desktop.in.in	1970-01-01 01:00:00.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/04_menu_change.patch/src/gnome-nettool.desktop.in.in	2010-03-30 05:11:19.000000000 +0100
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Encoding=UTF-8
+_Name=Network Tools
+_Comment=View information about your network
+Exec=gnome-nettool
+Icon=gnome-nettool
+Terminal=false
+Type=Application
+Categories=System;Utility;GNOME;GTK;
+StartupNotify=true
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-nettool
+X-GNOME-Bugzilla-Component=general
+X-GNOME-Bugzilla-Version= PACKAGE_VERSION@
diff -pruN 2.30.0-1/.pc/applied-patches 2.30.0-1ubuntu2/.pc/applied-patches
--- 2.30.0-1/.pc/applied-patches	2010-06-07 08:42:13.000000000 +0100
+++ 2.30.0-1ubuntu2/.pc/applied-patches	2010-06-07 08:40:18.000000000 +0100
@@ -1 +1,4 @@
 01_network-manager.patch
+02_lpi.patch
+03_use_tracepath.patch
+04_menu_change.patch
diff -pruN 2.30.0-1/src/gnome-nettool.desktop.in.in 2.30.0-1ubuntu2/src/gnome-nettool.desktop.in.in
--- 2.30.0-1/src/gnome-nettool.desktop.in.in	2010-03-30 05:11:19.000000000 +0100
+++ 2.30.0-1ubuntu2/src/gnome-nettool.desktop.in.in	2010-06-07 08:40:17.000000000 +0100
@@ -1,12 +1,11 @@
 [Desktop Entry]
-Encoding=UTF-8
 _Name=Network Tools
 _Comment=View information about your network
 Exec=gnome-nettool
 Icon=gnome-nettool
 Terminal=false
 Type=Application
-Categories=System;Utility;GNOME;GTK;
+Categories=System;Settings;GNOME;GTK;
 StartupNotify=true
 X-GNOME-Bugzilla-Bugzilla=GNOME
 X-GNOME-Bugzilla-Product=gnome-nettool
diff -pruN 2.30.0-1/src/gnome-nettool.ui 2.30.0-1ubuntu2/src/gnome-nettool.ui
--- 2.30.0-1/src/gnome-nettool.ui	2010-03-30 05:11:19.000000000 +0100
+++ 2.30.0-1ubuntu2/src/gnome-nettool.ui	2010-06-07 08:40:17.000000000 +0100
@@ -158,6 +158,7 @@
         </menu>
         <menu action="help1">
           <menuitem action="m_help_contents"/>
+          <placeholder name="LaunchpadItems"/>
           <menuitem action="m_about"/>
         </menu>
       </menubar>
diff -pruN 2.30.0-1/src/main.c 2.30.0-1ubuntu2/src/main.c
--- 2.30.0-1/src/main.c	2010-03-30 05:11:19.000000000 +0100
+++ 2.30.0-1ubuntu2/src/main.c	2010-06-07 08:40:17.000000000 +0100
@@ -24,6 +24,7 @@
 
 #include <string.h>
 #include <glib/gi18n.h>
+#include <launchpad-integration.h>
 
 #include <glibtop.h>
 
@@ -57,6 +58,7 @@ main (int argc, char *argv[])
 	GtkBuilder *builder;
 	GtkWidget *notebook;
 	GtkWidget *statusbar;
+	GtkUIManager *ui;
 	const gchar *dialog = DATADIR "gnome-nettool.ui";
 	Netinfo *pinger;
 	Netinfo *tracer;
@@ -218,6 +220,9 @@ main (int argc, char *argv[])
 	g_object_set_data (G_OBJECT (notebook), "whois", whois);
 	
 	menu_beep = GTK_WIDGET (gtk_builder_get_object (builder, "m_beep"));
+	ui = GTK_UI_MANAGER (gtk_builder_get_object (builder, "uimanager1"));
+	g_object_ref (ui);
+	launchpad_integration_add_ui (ui, "/ui/menubar1/help1/LaunchpadItems");
 
 	g_signal_connect (G_OBJECT (menu_beep), "activate",
 			  G_CALLBACK (on_beep_activate),
diff -pruN 2.30.0-1/src/traceroute.c 2.30.0-1ubuntu2/src/traceroute.c
--- 2.30.0-1/src/traceroute.c	2010-03-30 05:11:19.000000000 +0100
+++ 2.30.0-1ubuntu2/src/traceroute.c	2010-06-07 08:40:17.000000000 +0100
@@ -71,20 +71,16 @@ traceroute_do (Netinfo * netinfo)
 	switch (netinfo_get_ip_version (netinfo))
 	{
 	case IPV4:
-		program = util_find_program_in_path ("tcptraceroute", NULL);
+
 #ifdef DEBUG
-		g_print ("tcptraceroute: %s\n", program);
+		g_print ("tracepath: %s\n", program);
 #endif /* DEBUG */
-		if (program != NULL) {
-			program_name = g_strdup ("tcptraceroute");
-		} else {
-			program = util_find_program_dialog ("traceroute", parent);
-			program_name = g_strdup ("traceroute");
-		}
+		program = util_find_program_dialog ("tracepath", parent);
+		program_name = g_strdup ("tracepath");
 		break;
 	case IPV6:
-		program = util_find_program_in_path ("traceroute6", NULL);
-		program_name = g_strdup ("traceroute6");
+		program = util_find_program_in_path ("tracepath6", NULL);
+		program_name = g_strdup ("tracepath6");
 		break;
 	default:
 		program = NULL;
@@ -93,8 +89,7 @@ traceroute_do (Netinfo * netinfo)
 
 	if (program != NULL) {
 		command =
-                  g_strdup_printf ("%s %s %s %s", program, program_name,
-                                   TCPTRACEROUTE_OPTIONS, host);
+                  g_strdup_printf ("%s %s %s", program, program_name, host);
 	
 		netinfo->command_line = g_strsplit (command, " ", -1);
 	
@@ -217,7 +212,7 @@ strip_line (gchar * line, traceroute_dat
 	
 	count = sscanf (line, TRACE_FORMAT,
 			&(data)->hop_count, data->hostname, data->ip,
-			data->rtt1, data->rtt2/*, data->rtt3*/);
+			data->rtt1/*, data->rtt2, data->rtt3*/);
 	
 	if (count == TRACE_NUM_ARGS) {
 		return count;
@@ -225,7 +220,7 @@ strip_line (gchar * line, traceroute_dat
 
 	if (count == TRACE_NUM_ERR) {
 		g_sprintf (data->rtt1, "*");
-		g_sprintf (data->rtt2, "*");
+		//g_sprintf (data->rtt2, "*");
 		return TRACE_NUM_ARGS;
 	}
 	/* The last line is different, because it has a 
@@ -235,14 +230,14 @@ strip_line (gchar * line, traceroute_dat
 
 	count = sscanf (line, TRACE_FORMAT_OPEN,
 			&(data)->hop_count, data->hostname, data->ip,
-			data->rtt1, data->rtt2/*, data->rtt3*/);
+			data->rtt1/*, data->rtt2, data->rtt3*/);
 
 	if (count == TRACE_NUM_ARGS) {
 		return count;
 	} else {
 		count = sscanf (line, TRACE_FORMAT_CLOSE,
 				&(data)->hop_count, data->hostname,
-				data->ip, data->rtt1, data->rtt2 /*,
+				data->ip, data->rtt1/*, data->rtt2,
 				data->rtt3*/);
 	}
 
@@ -301,7 +296,7 @@ traceroute_create_model (GtkTreeView *wi
 	    gtk_tree_view_column_new_with_attributes
 	    (_("Time 2"), renderer, "text", TRACE_RTT2, NULL);
 	g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL);
-	gtk_tree_view_append_column (widget, column);
+	//gtk_tree_view_append_column (widget, column);
 
 	model = GTK_TREE_MODEL (gtk_list_store_new
 				(TRACE_NUM_COLUMNS,
diff -pruN 2.30.0-1/src/traceroute.h 2.30.0-1ubuntu2/src/traceroute.h
--- 2.30.0-1/src/traceroute.h	2010-03-30 05:11:19.000000000 +0100
+++ 2.30.0-1ubuntu2/src/traceroute.h	2010-06-07 08:40:17.000000000 +0100
@@ -23,12 +23,12 @@
 
 #include "nettool.h"
 
-#define TRACE_FORMAT "%d %s %s %s ms %s ms"
+#define TRACE_FORMAT "%d: %s %s %sms"
 #define TRACE_FORMAT_CLOSE "%d %s %s [closed] %s ms %s ms"
 #define TRACE_FORMAT_OPEN "%d %s %s [open] %s ms %s ms"
 #define TRACE_SELECT_DEVICE "Selected device %s address %s port %d for outgoing packets"
 #define TRACE_TRACE_PATH "Tracing the path to %s (146.83.195.14) on TCP port 80 %d hops max"
-#define TRACE_NUM_ARGS 5
+#define TRACE_NUM_ARGS 4
 #define TRACE_NUM_ERR  3
 
 /* Try 40 hops maximum and send only 1 packet */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]