From owner-freebsd-sparc64@FreeBSD.ORG Thu Feb 7 10:55:18 2008 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0567B16A41A; Thu, 7 Feb 2008 10:55:18 +0000 (UTC) (envelope-from yuri.pankov@gmail.com) Received: from sparkie.irbis.net.ru (sparkie.irbis.net.ru [IPv6:2001:470:1f09:aa:203:baff:fe18:f4c1]) by mx1.freebsd.org (Postfix) with ESMTP id 5CD3413C459; Thu, 7 Feb 2008 10:55:17 +0000 (UTC) (envelope-from yuri.pankov@gmail.com) Received: from sparkie.irbis.net.ru (yuri@localhost [IPv6:::1]) by sparkie.irbis.net.ru (8.14.2/8.14.2) with ESMTP id m17AofnU054373; Thu, 7 Feb 2008 13:50:41 +0300 (MSK) (envelope-from yuri.pankov@gmail.com) Received: (from yuri@localhost) by sparkie.irbis.net.ru (8.14.2/8.14.2/Submit) id m17AofG8054372; Thu, 7 Feb 2008 13:50:41 +0300 (MSK) (envelope-from yuri.pankov@gmail.com) X-Authentication-Warning: sparkie.irbis.net.ru: yuri set sender to yuri.pankov@gmail.com using -f Date: Thu, 7 Feb 2008 13:50:41 +0300 From: Yuri Pankov To: freebsd-sparc64@freebsd.org, freebsd-net@freebsd.org Message-ID: <20080207105041.GA54305@sparkie.irbis.net.ru> References: <20080201133020.GA83907@sparkie.irbis.net.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="RnlQjJ0d97Da+TV1" Content-Disposition: inline In-Reply-To: <20080201133020.GA83907@sparkie.irbis.net.ru> User-Agent: Mutt/1.5.17 (2007-11-01) X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.0 (sparkie.irbis.net.ru [IPv6:::1]); Thu, 07 Feb 2008 13:50:41 +0300 (MSK) Cc: Subject: Re: Confusing `netstat -rn` output on 7.0-RC1 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Feb 2008 10:55:18 -0000 --RnlQjJ0d97Da+TV1 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline (sorry for cross-posting) On Fri, Feb 01, 2008 at 04:30:21PM +0300, Yuri Pankov wrote: > Hi, > > `netstat -rn` on 7.0-RC1/sparc64 shows 0.0.0.0 instead of actual network > numbers, while those networks are accessible. > > > ifconfig > dc0: flags=8843 metric 0 mtu 1500 > options=8 > ether 00:03:ba:14:e8:65 > inet 192.168.0.252 netmask 0xffffff00 broadcast 192.168.0.255 > media: Ethernet autoselect (100baseTX ) > status: active > dc1: flags=8843 metric 0 mtu 1500 > options=8 > ether 00:03:ba:14:e8:65 > inet 10.106.0.3 netmask 0xffffff00 broadcast 10.106.0.255 > media: Ethernet autoselect (100baseTX ) > status: active > lo0: flags=8049 metric 0 mtu 16384 > inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 > inet6 ::1 prefixlen 128 > inet 127.0.0.1 netmask 0xff000000 > vlan0: flags=8843 metric 0 mtu 1500 > ether 00:03:ba:14:e8:65 > inet 10.7.12.254 netmask 0xffffff00 broadcast 10.7.12.255 > media: Ethernet autoselect (100baseTX ) > status: active > vlan: 301 parent interface: dc1 > > > netstat -rn > Routing tables > > Internet: > Destination Gateway Flags Refs Use Netif Expire > 0.0.0.0/24 link#4 UC 0 0 vlan0 > 0.0.0.0/24 link#2 UC 0 0 dc1 > 127.0.0.1 127.0.0.1 UH 0 0 lo0 > 0.0.0.0/24 link#1 UC 0 0 dc0 > 192.168.0.7 00:16:e0:25:c5:e1 UHLW 1 0 dc0 878 > > > Is it a known problem (or, may be, PEBKAC case)? > > > TIA, > Yuri Attached patch fixes the problem for me. Yuri --RnlQjJ0d97Da+TV1 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="netstat.diff" diff -ruN /usr/src/usr.bin/netstat/netstat.h /home/yuri/tmp/netstat/netstat.h --- /usr/src/usr.bin/netstat/netstat.h 2007-07-16 21:15:55.000000000 +0400 +++ /home/yuri/tmp/netstat/netstat.h 2008-02-07 13:37:04.000000000 +0300 @@ -124,7 +124,7 @@ void upHex(char *); char *routename(u_long); -char *netname(u_long, u_long); +char *netname(in_addr_t, u_long); char *atalk_print(struct sockaddr *, int); char *atalk_print2(struct sockaddr *, struct sockaddr *, int); char *ipx_print(struct sockaddr *); diff -ruN /usr/src/usr.bin/netstat/route.c /home/yuri/tmp/netstat/route.c --- /usr/src/usr.bin/netstat/route.c 2007-11-13 01:43:29.000000000 +0300 +++ /home/yuri/tmp/netstat/route.c 2008-02-07 13:43:42.000000000 +0300 @@ -840,7 +840,7 @@ * The address is assumed to be that of a net or subnet, not a host. */ char * -netname(u_long in, u_long mask) +netname(in_addr_t in, u_long mask) { char *cp = 0; static char line[MAXHOSTNAMELEN]; @@ -859,7 +859,7 @@ strncpy(line, cp, sizeof(line) - 1); line[sizeof(line) - 1] = '\0'; } else { - inet_ntop(AF_INET, (char *)&in, line, sizeof(line) - 1); + inet_ntop(AF_INET, &in, line, sizeof(line) - 1); } domask(line + strlen(line), i, mask); return (line); --RnlQjJ0d97Da+TV1--