summaryrefslogtreecommitdiff
path: root/net/gnome-nettool/files/patch-gnome-netinfo_netstat.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/gnome-nettool/files/patch-gnome-netinfo_netstat.c')
-rw-r--r--net/gnome-nettool/files/patch-gnome-netinfo_netstat.c136
1 files changed, 136 insertions, 0 deletions
diff --git a/net/gnome-nettool/files/patch-gnome-netinfo_netstat.c b/net/gnome-nettool/files/patch-gnome-netinfo_netstat.c
new file mode 100644
index 000000000000..4f0a7240ba9c
--- /dev/null
+++ b/net/gnome-nettool/files/patch-gnome-netinfo_netstat.c
@@ -0,0 +1,136 @@
+--- gnome-netinfo/netstat.c.orig Mon Nov 24 18:29:43 2003
++++ gnome-netinfo/netstat.c Sun Dec 7 01:34:51 2003
+@@ -113,7 +113,11 @@
+ }
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (netinfo->protocol))) {
+ /* Only works for Solaris */
++#ifdef __FreeBSD__
++ option = g_strdup ("-a -f inet -ln");
++#else
+ option = g_strdup ("-A inet -ln");
++#endif
+ }
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (netinfo->multicast))) {
+ /* It works for Solaris and Linux */
+@@ -266,7 +270,11 @@
+ g_return_if_fail (line != NULL);
+
+ count = strip_protocol_line (line, &data);
++#ifdef __FreeBSD__
++ if (count == 5 || count == 6 || count == 9 || count == 10) {
++#else
+ if (count == 7 || count == 8) {
++#endif
+ #ifdef DEBUG
+ g_print ("%s\t%s:%s\t%s\n", data.protocol,
+ data.ip_src, data.port_src, data.state);
+@@ -331,11 +339,42 @@
+ strip_protocol_line (gchar * line, netstat_protocol_data *data)
+ {
+ gint count = 0;
++#ifdef __FreeBSD__
++ gint a1, a2, a3, a4;
++ gchar s9[30];
++#else
+ gchar s6[30], s7[30];
++#endif
+ gint n2, n3;
+
+ line = g_strdelimit (line, ":", ' ');
+
++#ifdef __FreeBSD__
++ count = sscanf (line, NETSTAT_PROTOCOL_FORMAT,
++ data->protocol, &n2, &n3,
++ &a1, &a2, &a3, &a4, data->port_src,
++ s9, data->state);
++ g_snprintf (data->ip_src, 30, "%d.%d.%d.%d", a1, a2, a3, a4);
++
++ if (count == 9) {
++ bzero (&(data)->state, 30);
++ }
++
++ if (count == 3) {
++ /* Handle the *.* entries. */
++ gchar s5[30];
++ count = sscanf (line, ALT_NETSTAT_PROTOCOL_FORMAT,
++ data->protocol, &n2, &n3,
++ data->port_src, s5,
++ data->state);
++ g_snprintf (data->ip_src, 30, "*");
++
++ if (count == 5) {
++ bzero (&(data)->state, 30);
++ }
++ }
++
++#else
+ count = sscanf (line, NETSTAT_PROTOCOL_FORMAT,
+ data->protocol, &n2, &n3,
+ data->ip_src, data->port_src,
+@@ -344,6 +383,7 @@
+ if (count == 7) {
+ bzero (&(data)->state, 30);
+ }
++#endif
+
+ return count;
+ }
+@@ -405,7 +445,11 @@
+ g_return_if_fail (line != NULL);
+
+ count = strip_route_line (line, &data);
++#ifdef __FreeBSD__
++ if (count == 6) {
++#else
+ if (count == 8) {
++#endif
+ #ifdef DEBUG
+ g_print ("%s\t%s:%s\t%d\t%s\n", data.destination,
+ data.gateway, data.netmask, data.metric,
+@@ -474,11 +518,19 @@
+ gchar flags[30];
+ gint ref, use;
+
++#ifdef __FreeBSD__
++ count = sscanf (line, NETSTAT_ROUTE_FORMAT,
++ data->destination,
++ data->gateway, flags,
++ &ref, &use, data->iface);
++#else
++
+ count = sscanf (line, NETSTAT_ROUTE_FORMAT,
+ data->destination,
+ data->gateway, data->netmask,
+ flags, &(data)->metric, &ref, &use,
+ data->iface);
++#endif
+
+ return count;
+ }
+@@ -493,7 +545,11 @@
+ renderer = gtk_cell_renderer_text_new ();
+ column =
+ gtk_tree_view_column_new_with_attributes
++#ifdef __FreeBSD__
++ (_("Destination/Prefix"), renderer, "text", 0, NULL);
++#else
+ (_("Destination"), renderer, "text", 0, NULL);
++#endif
+ gtk_tree_view_append_column (widget, column);
+
+ renderer = gtk_cell_renderer_text_new ();
+@@ -503,12 +559,14 @@
+ gtk_tree_view_column_set_alignment (column, 0.5);
+ gtk_tree_view_append_column (widget, column);
+
++#ifndef __FreeBSD__
+ renderer = gtk_cell_renderer_text_new ();
+ column =
+ gtk_tree_view_column_new_with_attributes
+ (_("Netmask"), renderer, "text", 2, NULL);
+
+ gtk_tree_view_append_column (widget, column);
++#endif
+
+ renderer = gtk_cell_renderer_text_new ();
+ column =