Your message dated Mon, 16 Mar 2009 01:24:03 -0300
with message-id <[email protected]>
and subject line Already solved
has caused the Debian Bug report #222324,
regarding net-tools: add a -W (wide) flag to netstat
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
222324: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=222324
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: net-tools
Version: 1.60-19
Severity: wishlist

[email protected] submitted this patch to add a -W (wide) flag to netstat
just like FreeBSD.  otherwise there is no way to get the full hostname
from netstat for local/remote hostnames.

diff --git a/man/en_US/netstat.8 b/man/en_US/netstat.8
index e6be46b..9a3ff44 100644
--- a/man/en_US/netstat.8
+++ b/man/en_US/netstat.8
@@ -24,6 +24,7 @@ netstat \- Print network connections, routing tables, 
interface statistics, masq
 .RB [ \-\-all | \-a ]
 .RB [ \-\-numeric | \-n ]
 .RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
+.RB [ \-\-wide | \-W]
 .RB [ \-\-symbolic | \-N ]
 .RB [ \-\-extend | \-e  [ \-\-extend | \-e] ]
 .RB [ \-\-timers | \-o ]
@@ -130,6 +131,8 @@ host or user names.
 .SS "\-\-numeric-users"
 shows numerical user IDs but does not affect the resolution of host or
 port names.
+.SS "\-\-wide , \-W"
+Don't truncate host names.
 
 .SS "\-\-protocol=\fIfamily \fR, \fB\-A"
 Specifies the address families (perhaps better described as low level
diff --git a/netstat.c b/netstat.c
index 843c06b..78bf551 100644
--- a/netstat.c
+++ b/netstat.c
@@ -150,6 +150,7 @@ int flag_exp = 1;
 int flag_prg = 0;
 int flag_arg = 0;
 int flag_ver = 0;
+int flag_wid = 0;
 
 FILE *procinfo;
 
@@ -780,7 +781,7 @@ static void tcp_do_one(int lnr, const char *line)
                 get_sname(htons(local_port), "tcp",
                           flag_not & FLAG_NUM_PORT));
 
-       if ((strlen(local_addr) + strlen(buffer)) > 22)
+       if (!flag_wid && ((strlen(local_addr) + strlen(buffer)) > 22))
            local_addr[22 - strlen(buffer)] = '\0';
 
        strcat(local_addr, ":");
@@ -789,7 +790,7 @@ static void tcp_do_one(int lnr, const char *line)
        snprintf(buffer, sizeof(buffer), "%s",
                 get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
 
-       if ((strlen(rem_addr) + strlen(buffer)) > 22)
+       if (!flag_wid && ((strlen(rem_addr) + strlen(buffer)) > 22))
            rem_addr[22 - strlen(buffer)] = '\0';
 
        strcat(rem_addr, ":");
@@ -935,7 +936,7 @@ static void udp_do_one(int lnr, const char *line)
        snprintf(buffer, sizeof(buffer), "%s",
                 get_sname(htons(local_port), "udp",
                           flag_not & FLAG_NUM_PORT));
-       if ((strlen(local_addr) + strlen(buffer)) > 22)
+       if (!flag_wid && ((strlen(local_addr) + strlen(buffer)) > 22))
            local_addr[22 - strlen(buffer)] = '\0';
        strcat(local_addr, ":");
        strncat(local_addr, buffer, sizeof(local_addr));
@@ -945,7 +946,7 @@ static void udp_do_one(int lnr, const char *line)
                 get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
         safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, 
                                          flag_not & FLAG_NUM_HOST), 
sizeof(rem_addr));
-       if ((strlen(rem_addr) + strlen(buffer)) > 22)
+       if (!flag_wid && ((strlen(rem_addr) + strlen(buffer)) > 22))
            rem_addr[22 - strlen(buffer)] = '\0';
        strcat(rem_addr, ":");
        strncat(rem_addr, buffer, sizeof(rem_addr));
@@ -1059,7 +1060,7 @@ static void raw_do_one(int lnr, const char *line)
                           flag_not & FLAG_NUM_PORT));
         safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, 
                                            flag_not & FLAG_NUM_HOST), 
sizeof(local_addr));
-       if ((strlen(local_addr) + strlen(buffer)) > 22)
+       if (!flag_wid && ((strlen(local_addr) + strlen(buffer)) > 22))
            local_addr[22 - strlen(buffer)] = '\0';
        strcat(local_addr, ":");
        strncat(local_addr, buffer, sizeof(local_addr));
@@ -1069,7 +1070,7 @@ static void raw_do_one(int lnr, const char *line)
                 get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
         safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, 
                                          flag_not & FLAG_NUM_HOST), 
sizeof(rem_addr));
-       if ((strlen(rem_addr) + strlen(buffer)) > 22)
+           if (!flag_wid && ((strlen(rem_addr) + strlen(buffer)) > 22))
            rem_addr[22 - strlen(buffer)] = '\0';
        strcat(rem_addr, ":");
        strncat(rem_addr, buffer, sizeof(rem_addr));
@@ -1531,6 +1532,7 @@ static void usage(void)
     fprintf(stderr, _("        --numeric-hosts          don't resolve host 
names\n"));
     fprintf(stderr, _("        --numeric-ports          don't resolve port 
names\n"));
     fprintf(stderr, _("        --numeric-users          don't resolve user 
names\n"));
+    fprintf(stderr, _("        -W, --wide               don't truncate host 
names\n"));
     fprintf(stderr, _("        -N, --symbolic           resolve hardware 
names\n"));
     fprintf(stderr, _("        -e, --extend             display other/more 
information\n"));
     fprintf(stderr, _("        -p, --programs           display PID/Program 
name for sockets\n"));
@@ -1580,6 +1582,7 @@ int main
        {"numeric-hosts", 0, 0, '!'},
        {"numeric-ports", 0, 0, '@'},
        {"numeric-users", 0, 0, '#'},
+       {"wide", 0, 0, 'W'},
        {"symbolic", 0, 0, 'N'},
        {"cache", 0, 0, 'C'},
        {"fib", 0, 0, 'F'},
@@ -1595,7 +1598,7 @@ int main
     getroute_init();           /* Set up AF routing support */
 
     afname[0] = '\0';
-    while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl64", 
longopts, &lop)) != EOF)
+    while ((i = getopt_long(argc, argv, "MCFA:acdegphinWNorstuVv?wxl64", 
longopts, &lop)) != EOF)
        switch (i) {
        case -1:
            break;
@@ -1651,6 +1654,9 @@ int main
        case '#':
            flag_not |= FLAG_NUM_USER;
            break;
+       case 'W':
+           flag_wid++;
+           break;
        case 'N':
            flag_not |= FLAG_SYM;
            break;
-- 
1.5.5


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.24.4 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages net-tools depends on:
ii  libc6                         2.7-8      GNU C Library: Shared libraries

net-tools recommends no packages.

-- no debconf information



--- End Message ---
--- Begin Message ---
Hi,

I understand this has already been resolved in the 1.60-22 upload:

$ netstat -e -W|head
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address
State       User       Inode
tcp        0      0 abraxas.casandra.mine.nu:35326
kc-in-f125.google.com:5223 ESTABLISHED martin     16917655


-- 
Martín Ferrari


--- End Message ---

Reply via email to