aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-06-17 13:58:59 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-06-17 13:58:59 +0000
commit770d5f439f9590a8e2b9a7fb8ba14374037b4a8e (patch)
tree456b8e8c0988b6cb15863ffe5f8180c6624e3f1d /testing
parent03564c306b51a96133c1291969898abebfde6e6c (diff)
downloadaports-770d5f439f9590a8e2b9a7fb8ba14374037b4a8e.tar.bz2
aports-770d5f439f9590a8e2b9a7fb8ba14374037b4a8e.tar.xz
main/net-tools: moved from testing
we are mostly interested in mii-tool
Diffstat (limited to 'testing')
-rw-r--r--testing/net-tools/APKBUILD91
-rw-r--r--testing/net-tools/git.patch25400
2 files changed, 0 insertions, 25491 deletions
diff --git a/testing/net-tools/APKBUILD b/testing/net-tools/APKBUILD
deleted file mode 100644
index 8779357dde..0000000000
--- a/testing/net-tools/APKBUILD
+++ /dev/null
@@ -1,91 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=net-tools
-pkgver=1.60_git20130615
-_ver=${pkgver%_git*}
-pkgrel=0
-pkgdesc="Linux networking base tools"
-url="https://sourceforge.net/projects/net-tools/"
-arch="all"
-license="GPLv2"
-depends="mii-tool"
-depends_dev=""
-makedepends="$depends_dev bash"
-install=""
-subpackages="$pkgname-doc mii-tool:mii_tool"
-source="https://downloads.sourceforge.net/project/net-tools/net-tools-$_ver.tar.bz2
- git.patch"
-
-_builddir="$srcdir"/net-tools-$_ver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
- cat > config.make <<EOF
-# I18N=0
-HAVE_AFUNIX=1
-HAVE_AFINET=1
-HAVE_AFINET6=1
-# HAVE_AFIPX=0
-# HAVE_AFATALK=0
-# HAVE_AFAX25=0
-HAVE_AFNETROM=1
-# HAVE_AFROSE=0
-# HAVE_AFX25=0
-# HAVE_AFECONET=0
-# HAVE_AFDECnet=0
-# HAVE_AFASH=0
-# HAVE_AFBLUETOOTH=0
-HAVE_HWETHER=1
-# HAVE_HWARC=0
-HAVE_HWSLIP=1
-HAVE_HWPPP=1
-HAVE_HWTUNNEL=1
-# HAVE_HWSTRIP=0
-# HAVE_HWTR=0
-# HAVE_HWAX25=0
-# HAVE_HWROSE=0
-HAVE_HWNETROM=1
-# HAVE_HWX25=0
-# HAVE_HWFR=0
-# HAVE_HWSIT=0
-# HAVE_HWFDDI=0
-# HAVE_HWHIPPI=0
-# HAVE_HWASH=0
-# HAVE_HWHDLCLAPB=0
-# HAVE_HWIRDA=0
-# HAVE_HWEC=0
-# HAVE_HWEUI64=0
-# HAVE_HWIB=0
-HAVE_FW_MASQUERADE=1
-HAVE_IP_TOOLS=1
-HAVE_MII=1
-EOF
- sed -n -e 's/^\(HAVE.*\)=\(.*\)/#define \1 \2/p' config.make > config.h
-}
-
-build() {
- cd "$_builddir"
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
-}
-
-mii_tool() {
- pkgdesc="media-independent interface (MII) tool"
- mkdir -p "$subpkgdir"/sbin
- mv "$pkgdir"/sbin/mii-tool "$subpkgdir"/sbin/
-}
-
-md5sums="888774accab40217dde927e21979c165 net-tools-1.60.tar.bz2
-6c2b55f5258d23477fa0d9261bd363a5 git.patch"
-sha256sums="7ae4dd6d44d6715f18e10559ffd270511b6e55a8900ca54fbebafe0ae6cf7d7b net-tools-1.60.tar.bz2
-3d27ff819c909c97c515837971f4cdb76744e0a20adefd563b1840cbeafcf789 git.patch"
-sha512sums="8e1ae9bca726ad7d795a06c58388f9e11c1d617d94eebb9ed18bd11e5f34c6541e1ffe631706c407996db86e78df6e5cf1968a2d90b242b473596fda3b6d1eae net-tools-1.60.tar.bz2
-95865c5be07585cc9994a1142a6585f482fdcc8f56a59fb87e71e8e947471af5ac42e99c6bccfa34dbc378449c9fcaad315815636879800950c97a6889e69d4a git.patch"
diff --git a/testing/net-tools/git.patch b/testing/net-tools/git.patch
deleted file mode 100644
index 920c4fa05c..0000000000
--- a/testing/net-tools/git.patch
+++ /dev/null
@@ -1,25400 +0,0 @@
-new file mode 100644
-index 0000000..9184162
---- /dev/null
-+++ b/.gitignore
-@@ -0,0 +1,36 @@
-+*.o
-+
-+*.diff
-+*.patch
-+*.rej
-+*.orig
-+
-+.gdb_history
-+.gdbinit
-+core
-+*.gdb
-+
-+/config.h
-+/config.make
-+/config.status
-+
-+/net-tools-*.tar*
-+
-+/lib/libnet-tools.a
-+
-+/po/*.mo
-+
-+/version.h
-+
-+/arp
-+/hostname
-+/ifconfig
-+/ipmaddr
-+/iptunnel
-+/mii-tool
-+/nameif
-+/netstat
-+/plipconfig
-+/rarp
-+/route
-+/slattach
-diff --git a/Makefile b/Makefile
-index 8fcc55c..0020202 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,14 +5,10 @@
- # NET-3 Networking Distribution for the LINUX operating
- # system.
- #
--# Version: 2001-02-13
--#
- # Author: Bernd Eckenfels <net-tools@lina.inka.de>
- # Copyright 1995-1996 Bernd Eckenfels, Germany
- #
--# URLs: ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/
--# ftp://ftp.linux.org.uk/pub/linux/Networking/PROGRAMS/NetTools/
--# http://www.inka.de/sites/lina/linux/NetTools/index_en.html
-+# URLs: http://net-tools.sourceforge.net/
- #
- # Based on: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- # Copyright 1988-1993 MicroWalt Corporation
-@@ -22,55 +18,14 @@
- # Alan Cox <A.Cox@swansea.ac.uk>
- # Copyright 1993-1994 Swansea University Computer Society
- #
--# Be careful!
-+# Be careful!
- # This Makefile doesn't describe complete dependencies for all include files.
--# If you change include files you might need to do make clean.
--#
--# {1.20} Bernd Eckenfels: Even more modifications for the new
--# package layout
--# {1.21} Bernd Eckenfels: Check if config.in is newer than
--# config.status
--# {1.22} Bernd Eckenfels: Include ypdomainname and nisdomainame
--#
--# 1.3.50-BETA6 private Release
--#
--#960125 {1.23} Bernd Eckenfels: Peter Tobias' rewrite for
--# makefile-based installation
--# 1.3.50-BETA6a private Release
--#
--#960201 {1.24} Bernd Eckenfels: net-features.h added
--#
--#960201 1.3.50-BETA6b private Release
--#
--#960203 1.3.50-BETA6c private Release
--#
--#960204 1.3.50-BETA6d private Release
--#
--#960204 {1.25} Bernd Eckenfels: DISTRIBUTION added
--#
--#960205 1.3.50-BETA6e private Release
--#
--#960206 {1.26} Bernd Eckenfels: afrt.o removed (cleaner solution)
--#
--#960215 1.3.50-BETA6f Release
--#
--#960216 {1.30} Bernd Eckenfels: net-lib support
--#960322 {1.31} Bernd Eckenfels: moveable netlib, TOPDIR
--#960424 {1.32} Bernd Eckenfels: included the URLs in the Comment
--#
--#960514 1.31-alpha release
--#
--#960518 {1.33} Bernd Eckenfels: -I/usr/src/linux/include comment added
--#
--# 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.
-+# If you change include files you might need to do make clean.
- #
-
--# set the base of the Installation
-+# set the base of the Installation
- # BASEDIR = /mnt
-+BASEDIR ?= $(DESTDIR)
-
- # path to the net-lib support library. Default: lib
- NET_LIB_PATH = lib
-@@ -88,20 +43,26 @@ endif
-
- # Compiler and Linker Options
- # You may need to uncomment and edit these if you are using libc5 and IPv6.
--COPTS = -D_GNU_SOURCE -O2 -Wall -g # -I/usr/inet6/include
--ifeq ($(origin LOPTS), undefined)
--LOPTS =
--endif
-+CFLAGS ?= -O2 -g
-+CFLAGS += -Wall
-+CFLAGS += -fno-strict-aliasing # code needs a lot of work before strict aliasing is safe
-+CPPFLAGS += -D_GNU_SOURCE
- RESLIB = # -L/usr/inet6/lib -linet6
-
- ifeq ($(HAVE_AFDECnet),1)
- DNLIB = -ldnet
- endif
-
-+ifeq ($(origin CC), undefined)
-+CC = gcc
-+endif
-+LD = $(CC)
-+PKG_CONFIG ?= pkg-config
-+
- # -------- end of user definitions --------
-
--MAINTAINER = Philip.Blundell@pobox.com
--RELEASE = 1.60
-+MAINTAINER = net-tools-devel@lists.sourceforge.net
-+RELEASE = 2.10-alpha
-
- .EXPORT_ALL_VARIABLES:
-
-@@ -113,22 +74,22 @@ endif
-
- NET_LIB = $(NET_LIB_PATH)/lib$(NET_LIB_NAME).a
-
--CFLAGS = $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH)
--LDFLAGS = $(LOPTS) -L$(NET_LIB_PATH)
-+ifeq ($(HAVE_SELINUX),1)
-+SE_PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags libselinux)
-+SE_PC_LIBS := $(shell $(PKG_CONFIG) --libs libselinux || echo -lselinux)
-+SELIB = $(SE_PC_LIBS)
-+CPPFLAGS += $(SE_PC_CFLAGS)
-+endif
-
--SUBDIRS = man/ $(NET_LIB_PATH)/
-+CPPFLAGS += -I. -I$(TOPDIR)/include -I$(NET_LIB_PATH)
-+LDFLAGS += -L$(NET_LIB_PATH)
-
--ifeq ($(origin CC), undefined)
--CC = gcc
--endif
--LD = $(CC)
-+SUBDIRS = man/ $(NET_LIB_PATH)/
-
- NLIB = -l$(NET_LIB_NAME)
-
--MDEFINES = COPTS='$(COPTS)' LOPTS='$(LOPTS)' TOPDIR='$(TOPDIR)'
--
--%.o: %.c config.h version.h intl.h net-features.h $<
-- $(CC) $(CFLAGS) -c $<
-+%.o: %.c config.h version.h intl.h lib/net-features.h $<
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
-
- all: config.h version.h subdirs $(PROGS)
-
-@@ -154,12 +115,21 @@ clobber: clean
- @for i in $(SUBDIRS); do (cd $$i && $(MAKE) clobber) ; done
-
-
--dist: clobber
-- @echo Creating net-tools-$(RELEASE) in ..
-- @tar -cvz -f ../net-tools-$(RELEASE).tar.gz -C .. net-tools
-+dist:
-+ rm -rf net-tools-$(RELEASE)
-+ git archive --prefix=net-tools-$(RELEASE)/ HEAD | tar xf -
-+ $(MAKE) -C net-tools-$(RELEASE)/po $@
-+ tar cf - net-tools-$(RELEASE)/ | xz > net-tools-$(RELEASE).tar.xz
-+ rm -rf net-tools-$(RELEASE)
-
-+distcheck: dist
-+ tar xf net-tools-$(RELEASE).tar.xz
-+ yes "" | $(MAKE) -C net-tools-$(RELEASE) config
-+ $(MAKE) -C net-tools-$(RELEASE)
-+ rm -rf net-tools-$(RELEASE)
-+ @printf "\nThe tarball is ready to go:\n%s\n" "`du -b net-tools-$(RELEASE).tar.xz`"
-
--config.h: config.in Makefile
-+config.h: config.in Makefile
- @echo "Configuring the Linux net-tools (NET-3 Base Utilities)..." ; echo
- @if [ config.status -nt config.in ]; \
- then ./configure.sh config.status; \
-@@ -175,62 +145,68 @@ $(NET_LIB): config.h version.h intl.h libdir
-
- i18n.h: i18ndir
-
--libdir:
-- @$(MAKE) -C $(NET_LIB_PATH) $(MDEFINES)
-+libdir: version.h
-+ @$(MAKE) -C $(NET_LIB_PATH)
-
- i18ndir:
- @$(MAKE) -C po
-
--subdirs:
-- @for i in $(SUBDIRS); do $(MAKE) -C $$i $(MDEFINES) ; done
-+# use libdir target for lib/ to avoid parallel build issues
-+subdirs: libdir
-+ @for i in $(SUBDIRS:$(NET_LIB_PATH)/=); do $(MAKE) -C $$i || exit $$? ; done
-
- ifconfig: $(NET_LIB) ifconfig.o
-- $(CC) $(LDFLAGS) -o ifconfig ifconfig.o $(NLIB) $(RESLIB)
--
--nameif: nameif.o
-- $(CC) $(LDFLAGS) -o nameif nameif.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ifconfig.o $(NLIB) $(RESLIB)
-+
-+nameif: $(NET_LIB) nameif.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ nameif.o $(NLIB) $(RESLIB)
-
- hostname: hostname.o
-- $(CC) $(LDFLAGS) -o hostname hostname.o $(DNLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ hostname.o $(DNLIB)
-
- route: $(NET_LIB) route.o
-- $(CC) $(LDFLAGS) -o route route.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ route.o $(NLIB) $(RESLIB)
-
- arp: $(NET_LIB) arp.o
-- $(CC) $(LDFLAGS) -o arp arp.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ arp.o $(NLIB) $(RESLIB)
-
- rarp: $(NET_LIB) rarp.o
-- $(CC) $(LDFLAGS) -o rarp rarp.o $(NLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rarp.o $(NLIB)
-
- slattach: $(NET_LIB) slattach.o
-- $(CC) $(LDFLAGS) -o slattach slattach.o $(NLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ slattach.o $(NLIB)
-
- plipconfig: $(NET_LIB) plipconfig.o
-- $(CC) $(LDFLAGS) -o plipconfig plipconfig.o $(NLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ plipconfig.o $(NLIB)
-
- netstat: $(NET_LIB) netstat.o statistics.o
-- $(CC) $(LDFLAGS) -o netstat netstat.o statistics.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ netstat.o statistics.o $(NLIB) $(RESLIB) $(SELIB)
-
- iptunnel: $(NET_LIB) iptunnel.o
-- $(CC) $(LDFLAGS) -o iptunnel iptunnel.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ iptunnel.o $(NLIB) $(RESLIB)
-
- ipmaddr: $(NET_LIB) ipmaddr.o
-- $(CC) $(LDFLAGS) -o ipmaddr ipmaddr.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ipmaddr.o $(NLIB) $(RESLIB)
-
--mii-tool: mii-tool.o
-- $(CC) $(LDFLAGS) -o mii-tool mii-tool.o
-+mii-tool: $(NET_LIB) mii-tool.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mii-tool.o $(NLIB) $(RESLIB)
-
- installbin:
-+ @echo
-+ @echo "######################################################"
-+ @echo "Notice: ifconfig and route are now installed into /bin"
-+ @echo "######################################################"
-+ @echo
- install -m 0755 -d ${BASEDIR}/sbin
- install -m 0755 -d ${BASEDIR}/bin
- install -m 0755 arp ${BASEDIR}/sbin
- install -m 0755 hostname ${BASEDIR}/bin
-- install -m 0755 ifconfig ${BASEDIR}/sbin
-+ install -m 0755 ifconfig ${BASEDIR}/bin
- install -m 0755 nameif ${BASEDIR}/sbin
- install -m 0755 netstat ${BASEDIR}/bin
- install -m 0755 plipconfig $(BASEDIR)/sbin
- install -m 0755 rarp ${BASEDIR}/sbin
-- install -m 0755 route ${BASEDIR}/sbin
-+ install -m 0755 route ${BASEDIR}/bin
- install -m 0755 slattach $(BASEDIR)/sbin
- ifeq ($(HAVE_IP_TOOLS),1)
- install -m 0755 ipmaddr $(BASEDIR)/sbin
-diff --git a/README b/README
-index 4e35868..aa6cc9a 100644
---- a/README
-+++ b/README
-@@ -10,29 +10,35 @@ This package includes the important tools for controlling the network
- subsystem of the Linux kernel. This includes arp, hostname, ifconfig,
- netstat, rarp and route. Additionally, this package contains
- utilities relating to particular network hardware types (plipconfig,
--slattach) and advanced aspects of IP configuration (iptunnel,
-+slattach, mii-tool) and advanced aspects of IP configuration (iptunnel,
- ipmaddr).
-
- Please include the output of "program --version" when reporting bugs.
-
-
- Contents:
--
-+
- README This file.
-
- README.ipv6 Notes for people hacking IPv6.
-
- INSTALLING Installation instructions.
-
-- COPYING Your free copy of the GNU Public License.
-+ COPYING Your free copy of the GNU General Public License.
-
- TODO Some things that need to be done.
-
-+The Homepage (including Git repository, release downloads, bug tracker and
-+mailing list) is hosted by SourceForge.net. Please consider to
-+join the project if you want to contribute:
-+
-+ https://sourceforge.net/projects/net-tools/
-+
-
- Notes
- -----
-
--This is net-tools 1.60.
-+This is net-tools 1.6x.
-
- You need kernel 2.0 or later to use these programs. These programs
- should compile cleanly with both glibc (version 2.0 or 2.1) and libc5,
-@@ -59,6 +65,8 @@ all common environments but some of the more esoteric hardware and
- protocol families may be more touchy. Feel free to send patches if
- you have problems.
-
-+For this release, the localized man pages are installed with UTF-8 encoding.
-+
- Phil Blundell
- philb@gnu.org
-
-diff --git a/RPM/net-tools.spec b/RPM/net-tools.spec
-index 86b45db..b12f785 100644
---- a/RPM/net-tools.spec
-+++ b/RPM/net-tools.spec
-@@ -34,7 +34,7 @@ make BASEDIR=$RPM_BUILD_ROOT install
- strip arp ifconfig rarp route slattach plipconfig ipmaddr iptunnel
- cd ../bin
- strip hostname netstat
--)
-+)
-
- %clean
- rm -rf $RPM_BUILD_ROOT
-@@ -92,7 +92,7 @@ rm -rf $RPM_BUILD_ROOT
- * Fri Feb 27 1998 Jason Spangler <jasons@usemail.com>
- - changed to net-tools 1.432
- - removed old glibc 2.1 patch
--
-+
- * Wed Oct 22 1997 Erik Troan <ewt@redhat.com>
- - added extra patches for glibc 2.1
-
-diff --git a/TODO b/TODO
-index ec6aae8..c8a10dc 100644
---- a/TODO
-+++ b/TODO
-@@ -23,7 +23,7 @@ TODO for net-tools
- [ ] supply some informations about new features to HOWTOs
- [ ] Config file only works with bash not ash.
- [ ] Token ring is almost totally untested.
--[ ] additional tools for IPX, AX.25 etc be bundled [ipxripd004, ipx_* tools
-+[ ] additional tools for IPX, AX.25 etc be bundled [ipxripd004, ipx_* tools
- from caldera, axattach] into existing bins
- [ ] "SIOCAX25OPTRT" [Joerg (DL1BKE)]. 1.3.75
- [ ] dummy NOARP?! (2. default route for preveting hostunreachables on linedrop)
-diff --git a/arp.c b/arp.c
-index 509a804..5db71a7 100644
---- a/arp.c
-+++ b/arp.c
-@@ -8,7 +8,7 @@
- * NET-3 Networking Distribution for the LINUX operating
- * system.
- *
-- * Version: $Id: arp.c,v 1.20 2001/04/08 17:05:05 pb Exp $
-+ * Version: $Id: arp.c,v 1.27 2009/09/06 22:50:11 vapier Exp $
- *
- * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
- *
-@@ -20,14 +20,14 @@
- * Andrew Tridgell : proxy arp netmasks
- * Bernd Eckenfels : -n option
- * Bernd Eckenfels : Use only /proc for display
-- * {1.60} Bernd Eckenfels : new arpcode (-i) for 1.3.42 but works
-+ * {1.60} Bernd Eckenfels : new arpcode (-i) for 1.3.42 but works
- * with 1.2.x, too
- * {1.61} Bernd Eckenfels : more verbose messages
- * {1.62} Bernd Eckenfels : check -t for hw adresses and try to
- * explain EINVAL (jeff)
- *970125 {1.63} Bernd Eckenfels : -a print hardwarename instead of tiltle
- *970201 {1.64} Bernd Eckenfels : net-features.h support
-- *970203 {1.65} Bernd Eckenfels : "#define" in "#if",
-+ *970203 {1.65} Bernd Eckenfels : "#define" in "#if",
- * -H|-A additional to -t|-p
- *970214 {1.66} Bernd Eckenfels : Fix optarg required for -H and -A
- *970412 {1.67} Bernd Eckenfels : device=""; is default
-@@ -35,7 +35,7 @@
- *970517 {1.69} Bernd Eckenfels : usage() fixed
- *970622 {1.70} Bernd Eckenfels : arp -d priv
- *970106 {1.80} Bernd Eckenfels : new syntax without -D and with "dev <If>",
-- * ATF_MAGIC, ATF_DONTPUB support.
-+ * ATF_MAGIC, ATF_DONTPUB support.
- * Typo fix (Debian Bug#5728 Giuliano Procida)
- *970803 {1.81} Bernd Eckenfels : removed junk comment line 1
- *970925 {1.82} Bernd Eckenfels : include fix for libc6
-@@ -80,7 +80,7 @@
- #define FEATURE_ARP
- #include "lib/net-features.h"
-
--char *Release = RELEASE, *Version = "arp 1.88 (2001-04-04)";
-+static char *Release = RELEASE;
-
- int opt_n = 0; /* do not resolve addresses */
- int opt_N = 0; /* use symbolic names */
-@@ -100,9 +100,10 @@ static int arp_del(char **args)
- {
- char host[128];
- struct arpreq req;
-- struct sockaddr sa;
-+ struct sockaddr_storage ss;
-+ struct sockaddr *sa;
- int flags = 0;
-- int err;
-+ int deleted = 0;
-
- memset((char *) &req, 0, sizeof(req));
-
-@@ -112,12 +113,13 @@ static int arp_del(char **args)
- return (-1);
- }
- safe_strncpy(host, *args, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-+ sa = (struct sockaddr *)&ss;
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
- /* If a host has more than one address, use the correct one! */
-- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
-+ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr));
-
- if (hw_set)
- req.arp_ha.sa_family = hw->type;
-@@ -148,7 +150,7 @@ static int arp_del(char **args)
- continue;
- }
- if (!strcmp(*args, "dontpub")) {
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- req.arp_flags |= ATF_DONTPUB;
- #else
- ENOSUPP("arp", "ATF_DONTPUB");
-@@ -157,7 +159,7 @@ static int arp_del(char **args)
- continue;
- }
- if (!strcmp(*args, "auto")) {
--#ifdef HAVE_ATF_MAGIC
-+#ifdef ATF_MAGIC
- req.arp_flags |= ATF_MAGIC;
- #else
- ENOSUPP("arp", "ATF_MAGIC");
-@@ -176,12 +178,12 @@ static int arp_del(char **args)
- if (*++args == NULL)
- usage();
- if (strcmp(*args, "255.255.255.255") != 0) {
-- strcpy(host, *args);
-- if (ap->input(0, host, &sa) < 0) {
-+ safe_strncpy(host, *args, (sizeof host));
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
-- memcpy((char *) &req.arp_netmask, (char *) &sa,
-+ memcpy((char *) &req.arp_netmask, (char *) sa,
- sizeof(struct sockaddr));
- req.arp_flags |= ATF_NETMASK;
- }
-@@ -190,35 +192,41 @@ static int arp_del(char **args)
- }
- usage();
- }
-+
-+ // if neighter priv nor pub is given, work on both
- if (flags == 0)
- flags = 3;
-
-- strcpy(req.arp_dev, device);
-+ safe_strncpy(req.arp_dev, device, sizeof(req.arp_dev));
-
-- err = -1;
-+ /* unfortuatelly the kernel interface does not allow us to
-+ delete private entries anlone, so we need this hack
-+ to avoid "not found" errors if we try both. */
-+ deleted = 0;
-
- /* Call the kernel. */
- if (flags & 2) {
- if (opt_v)
-- fprintf(stderr, "arp: SIOCDARP(nopub)\n");
-- if ((err = ioctl(sockfd, SIOCDARP, &req) < 0)) {
-- if (errno == ENXIO) {
-+ fprintf(stderr, "arp: SIOCDARP(dontpub)\n");
-+ if (ioctl(sockfd, SIOCDARP, &req) < 0) {
-+ if ((errno == ENXIO) || (errno == ENOENT)) {
- if (flags & 1)
-- goto nopub;
-+ goto dontpub;
- printf(_("No ARP entry for %s\n"), host);
- return (-1);
- }
-- perror("SIOCDARP(priv)");
-+ perror("SIOCDARP(dontpub)");
- return (-1);
-- }
-+ } else
-+ deleted = 1;
- }
-- if ((flags & 1) && (err)) {
-- nopub:
-+ if (!deleted && (flags & 1)) {
-+ dontpub:
- req.arp_flags |= ATF_PUBL;
- if (opt_v)
- fprintf(stderr, "arp: SIOCDARP(pub)\n");
- if (ioctl(sockfd, SIOCDARP, &req) < 0) {
-- if (errno == ENXIO) {
-+ if ((errno == ENXIO) || (errno == ENOENT)) {
- printf(_("No ARP entry for %s\n"), host);
- return (-1);
- }
-@@ -235,7 +243,7 @@ static int arp_getdevhw(char *ifname, struct sockaddr *sa, struct hwtype *hw)
- struct ifreq ifr;
- struct hwtype *xhw;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(sockfd, SIOCGIFHWADDR, &ifr) < 0) {
- fprintf(stderr, _("arp: cant get HW-Address for `%s': %s.\n"), ifname, strerror(errno));
- return (-1);
-@@ -260,7 +268,8 @@ static int arp_set(char **args)
- {
- char host[128];
- struct arpreq req;
-- struct sockaddr sa;
-+ struct sockaddr_storage ss;
-+ struct sockaddr *sa;
- int flags;
-
- memset((char *) &req, 0, sizeof(req));
-@@ -271,12 +280,13 @@ static int arp_set(char **args)
- return (-1);
- }
- safe_strncpy(host, *args++, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-+ sa = (struct sockaddr *)&ss;
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
- /* If a host has more than one address, use the correct one! */
-- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
-+ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr));
-
- /* Fetch the hardware address. */
- if (*args == NULL) {
-@@ -317,7 +327,7 @@ static int arp_set(char **args)
- continue;
- }
- if (!strcmp(*args, "dontpub")) {
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- flags |= ATF_DONTPUB;
- #else
- ENOSUPP("arp", "ATF_DONTPUB");
-@@ -326,7 +336,7 @@ static int arp_set(char **args)
- continue;
- }
- if (!strcmp(*args, "auto")) {
--#ifdef HAVE_ATF_MAGIC
-+#ifdef ATF_MAGIC
- flags |= ATF_MAGIC;
- #else
- ENOSUPP("arp", "ATF_MAGIC");
-@@ -345,12 +355,12 @@ static int arp_set(char **args)
- if (*++args == NULL)
- usage();
- if (strcmp(*args, "255.255.255.255") != 0) {
-- strcpy(host, *args);
-- if (ap->input(0, host, &sa) < 0) {
-+ safe_strncpy(host, *args, (sizeof host));
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
-- memcpy((char *) &req.arp_netmask, (char *) &sa,
-+ memcpy((char *) &req.arp_netmask, (char *) sa,
- sizeof(struct sockaddr));
- flags |= ATF_NETMASK;
- }
-@@ -363,7 +373,7 @@ static int arp_set(char **args)
- /* Fill in the remainder of the request. */
- req.arp_flags = flags;
-
-- strcpy(req.arp_dev, device);
-+ safe_strncpy(req.arp_dev, device, sizeof(req.arp_dev));
-
- /* Call the kernel. */
- if (opt_v)
-@@ -424,7 +434,7 @@ static int arp_file(char *name)
-
-
- /* Print the contents of an ARP request block. */
--static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mask, char *dev)
-+static void arp_disp_2(const char *name, int type, int arp_flags, const char *hwa, const char *mask, const char *dev)
- {
- static int title = 0;
- struct hwtype *xhw;
-@@ -445,11 +455,11 @@ static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mas
- strcat(flags, "M");
- if (arp_flags & ATF_PUBL)
- strcat(flags, "P");
--#ifdef HAVE_ATF_MAGIC
-+#ifdef ATF_MAGIC
- if (arp_flags & ATF_MAGIC)
- strcat(flags, "A");
- #endif
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- if (arp_flags & ATF_DONTPUB)
- strcat(flags, "!");
- #endif
-@@ -463,7 +473,7 @@ static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mas
-
- if (!(arp_flags & ATF_COM)) {
- if (arp_flags & ATF_PUBL)
-- printf("%-8.8s%-20.20s", "*", "*");
-+ printf("%-8.8s%-20.20s", "*", _("<from_interface>"));
- else
- printf("%-8.8s%-20.20s", "", _("(incomplete)"));
- } else {
-@@ -474,7 +484,7 @@ static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mas
- }
-
- /* Print the contents of an ARP request block. */
--static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, char *mask, char *dev)
-+static void arp_disp(const char *name, const char *ip, int type, int arp_flags, const char *hwa, const char *mask, const char *dev)
- {
- struct hwtype *xhw;
-
-@@ -486,7 +496,7 @@ static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, c
-
- if (!(arp_flags & ATF_COM)) {
- if (arp_flags & ATF_PUBL)
-- printf("* ");
-+ printf("<from_interface> ");
- else
- printf(_("<incomplete> "));
- } else {
-@@ -499,12 +509,12 @@ static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, c
- if (arp_flags & ATF_PERM)
- printf("PERM ");
- if (arp_flags & ATF_PUBL)
-- printf("PUP ");
--#ifdef HAVE_ATF_MAGIC
-+ printf("PUB ");
-+#ifdef ATF_MAGIC
- if (arp_flags & ATF_MAGIC)
- printf("AUTO ");
- #endif
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- if (arp_flags & ATF_DONTPUB)
- printf("DONTPUB ");
- #endif
-@@ -519,7 +529,8 @@ static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, c
- static int arp_show(char *name)
- {
- char host[100];
-- struct sockaddr sa;
-+ struct sockaddr_storage ss;
-+ struct sockaddr *sa;
- char ip[100];
- char hwa[100];
- char mask[100];
-@@ -527,19 +538,20 @@ static int arp_show(char *name)
- char dev[100];
- int type, flags;
- FILE *fp;
-- char *hostname;
-+ const char *hostname;
- int num, entries = 0, showed = 0;
-
- host[0] = '\0';
-
-+ sa = (struct sockaddr *)&ss;
- if (name != NULL) {
- /* Resolve the host name. */
- safe_strncpy(host, name, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
-- safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host));
-+ safe_strncpy(host, ap->sprint(sa, 1), sizeof(host));
- }
- /* Open the PROCps kernel table. */
- if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) {
-@@ -548,11 +560,11 @@ static int arp_show(char *name)
- }
- /* Bypass header -- read until newline */
- if (fgets(line, sizeof(line), fp) != (char *) NULL) {
-- strcpy(mask, "-");
-- strcpy(dev, "-");
-+ safe_strncpy(mask, "-", sizeof(mask));
-+ safe_strncpy(dev, "-", sizeof(dev));
- /* Read the ARP cache entries. */
- for (; fgets(line, sizeof(line), fp);) {
-- num = sscanf(line, "%s 0x%x 0x%x %100s %100s %100s\n",
-+ num = sscanf(line, "%s 0x%x 0x%x %99s %99s %99s\n",
- ip, &type, &flags, hwa, mask, dev);
- if (num < 4)
- break;
-@@ -575,10 +587,10 @@ static int arp_show(char *name)
- if (opt_n)
- hostname = "?";
- else {
-- if (ap->input(0, ip, &sa) < 0)
-+ if (ap->input(0, ip, sa) < 0)
- hostname = ip;
- else
-- hostname = ap->sprint(&sa, opt_n | 0x8000);
-+ hostname = ap->sprint(sa, opt_n | 0x8000);
- if (strcmp(hostname, ip) == 0)
- hostname = "?";
- }
-@@ -605,20 +617,20 @@ static int arp_show(char *name)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n%s\n", Release, Version, Features);
-+ fprintf(stderr, "%s\n%s\n", Release, Features);
- exit(E_VERSION);
- }
-
- static void usage(void)
- {
- fprintf(stderr, _("Usage:\n arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP cache\n"));
-- fprintf(stderr, _(" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP entry\n"));
-- fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n"));
-- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add entry\n"));
-- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub <-''-\n"));
-- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub <-''-\n\n"));
--
-+ fprintf(stderr, _(" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP entry\n"));
-+ fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n"));
-+ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add entry\n"));
-+ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub <-''-\n\n"));
-+
- fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n"));
-+ fprintf(stderr, _(" -e display (all) hosts in default (Linux) style\n"));
- fprintf(stderr, _(" -s, --set set a new ARP entry\n"));
- fprintf(stderr, _(" -d, --delete delete a specified entry\n"));
- fprintf(stderr, _(" -v, --verbose be verbose\n"));
-diff --git a/config.in b/config.in
-index f3310d6..e080937 100644
---- a/config.in
-+++ b/config.in
-@@ -1,5 +1,5 @@
- #
--# config.in Configure.sh source for the net-tools.
-+# config.in configure.sh source for the net-tools.
- # This file contains the definition of what the support
- # library contains. Most of all, it defines which types
- # of address families and hardware we know of.
-@@ -46,19 +46,20 @@ bool 'Does your system support GNU gettext?' I18N n
- *
- *
- * Protocol Families.
--*
-+*
- bool 'UNIX protocol family' HAVE_AFUNIX y
- bool 'INET (TCP/IP) protocol family' HAVE_AFINET y
--bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n
-+bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y
- bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y
- bool 'Appletalk DDP protocol family' HAVE_AFATALK y
- bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y
- bool 'NET/ROM (packet radio) protocol family' HAVE_AFNETROM y
--bool 'Rose (packet radio) protocol family' HAVE_AFROSE n
-+bool 'Rose (packet radio) protocol family' HAVE_AFROSE y
- bool 'X.25 (CCITT) protocol family' HAVE_AFX25 y
--bool 'Econet protocol family' HAVE_AFECONET n
-+bool 'Econet protocol family' HAVE_AFECONET y
- bool 'DECnet protocol family' HAVE_AFDECnet n
--bool 'Ash protocol family' HAVE_AFASH n
-+bool 'Ash protocol family' HAVE_AFASH y
-+bool 'Bluetooth protocol family' HAVE_AFBLUETOOTH n
- *
- *
- * Device Hardware types.
-@@ -68,24 +69,27 @@ bool 'ARCnet support' HAVE_HWARC y
- bool 'SLIP (serial line) support' HAVE_HWSLIP y
- bool 'PPP (serial line) support' HAVE_HWPPP y
- bool 'IPIP Tunnel support' HAVE_HWTUNNEL y
--bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP y
--bool 'Token ring (generic) support' HAVE_HWTR y
-+bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP n
-+bool 'Token ring (generic) support' HAVE_HWTR n
- bool 'AX25 (packet radio) support' HAVE_HWAX25 y
--bool 'Rose (packet radio) support' HAVE_HWROSE n
-+bool 'Rose (packet radio) support' HAVE_HWROSE y
- bool 'NET/ROM (packet radio) support' HAVE_HWNETROM y
- bool 'X.25 (generic) support' HAVE_HWX25 y
- bool 'DLCI/FRAD (frame relay) support' HAVE_HWFR y
--bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT n
--bool 'FDDI (generic) support' HAVE_HWFDDI n
--bool 'HIPPI (generic) support' HAVE_HWHIPPI n
--bool 'Ash hardware support' HAVE_HWASH n
--bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n
-+bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT y
-+bool 'FDDI (generic) support' HAVE_HWFDDI y
-+bool 'HIPPI (generic) support' HAVE_HWHIPPI y
-+bool 'Ash hardware support' HAVE_HWASH y
-+bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB y
- bool 'IrDA support' HAVE_HWIRDA y
--bool 'Econet hardware support' HAVE_HWEC n
-+bool 'Econet hardware support' HAVE_HWEC y
-+bool 'Generic EUI-64 hardware support' HAVE_HWEUI64 y
-+bool 'InfiniBand hardware support' HAVE_HWIB y
- *
- *
- * Other Features.
- *
--bool 'IP Masquerading support' HAVE_FW_MASQUERADE n
--bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n
--bool 'Build mii-tool' HAVE_MII n
-+bool 'IP Masquerading support' HAVE_FW_MASQUERADE y
-+bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y
-+bool 'Build mii-tool' HAVE_MII y
-+bool 'SELinux support' HAVE_SELINUX n
-diff --git a/configure.sh b/configure.sh
-index 9859b59..64b594f 100755
---- a/configure.sh
-+++ b/configure.sh
-@@ -1,6 +1,6 @@
- #!/usr/bin/env bash
- #
--# Configure.sh Generates interactively a config.h from config.in
-+# configure.sh Generates interactively a config.h from config.in
- #
- # net-tools A collection of programs that form the base set of the
- # NET-3 Networking Distribution for the LINUX operating
-@@ -37,7 +37,15 @@ CONFIG=config.h
- MAKECONFIG=config.make
-
-
--[ -z "$BASH" ] && { echo "Configure requires bash" 1>&2; exit 1; }
-+[ -z "$BASH" ] && { echo "configure.sh requires bash" 1>&2; exit 1; }
-+
-+cat <<EOF
-+
-+######################################################
-+Notice: ifconfig and route are now installed into /bin
-+######################################################
-+
-+EOF
-
- # Disable filename globbing once and for all.
- # Enable function cacheing.
-@@ -106,7 +114,7 @@ function int()
- }
-
- #
-- # Make sure we start out with a clean slate.
-+ # Make sure we start out with a clean state.
- #
- > config.new
- > ${CONFIG}
-diff --git a/hostname.c b/hostname.c
-index 8793fb9..3508224 100644
---- a/hostname.c
-+++ b/hostname.c
-@@ -6,23 +6,22 @@
- * Usage: hostname [-d|-f|-s|-a|-i|-y|-n]
- * hostname [-h|-V]
- * hostname {name|-F file}
-- * dnsdmoainname
-+ * dnsdmoainname
- * nisdomainname {name|-F file}
- *
-- * Version: hostname 1.96 (1996-02-18)
-+ * Version: hostname 1.101 (2003-10-11)
- *
- * Author: Peter Tobias <tobias@et-inf.fho-emden.de>
- *
- * Changes:
-- * {1.90} Peter Tobias : Added -a and -i options.
-- * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts
-- * (major rewrite), usage.
-- *960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/
-- * setdomainname added
-- *960218 {1.96} Bernd Eckenfels : netinet/in.h added
-- *980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n
-- *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings
-+ * {1.90} Peter Tobias : Added -a and -i options.
-+ * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts (major rewrite), usage.
-+ *19960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/setdomainname added
-+ *19960218 {1.96} Bernd Eckenfels : netinet/in.h added
-+ *19980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n
-+ *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings
- *20010404 {1.100} Arnaldo Carvalho de Melo: use setlocale
-+ *20031011 {1.101} Maik Broemme: gcc 3.x fixes (default: break)
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -31,7 +30,9 @@
- * your option) any later version.
- */
- #include <stdio.h>
-+#include <stdlib.h>
- #include <unistd.h>
-+#include <stdlib.h>
- #include <getopt.h>
- #include <string.h>
- #include <netdb.h>
-@@ -41,13 +42,19 @@
- #include <arpa/inet.h>
- #include "config.h"
- #include "version.h"
-+#include "net-support.h"
- #include "../intl.h"
-
-+#if HAVE_AFINET6
-+#include <sys/socket.h> /* for PF_INET6 */
-+#include <sys/types.h> /* for inet_ntop */
-+#endif
-+
- #if HAVE_AFDECnet
- #include <netdnet/dn.h>
- #endif
-
--char *Release = RELEASE, *Version = "hostname 1.100 (2001-04-14)";
-+static char *Release = RELEASE;
-
- static char *program_name;
- static int opt_v;
-@@ -78,6 +85,7 @@ static void setnname(char *nname)
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
- default:
-+ break;
- }
- exit(1);
- }
-@@ -97,7 +105,6 @@ static void sethname(char *hname)
- case EINVAL:
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
-- default:
- }
- exit(1);
- };
-@@ -116,7 +123,6 @@ static void setdname(char *dname)
- case EINVAL:
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
-- default:
- }
- exit(1);
- };
-@@ -125,15 +131,23 @@ static void setdname(char *dname)
- static void showhname(char *hname, int c)
- {
- struct hostent *hp;
-+#if HAVE_AFINET6
-+ struct in6_addr **ip6;
-+#endif
- register char *p, **alias;
- struct in_addr **ip;
-
- if (opt_v)
- fprintf(stderr, _("Resolving `%s' ...\n"), hname);
-- if (!(hp = gethostbyname(hname))) {
-+ if (
-+#if HAVE_AFINET6
-+ !(hp = gethostbyname2(hname, PF_INET6)) &&
-+#endif
-+ !(hp = gethostbyname(hname))) {
- herror(program_name);
- exit(1);
- }
-+
- if (opt_v) {
- fprintf(stderr, _("Result: h_name=`%s'\n"),
- hp->h_name);
-@@ -142,11 +156,28 @@ static void showhname(char *hname, int c)
- while (alias[0])
- fprintf(stderr, _("Result: h_aliases=`%s'\n"),
- *alias++);
--
-- ip = (struct in_addr **) hp->h_addr_list;
-- while (ip[0])
-- fprintf(stderr, _("Result: h_addr_list=`%s'\n"),
-- inet_ntoa(**ip++));
-+#if HAVE_AFINET6
-+ if (hp->h_addrtype == PF_INET6) {
-+ char addr[INET6_ADDRSTRLEN + 1];
-+ addr[INET6_ADDRSTRLEN] = '\0';
-+ ip6 = (struct in6_addr **) hp->h_addr_list;
-+ while (ip6[0]) {
-+ if (inet_ntop(PF_INET6, *ip6++, addr, INET6_ADDRSTRLEN))
-+ fprintf(stderr, _("Result: h_addr_list=`%s'\n"), addr);
-+ else if (errno == EAFNOSUPPORT)
-+ fprintf(stderr, _("%s: protocol family not supported\n"),
-+ program_name);
-+ else if (errno == ENOSPC)
-+ fprintf(stderr, _("%s: name too long\n"), program_name);
-+ }
-+ } else
-+#endif
-+ {
-+ ip = (struct in_addr **) hp->h_addr_list;
-+ while (ip[0])
-+ fprintf(stderr, _("Result: h_addr_list=`%s'\n"),
-+ inet_ntoa(**ip++));
-+ }
- }
- if (!(p = strchr(hp->h_name, '.')) && (c == 'd'))
- return;
-@@ -158,8 +189,29 @@ static void showhname(char *hname, int c)
- printf("\n");
- break;
- case 'i':
-- while (hp->h_addr_list[0])
-- printf("%s ", inet_ntoa(*(struct in_addr *) *hp->h_addr_list++));
-+#if HAVE_AFINET6
-+ if (hp->h_addrtype == PF_INET6) {
-+ char addr[INET6_ADDRSTRLEN + 1];
-+ addr[INET6_ADDRSTRLEN] = '\0';
-+ while (hp->h_addr_list[0]) {
-+ if (inet_ntop(PF_INET6, (struct in6_addr *)*hp->h_addr_list++,
-+ addr, INET6_ADDRSTRLEN)) {
-+ printf("%s ", addr);
-+ } else if (errno == EAFNOSUPPORT) {
-+ fprintf(stderr, _("\n%s: protocol family not supported\n"),
-+ program_name);
-+ exit(1);
-+ } else if (errno == ENOSPC) {
-+ fprintf(stderr, _("\n%s: name too long\n"), program_name);
-+ exit(1);
-+ }
-+ }
-+ } else
-+#endif
-+ {
-+ while (hp->h_addr_list[0])
-+ printf("%s ", inet_ntoa(*(struct in_addr *)*hp->h_addr_list++));
-+ }
- printf("\n");
- break;
- case 'd':
-@@ -173,7 +225,6 @@ static void showhname(char *hname, int c)
- *p = '\0';
- printf("%s\n", hp->h_name);
- break;
-- default:
- }
- }
-
-@@ -215,8 +266,8 @@ static void setfilename(char *name, int what)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n", Release, Version);
-- exit(5); /* E_VERSION */
-+ fprintf(stderr, "%s\n", Release);
-+ exit(E_VERSION);
- }
-
- static void usage(void)
-@@ -247,7 +298,7 @@ static void usage(void)
- " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
- " part of the FQDN) in the /etc/hosts file.\n"));
-
-- exit(4); /* E_USAGE */
-+ exit(E_USAGE);
- }
-
-
-@@ -326,11 +377,12 @@ int main(int argc, char **argv)
- break;
- case 'V':
- version();
-+ break; // not reached
- case '?':
- case 'h':
- default:
- usage();
--
-+ break; // not reached
- };
-
-
-@@ -371,7 +423,10 @@ int main(int argc, char **argv)
- setdname(argv[optind]);
- break;
- }
-- getdomainname(myname, sizeof(myname));
-+ if (getdomainname(myname, sizeof(myname)) < 0) {
-+ perror("getdomainname()");
-+ exit(1);
-+ }
- if (opt_v)
- fprintf(stderr, _("getdomainname()=`%s'\n"), myname);
- printf("%s\n", myname);
-diff --git a/ifconfig.c b/ifconfig.c
-index 73a4e9b..df9793a 100644
---- a/ifconfig.c
-+++ b/ifconfig.c
-@@ -3,7 +3,7 @@
- * that either displays or sets the characteristics of
- * one or more of the system's networking interfaces.
- *
-- * Version: $Id: ifconfig.c,v 1.50 2001/04/13 18:25:18 pb Exp $
-+ * Version: $Id: ifconfig.c,v 1.59 2011-01-01 03:22:31 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * and others. Copyright 1993 MicroWalt Corporation
-@@ -19,8 +19,8 @@
- *
- * {1.34} - 19980630 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- * - gettext instead of catgets for i18n
-- * 10/1998 - Andi Kleen. Use interface list primitives.
-- * 20001008 - Bernd Eckenfels, Patch from RH for setting mtu
-+ * 10/1998 - Andi Kleen. Use interface list primitives.
-+ * 20001008 - Bernd Eckenfels, Patch from RH for setting mtu
- * (default AF was wrong)
- * 20010404 - Arnaldo Carvalho de Melo, use setlocale
- */
-@@ -49,7 +49,7 @@
- #include <asm/types.h>
-
-
--#ifdef HAVE_HWSLIP
-+#if HAVE_HWSLIP
- #include <linux/if_slip.h>
- #endif
-
-@@ -85,19 +85,16 @@ struct in6_ifreq {
- #include "sockets.h"
- #include "util.h"
-
--char *Release = RELEASE, *Version = "ifconfig 1.42 (2001-04-13)";
-+static char *Release = RELEASE;
-
- int opt_a = 0; /* show all interfaces */
--int opt_i = 0; /* show the statistics */
- int opt_v = 0; /* debugging output flag */
-
- int addr_family = 0; /* currently selected AF */
-
- /* for ipv4 add/del modes */
--static int get_nmbc_parent(char *parent, unsigned long *nm,
-- unsigned long *bc);
--static int set_ifstate(char *parent, unsigned long ip,
-- unsigned long nm, unsigned long bc,
-+static int get_nmbc_parent(char *parent, in_addr_t *nm, in_addr_t *bc);
-+static int set_ifstate(char *parent, in_addr_t ip, in_addr_t nm, in_addr_t bc,
- int flag);
-
- static int if_print(char *ifname)
-@@ -105,7 +102,7 @@ static int if_print(char *ifname)
- int res;
-
- if (ife_short)
-- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
-+ printf(_("Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
-
- if (!ifname) {
- res = for_all_interfaces(do_if_print, &opt_a);
-@@ -113,11 +110,14 @@ static int if_print(char *ifname)
- struct interface *ife;
-
- ife = lookup_interface(ifname);
-- res = do_if_fetch(ife);
-- if (res >= 0)
-+ if (!ife) {
-+ return -1;
-+ }
-+ res = do_if_fetch(ife);
-+ if (res >= 0)
- ife_print(ife);
- }
-- return res;
-+ return res;
- }
-
- /* Set a certain interface flag. */
-@@ -127,7 +127,7 @@ static int set_flag(char *ifname, short flag)
-
- safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
-- fprintf(stderr, _("%s: unknown interface: %s\n"),
-+ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"),
- ifname, strerror(errno));
- return (-1);
- }
-@@ -159,7 +159,7 @@ static int clr_flag(char *ifname, short flag)
-
- safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
-- fprintf(stderr, _("%s: unknown interface: %s\n"),
-+ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"),
- ifname, strerror(errno));
- return -1;
- }
-@@ -172,9 +172,35 @@ static int clr_flag(char *ifname, short flag)
- return (0);
- }
-
-+/** test is a specified flag is set */
-+static int test_flag(char *ifname, short flags)
-+{
-+ struct ifreq ifr;
-+ int fd;
-+
-+ if (strchr(ifname, ':')) {
-+ /* This is a v4 alias interface. Downing it via a socket for
-+ another AF may have bad consequences. */
-+ fd = get_socket_for_af(AF_INET);
-+ if (fd < 0) {
-+ fprintf(stderr, _("No support for INET on this system.\n"));
-+ return -1;
-+ }
-+ } else
-+ fd = skfd;
-+
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
-+ fprintf(stderr, _("%s: ERROR while testing interface flags: %s\n"),
-+ ifname, strerror(errno));
-+ return -1;
-+ }
-+ return (ifr.ifr_flags & flags);
-+}
-+
- static void usage(void)
- {
-- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"));
-+ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"));
- #if HAVE_AFINET
- fprintf(stderr, _(" [add <address>[/<prefixlen>]]\n"));
- fprintf(stderr, _(" [del <address>[/<prefixlen>]]\n"));
-@@ -184,7 +210,7 @@ static void usage(void)
- #ifdef SIOCSKEEPALIVE
- fprintf(stderr, _(" [outfill <NN>] [keepalive <NN>]\n"));
- #endif
-- fprintf(stderr, _(" [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"));
-+ fprintf(stderr, _(" [hw <HW> <address>] [mtu <NN>]\n"));
- fprintf(stderr, _(" [[-]trailers] [[-]arp] [[-]allmulti]\n"));
- fprintf(stderr, _(" [multicast] [[-]promisc]\n"));
- fprintf(stderr, _(" [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"));
-@@ -207,38 +233,39 @@ static void usage(void)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n", Release, Version);
-- exit(0);
-+ fprintf(stderr, "%s\n", Release);
-+ exit(E_VERSION);
- }
-
- static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa)
- {
- int err = 0;
-
-- memcpy((char *) &ifr->ifr_netmask, (char *) sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr->ifr_netmask, sa, sizeof(struct sockaddr));
- if (ioctl(skfd, SIOCSIFNETMASK, ifr) < 0) {
- fprintf(stderr, "SIOCSIFNETMASK: %s\n",
- strerror(errno));
- err = 1;
- }
-- return 0;
-+ return err;
- }
-
- int main(int argc, char **argv)
- {
-- struct sockaddr sa;
-- struct sockaddr_in sin;
-+ struct sockaddr_storage _sa, _samask;
-+ struct sockaddr *sa = (struct sockaddr *)&_sa;
-+ struct sockaddr *samask = (struct sockaddr *)&_samask;
-+ struct sockaddr_in *sin = (struct sockaddr_in *)sa;
- char host[128];
- struct aftype *ap;
- struct hwtype *hw;
- struct ifreq ifr;
-- int goterr = 0, didnetmask = 0;
-+ int goterr = 0, didnetmask = 0, neednetmask=0;
- char **spp;
- int fd;
- #if HAVE_AFINET6
- extern struct aftype inet6_aftype;
-- struct sockaddr_in6 sa6;
-+ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa;
- struct in6_ifreq ifr6;
- unsigned long prefix_len;
- char *cp;
-@@ -248,7 +275,7 @@ int main(int argc, char **argv)
- #endif
-
- #if I18N
-- setlocale (LC_ALL, "");
-+ setlocale(LC_ALL, "");
- bindtextdomain("net-tools", "/usr/share/locale");
- textdomain("net-tools");
- #endif
-@@ -265,7 +292,7 @@ int main(int argc, char **argv)
-
- else if (!strcmp(*argv, "-v"))
- opt_v = 1;
--
-+
- else if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version") ||
- !strcmp(*argv, "--version"))
- version();
-@@ -275,7 +302,7 @@ int main(int argc, char **argv)
- usage();
-
- else {
-- fprintf(stderr, _("ifconfig: option `%s' not recognised.\n"),
-+ fprintf(stderr, _("ifconfig: option `%s' not recognised.\n"),
- argv[0]);
- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n"));
- exit(1);
-@@ -309,9 +336,9 @@ int main(int argc, char **argv)
- /* The next argument is either an address family name, or an option. */
- if ((ap = get_aftype(*spp)) != NULL)
- spp++; /* it was a AF name */
-- else
-+ else
- ap = get_aftype(DFLT_AF);
--
-+
- if (ap) {
- addr_family = ap->af;
- skfd = ap->fd;
-@@ -356,7 +383,7 @@ int main(int argc, char **argv)
- goterr = 1;
- } else {
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- perror("port: SIOCGIFMAP");
-+ perror("port: SIOCGIFMAP");
- goterr = 1;
- continue;
- }
-@@ -388,6 +415,8 @@ int main(int argc, char **argv)
- }
- if (!strcmp(*spp, "-promisc")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_PROMISC);
-+ if (test_flag(ifr.ifr_name, IFF_PROMISC) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in promisc mode... maybe other application is running?\n"), ifr.ifr_name);
- spp++;
- continue;
- }
-@@ -398,6 +427,8 @@ int main(int argc, char **argv)
- }
- if (!strcmp(*spp, "-multicast")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_MULTICAST);
-+ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in MULTICAST mode.\n"), ifr.ifr_name);
- spp++;
- continue;
- }
-@@ -408,6 +439,8 @@ int main(int argc, char **argv)
- }
- if (!strcmp(*spp, "-allmulti")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI);
-+ if (test_flag(ifr.ifr_name, IFF_ALLMULTI) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in ALLMULTI mode.\n"), ifr.ifr_name);
- spp++;
- continue;
- }
-@@ -430,21 +463,12 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "-dynamic")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC);
- spp++;
-+ if (test_flag(ifr.ifr_name, IFF_DYNAMIC) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name);
- continue;
- }
- #endif
-
-- if (!strcmp(*spp, "metric")) {
-- if (*++spp == NULL)
-- usage();
-- ifr.ifr_metric = atoi(*spp);
-- if (ioctl(skfd, SIOCSIFMETRIC, &ifr) < 0) {
-- fprintf(stderr, "SIOCSIFMETRIC: %s\n", strerror(errno));
-- goterr = 1;
-- }
-- spp++;
-- continue;
-- }
- if (!strcmp(*spp, "mtu")) {
- if (*++spp == NULL)
- usage();
-@@ -460,7 +484,7 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "keepalive")) {
- if (*++spp == NULL)
- usage();
-- ifr.ifr_data = (caddr_t) atoi(*spp);
-+ ifr.ifr_data = (caddr_t) (uintptr_t) atoi(*spp);
- if (ioctl(skfd, SIOCSKEEPALIVE, &ifr) < 0) {
- fprintf(stderr, "SIOCSKEEPALIVE: %s\n", strerror(errno));
- goterr = 1;
-@@ -474,7 +498,7 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "outfill")) {
- if (*++spp == NULL)
- usage();
-- ifr.ifr_data = (caddr_t) atoi(*spp);
-+ ifr.ifr_data = (caddr_t) (uintptr_t) atoi(*spp);
- if (ioctl(skfd, SIOCSOUTFILL, &ifr) < 0) {
- fprintf(stderr, "SIOCSOUTFILL: %s\n", strerror(errno));
- goterr = 1;
-@@ -486,20 +510,24 @@ int main(int argc, char **argv)
-
- if (!strcmp(*spp, "-broadcast")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST);
-+ if (test_flag(ifr.ifr_name, IFF_BROADCAST) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name);
- spp++;
- continue;
- }
- if (!strcmp(*spp, "broadcast")) {
- if (*++spp != NULL) {
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for broadcast\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_broadaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_broadaddr, sa, sizeof(struct sockaddr));
- if (ioctl(ap->fd, SIOCSIFBRDADDR, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFBRDADDR: %s\n",
- strerror(errno));
-@@ -514,14 +542,16 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for dstaddr\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_dstaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_dstaddr, sa, sizeof(struct sockaddr));
- if (ioctl(ap->fd, SIOCSIFDSTADDR, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFDSTADDR: %s\n",
- strerror(errno));
-@@ -534,14 +564,17 @@ int main(int argc, char **argv)
- if (*++spp == NULL || didnetmask)
- usage();
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for netmask\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
- didnetmask++;
-- goterr = set_netmask(ap->fd, &ifr, &sa);
-+ goterr |= set_netmask(ap->fd, &ifr, sa);
- spp++;
- continue;
- }
-@@ -563,8 +596,8 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- fprintf(stderr, "mem_start: SIOCGIFMAP: %s\n", strerror(errno));
-- spp++;
-+ fprintf(stderr, "mem_start: SIOCGIFMAP: %s\n", strerror(errno));
-+ spp++;
- goterr = 1;
- continue;
- }
-@@ -580,8 +613,8 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- fprintf(stderr, "io_addr: SIOCGIFMAP: %s\n", strerror(errno));
-- spp++;
-+ fprintf(stderr, "io_addr: SIOCGIFMAP: %s\n", strerror(errno));
-+ spp++;
- goterr = 1;
- continue;
- }
-@@ -597,9 +630,9 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- fprintf(stderr, "irq: SIOCGIFMAP: %s\n", strerror(errno));
-+ fprintf(stderr, "irq: SIOCGIFMAP: %s\n", strerror(errno));
- goterr = 1;
-- spp++;
-+ spp++;
- continue;
- }
- ifr.ifr_map.irq = atoi(*spp);
-@@ -613,20 +646,24 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "-pointopoint")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT);
- spp++;
-+ if (test_flag(ifr.ifr_name, IFF_POINTOPOINT) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name);
- continue;
- }
- if (!strcmp(*spp, "pointopoint")) {
- if (*(spp + 1) != NULL) {
- spp++;
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa)) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa)) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for pointopoint\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_dstaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_dstaddr, sa, sizeof(struct sockaddr));
- if (ioctl(ap->fd, SIOCSIFDSTADDR, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFDSTADDR: %s\n",
- strerror(errno));
-@@ -652,17 +689,20 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- safe_strncpy(host, *spp, (sizeof host));
-- if (hw->input(host, &sa) < 0) {
-+ if (hw->input(host, sa) < 0) {
- fprintf(stderr, _("%s: invalid %s address.\n"), host, hw->name);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_hwaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_hwaddr, sa, sizeof(struct sockaddr));
- if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) {
-- fprintf(stderr, "SIOCSIFHWADDR: %s\n",
-- strerror(errno));
-+ if (errno == EBUSY)
-+ fprintf(stderr, "SIOCSIFHWADDR: %s - you may need to down the interface\n",
-+ strerror(errno));
-+ else
-+ fprintf(stderr, "SIOCSIFHWADDR: %s\n",
-+ strerror(errno));
- goterr = 1;
- }
- spp++;
-@@ -681,22 +721,23 @@ int main(int argc, char **argv)
- usage();
- *cp = 0;
- } else {
-- prefix_len = 0;
-+ prefix_len = 128;
- }
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet6_aftype.input(1, host,
-- (struct sockaddr *) &sa6) < 0) {
-- inet6_aftype.herror(host);
-+ if (inet6_aftype.input(1, host, sa) < 0) {
-+ if (inet6_aftype.herror)
-+ inet6_aftype.herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for add\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr6.ifr6_addr, (char *) &sa6.sin6_addr,
-- sizeof(struct in6_addr));
-+ memcpy(&ifr6.ifr6_addr, &sin6->sin6_addr, sizeof(struct in6_addr));
-
- fd = get_socket_for_af(AF_INET6);
- if (fd < 0) {
-- fprintf(stderr,
-+ fprintf(stderr,
- _("No support for INET6 on this system.\n"));
- goterr = 1;
- spp++;
-@@ -718,11 +759,11 @@ int main(int argc, char **argv)
- continue;
- }
- #endif
--#ifdef HAVE_AFINET
-+#if HAVE_AFINET
- { /* ipv4 address a.b.c.d */
-- unsigned long ip, nm, bc;
-+ in_addr_t ip, nm, bc;
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet_aftype.input(0, host, (struct sockaddr *)&sin) < 0) {
-+ if (inet_aftype.input(0, host, sa) < 0) {
- ap->herror(host);
- goterr = 1;
- spp++;
-@@ -730,15 +771,15 @@ int main(int argc, char **argv)
- }
- fd = get_socket_for_af(AF_INET);
- if (fd < 0) {
-- fprintf(stderr,
-+ fprintf(stderr,
- _("No support for INET on this system.\n"));
- goterr = 1;
- spp++;
- continue;
- }
-
-- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long));
--
-+ memcpy(&ip, &sin->sin_addr.s_addr, sizeof(ip));
-+
- if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) {
- fprintf(stderr, _("Interface %s not initialized\n"),
- ifr.ifr_name);
-@@ -747,7 +788,7 @@ int main(int argc, char **argv)
- continue;
- }
- set_ifstate(ifr.ifr_name, ip, nm, bc, 1);
--
-+
- }
- spp++;
- continue;
-@@ -771,22 +812,21 @@ int main(int argc, char **argv)
- usage();
- *cp = 0;
- } else {
-- prefix_len = 0;
-+ prefix_len = 128;
- }
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet6_aftype.input(1, host,
-- (struct sockaddr *) &sa6) < 0) {
-+ if (inet6_aftype.input(1, host, sa) < 0) {
- inet6_aftype.herror(host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr6.ifr6_addr, (char *) &sa6.sin6_addr,
-+ memcpy(&ifr6.ifr6_addr, &sin6->sin6_addr,
- sizeof(struct in6_addr));
--
-+
- fd = get_socket_for_af(AF_INET6);
- if (fd < 0) {
-- fprintf(stderr,
-+ fprintf(stderr,
- _("No support for INET6 on this system.\n"));
- goterr = 1;
- spp++;
-@@ -800,6 +840,8 @@ int main(int argc, char **argv)
- }
- ifr6.ifr6_ifindex = ifr.ifr_ifindex;
- ifr6.ifr6_prefixlen = prefix_len;
-+ if (opt_v)
-+ fprintf(stderr, "now deleting: ioctl(SIOCDIFADDR,{ifindex=%d,prefixlen=%ld})\n",ifr.ifr_ifindex,prefix_len);
- if (ioctl(fd, SIOCDIFADDR, &ifr6) < 0) {
- fprintf(stderr, "SIOCDIFADDR: %s\n",
- strerror(errno));
-@@ -809,12 +851,12 @@ int main(int argc, char **argv)
- continue;
- }
- #endif
--#ifdef HAVE_AFINET
-+#if HAVE_AFINET
- {
- /* ipv4 address a.b.c.d */
-- unsigned long ip, nm, bc;
-+ in_addr_t ip, nm, bc;
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet_aftype.input(0, host, (struct sockaddr *)&sin) < 0) {
-+ if (inet_aftype.input(0, host, sa) < 0) {
- ap->herror(host);
- goterr = 1;
- spp++;
-@@ -827,9 +869,11 @@ int main(int argc, char **argv)
- spp++;
- continue;
- }
--
-- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long));
--
-+
-+ /* Clear "ip" in case sizeof(unsigned long) > sizeof(sin.sin_addr.s_addr) */
-+ ip = 0;
-+ memcpy(&ip, &sin->sin_addr.s_addr, sizeof(ip));
-+
- if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) {
- fprintf(stderr, _("Interface %s not initialized\n"),
- ifr.ifr_name);
-@@ -859,17 +903,16 @@ int main(int argc, char **argv)
- usage();
- *cp = 0;
- } else {
-- prefix_len = 0;
-+ prefix_len = 128;
- }
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet6_aftype.input(1, host, (struct sockaddr *) &sa6) < 0) {
-+ if (inet6_aftype.input(1, host, sa) < 0) {
- inet6_aftype.herror(host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr6.ifr6_addr, (char *) &sa6.sin6_addr,
-- sizeof(struct in6_addr));
-+ memcpy(&ifr6.ifr6_addr, &sin6->sin6_addr, sizeof(struct in6_addr));
-
- fd = get_socket_for_af(AF_INET6);
- if (fd < 0) {
-@@ -900,10 +943,10 @@ int main(int argc, char **argv)
- /* If the next argument is a valid hostname, assume OK. */
- safe_strncpy(host, *spp, (sizeof host));
-
-- /* FIXME: sa is too small for INET6 addresses, inet6 should use that too,
-+ /* FIXME: sa is too small for INET6 addresses, inet6 should use that too,
- broadcast is unexpected */
- if (ap->getmask) {
-- switch (ap->getmask(host, &sa, NULL)) {
-+ switch (ap->getmask(host, samask, NULL)) {
- case -1:
- usage();
- break;
-@@ -911,8 +954,8 @@ int main(int argc, char **argv)
- if (didnetmask)
- usage();
-
-- goterr = set_netmask(skfd, &ifr, &sa);
-- didnetmask++;
-+ // remeber to set the netmask from samask later
-+ neednetmask = 1;
- break;
- }
- }
-@@ -920,12 +963,14 @@ int main(int argc, char **argv)
- fprintf(stderr, _("ifconfig: Cannot set address for this protocol family.\n"));
- exit(1);
- }
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n"));
-- exit(1);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr,_("ifconfig: error resolving '%s' to set address for af=%s\n"), host, ap->name); fprintf(stderr,
-+ _("ifconfig: `--help' gives usage information.\n")); exit(1);
- }
-- memcpy((char *) &ifr.ifr_addr, (char *) &sa, sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_addr, sa, sizeof(struct sockaddr));
- {
- int r = 0; /* to shut gcc up */
- switch (ap->af) {
-@@ -965,14 +1010,14 @@ int main(int argc, char **argv)
- * end, since it's deleted already! - Roman
- *
- * Should really use regex.h here, not sure though how well it'll go
-- * with the cross-platform support etc.
-+ * with the cross-platform support etc.
- */
- {
- char *ptr;
- short int found_colon = 0;
- for (ptr = ifr.ifr_name; *ptr; ptr++ )
- if (*ptr == ':') found_colon++;
--
-+
- if (!(found_colon && *(ptr - 1) == '-'))
- goterr |= set_flag(ifr.ifr_name, (IFF_UP | IFF_RUNNING));
- }
-@@ -980,6 +1025,14 @@ int main(int argc, char **argv)
- spp++;
- }
-
-+ if (neednetmask) {
-+ goterr |= set_netmask(skfd, &ifr, samask);
-+ didnetmask++;
-+ }
-+
-+ if (opt_v && goterr)
-+ fprintf(stderr, _("WARNING: at least one error occured. (%d)\n"), goterr);
-+
- return (goterr);
- }
-
-@@ -1012,7 +1065,7 @@ static int do_ifcmd(struct interface *x, struct ifcmd *ptr)
- char *z, *e;
- struct sockaddr_in *sin;
- int i;
--
-+
- if (do_if_fetch(x) < 0)
- return 0;
- if (strncmp(x->name, ptr->base, ptr->baselen) != 0)
-@@ -1028,13 +1081,13 @@ static int do_ifcmd(struct interface *x, struct ifcmd *ptr)
- if (i < 0 || i > 255)
- abort();
- searcher[i] = 1;
--
-+
- /* copy */
- sin = (struct sockaddr_in *)&x->dstaddr;
- if (sin->sin_addr.s_addr != ptr->addr) {
- return 0;
- }
--
-+
- if (ptr->flag) {
- /* turn UP */
- if (set_flag(x->name, IFF_UP | IFF_RUNNING) == -1)
-@@ -1044,49 +1097,48 @@ static int do_ifcmd(struct interface *x, struct ifcmd *ptr)
- if (clr_flag(x->name, IFF_UP) == -1)
- return -1;
- }
--
-+
- return 1; /* all done! */
- }
-
-
- static int get_nmbc_parent(char *parent,
-- unsigned long *nm, unsigned long *bc)
-+ in_addr_t *nm, in_addr_t *bc)
- {
- struct interface *i;
- struct sockaddr_in *sin;
--
-+
- i = lookup_interface(parent);
- if (!i)
- return -1;
- if (do_if_fetch(i) < 0)
- return 0;
- sin = (struct sockaddr_in *)&i->netmask;
-- memcpy(nm, &sin->sin_addr.s_addr, sizeof(unsigned long));
-+ memcpy(nm, &sin->sin_addr.s_addr, sizeof(*nm));
- sin = (struct sockaddr_in *)&i->broadaddr;
-- memcpy(bc, &sin->sin_addr.s_addr, sizeof(unsigned long));
-+ memcpy(bc, &sin->sin_addr.s_addr, sizeof(*bc));
- return 0;
- }
-
--static int set_ifstate(char *parent, unsigned long ip,
-- unsigned long nm, unsigned long bc,
-+static int set_ifstate(char *parent, in_addr_t ip, in_addr_t nm, in_addr_t bc,
- int flag)
- {
- char buf[IFNAMSIZ];
- struct ifcmd pt;
- int i;
--
-+
- pt.base = parent;
- pt.baselen = strlen(parent);
- pt.addr = ip;
- pt.flag = flag;
- memset(searcher, 0, sizeof(searcher));
-- i = for_all_interfaces((int (*)(struct interface *,void *))do_ifcmd,
-+ i = for_all_interfaces((int (*)(struct interface *,void *))do_ifcmd,
- &pt);
- if (i == -1)
- return -1;
- if (i == 1)
- return 0;
--
-+
- /* add a new interface */
- for (i = 0; i < 256; i++)
- if (searcher[i] == 0)
-@@ -1094,7 +1146,7 @@ static int set_ifstate(char *parent, unsigned long ip,
-
- if (i == 256)
- return -1; /* FAILURE!!! out of ip addresses */
--
-+
- if (snprintf(buf, IFNAMSIZ, "%s:%d", parent, i) > IFNAMSIZ)
- return -1;
- if (set_ip_using(buf, SIOCSIFADDR, ip) == -1)
-diff --git a/include/interface.h b/include/interface.h
-index f95555c..1b58599 100644
---- a/include/interface.h
-+++ b/include/interface.h
-@@ -28,11 +28,10 @@ struct user_net_device_stats {
- };
-
- struct interface {
-- struct interface *next, *prev;
-+ struct interface *next, *prev;
- char name[IFNAMSIZ]; /* interface name */
- short type; /* if type */
- short flags; /* various flags */
-- int metric; /* routing metric */
- int mtu; /* MTU value */
- int tx_queue_len; /* transmit queue length */
- struct ifmap map; /* hardware setup */
-@@ -64,13 +63,17 @@ struct interface {
- extern int if_fetch(struct interface *ife);
-
- extern int for_all_interfaces(int (*)(struct interface *, void *), void *);
--extern int free_interface_list(void);
-+extern int if_cache_free(void);
- extern struct interface *lookup_interface(char *name);
- extern int if_readlist(void);
-
- extern int do_if_fetch(struct interface *ife);
- extern int do_if_print(struct interface *ife, void *cookie);
-
-+extern int procnetdev_version(char *buf);
-+extern int get_dev_fields(char *bp, struct interface *ife);
-+extern char * get_name(char *name, char *p);
-+
- extern void ife_print(struct interface *ptr);
-
- extern int ife_short;
-@@ -84,7 +87,7 @@ extern const char *if_port_text[][4];
- #endif
-
- #if !defined(ifr_qlen)
--/* Actually it is ifru_ivalue, but that is not present in 2.0 kernel headers */
-+/* Actually it is ifru_ivalue, but that is not present in 2.0 kernel headers */
- #define ifr_qlen ifr_ifru.ifru_mtu
- #endif
-
-diff --git a/include/mii.h b/include/mii.h
-deleted file mode 100644
-index 1ef7ccc..0000000
---- a/include/mii.h
-+++ /dev/null
-@@ -1,86 +0,0 @@
--/*
-- * mii.h 1.4 2000/04/25 22:06:15
-- *
-- * Media Independent Interface support: register layout and ioctl's
-- *
-- * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org
-- */
--
--#ifndef _LINUX_MII_H
--#define _LINUX_MII_H
--
--/* network interface ioctl's for MII commands */
--#ifndef SIOCGMIIPHY
--#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
--#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
--#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
--#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */
--#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */
--#endif
--
--#include <linux/types.h>
--
--/* This data structure is used for all the MII ioctl's */
--struct mii_data {
-- __u16 phy_id;
-- __u16 reg_num;
-- __u16 val_in;
-- __u16 val_out;
--};
--
--/* Basic Mode Control Register */
--#define MII_BMCR 0x00
--#define MII_BMCR_RESET 0x8000
--#define MII_BMCR_LOOPBACK 0x4000
--#define MII_BMCR_100MBIT 0x2000
--#define MII_BMCR_AN_ENA 0x1000
--#define MII_BMCR_ISOLATE 0x0400
--#define MII_BMCR_RESTART 0x0200
--#define MII_BMCR_DUPLEX 0x0100
--#define MII_BMCR_COLTEST 0x0080
--
--/* Basic Mode Status Register */
--#define MII_BMSR 0x01
--#define MII_BMSR_CAP_MASK 0xf800
--#define MII_BMSR_100BASET4 0x8000
--#define MII_BMSR_100BASETX_FD 0x4000
--#define MII_BMSR_100BASETX_HD 0x2000
--#define MII_BMSR_10BASET_FD 0x1000
--#define MII_BMSR_10BASET_HD 0x0800
--#define MII_BMSR_NO_PREAMBLE 0x0040
--#define MII_BMSR_AN_COMPLETE 0x0020
--#define MII_BMSR_REMOTE_FAULT 0x0010
--#define MII_BMSR_AN_ABLE 0x0008
--#define MII_BMSR_LINK_VALID 0x0004
--#define MII_BMSR_JABBER 0x0002
--#define MII_BMSR_EXT_CAP 0x0001
--
--#define MII_PHY_ID1 0x02
--#define MII_PHY_ID2 0x03
--
--/* Auto-Negotiation Advertisement Register */
--#define MII_ANAR 0x04
--/* Auto-Negotiation Link Partner Ability Register */
--#define MII_ANLPAR 0x05
--#define MII_AN_NEXT_PAGE 0x8000
--#define MII_AN_ACK 0x4000
--#define MII_AN_REMOTE_FAULT 0x2000
--#define MII_AN_ABILITY_MASK 0x07e0
--#define MII_AN_FLOW_CONTROL 0x0400
--#define MII_AN_100BASET4 0x0200
--#define MII_AN_100BASETX_FD 0x0100
--#define MII_AN_100BASETX_HD 0x0080
--#define MII_AN_10BASET_FD 0x0040
--#define MII_AN_10BASET_HD 0x0020
--#define MII_AN_PROT_MASK 0x001f
--#define MII_AN_PROT_802_3 0x0001
--
--/* Auto-Negotiation Expansion Register */
--#define MII_ANER 0x06
--#define MII_ANER_MULT_FAULT 0x0010
--#define MII_ANER_LP_NP_ABLE 0x0008
--#define MII_ANER_NP_ABLE 0x0004
--#define MII_ANER_PAGE_RX 0x0002
--#define MII_ANER_LP_AN_ABLE 0x0001
--
--#endif /* _LINUX_MII_H */
-diff --git a/include/util-ank.h b/include/util-ank.h
-index 04ab16c..c8fcd08 100644
---- a/include/util-ank.h
-+++ b/include/util-ank.h
-@@ -75,6 +75,6 @@ extern int do_qdisc(int argc, char **argv);
- extern int do_class(int argc, char **argv);
- extern int do_filter(int argc, char **argv);
-
--extern const char *format_host(int af, void *addr, __u8 *abuf, int alen);
-+extern const char *format_host(int af, void *addr, char *abuf, int alen);
-
- #endif /* __UTILS_H__ */
-diff --git a/ipmaddr.c b/ipmaddr.c
-index 2134e81..e4ed41d 100644
---- a/ipmaddr.c
-+++ b/ipmaddr.c
-@@ -32,6 +32,7 @@
-
- #include "config.h"
- #include "intl.h"
-+#include "util.h"
- #include "util-ank.h"
- #include "net-support.h"
- #include "version.h"
-@@ -44,13 +45,11 @@ int filter_family;
- #define NEWADDR 1
- #define DELADDR 2
-
--char *Release = RELEASE,
-- *Version = "ipmaddr 1.1",
-- *Signature = "Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>";
-+static char *Release = RELEASE, *Signature = "Alexey Kuznetsov";
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
-@@ -61,7 +60,7 @@ static void usage(void)
- fprintf(stderr, _("Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"));
- fprintf(stderr, _(" ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"));
- fprintf(stderr, _(" ipmaddr -V | -version\n"));
-- exit(-1);
-+ exit(E_USAGE);
- }
-
- static void print_lla(FILE *fp, int len, unsigned char *addr)
-@@ -75,7 +74,7 @@ static void print_lla(FILE *fp, int len, unsigned char *addr)
- }
- }
-
--static int parse_lla(char *str, unsigned char *addr)
-+static int parse_lla(char *str, char *addr)
- {
- int len=0;
-
-@@ -159,8 +158,7 @@ void read_dev_mcast(struct ma_info **result_p)
-
- len = parse_hex(hexa, (unsigned char*)&m.addr.data);
- if (len >= 0) {
-- struct ma_info *ma = malloc(sizeof(m));
--
-+ struct ma_info *ma = xmalloc(sizeof(m));
- memcpy(ma, &m, sizeof(m));
- ma->addr.bytelen = len;
- ma->addr.bitlen = len<<3;
-@@ -174,22 +172,21 @@ void read_dev_mcast(struct ma_info **result_p)
-
- void read_igmp(struct ma_info **result_p)
- {
-- struct ma_info m;
-+ struct ma_info m, *ma = NULL;
- char buf[256];
- FILE *fp = fopen(_PATH_PROCNET_IGMP, "r");
-
- if (!fp)
- return;
- memset(&m, 0, sizeof(m));
-- fgets(buf, sizeof(buf), fp);
-+ if (fgets(buf, sizeof(buf), fp))
-+ /* eat line */;
-
- m.addr.family = AF_INET;
- m.addr.bitlen = 32;
- m.addr.bytelen = 4;
-
- while (fgets(buf, sizeof(buf), fp)) {
-- struct ma_info *ma = malloc(sizeof(m));
--
- if (buf[0] != '\t') {
- sscanf(buf, "%d%s", &m.index, m.name);
- continue;
-@@ -200,7 +197,7 @@ void read_igmp(struct ma_info **result_p)
-
- sscanf(buf, "%08x%d", (__u32*)&m.addr.data, &m.users);
-
-- ma = malloc(sizeof(m));
-+ ma = xmalloc(sizeof(m));
- memcpy(ma, &m, sizeof(m));
- maddr_ins(result_p, ma);
- }
-@@ -231,8 +228,7 @@ void read_igmp6(struct ma_info **result_p)
-
- len = parse_hex(hexa, (unsigned char*)&m.addr.data);
- if (len >= 0) {
-- struct ma_info *ma = malloc(sizeof(m));
--
-+ struct ma_info *ma = xmalloc(sizeof(m));
- memcpy(ma, &m, sizeof(m));
-
- ma->addr.bytelen = len;
-@@ -291,13 +287,15 @@ static void print_mlist(FILE *fp, struct ma_info *list)
- static int multiaddr_list(int argc, char **argv)
- {
- struct ma_info *list = NULL;
-+ size_t l;
-
- while (argc > 0) {
- if (strcmp(*argv, "dev") == 0) {
- NEXT_ARG();
-- if (filter_dev[0])
-+ l = strlen(*argv);
-+ if (l <= 0 || l >= sizeof(filter_dev))
- usage();
-- strcpy(filter_dev, *argv);
-+ strncpy(filter_dev, *argv, sizeof (filter_dev));
- } else if (strcmp(*argv, "all") == 0) {
- filter_family = AF_UNSPEC;
- } else if (strcmp(*argv, "ipv4") == 0) {
-@@ -307,9 +305,10 @@ static int multiaddr_list(int argc, char **argv)
- } else if (strcmp(*argv, "link") == 0) {
- filter_family = AF_PACKET;
- } else {
-- if (filter_dev[0])
-+ l = strlen(*argv);
-+ if (l <= 0 || l >= sizeof(filter_dev))
- usage();
-- strcpy(filter_dev, *argv);
-+ strncpy(filter_dev, *argv, sizeof (filter_dev));
- }
- argv++; argc--;
- }
-@@ -401,7 +400,7 @@ int main(int argc, char **argv)
- basename = argv[0];
- else
- basename++;
--
-+
- while (argc > 1) {
- if (argv[1][0] != '-')
- break;
-diff --git a/iptunnel.c b/iptunnel.c
-index 4943d83..2215d68 100644
---- a/iptunnel.c
-+++ b/iptunnel.c
-@@ -68,13 +68,11 @@
-
- #include "util-ank.h"
-
--char *Release = RELEASE,
-- *Version = "iptunnel 1.01",
-- *Signature = "Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>";
-+static char *Release = RELEASE, *Signature = "Alexey Kuznetsov";
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
-@@ -92,7 +90,7 @@ static void usage(void)
- fprintf(stderr, _(" TOS := { NUMBER | inherit }\n"));
- fprintf(stderr, _(" TTL := { 1..255 | inherit }\n"));
- fprintf(stderr, _(" KEY := { DOTTED_QUAD | NUMBER }\n"));
-- exit(-1);
-+ exit(E_USAGE);
- }
-
- static int do_ioctl_get_ifindex(char *dev)
-@@ -101,11 +99,12 @@ static int do_ioctl_get_ifindex(char *dev)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, dev);
-+ safe_strncpy(ifr.ifr_name, dev, IFNAMSIZ);
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCGIFINDEX, &ifr);
- if (err) {
- perror("ioctl");
-+ close(fd);
- return 0;
- }
- close(fd);
-@@ -118,11 +117,12 @@ static int do_ioctl_get_iftype(char *dev)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, dev);
-+ safe_strncpy(ifr.ifr_name, dev, IFNAMSIZ);
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCGIFHWADDR, &ifr);
- if (err) {
- perror("ioctl");
-+ close(fd);
- return -1;
- }
- close(fd);
-@@ -141,6 +141,7 @@ static char * do_ioctl_get_ifname(int idx)
- err = ioctl(fd, SIOCGIFNAME, &ifr);
- if (err) {
- perror("ioctl");
-+ close(fd);
- return NULL;
- }
- close(fd);
-@@ -155,7 +156,7 @@ static int do_get_ioctl(char *basedev, struct ip_tunnel_parm *p)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, basedev);
-+ safe_strncpy(ifr.ifr_name, basedev, IFNAMSIZ);
- ifr.ifr_ifru.ifru_data = (void*)p;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCGETTUNNEL, &ifr);
-@@ -171,7 +172,7 @@ static int do_add_ioctl(int cmd, char *basedev, struct ip_tunnel_parm *p)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, basedev);
-+ safe_strncpy(ifr.ifr_name, basedev, IFNAMSIZ);
- ifr.ifr_ifru.ifru_data = (void*)p;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, cmd, &ifr);
-@@ -187,7 +188,7 @@ static int do_del_ioctl(char *basedev, struct ip_tunnel_parm *p)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, basedev);
-+ safe_strncpy(ifr.ifr_name, basedev, IFNAMSIZ);
- ifr.ifr_ifru.ifru_data = (void*)p;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCDELTUNNEL, &ifr);
-@@ -375,7 +376,7 @@ static int do_add(int cmd, int argc, char **argv)
- return do_add_ioctl(cmd, "gre0", &p);
- case IPPROTO_IPV6:
- return do_add_ioctl(cmd, "sit0", &p);
-- default:
-+ default:
- fprintf(stderr, _("cannot determine tunnel mode (ipip, gre or sit)\n"));
- return -1;
- }
-@@ -390,13 +391,13 @@ int do_del(int argc, char **argv)
- return -1;
-
- switch (p.iph.protocol) {
-- case IPPROTO_IPIP:
-+ case IPPROTO_IPIP:
- return do_del_ioctl(p.name[0] ? p.name : "tunl0", &p);
-- case IPPROTO_GRE:
-+ case IPPROTO_GRE:
- return do_del_ioctl(p.name[0] ? p.name : "gre0", &p);
-- case IPPROTO_IPV6:
-+ case IPPROTO_IPV6:
- return do_del_ioctl(p.name[0] ? p.name : "sit0", &p);
-- default:
-+ default:
- return do_del_ioctl(p.name, &p);
- }
- return -1;
-@@ -476,8 +477,10 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
- return -1;
- }
-
-- fgets(buf, sizeof(buf), fp);
-- fgets(buf, sizeof(buf), fp);
-+ if (fgets(buf, sizeof(buf), fp))
-+ /* eat line */;
-+ if (fgets(buf, sizeof(buf), fp))
-+ /* eat line */;
-
- while (fgets(buf, sizeof(buf), fp) != NULL) {
- char *ptr;
-@@ -485,6 +488,7 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
- if ((ptr = strchr(buf, ':')) == NULL ||
- (*ptr++ = 0, sscanf(buf, "%s", name) != 1)) {
- fprintf(stderr, _("Wrong format of /proc/net/dev. Sorry.\n"));
-+ fclose(fp);
- return -1;
- }
- if (sscanf(ptr, "%ld%ld%ld%ld%ld%ld%ld%*d%ld%ld%ld%ld%ld%ld%ld",
-@@ -521,6 +525,7 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
- tx_packets, tx_bytes, tx_errs, tx_colls, tx_carrier, tx_drops);
- }
- }
-+ fclose(fp);
- return 0;
- }
-
-@@ -533,7 +538,7 @@ static int do_show(int argc, char **argv)
- return -1;
-
- switch (p.iph.protocol) {
-- case IPPROTO_IPIP:
-+ case IPPROTO_IPIP:
- err = do_get_ioctl(p.name[0] ? p.name : "tunl0", &p);
- break;
- case IPPROTO_GRE:
-@@ -592,7 +597,7 @@ int main(int argc, char **argv)
- basename = argv[0];
- else
- basename++;
--
-+
- while (argc > 1) {
- if (argv[1][0] != '-')
- break;
-diff --git a/lib/Makefile b/lib/Makefile
-index d714b2e..431f258 100644
---- a/lib/Makefile
-+++ b/lib/Makefile
-@@ -16,7 +16,7 @@
- #
-
-
--HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o
-+HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o eui64.o ib.o
- AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o
- AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o
- AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o
-@@ -36,7 +36,7 @@ OBJS = $(sort $(VARIA) $(AFOBJS) $(HWOBJS) \
-
- # This can be overwritten by the TOPLEVEL Makefile
- TOPDIR=..
--CFLAGS += -I$(TOPDIR) -idirafter $(TOPDIR)/include # -fPIC
-+CFLAGS += -I$(TOPDIR) -I$(TOPDIR)/include # -fPIC
- SONAME=libnet-tools.so.0
-
- .SUFFIXES: .a .so
-diff --git a/lib/af.c b/lib/af.c
-index 4f002c4..36bf03c 100644
---- a/lib/af.c
-+++ b/lib/af.c
-@@ -2,7 +2,7 @@
- * lib/af.c This file contains the top-level part of the protocol
- * support functions module for the NET-2 base distribution.
- *
-- * Version: $Id: af.c,v 1.13 2000/05/20 13:38:10 pb Exp $
-+ * Version: $Id: af.c,v 1.14 2007/12/01 17:49:35 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -35,8 +35,10 @@ int flag_netrom;
- int flag_inet;
- int flag_inet6;
- int flag_econet;
-+int flag_rose;
- int flag_x25 = 0;
- int flag_ash;
-+int flag_bluetooth;
-
-
- struct aftrans_t {
-@@ -58,6 +60,9 @@ struct aftrans_t {
- "ipx", "ipx", &flag_ipx
- },
- {
-+ "rose", "rose", &flag_rose
-+ },
-+ {
- "appletalk", "ddp", &flag_ddp
- },
- {
-@@ -88,6 +93,9 @@ struct aftrans_t {
- "ash", "ash", &flag_ash
- },
- {
-+ "bluetooth", "bluetooth", &flag_bluetooth
-+ },
-+ {
- 0, 0, 0
- }
- };
-@@ -193,7 +201,7 @@ void aftrans_def(char *tool, char *argv0, char *dflt)
- char *tmp;
- char *buf;
-
-- strcpy(afname, dflt);
-+ safe_strncpy(afname, dflt, sizeof(afname));
-
- if (!(tmp = strrchr(argv0, '/')))
- tmp = argv0; /* no slash?! */
-@@ -219,7 +227,7 @@ void aftrans_def(char *tool, char *argv0, char *dflt)
-
- afname[0] = '\0';
- if (aftrans_opt(buf))
-- strcpy(afname, buf);
-+ safe_strncpy(afname, buf, sizeof(afname));
-
- free(buf);
- }
-@@ -296,7 +304,6 @@ int aftrans_opt(const char *arg)
- if (tmp2)
- *(tmp2++) = '\0';
-
-- paft = aftrans;
- for (paft = aftrans; paft->alias; paft++) {
- if (strcmp(tmp1, paft->alias))
- continue;
-@@ -335,7 +342,7 @@ void print_aflist(int type) {
- if ((type == 1 && ((*afp)->rprint == NULL)) || ((*afp)->af == 0)) {
- afp++; continue;
- }
-- if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
-+ if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
- txt = (*afp)->name; if (!txt) txt = "..";
- fprintf(stderr,"%s (%s) ",txt,(*afp)->title);
- count++;
-diff --git a/lib/arcnet.c b/lib/arcnet.c
-index eb0f46e..9bc3267 100644
---- a/lib/arcnet.c
-+++ b/lib/arcnet.c
-@@ -35,7 +35,7 @@ extern struct hwtype arcnet_hwtype;
-
-
- /* Display an ARCnet address in readable format. */
--static char *pr_arcnet(unsigned char *ptr)
-+static const char *pr_arcnet(const char *ptr)
- {
- static char buff[64];
-
-@@ -43,11 +43,16 @@ static char *pr_arcnet(unsigned char *ptr)
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an ARCnet address and convert to binary. */
- static int in_arcnet(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-@@ -66,9 +71,8 @@ static int in_arcnet(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -81,9 +85,8 @@ static int in_arcnet(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -92,28 +95,21 @@ static int in_arcnet(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == ETH_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == ETH_ALEN)
- fprintf(stderr, _("in_arcnet(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == ETH_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == ETH_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_arcnet(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_arcnet(%s): %s\n", orig, pr_arcnet(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_arcnet(%s): %s\n", orig, pr_arcnet(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/ash.c b/lib/ash.c
-index c64667c..6cfc154 100644
---- a/lib/ash.c
-+++ b/lib/ash.c
-@@ -31,8 +31,8 @@ static unsigned char hamming[16] =
- };
-
- /* Display an Ash address in readable format. */
--static char *
--pr_ash(unsigned char *ptr)
-+static const char *
-+pr_ash(const char *ptr)
- {
- static char buff[128];
- char *p = buff;
-@@ -57,10 +57,10 @@ pr_ash(unsigned char *ptr)
-
- struct hwtype ash_hwtype;
-
--static int
-+static int
- in_ash(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- unsigned int i = 0;
-
- sap->sa_family = ash_hwtype.type;
-@@ -102,7 +102,7 @@ struct hwtype ash_hwtype =
- #if HAVE_AFASH
-
- /* Display an Ash socket address. */
--static char *
-+static const char *
- pr_sash(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-diff --git a/lib/ax25.c b/lib/ax25.c
-index 11521d2..d57abe7 100644
---- a/lib/ax25.c
-+++ b/lib/ax25.c
-@@ -47,7 +47,7 @@ static char AX25_errmsg[128];
-
- extern struct aftype ax25_aftype;
-
--static char *AX25_print(unsigned char *ptr)
-+static const char *AX25_print(const char *ptr)
- {
- static char buff[8];
- int i;
-@@ -66,7 +66,7 @@ static char *AX25_print(unsigned char *ptr)
-
-
- /* Display an AX.25 socket address. */
--static char *
-+static const char *
- AX25_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-@@ -76,10 +76,15 @@ static char *
- return (AX25_print(((struct sockaddr_ax25 *) sap)->sax25_call.ax25_call));
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- static int AX25_input(int type, char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char *orig, c;
- int i;
-
-@@ -95,9 +100,8 @@ static int AX25_input(int type, char *bufp, struct sockaddr *sap)
- c = toupper(c);
- if (!(isupper(c) || isdigit(c))) {
- safe_strncpy(AX25_errmsg, _("Invalid callsign"), sizeof(AX25_errmsg));
--#ifdef DEBUG
-- fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -107,10 +111,9 @@ static int AX25_input(int type, char *bufp, struct sockaddr *sap)
-
- /* Callsign too long? */
- if ((i == 6) && (*bufp != '-') && (*bufp != '\0')) {
-- strcpy(AX25_errmsg, _("Callsign too long"));
--#ifdef DEBUG
-- fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
--#endif
-+ safe_strncpy(AX25_errmsg, _("Callsign too long"), sizeof(AX25_errmsg));
-+ if (_DEBUG)
-+ fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
- errno = E2BIG;
- return (-1);
- }
-@@ -128,12 +131,12 @@ static int AX25_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- /* All done. */
--#ifdef DEBUG
-- fprintf(stderr, "ax25_input(%s): ", orig);
-- for (i = 0; i < sizeof(ax25_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
--#endif
-+ if (_DEBUG) {
-+ fprintf(stderr, "ax25_input(%s): ", orig);
-+ for (i = 0; i < sizeof(ax25_address); i++)
-+ fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-+ fprintf(stderr, "\n");
-+ }
-
- return (0);
- }
-diff --git a/lib/ax25_gr.c b/lib/ax25_gr.c
-index 4dce92d..46a67ee 100644
---- a/lib/ax25_gr.c
-+++ b/lib/ax25_gr.c
-@@ -49,7 +49,8 @@ int AX25_rprint(int options)
- }
- printf(_("Kernel AX.25 routing table\n")); /* xxx */
- printf(_("Destination Iface Use\n")); /* xxx */
-- fgets(buffer, 256, f);
-+ if (fgets(buffer, 256, f))
-+ /* eat line */;
- while (fgets(buffer, 256, f)) {
- buffer[9] = 0;
- buffer[14] = 0;
-diff --git a/lib/ddp.c b/lib/ddp.c
-index 9b5e829..0a08fd2 100644
---- a/lib/ddp.c
-+++ b/lib/ddp.c
-@@ -32,7 +32,7 @@
- #include "util.h"
-
- /* Display a ddp domain address. */
--static char *ddp_print(unsigned char *ptr)
-+static const char *ddp_print(const char *ptr)
- {
- static char buff[64];
- struct sockaddr_at *sat = (struct sockaddr_at *) (ptr - 2);
-@@ -42,7 +42,7 @@ static char *ddp_print(unsigned char *ptr)
-
-
- /* Display a ddp domain address. */
--static char *ddp_sprint(struct sockaddr *sap, int numeric)
-+static const char *ddp_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-diff --git a/lib/ddp_gr.c b/lib/ddp_gr.c
-index 94169f0..d05c431 100644
---- a/lib/ddp_gr.c
-+++ b/lib/ddp_gr.c
-@@ -1,3 +1,20 @@
-+/*
-+ * lib/ddp_gr.c Prinbting of DDP (AppleTalk) routing table
-+ * used by the NET-LIB.
-+ *
-+ * NET-LIB
-+ *
-+ * Version: $Id: ddp_gr.c,v 1.4 2002/06/02 05:25:15 ecki Exp $
-+ *
-+ * Author: Ajax <ajax@firest0rm.org>
-+ *
-+ * Modification:
-+ * 2002-06-02 integrated into main source by Bernd Eckenfels
-+ *
-+ */
-+
-+/* TODO: name lookups (/etc/atalk.names? NBP?) */
-+
- #include "config.h"
-
- #if HAVE_AFATALK
-@@ -16,9 +33,62 @@
- #include "pathnames.h"
- #include "intl.h"
-
-+/* stolen from inet_gr.c */
-+#define flags_decode(i,o) do { \
-+ o[0] = '\0'; \
-+ if (i & RTF_UP) strcat(o, "U"); \
-+ if (i & RTF_GATEWAY) strcat(o, "G"); \
-+ if (i & RTF_REJECT) strcat(o, "!"); \
-+ if (i & RTF_HOST) strcat(o, "H"); \
-+ if (i & RTF_REINSTATE) strcat(o, "R"); \
-+ if (i & RTF_DYNAMIC) strcat(o, "D"); \
-+ if (i & RTF_MODIFIED) strcat(o, "M"); \
-+ if (i & RTF_DEFAULT) strcat(o, "d"); \
-+ if (i & RTF_ALLONLINK) strcat(o, "a"); \
-+ if (i & RTF_ADDRCONF) strcat(o, "c"); \
-+ if (i & RTF_NONEXTHOP) strcat(o, "o"); \
-+ if (i & RTF_EXPIRES) strcat(o, "e"); \
-+ if (i & RTF_CACHE) strcat(o, "c"); \
-+ if (i & RTF_FLOW) strcat(o, "f"); \
-+ if (i & RTF_POLICY) strcat(o, "p"); \
-+ if (i & RTF_LOCAL) strcat(o, "l"); \
-+ if (i & RTF_MTU) strcat(o, "u"); \
-+ if (i & RTF_WINDOW) strcat(o, "w"); \
-+ if (i & RTF_IRTT) strcat(o, "i"); \
-+ if (i & RTF_NOTCACHED) strcat(o, "n"); \
-+ } while (0)
-+
- int DDP_rprint(int options)
- {
-- fprintf(stderr, _("Routing table for `ddp' not yet supported.\n"));
-- return (1);
-+ FILE *fp;
-+ char *dest, *gw, *dev, *flags;
-+ char oflags[32];
-+ char *hdr = "Destination Gateway Device Flags";
-+
-+ fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r");
-+
-+ if (!fp) {
-+ perror("Error opening " _PATH_PROCNET_ATALK_ROUTE);
-+ fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n");
-+ return 1;
-+ }
-+
-+ if (fscanf(fp, "%ms %ms %ms %ms\n", &dest, &gw, &flags, &dev))
-+ /* eat line */;
-+ free(dest); free(gw); free(flags); free(dev);
-+
-+ printf("%s\n", hdr);
-+
-+ while (fscanf(fp, "%ms %ms %ms %ms\n", &dest, &gw, &flags, &dev) == 4) {
-+ int iflags = atoi(flags);
-+ flags_decode(iflags, oflags);
-+ printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags);
-+ free(dest); free(gw); free(flags); free(dev);
-+ }
-+
-+ fclose(fp);
-+
-+ return 0;
-+
- }
- #endif
-diff --git a/lib/ec_hw.c b/lib/ec_hw.c
-index 825e501..088d125 100644
---- a/lib/ec_hw.c
-+++ b/lib/ec_hw.c
-@@ -2,7 +2,7 @@
- * lib/ec_hw.c This file contains an implementation of the Econet
- * hardware support functions.
- *
-- * Version: $Id: ec_hw.c,v 1.2 1999/09/27 11:00:46 philip Exp $
-+ * Version: $Id: ec_hw.c,v 1.3 2009/09/06 22:39:20 ecki Exp $
- *
- * Author: Philip Blundell <philb@gnu.org>
- *
-@@ -16,6 +16,7 @@
-
- #if HAVE_HWEC
-
-+#include <stdlib.h>
- #include <net/if_arp.h>
- #include "net-support.h"
-
-diff --git a/lib/econet.c b/lib/econet.c
-index 1229a28..6cf8a9a 100644
---- a/lib/econet.c
-+++ b/lib/econet.c
-@@ -32,8 +32,8 @@
-
-
- /* Display an Econet address */
--static char *
--ec_print(unsigned char *ptr)
-+static const char *
-+ec_print(const char *ptr)
- {
- static char buff[64];
- struct ec_addr *ec = (struct ec_addr *) ptr;
-@@ -43,7 +43,7 @@ ec_print(unsigned char *ptr)
-
-
- /* Display an Econet socket address */
--static char *
-+static const char *
- ec_sprint(struct sockaddr *sap, int numeric)
- {
- struct sockaddr_ec *sec = (struct sockaddr_ec *) sap;
-@@ -51,10 +51,10 @@ ec_sprint(struct sockaddr *sap, int numeric)
- if (sap->sa_family != AF_ECONET)
- return _("[NONE SET]");
-
-- return ec_print((unsigned char *) &sec->addr);
-+ return ec_print((const char *) &sec->addr);
- }
-
--static int
-+static int
- ec_input(int type, char *bufp, struct sockaddr *sap)
- {
- struct sockaddr_ec *sec = (struct sockaddr_ec *) sap;
-diff --git a/lib/ether.c b/lib/ether.c
-index a71aed7..dee9c73 100644
---- a/lib/ether.c
-+++ b/lib/ether.c
-@@ -2,7 +2,7 @@
- * lib/ether.c This file contains an implementation of the "Ethernet"
- * support functions.
- *
-- * Version: $Id: ether.c,v 1.7 1999/09/27 11:00:47 philip Exp $
-+ * Version: $Id: ether.c,v 1.8 2002/07/30 05:17:29 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -35,22 +35,27 @@ extern struct hwtype ether_hwtype;
-
-
- /* Display an Ethernet address in readable format. */
--static char *pr_ether(unsigned char *ptr)
-+static const char *pr_ether(const char *ptr)
- {
- static char buff[64];
-
-- snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X",
-+ snprintf(buff, sizeof(buff), "%02x:%02x:%02x:%02x:%02x:%02x",
- (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
- (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
- );
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an Ethernet address and convert to binary. */
- static int in_ether(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i;
- unsigned val;
-@@ -70,9 +75,8 @@ static int in_ether(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -87,9 +91,8 @@ static int in_ether(char *bufp, struct sockaddr *sap)
- else if (c == ':' || c == 0)
- val >>= 4;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -100,28 +103,21 @@ static int in_ether(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == ETH_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == ETH_ALEN)
- fprintf(stderr, _("in_ether(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == ETH_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == ETH_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_ether(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_ether(%s): %s\n", orig, pr_ether(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_ether(%s): %s\n", orig, pr_ether(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/eui64.c b/lib/eui64.c
-new file mode 100644
-index 0000000..94831c0
---- /dev/null
-+++ b/lib/eui64.c
-@@ -0,0 +1,152 @@
-+/*
-+ * lib/eui64.c This file contains support for generic EUI-64 hw addressing
-+ *
-+ * Version: $Id: eui64.c,v 1.1 2001/11/12 02:12:05 ecki Exp $
-+ *
-+ * Author: Daniel Stodden <stodden@in.tum.de>
-+ * Copyright 2001 Daniel Stodden
-+ *
-+ * blueprinted from ether.c
-+ * Copyright 1993 MicroWalt Corporation
-+ *
-+ * 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.
-+ */
-+#include "config.h"
-+
-+#if HAVE_HWEUI64
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/socket.h>
-+#include <net/if_arp.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <ctype.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <string.h>
-+#include <termios.h>
-+#include <unistd.h>
-+#include "net-support.h"
-+#include "pathnames.h"
-+#include "intl.h"
-+
-+/*
-+ * EUI-64 constants
-+ */
-+
-+#define EUI64_ALEN 8
-+
-+#ifndef ARPHRD_EUI64
-+#define ARPHRD_EUI64 27
-+#warning "ARPHRD_EUI64 not defined in <net/if_arp.h>. Using private value 27"
-+#endif
-+
-+struct hwtype eui64_hwtype;
-+
-+/* Display an EUI-64 address in readable format. */
-+static const char *pr_eui64(const char *ptr)
-+{
-+ static char buff[64];
-+
-+ snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X",
-+ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377),
-+ (ptr[4] & 0377), (ptr[5] & 0377), (ptr[6] & 0377), (ptr[7] & 0377)
-+ );
-+ return (buff);
-+}
-+
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-+
-+/* Start the PPP encapsulation on the file descriptor. */
-+static int in_eui64( char *bufp, struct sockaddr *sap )
-+{
-+ char *ptr;
-+ char c, *orig;
-+ int i;
-+ unsigned val;
-+
-+ sap->sa_family = eui64_hwtype.type;
-+ ptr = sap->sa_data;
-+
-+ i = 0;
-+ orig = bufp;
-+
-+ while ((*bufp != '\0') && (i < EUI64_ALEN)) {
-+ val = 0;
-+ c = *bufp++;
-+ if (isdigit(c))
-+ val = c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val = c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val = c - 'A' + 10;
-+ else {
-+ if (_DEBUG)
-+ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"),
-+ orig );
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+
-+ val <<= 4;
-+ c = *bufp;
-+ if (isdigit(c))
-+ val |= c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val |= c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val |= c - 'A' + 10;
-+ else if (c == ':' || c == 0)
-+ val >>= 4;
-+ else {
-+ if (_DEBUG)
-+ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"),
-+ orig );
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+
-+ if (c != 0)
-+ bufp++;
-+
-+ *ptr++ = (unsigned char) (val & 0377);
-+ i++;
-+
-+ /* We might get a semicolon here - not required. */
-+ if (*bufp == ':') {
-+ if (_DEBUG && i == EUI64_ALEN)
-+ fprintf(stderr, _("in_eui64(%s): trailing : ignored!\n"),
-+ orig);
-+ bufp++;
-+ }
-+ }
-+
-+ /* That's it. Any trailing junk? */
-+ if (_DEBUG && (i == EUI64_ALEN) && (*bufp != '\0')) {
-+ fprintf(stderr, _("in_eui64(%s): trailing junk!\n"), orig);
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ if (_DEBUG)
-+ fprintf(stderr, "in_eui64(%s): %s\n", orig, pr_eui64(sap->sa_data));
-+
-+ return (0);
-+}
-+
-+struct hwtype eui64_hwtype =
-+{
-+ "eui64", NULL, /*"EUI-64 addressing", */ ARPHRD_EUI64, EUI64_ALEN,
-+ pr_eui64, in_eui64, NULL, 0
-+};
-+
-+
-+#endif /* HAVE_EUI64 */
-diff --git a/lib/fddi.c b/lib/fddi.c
-index f6bf5ca..c18696e 100644
---- a/lib/fddi.c
-+++ b/lib/fddi.c
-@@ -46,7 +46,7 @@ extern struct hwtype fddi_hwtype;
-
-
- /* Display an FDDI address in readable format. */
--static char *pr_fddi(unsigned char *ptr)
-+static const char *pr_fddi(const char *ptr)
- {
- static char buff[64];
-
-@@ -57,11 +57,16 @@ static char *pr_fddi(unsigned char *ptr)
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an FDDI address and convert to binary. */
- static int in_fddi(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-@@ -80,9 +85,8 @@ static int in_fddi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -95,9 +99,8 @@ static int in_fddi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -106,28 +109,21 @@ static int in_fddi(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == FDDI_K_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == FDDI_K_ALEN)
- fprintf(stderr, _("in_fddi(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == FDDI_K_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == FDDI_K_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_fddi(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_fddi(%s): %s\n", orig, pr_fddi(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_fddi(%s): %s\n", orig, pr_fddi(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/frame.c b/lib/frame.c
-index 58d1ad4..ad265d6 100644
---- a/lib/frame.c
-+++ b/lib/frame.c
-@@ -37,7 +37,7 @@
- #include "net-support.h"
- #include "pathnames.h"
-
--char *pr_dlci(unsigned char *ptr)
-+static const char *pr_dlci(const char *ptr)
- {
- static char buf[12];
-
-diff --git a/lib/getargs.c b/lib/getargs.c
-index 4170097..6952777 100644
---- a/lib/getargs.c
-+++ b/lib/getargs.c
-@@ -24,12 +24,13 @@
- #include <unistd.h>
- #include "net-support.h"
- #include "pathnames.h"
-+#include "util.h"
-
-
- /* Split the input string into multiple fields. */
- int getargs(char *string, char *arguments[])
- {
-- int len = strlen(string);
-+ int len = strlen(string);
- char temp[len+1];
- char *sp, *ptr;
- int i, argc;
-@@ -41,7 +42,7 @@ int getargs(char *string, char *arguments[])
- */
- sp = string;
- i = 0;
-- strcpy(temp, string);
-+ safe_strncpy(temp, string, sizeof(temp));
- ptr = temp;
-
- /*
-diff --git a/lib/hdlclapb.c b/lib/hdlclapb.c
-index c4ed074..b7d563e 100644
---- a/lib/hdlclapb.c
-+++ b/lib/hdlclapb.c
-@@ -1,11 +1,11 @@
- /*
-- * lib/hdlclapb.c
-+ * lib/hdlclapb.c
- * This file contains the HDLC/LAPB support for the NET-2 base
- * distribution.
- *
- * Version: $Id: hdlclapb.c,v 1.5 2000/03/05 11:26:02 philip Exp $
- *
-- * Original Author:
-+ * Original Author:
- * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
- *
-diff --git a/lib/hippi.c b/lib/hippi.c
-index 308db00..43e7a79 100644
---- a/lib/hippi.c
-+++ b/lib/hippi.c
-@@ -46,7 +46,7 @@ extern struct hwtype hippi_hwtype;
-
-
- /* Display an HIPPI address in readable format. */
--static char *pr_hippi(unsigned char *ptr)
-+static const char *pr_hippi(const char *ptr)
- {
- static char buff[64];
-
-@@ -57,11 +57,16 @@ static char *pr_hippi(unsigned char *ptr)
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an HIPPI address and convert to binary. */
- static int in_hippi(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-@@ -80,9 +85,8 @@ static int in_hippi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -95,9 +99,8 @@ static int in_hippi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -106,27 +109,20 @@ static int in_hippi(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == HIPPI_ALEN) {
--#ifdef DEBUG
-- fprintf(stderr, _("in_hippi(%s): trailing : ignored!\n"), orig)
--#endif
-- ; /* nothing */
-- }
-+ if (_DEBUG && i == HIPPI_ALEN)
-+ fprintf(stderr, _("in_hippi(%s): trailing : ignored!\n"), orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == HIPPI_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == HIPPI_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_hippi(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_hippi(%s): %s\n", orig, pr_hippi(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_hippi(%s): %s\n", orig, pr_hippi(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/hw.c b/lib/hw.c
-index 4989748..71dfcf9 100644
---- a/lib/hw.c
-+++ b/lib/hw.c
-@@ -2,7 +2,7 @@
- * lib/hw.c This file contains the top-level part of the hardware
- * support functions module.
- *
-- * Version: $Id: hw.c,v 1.17 2000/05/20 13:38:10 pb Exp $
-+ * Version: $Id: hw.c,v 1.19 2008/10/03 01:52:04 ecki Exp $
- *
- * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
- *
-@@ -73,6 +73,10 @@ extern struct hwtype irda_hwtype;
-
- extern struct hwtype ec_hwtype;
-
-+extern struct hwtype ib_hwtype;
-+
-+extern struct hwtype eui64_hwtype;
-+
- static struct hwtype *hwtypes[] =
- {
-
-@@ -97,7 +101,7 @@ static struct hwtype *hwtypes[] =
- #if HAVE_HWTR
- &tr_hwtype,
- #ifdef ARPHRD_IEEE802_TR
-- &tr_hwtype1,
-+ &tr_hwtype1,
- #endif
- #endif
- #if HAVE_HWAX25
-@@ -144,6 +148,12 @@ static struct hwtype *hwtypes[] =
- #if HAVE_HWX25
- &x25_hwtype,
- #endif
-+#if HAVE_HWIB
-+ &ib_hwtype,
-+#endif
-+#if HAVE_HWEUI64
-+ &eui64_hwtype,
-+#endif
- &unspec_hwtype,
- NULL
- };
-@@ -211,12 +221,18 @@ void hwinit()
- #if HAVE_HWTR
- tr_hwtype.title = _("16/4 Mbps Token Ring");
- #ifdef ARPHRD_IEEE802_TR
-- tr_hwtype1.title = _("16/4 Mbps Token Ring (New)") ;
-+ tr_hwtype1.title = _("16/4 Mbps Token Ring (New)") ;
- #endif
- #endif
- #if HAVE_HWEC
- ec_hwtype.title = _("Econet");
- #endif
-+#if HAVE_HWIB
-+ ib_hwtype.title = _("InfiniBand");
-+#endif
-+#if HAVE_HWEUI64
-+ eui64_hwtype.title = _("Generic EUI-64");
-+#endif
- sVhwinit = 1;
- }
-
-@@ -269,7 +285,7 @@ void print_hwlist(int type) {
- if (((type == 1) && ((*hwp)->alen == 0)) || ((*hwp)->type == -1)) {
- hwp++; continue;
- }
-- if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
-+ if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
- txt = (*hwp)->name; if (!txt) txt = "..";
- fprintf(stderr,"%s (%s) ",txt,(*hwp)->title);
- count++;
-diff --git a/lib/ib.c b/lib/ib.c
-new file mode 100644
-index 0000000..1eeb7f0
---- /dev/null
-+++ b/lib/ib.c
-@@ -0,0 +1,151 @@
-+/*
-+ * lib/ib.c This file contains an implementation of the "Infiniband"
-+ * support functions.
-+ *
-+ * Version: $Id: ib.c,v 1.1 2008/10/03 01:52:03 ecki Exp $
-+ *
-+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
-+ * Copyright 1993 MicroWalt Corporation
-+ * Tom Duffy <tduffy@sun.com>
-+ *
-+ * 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.
-+ */
-+#include "config.h"
-+
-+#if HAVE_HWIB
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <net/if_arp.h>
-+#include <linux/if_infiniband.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <errno.h>
-+#include <ctype.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include "net-support.h"
-+#include "pathnames.h"
-+#include "intl.h"
-+#include "util.h"
-+
-+extern struct hwtype ib_hwtype;
-+
-+
-+/* Display an InfiniBand address in readable format. */
-+static const char *pr_ib(const char *ptr)
-+{
-+ static char buff[128];
-+ char *pos;
-+ unsigned int i;
-+
-+ pos = buff;
-+ for (i = 0; i < INFINIBAND_ALEN; i++) {
-+ pos += sprintf(pos, "%02X:", (*ptr++ & 0377));
-+ }
-+ buff[strlen(buff) - 1] = '\0';
-+ fprintf(stderr, _("Infiniband hardware address can be incorrect! Please read BUGS section in ifconfig(8).\n"));
-+ /* snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X",
-+ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
-+ (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
-+ );
-+ */
-+ return (buff);
-+}
-+
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-+
-+/* Input an Infiniband address and convert to binary. */
-+static int in_ib(char *bufp, struct sockaddr *sap)
-+{
-+ char *ptr;
-+ char c, *orig;
-+ int i;
-+ unsigned val;
-+
-+ sap->sa_family = ib_hwtype.type;
-+ ptr = sap->sa_data;
-+
-+ i = 0;
-+ orig = bufp;
-+ while ((*bufp != '\0') && (i < INFINIBAND_ALEN)) {
-+ val = 0;
-+ c = *bufp++;
-+ if (isdigit(c))
-+ val = c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val = c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val = c - 'A' + 10;
-+ else {
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_ib(%s): invalid infiniband address!\n"), orig);
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ val <<= 4;
-+ c = *bufp;
-+ if (isdigit(c))
-+ val |= c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val |= c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val |= c - 'A' + 10;
-+ else if (c == ':' || c == 0)
-+ val >>= 4;
-+ else {
-+#ifdef DEBUG
-+ fprintf(stderr, _("in_ib(%s): invalid infiniband address!\n"), orig);
-+#endif
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ if (c != 0)
-+ bufp++;
-+ *ptr++ = (unsigned char) (val & 0377);
-+ i++;
-+
-+ /* We might get a semicolon here - not required. */
-+ if (*bufp == ':') {
-+ if (i == INFINIBAND_ALEN) {
-+#ifdef DEBUG
-+ fprintf(stderr, _("in_ib(%s): trailing : ignored!\n"),
-+ orig)
-+#endif
-+ ; /* nothing */
-+ }
-+ bufp++;
-+ }
-+ }
-+
-+ /* That's it. Any trailing junk? */
-+ if ((i == INFINIBAND_ALEN) && (*bufp != '\0')) {
-+#ifdef DEBUG
-+ fprintf(stderr, _("in_ib(%s): trailing junk!\n"), orig);
-+ errno = EINVAL;
-+ return (-1);
-+#endif
-+ }
-+#ifdef DEBUG
-+ fprintf(stderr, "in_ib(%s): %s\n", orig, pr_ib(sap->sa_data));
-+#endif
-+
-+ return (0);
-+}
-+
-+
-+struct hwtype ib_hwtype =
-+{
-+ "infiniband", NULL, ARPHRD_INFINIBAND, INFINIBAND_ALEN,
-+ pr_ib, in_ib, NULL
-+};
-+
-+
-+#endif /* HAVE_HWIB */
-diff --git a/lib/inet.c b/lib/inet.c
-index ae90664..8fd38b7 100644
---- a/lib/inet.c
-+++ b/lib/inet.c
-@@ -3,7 +3,7 @@
- * support functions for the net-tools.
- * (NET-3 base distribution).
- *
-- * Version: $Id: inet.c,v 1.13 1999/12/11 13:35:56 freitag Exp $
-+ * Version: $Id: inet.c,v 1.14 2003/10/19 11:57:37 pb Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -14,11 +14,11 @@
- *960203 {1.23} Bernd Eckenfels : net-features support
- *960217 {1.24} Bernd Eckenfels : get_sname
- *960219 {1.25} Bernd Eckenfels : extern int h_errno
-- *960329 {1.26} Bernd Eckenfels : resolve 255.255.255.255
-+ *960329 {1.26} Bernd Eckenfels : resolve 255.255.255.255
- *980101 {1.27} Bernd Eckenfels : resolve raw sockets in /etc/protocols
- *990302 {1.28} Phil Blundell : add netmask to INET_rresolve
- *991007 Kurt Garloff : rresolve, resolve: may be hosts
-- * <garloff@suse.de> store type (host?) in cache
-+ * <garloff@suse.de> store type (host?) in cache
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -96,9 +96,9 @@ static int INET_resolve(char *name, struct sockaddr_in *sin, int hostfirst)
- #ifdef DEBUG
- if (hostfirst) fprintf (stderr, "gethostbyname (%s)\n", name);
- #endif
-- if (hostfirst &&
-+ if (hostfirst &&
- (hp = gethostbyname(name)) != (struct hostent *) NULL) {
-- memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
-+ memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
- sizeof(struct in_addr));
- return 0;
- }
-@@ -127,24 +127,24 @@ static int INET_resolve(char *name, struct sockaddr_in *sin, int hostfirst)
- errno = h_errno;
- return -1;
- }
-- memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
-+ memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
- sizeof(struct in_addr));
-
- return 0;
- }
-
-
--/* numeric: & 0x8000: default instead of *,
-- * & 0x4000: host instead of net,
-+/* numeric: & 0x8000: default instead of *,
-+ * & 0x4000: host instead of net,
- * & 0x0fff: don't resolve
- */
--static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
-+static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- int numeric, unsigned int netmask)
- {
- struct hostent *ent;
- struct netent *np;
- struct addr *pn;
-- unsigned long ad, host_ad;
-+ u_int32_t ad, host_ad;
- int host = 0;
-
- /* Grmpf. -FvK */
-@@ -155,7 +155,7 @@ static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- errno = EAFNOSUPPORT;
- return (-1);
- }
-- ad = (unsigned long) sin->sin_addr.s_addr;
-+ ad = sin->sin_addr.s_addr;
- #ifdef DEBUG
- fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x \n", ad, netmask, numeric);
- #endif
-@@ -210,12 +210,12 @@ static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- }
- if ((ent == NULL) && (np == NULL))
- safe_strncpy(name, inet_ntoa(sin->sin_addr), len);
-- pn = (struct addr *) malloc(sizeof(struct addr));
-+ pn = (struct addr *) xmalloc(sizeof(struct addr));
- pn->addr = *sin;
- pn->next = INET_nn;
- pn->host = host;
-- pn->name = (char *) malloc(strlen(name) + 1);
-- strcpy(pn->name, name);
-+ pn->name = (char *) xmalloc(strlen(name) + 1);
-+ safe_strncpy(pn->name, name, sizeof(pn->name));
- INET_nn = pn;
-
- return (0);
-@@ -229,35 +229,35 @@ static void INET_reserror(char *text)
-
-
- /* Display an Internet socket address. */
--static char *INET_print(unsigned char *ptr)
-+static const char *INET_print(const char *ptr)
- {
- return (inet_ntoa((*(struct in_addr *) ptr)));
- }
-
-
- /* Display an Internet socket address. */
--static char *INET_sprint(struct sockaddr *sap, int numeric)
-+static const char *INET_sprint(struct sockaddr *sap, int numeric)
- {
- static char buff[128];
-
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
-
-- if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
-+ if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
- numeric, 0xffffff00) != 0)
- return (NULL);
-
- return (buff);
- }
-
--char *INET_sprintmask(struct sockaddr *sap, int numeric,
-+char *INET_sprintmask(struct sockaddr *sap, int numeric,
- unsigned int netmask)
- {
- static char buff[128];
-
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
-- if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
-+ if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
- numeric, netmask) != 0)
- return (NULL);
- return (buff);
-@@ -385,9 +385,7 @@ static int read_services(void)
- setservent(1);
- while ((se = getservent())) {
- /* Allocate a service entry. */
-- item = (struct service *) malloc(sizeof(struct service));
-- if (item == NULL)
-- perror("netstat");
-+ item = (struct service *) xmalloc(sizeof(struct service));
- item->name = strdup(se->s_name);
- item->number = se->s_port;
-
-@@ -398,15 +396,16 @@ static int read_services(void)
- add2list(&udp_name, item);
- } else if (!strcmp(se->s_proto, "raw")) {
- add2list(&raw_name, item);
-+ } else { /* sctp, ddp, dccp */
-+ free(item->name);
-+ free(item);
- }
- }
- endservent();
- setprotoent(1);
- while ((pe = getprotoent())) {
- /* Allocate a service entry. */
-- item = (struct service *) malloc(sizeof(struct service));
-- if (item == NULL)
-- perror("netstat");
-+ item = (struct service *) xmalloc(sizeof(struct service));
- item->name = strdup(pe->p_name);
- item->number = htons(pe->p_proto);
- add2list(&raw_name, item);
-@@ -416,35 +415,38 @@ static int read_services(void)
- }
-
-
--char *get_sname(int socknumber, char *proto, int numeric)
-+const char *get_sname(int socknumber, const char *proto, int numeric)
- {
- static char buffer[64], init = 0;
- struct service *item;
-
- if (socknumber == 0)
- return ("*");
-- if (numeric) {
-- sprintf(buffer, "%d", ntohs(socknumber));
-- return (buffer);
-- }
-+ if (numeric)
-+ goto do_ntohs;
-+
- if (!init) {
- (void) read_services();
- init = 1;
- }
- buffer[0] = '\0';
-- if (!strcmp(proto, "tcp")) {
-- if ((item = searchlist(tcp_name, socknumber)) != NULL)
-- sprintf(buffer, "%s", item->name);
-- } else if (!strcmp(proto, "udp")) {
-- if ((item = searchlist(udp_name, socknumber)) != NULL)
-- sprintf(buffer, "%s", item->name);
-- } else if (!strcmp(proto, "raw")) {
-- if ((item = searchlist(raw_name, socknumber)) != NULL)
-- sprintf(buffer, "%s", item->name);
--
-+ if (!strcmp(proto, "tcp"))
-+ item = searchlist(tcp_name, socknumber);
-+ else if (!strcmp(proto, "udp"))
-+ item = searchlist(udp_name, socknumber);
-+ else if (!strcmp(proto, "raw"))
-+ item = searchlist(raw_name, socknumber);
-+ else
-+ item = NULL;
-+ if (item) {
-+ strncpy(buffer, item->name, sizeof(buffer));
-+ buffer[sizeof(buffer) - 1] = '\0';
- }
-- if (!buffer[0])
-+
-+ if (!buffer[0]) {
-+ do_ntohs:
- sprintf(buffer, "%d", ntohs(socknumber));
-+ }
- return (buffer);
- }
-
-diff --git a/lib/inet6.c b/lib/inet6.c
-index 1f936b3..0b72dca 100644
---- a/lib/inet6.c
-+++ b/lib/inet6.c
-@@ -3,7 +3,7 @@
- * support functions for the net-tools.
- * (most of it copied from lib/inet.c 1.26).
- *
-- * Version: $Id: inet6.c,v 1.10 2000/10/28 11:04:00 pb Exp $
-+ * Version: $Id: inet6.c,v 1.13 2010-07-05 22:52:00 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -44,6 +44,21 @@
-
- extern int h_errno; /* some netdb.h versions don't export this */
-
-+char * fix_v4_address(char *buf, struct in6_addr *in6)
-+{
-+ if (IN6_IS_ADDR_V4MAPPED(in6->s6_addr)) {
-+ char *s =strchr(buf, '.');
-+ if (s) {
-+ while (s > buf && *s != ':')
-+ --s;
-+ if (*s == ':') ++s;
-+ else s = NULL;
-+ }
-+ if (s) return s;
-+ }
-+ return buf;
-+}
-+
- static int INET6_resolve(char *name, struct sockaddr_in6 *sin6)
- {
- struct addrinfo req, *ai;
-@@ -83,14 +98,14 @@ static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
- return (-1);
- }
- if (numeric & 0x7FFF) {
-- inet_ntop(AF_INET6, &sin6->sin6_addr, name, 80);
-+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80);
- return (0);
- }
- if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
- if (numeric & 0x8000)
-- strcpy(name, "default");
-+ safe_strncpy(name, "default", sizeof(name));
- else
-- strcpy(name, "*");
-+ safe_strncpy(name, "[::]", sizeof(name));
- return (0);
- }
-
-@@ -109,19 +124,20 @@ static void INET6_reserror(char *text)
- }
-
-
-+
- /* Display an Internet socket address. */
--static char *INET6_print(unsigned char *ptr)
-+static const char *INET6_print(const char *ptr)
- {
- static char name[80];
-
- inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80);
-- return name;
-+ return fix_v4_address(name, (struct in6_addr *)ptr);
- }
-
-
- /* Display an Internet socket address. */
- /* dirty! struct sockaddr usually doesn't suffer for inet6 addresses, fst. */
--static char *INET6_sprint(struct sockaddr *sap, int numeric)
-+static const char *INET6_sprint(struct sockaddr *sap, int numeric)
- {
- static char buff[128];
-
-@@ -129,21 +145,26 @@ static char *INET6_sprint(struct sockaddr *sap, int numeric)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
- if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0)
- return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff));
-- return (buff);
-+ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr));
- }
-
-
- static int INET6_getsock(char *bufp, struct sockaddr *sap)
- {
- struct sockaddr_in6 *sin6;
-+ char *p;
-
- sin6 = (struct sockaddr_in6 *) sap;
- sin6->sin6_family = AF_INET6;
- sin6->sin6_port = 0;
-+ sin6->sin6_scope_id = 0;
-+ sin6->sin6_flowinfo = 0;
-
- if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0)
- return (-1);
--
-+ p = fix_v4_address(bufp, &sin6->sin6_addr);
-+ if (p != bufp)
-+ memcpy(bufp, p, strlen(p)+1);
- return 16; /* ?;) */
- }
-
-diff --git a/lib/inet6_gr.c b/lib/inet6_gr.c
-index 14f32eb..cd21a66 100644
---- a/lib/inet6_gr.c
-+++ b/lib/inet6_gr.c
-@@ -1,4 +1,4 @@
--/*
-+ /*
- Modifications:
- 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets,
- snprintf instead of sprintf
-@@ -31,6 +31,7 @@
- #include "pathnames.h"
- #include "intl.h"
- #include "net-features.h"
-+#include "util.h"
-
- /* neighbour discovery from linux-2.4.0/include/net/neighbour.h */
-
-@@ -63,7 +64,7 @@ int rprint_fib6(int ext, int numeric)
- struct sockaddr_in6 saddr6, snaddr6;
- int num, iflags, metric, refcnt, use, prefix_len, slen;
- FILE *fp = fopen(_PATH_PROCNET_ROUTE6, "r");
--
-+
- char addr6p[8][5], saddr6p[8][5], naddr6p[8][5];
-
- if (!fp) {
-@@ -71,14 +72,18 @@ int rprint_fib6(int ext, int numeric)
- printf(_("INET6 (IPv6) not configured in this system.\n"));
- return 1;
- }
-- printf(_("Kernel IPv6 routing table\n"));
-
-- printf(_("Destination "
-- "Next Hop "
-- "Flags Metric Ref Use Iface\n"));
-+ if (numeric & RTF_CACHE)
-+ printf(_("Kernel IPv6 routing cache\n"));
-+ else
-+ printf(_("Kernel IPv6 routing table\n"));
-+
-+ printf(_("Destination "
-+ "Next Hop "
-+ "Flag Met Ref Use If\n"));
-
- while (fgets(buff, 1023, fp)) {
-- num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n",
-+ num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %15s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7],
- &prefix_len,
-@@ -87,13 +92,17 @@ int rprint_fib6(int ext, int numeric)
- &slen,
- naddr6p[0], naddr6p[1], naddr6p[2], naddr6p[3],
- naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7],
-- &metric, &use, &refcnt, &iflags, iface);
--#if 0
-- if (num < 23)
-- continue;
--#endif
-- if (!(iflags & RTF_UP))
-+ &metric, &refcnt, &use, &iflags, iface);
-+ if (0 && num < 23)
- continue;
-+ if (iflags & RTF_CACHE) {
-+ if (!(numeric & RTF_CACHE))
-+ continue;
-+ } else {
-+ if (numeric & RTF_CACHE)
-+ continue;
-+ }
-+
- /* Fetch and resolve the target address. */
- snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
-@@ -112,7 +121,12 @@ int rprint_fib6(int ext, int numeric)
- inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1));
-
- /* Decode the flags. */
-- strcpy(flags, "U");
-+
-+ flags[0]=0;
-+ if (iflags & RTF_UP)
-+ strcat(flags, "U");
-+ if (iflags & RTF_REJECT)
-+ strcat(flags, "!");
- if (iflags & RTF_GATEWAY)
- strcat(flags, "G");
- if (iflags & RTF_HOST)
-@@ -123,9 +137,19 @@ int rprint_fib6(int ext, int numeric)
- strcat(flags, "A");
- if (iflags & RTF_CACHE)
- strcat(flags, "C");
-+ if (iflags & RTF_ALLONLINK)
-+ strcat(flags, "a");
-+ if (iflags & RTF_EXPIRES)
-+ strcat(flags, "e");
-+ if (iflags & RTF_MODIFIED)
-+ strcat(flags, "m");
-+ if (iflags & RTF_NONEXTHOP)
-+ strcat(flags, "n");
-+ if (iflags & RTF_FLOW)
-+ strcat(flags, "f");
-
- /* Print the info. */
-- printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n",
-+ printf("%-30s %-26s %-4s %-3d %-1d%6d %s\n",
- addr6, naddr6, flags, metric, refcnt, use, iface);
- }
-
-@@ -138,14 +162,13 @@ int rprint_cache6(int ext, int numeric)
- char buff[4096], iface[16], flags[16];
- char addr6[128], haddr[20], statestr[20];
- struct sockaddr_in6 saddr6;
-- int type, num, refcnt, prefix_len, location, state, gc;
-+ int type, refcnt, prefix_len, location, state, gc;
- long tstamp, expire, ndflags, reachable, stale, delete;
- FILE *fp = fopen(_PATH_PROCNET_NDISC, "r");
- char addr6p[8][5], haddrp[6][3];
-
- if (!fp) {
-- ESYSNOT("nd_print", "ND Table");
-- return 1;
-+ return rprint_fib6(ext, numeric | RTF_CACHE);
- }
- printf(_("Kernel IPv6 Neighbour Cache\n"));
-
-@@ -160,7 +183,7 @@ int rprint_cache6(int ext, int numeric)
-
-
- while (fgets(buff, 1023, fp)) {
-- num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %08lx %08lx %08lx %04x %04x %04lx %8s %2s%2s%2s%2s%2s%2s\n",
-+ sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %08lx %08lx %08lx %04x %04x %04lx %8s %2s%2s%2s%2s%2s%2s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7],
- &location, &prefix_len, &type, &state, &expire, &tstamp, &reachable, &gc, &refcnt,
-@@ -194,31 +217,31 @@ int rprint_cache6(int ext, int numeric)
- /* Decode the state */
- switch (state) {
- case NUD_NONE:
-- strcpy(statestr, "NONE");
-+ safe_strncpy(statestr, "NONE", sizeof(statestr));
- break;
- case NUD_INCOMPLETE:
-- strcpy(statestr, "INCOMPLETE");
-+ safe_strncpy(statestr, "INCOMPLETE", sizeof(statestr));
- break;
- case NUD_REACHABLE:
-- strcpy(statestr, "REACHABLE");
-+ safe_strncpy(statestr, "REACHABLE", sizeof(statestr));
- break;
- case NUD_STALE:
-- strcpy(statestr, "STALE");
-+ safe_strncpy(statestr, "STALE", sizeof(statestr));
- break;
- case NUD_DELAY:
-- strcpy(statestr, "DELAY");
-+ safe_strncpy(statestr, "DELAY", sizeof(statestr));
- break;
- case NUD_PROBE:
-- strcpy(statestr, "PROBE");
-+ safe_strncpy(statestr, "PROBE", sizeof(statestr));
- break;
- case NUD_FAILED:
-- strcpy(statestr, "FAILED");
-+ safe_strncpy(statestr, "FAILED", sizeof(statestr));
- break;
- case NUD_NOARP:
-- strcpy(statestr, "NOARP");
-+ safe_strncpy(statestr, "NOARP", sizeof(statestr));
- break;
- case NUD_PERMANENT:
-- strcpy(statestr, "PERM");
-+ safe_strncpy(statestr, "PERM", sizeof(statestr));
- break;
- default:
- snprintf(statestr, sizeof(statestr), "UNKNOWN(%02x)", state);
-diff --git a/lib/inet6_sr.c b/lib/inet6_sr.c
-index fbfe033..1ad9510 100644
---- a/lib/inet6_sr.c
-+++ b/lib/inet6_sr.c
-@@ -33,7 +33,7 @@
- #include "pathnames.h"
- #include "intl.h"
- #include "net-features.h"
--
-+#include "util.h"
-
-
- extern struct aftype inet6_aftype;
-@@ -63,7 +63,7 @@ static int INET6_setroute(int action, int options, char **args)
- if (*args == NULL)
- return (usage());
-
-- strcpy(target, *args++);
-+ safe_strncpy(target, *args++, sizeof(target));
- if (!strcmp(target, "default")) {
- prefix_len = 0;
- memset(&sa6, 0, sizeof(sa6));
-@@ -112,7 +112,7 @@ static int INET6_setroute(int action, int options, char **args)
- return (usage());
- if (rt.rtmsg_flags & RTF_GATEWAY)
- return (usage());
-- strcpy(gateway, *args);
-+ safe_strncpy(gateway, *args, sizeof(gateway));
- if (inet6_aftype.input(1, gateway,
- (struct sockaddr *) &sa6) < 0) {
- inet6_aftype.herror(gateway);
-@@ -152,7 +152,7 @@ static int INET6_setroute(int action, int options, char **args)
- }
- if (devname) {
- memset(&ifr, 0, sizeof(ifr));
-- strcpy(ifr.ifr_name, devname);
-+ safe_strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name));
-
- if (ioctl(skfd, SIOGIFINDEX, &ifr) < 0) {
- perror("SIOGIFINDEX");
-diff --git a/lib/inet_gr.c b/lib/inet_gr.c
-index d1e5efc..f67e89d 100644
---- a/lib/inet_gr.c
-+++ b/lib/inet_gr.c
-@@ -1,5 +1,5 @@
- /*
-- $Id: inet_gr.c,v 1.13 2000/10/08 01:00:44 ecki Exp $
-+ $Id: inet_gr.c,v 1.14 2009/07/08 00:24:03 ecki Exp $
-
- Modifications:
- 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets
-@@ -31,14 +31,15 @@
- #include "intl.h"
- #include "net-features.h"
- #include "proc.h"
-+#include "util.h"
- extern struct aftype inet_aftype;
-
--extern char *INET_sprintmask(struct sockaddr *sap, int numeric,
-+extern char *INET_sprintmask(struct sockaddr *sap, int numeric,
- unsigned int netmask);
-
- int rprint_fib(int ext, int numeric)
- {
-- char buff[1024], iface[16], flags[64];
-+ char buff[1024], iface[17], flags[64];
- char gate_addr[128], net_addr[128];
- char mask_addr[128];
- int num, iflags, metric, refcnt, use, mss, window, irtt;
-@@ -68,19 +69,19 @@ int rprint_fib(int ext, int numeric)
- mss = 0;
-
- fmt = proc_gen_fmt(_PATH_PROCNET_ROUTE, 0, fp,
-- "Iface", "%16s",
-- "Destination", "%128s",
-- "Gateway", "%128s",
-+ "Iface", "%15s",
-+ "Destination", "%127s",
-+ "Gateway", "%127s",
- "Flags", "%X",
- "RefCnt", "%d",
- "Use", "%d",
- "Metric", "%d",
-- "Mask", "%128s",
-+ "Mask", "%127s",
- "MTU", "%d",
- "Window", "%d",
- "IRTT", "%d",
- NULL);
-- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d\n" */
-+ /* "%15s %127s %127s %X %d %d %d %127s %d %d %d\n" */
-
- if (!fmt)
- return 1;
-@@ -104,18 +105,19 @@ int rprint_fib(int ext, int numeric)
-
- /* Fetch and resolve the genmask. */
- (void) inet_aftype.input(1, mask_addr, &snet_mask);
--
-+
- sin_netmask = (struct sockaddr_in *)&snet_mask;
-- strcpy(net_addr, INET_sprintmask(&snet_target,
-+ safe_strncpy(net_addr, INET_sprintmask(&snet_target,
- (numeric | 0x8000 | (iflags & RTF_HOST? 0x4000: 0)),
-- sin_netmask->sin_addr.s_addr));
-- net_addr[15] = '\0';
-+ sin_netmask->sin_addr.s_addr), sizeof(net_addr));
-+ net_addr[15] = '\0';
-
-- strcpy(gate_addr, inet_aftype.sprint(&snet_gateway, numeric | 0x4000));
-- gate_addr[15] = '\0';
-+ safe_strncpy(gate_addr, inet_aftype.sprint(&snet_gateway, numeric | 0x4000),
-+ sizeof(gate_addr));
-+ gate_addr[15] = '\0';
-
-- strcpy(mask_addr, inet_aftype.sprint(&snet_mask, 1));
-- mask_addr[15] = '\0';
-+ safe_strncpy(mask_addr, inet_aftype.sprint(&snet_mask, 1), sizeof(mask_addr));
-+ mask_addr[15] = '\0';
-
- /* Decode the flags. */
- flags[0] = '\0';
-@@ -125,7 +127,7 @@ int rprint_fib(int ext, int numeric)
- strcat(flags, "G");
- #if HAVE_RTF_REJECT
- if (iflags & RTF_REJECT)
-- strcpy(flags, "!");
-+ safe_strncpy(flags, "!", sizeof(flags));
- #endif
- if (iflags & RTF_HOST)
- strcat(flags, "H");
-@@ -205,7 +207,7 @@ int rprint_fib(int ext, int numeric)
-
- int rprint_cache(int ext, int numeric)
- {
-- char buff[1024], iface[16], flags[64];
-+ char buff[1024], iface[17], flags[64];
- char gate_addr[128], dest_addr[128], specdst[128];
- char src_addr[128];
- struct sockaddr snet;
-@@ -221,17 +223,17 @@ int rprint_cache(int ext, int numeric)
- return 1;
- }
-
-- /* Okay, first thing we need to know is the format of the rt_cache.
-+ /* Okay, first thing we need to know is the format of the rt_cache.
- * I am aware of two possible layouts:
- * 2.2.0
- * "Iface\tDestination\tGateway \tFlags\t\tRefCnt\tUse\tMetric\tSource\t\tMTU\tWindow\tIRTT\tTOS\tHHRef\tHHUptod\tSpecDst"
-- * "%s\t%08lX\t%08lX\t%8X\t%d\t%u\t%d\t%08lX\t%d\t%u\t%u\t%02X\t%d\t%1d\t%08X"
-+ * "%s\t%08lX\t%08lX\t%8X\t%d\t%u\t%d\t%08lX\t%d\t%u\t%u\t%02X\t%d\t%1d\t%08X"
- *
- * 2.0.36
- * "Iface\tDestination\tGateway \tFlags\tRefCnt\tUse\tMetric\tSource\t\tMTU\tWindow\tIRTT\tHH\tARP"
- * "%s\t%08lX\t%08lX\t%02X\t%d\t%u\t%d\t%08lX\t%d\t%lu\t%u\t%d\t%1d"
- */
--
-+
- format = proc_guess_fmt(_PATH_PROCNET_RTCACHE, fp, "IRTT",1,"TOS",2,"HHRef",4,"HHUptod",8,"SpecDst",16,"HH",32,"ARP",64,NULL);
-
- printf(_("Kernel IP routing cache\n"));
-@@ -251,7 +253,7 @@ int rprint_cache(int ext, int numeric)
- printf("ERROR: proc_guess_fmt(%s,... returned: %d\n",_PATH_PROCNET_RTCACHE, format);
- break;
- }
--
-+
- rewind(fp);
-
- if (ext == 1)
-@@ -268,21 +270,21 @@ int rprint_cache(int ext, int numeric)
- "MSS Window irtt HH Arp\n"));
-
- fmt = proc_gen_fmt(_PATH_PROCNET_RTCACHE, 0, fp,
-- "Iface", "%16s",
-- "Destination", "%128s",
-- "Gateway", "%128s",
-+ "Iface", "%15s",
-+ "Destination", "%127s",
-+ "Gateway", "%127s",
- "Flags", "%X",
- "RefCnt", "%d",
- "Use", "%d",
- "Metric", "%d",
-- "Source", "%128s",
-+ "Source", "%127s",
- "MTU", "%d",
- "Window", "%d",
- "IRTT", "%d",
- "HH", "%d",
- "ARP", "%d",
- NULL);
-- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d %d %d\n" */
-+ /* "%15s %127s %127s %X %d %d %d %127s %d %d %d %d %d\n" */
- }
-
- if (format == 2) {
-@@ -291,23 +293,23 @@ int rprint_cache(int ext, int numeric)
- "Flags Metric Ref Use Iface "
- "MSS Window irtt TOS HHRef HHUptod SpecDst\n"));
- fmt = proc_gen_fmt(_PATH_PROCNET_RTCACHE, 0, fp,
-- "Iface", "%16s",
-- "Destination", "%128s",
-- "Gateway", "%128s",
-+ "Iface", "%15s",
-+ "Destination", "%127s",
-+ "Gateway", "%127s",
- "Flags", "%X",
- "RefCnt", "%d",
- "Use", "%d",
- "Metric", "%d",
-- "Source", "%128s",
-+ "Source", "%127s",
- "MTU", "%d",
- "Window", "%d",
- "IRTT", "%d",
- "TOS", "%d",
- "HHRef", "%d",
- "HHUptod", "%d",
-- "SpecDst", "%128s",
-+ "SpecDst", "%127s",
- NULL);
-- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d %d %d %128s\n" */
-+ /* "%15s %127s %127s %X %d %d %d %127s %d %d %d %d %d %127s\n" */
- }
-
-
-@@ -333,27 +335,23 @@ int rprint_cache(int ext, int numeric)
- if (num < 12)
- continue;
- }
--
-+
-
- /* Fetch and resolve the target address. */
- (void) inet_aftype.input(1, dest_addr, &snet);
-- strcpy(dest_addr, inet_aftype.sprint(&snet, numeric));
-- dest_addr[15] = '\0';
-+ safe_strncpy(dest_addr, inet_aftype.sprint(&snet, numeric), sizeof(dest_addr));
-
- /* Fetch and resolve the gateway address. */
- (void) inet_aftype.input(1, gate_addr, &snet);
-- strcpy(gate_addr, inet_aftype.sprint(&snet, numeric));
-- gate_addr[15] = '\0';
-+ safe_strncpy(gate_addr, inet_aftype.sprint(&snet, numeric), sizeof(gate_addr));
-
- /* Fetch and resolve the source. */
- (void) inet_aftype.input(1, src_addr, &snet);
-- strcpy(src_addr, inet_aftype.sprint(&snet, numeric));
-- src_addr[15] = '\0';
-+ safe_strncpy(src_addr, inet_aftype.sprint(&snet, numeric), sizeof(src_addr));
-
- /* Fetch and resolve the SpecDst addrerss. */
- (void) inet_aftype.input(1, specdst, &snet);
-- strcpy(specdst, inet_aftype.sprint(&snet, numeric));
-- specdst[15] = '\0';
-+ safe_strncpy(specdst, inet_aftype.sprint(&snet, numeric), sizeof(specdst));
-
- /* Decode the flags. */
- flags[0] = '\0';
-@@ -367,7 +365,7 @@ if (format == 1) {
- strcat(flags, "G");
- #if HAVE_RTF_REJECT
- if (iflags & RTF_REJECT)
-- strcpy(flags, "!");
-+ safe_strncpy(flags, "!", sizeof(flags));
- #endif
- if (iflags & RTF_REINSTATE)
- strcat(flags, "R");
-diff --git a/lib/inet_sr.c b/lib/inet_sr.c
-index 6d010d5..1a876ae 100644
---- a/lib/inet_sr.c
-+++ b/lib/inet_sr.c
-@@ -3,6 +3,7 @@
- 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets
- 1999-10-07 - Kurt Garloff - for -host and gws: prefer host names
- over networks (or even reject)
-+ 2003-10-11 - Maik Broemme - gcc 3.x warnign fixes (default: break;)
- */
-
- #include "config.h"
-@@ -104,7 +105,6 @@ static int INET_setroute(int action, int options, char **args)
- isnet = 1; break;
- case 2:
- isnet = 0; break;
-- default:
- }
-
- /* Fill in the other fields. */
-diff --git a/lib/interface.c b/lib/interface.c
-index f4d2a9a..67f0d8f 100644
---- a/lib/interface.c
-+++ b/lib/interface.c
-@@ -1,13 +1,13 @@
- /* Code to manipulate interface information, shared between ifconfig and
-- netstat.
-+ netstat.
-
-- 10/1998 partly rewriten by Andi Kleen to support an interface list.
-- I don't claim that the list operations are efficient @).
-+ 10/1998 partly rewriten by Andi Kleen to support an interface list.
-+ I don't claim that the list operations are efficient @).
-
- 8/2000 Andi Kleen make the list operations a bit more efficient.
- People are crazy enough to use thousands of aliases now.
-
-- $Id: interface.c,v 1.14 2001/02/10 19:31:15 pb Exp $
-+ $Id: interface.c,v 1.35 2011-01-01 03:22:31 ecki Exp $
- */
-
- #include "config.h"
-@@ -23,6 +23,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <ctype.h>
-+#include <string.h>
-
- #if HAVE_AFIPX
- #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
-@@ -36,7 +37,7 @@
- #include <neteconet/ec.h>
- #endif
-
--#ifdef HAVE_HWSLIP
-+#if HAVE_HWSLIP
- #include <linux/if_slip.h>
- #include <net/if_arp.h>
- #endif
-@@ -87,49 +88,58 @@ int procnetdev_vsn = 1;
-
- int ife_short;
-
-+int if_list_all = 0; /* do we have requested the complete proc list, yet? */
-+
- static struct interface *int_list, *int_last;
-
- static int if_readlist_proc(char *);
-
--static struct interface *add_interface(char *name)
-+static struct interface *if_cache_add(char *name)
- {
- struct interface *ife, **nextp, *new;
-
-+ if (!int_list)
-+ int_last = NULL;
-+
-+ /* the cache is sorted, so if we hit a smaller if, exit */
- for (ife = int_last; ife; ife = ife->prev) {
-- int n = nstrcmp(ife->name, name);
-- if (n == 0)
-- return ife;
-- if (n < 0)
-- break;
-+ int n = nstrcmp(ife->name, name);
-+ if (n == 0)
-+ return ife;
-+ if (n < 0)
-+ break;
- }
-- new(new);
-- safe_strncpy(new->name, name, IFNAMSIZ);
-- nextp = ife ? &ife->next : &int_list;
-+ new(new);
-+ safe_strncpy(new->name, name, IFNAMSIZ);
-+ nextp = ife ? &ife->next : &int_list; // keep sorting
- new->prev = ife;
-- new->next = *nextp;
-- if (new->next)
-- new->next->prev = new;
-+ new->next = *nextp;
-+ if (new->next)
-+ new->next->prev = new;
- else
-- int_last = new;
-- *nextp = new;
-- return new;
-+ int_last = new;
-+ *nextp = new;
-+ return new;
- }
-
- struct interface *lookup_interface(char *name)
- {
-- struct interface *ife = NULL;
-+ /* if we have read all, use it */
-+ if (if_list_all)
-+ return if_cache_add(name);
-
-- if (if_readlist_proc(name) < 0)
-- return NULL;
-- ife = add_interface(name);
-- return ife;
-+ /* otherwise we read a limited list */
-+ if (if_readlist_proc(name) < 0)
-+ return NULL;
-+
-+ return if_cache_add(name);
- }
-
- int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie)
- {
- struct interface *ife;
-
-- if (!int_list && (if_readlist() < 0))
-+ if (!if_list_all && (if_readlist() < 0))
- return -1;
- for (ife = int_list; ife; ife = ife->next) {
- int err = doit(ife, cookie);
-@@ -139,13 +149,15 @@ int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie)
- return 0;
- }
-
--int free_interface_list(void)
-+int if_cache_free(void)
- {
- struct interface *ife;
- while ((ife = int_list) != NULL) {
- int_list = ife->next;
- free(ife);
- }
-+ int_last = NULL;
-+ if_list_all = 0;
- return 0;
- }
-
-@@ -158,7 +170,7 @@ static int if_readconf(void)
- int skfd;
-
- /* SIOCGIFCONF currently seems to only work properly on AF_INET sockets
-- (as of 2.1.128) */
-+ (as of 2.1.128) */
- skfd = get_socket_for_af(AF_INET);
- if (skfd < 0) {
- fprintf(stderr, _("warning: no inet socket available: %s\n"),
-@@ -180,7 +192,7 @@ static int if_readconf(void)
- }
- if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) {
- /* assume it overflowed and try again */
-- numreqs += 10;
-+ numreqs *= 2;
- continue;
- }
- break;
-@@ -188,7 +200,7 @@ static int if_readconf(void)
-
- ifr = ifc.ifc_req;
- for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) {
-- add_interface(ifr->ifr_name);
-+ if_cache_add(ifr->ifr_name);
- ifr++;
- }
- err = 0;
-@@ -198,7 +210,7 @@ out:
- return err;
- }
-
--static char *get_name(char *name, char *p)
-+char *get_name(char *name, char *p)
- {
- while (isspace(*p))
- p++;
-@@ -206,16 +218,19 @@ static char *get_name(char *name, char *p)
- if (isspace(*p))
- break;
- if (*p == ':') { /* could be an alias */
-- char *dot = p, *dotname = name;
-- *name++ = *p++;
-- while (isdigit(*p))
-- *name++ = *p++;
-- if (*p != ':') { /* it wasn't, backup */
-- p = dot;
-- name = dotname;
-+ char *dot = p++;
-+ while (*p && isdigit(*p)) p++;
-+ if (*p == ':') {
-+ /* Yes it is, backup and copy it. */
-+ p = dot;
-+ *name++ = *p++;
-+ while (*p && isdigit(*p)) {
-+ *name++ = *p++;
-+ }
-+ } else {
-+ /* No, it isn't */
-+ p = dot;
- }
-- if (*p == '\0')
-- return NULL;
- p++;
- break;
- }
-@@ -225,7 +240,7 @@ static char *get_name(char *name, char *p)
- return p;
- }
-
--static int procnetdev_version(char *buf)
-+int procnetdev_version(char *buf)
- {
- if (strstr(buf, "compressed"))
- return 3;
-@@ -234,12 +249,12 @@ static int procnetdev_version(char *buf)
- return 1;
- }
-
--static int get_dev_fields(char *bp, struct interface *ife)
-+int get_dev_fields(char *bp, struct interface *ife)
- {
- switch (procnetdev_vsn) {
- case 3:
- sscanf(bp,
-- "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu",
-+ "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu",
- &ife->stats.rx_bytes,
- &ife->stats.rx_packets,
- &ife->stats.rx_errors,
-@@ -259,7 +274,7 @@ static int get_dev_fields(char *bp, struct interface *ife)
- &ife->stats.tx_compressed);
- break;
- case 2:
-- sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu",
-+ sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu",
- &ife->stats.rx_bytes,
- &ife->stats.rx_packets,
- &ife->stats.rx_errors,
-@@ -277,7 +292,7 @@ static int get_dev_fields(char *bp, struct interface *ife)
- ife->stats.rx_multicast = 0;
- break;
- case 1:
-- sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu",
-+ sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu",
- &ife->stats.rx_packets,
- &ife->stats.rx_errors,
- &ife->stats.rx_dropped,
-@@ -300,25 +315,21 @@ static int get_dev_fields(char *bp, struct interface *ife)
-
- static int if_readlist_proc(char *target)
- {
-- static int proc_read;
- FILE *fh;
- char buf[512];
- struct interface *ife;
- int err;
-
-- if (proc_read)
-- return 0;
-- if (!target)
-- proc_read = 1;
--
- fh = fopen(_PATH_PROCNET_DEV, "r");
- if (!fh) {
- fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"),
-- _PATH_PROCNET_DEV, strerror(errno));
-- return if_readconf();
-- }
-- fgets(buf, sizeof buf, fh); /* eat line */
-- fgets(buf, sizeof buf, fh);
-+ _PATH_PROCNET_DEV, strerror(errno));
-+ return -2;
-+ }
-+ if (fgets(buf, sizeof buf, fh))
-+ /* eat line */;
-+ if (fgets(buf, sizeof buf, fh))
-+ /* eat line */;
-
- #if 0 /* pretty, but can't cope with missing fields */
- fmt = proc_gen_fmt(_PATH_PROCNET_DEV, 1, fh,
-@@ -349,8 +360,8 @@ static int if_readlist_proc(char *target)
- err = 0;
- while (fgets(buf, sizeof buf, fh)) {
- char *s, name[IFNAMSIZ];
-- s = get_name(name, buf);
-- ife = add_interface(name);
-+ s = get_name(name, buf);
-+ ife = if_cache_add(name);
- get_dev_fields(s, ife);
- ife->statistics_valid = 1;
- if (target && !strcmp(target,name))
-@@ -359,7 +370,6 @@ static int if_readlist_proc(char *target)
- if (ferror(fh)) {
- perror(_PATH_PROCNET_DEV);
- err = -1;
-- proc_read = 0;
- }
-
- #if 0
-@@ -369,13 +379,23 @@ static int if_readlist_proc(char *target)
- return err;
- }
-
--int if_readlist(void)
--{
-- int err = if_readlist_proc(NULL);
-- if (!err)
-- err = if_readconf();
-- return err;
--}
-+int if_readlist(void)
-+{
-+ /* caller will/should check not to call this too often
-+ * (i.e. only if if_list_all == 0
-+ */
-+ int proc_err, conf_err;
-+
-+ proc_err = if_readlist_proc(NULL);
-+ conf_err = if_readconf();
-+
-+ if_list_all = 1;
-+
-+ if (proc_err < 0 && conf_err < 0)
-+ return -1;
-+ else
-+ return 0;
-+}
-
- /* Support for fetching an IPX address */
-
-@@ -392,14 +412,14 @@ int if_fetch(struct interface *ife)
- {
- struct ifreq ifr;
- int fd;
-- char *ifname = ife->name;
-+ char *ifname = ife->name;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0)
- return (-1);
- ife->flags = ifr.ifr_flags;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFHWADDR, &ifr) < 0)
- memset(ife->hwaddr, 0, 32);
- else
-@@ -407,53 +427,47 @@ int if_fetch(struct interface *ife)
-
- ife->type = ifr.ifr_hwaddr.sa_family;
-
-- strcpy(ifr.ifr_name, ifname);
-- if (ioctl(skfd, SIOCGIFMETRIC, &ifr) < 0)
-- ife->metric = 0;
-- else
-- ife->metric = ifr.ifr_metric;
--
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFMTU, &ifr) < 0)
- ife->mtu = 0;
- else
- ife->mtu = ifr.ifr_mtu;
-
--#ifdef HAVE_HWSLIP
-+#if HAVE_HWSLIP
- if (ife->type == ARPHRD_SLIP || ife->type == ARPHRD_CSLIP ||
- ife->type == ARPHRD_SLIP6 || ife->type == ARPHRD_CSLIP6 ||
- ife->type == ARPHRD_ADAPT) {
- #ifdef SIOCGOUTFILL
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGOUTFILL, &ifr) < 0)
- ife->outfill = 0;
- else
-- ife->outfill = (unsigned int) ifr.ifr_data;
-+ ife->outfill = (unsigned long) ifr.ifr_data;
- #endif
- #ifdef SIOCGKEEPALIVE
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGKEEPALIVE, &ifr) < 0)
- ife->keepalive = 0;
- else
-- ife->keepalive = (unsigned int) ifr.ifr_data;
-+ ife->keepalive = (unsigned long) ifr.ifr_data;
- #endif
- }
- #endif
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0)
- memset(&ife->map, 0, sizeof(struct ifmap));
- else
- memcpy(&ife->map, &ifr.ifr_map, sizeof(struct ifmap));
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0)
- memset(&ife->map, 0, sizeof(struct ifmap));
- else
- ife->map = ifr.ifr_map;
-
- #ifdef HAVE_TXQUEUELEN
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFTXQLEN, &ifr) < 0)
- ife->tx_queue_len = -1; /* unknown value */
- else
-@@ -466,24 +480,24 @@ int if_fetch(struct interface *ife)
- /* IPv4 address? */
- fd = get_socket_for_af(AF_INET);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_addr.sa_family = AF_INET;
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
- ife->has_ip = 1;
- ife->addr = ifr.ifr_addr;
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFDSTADDR, &ifr) < 0)
- memset(&ife->dstaddr, 0, sizeof(struct sockaddr));
- else
- ife->dstaddr = ifr.ifr_dstaddr;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFBRDADDR, &ifr) < 0)
- memset(&ife->broadaddr, 0, sizeof(struct sockaddr));
- else
- ife->broadaddr = ifr.ifr_broadaddr;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFNETMASK, &ifr) < 0)
- memset(&ife->netmask, 0, sizeof(struct sockaddr));
- else
-@@ -497,7 +511,7 @@ int if_fetch(struct interface *ife)
- /* DDP address maybe ? */
- fd = get_socket_for_af(AF_APPLETALK);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
- ife->ddpaddr = ifr.ifr_addr;
- ife->has_ddp = 1;
-@@ -509,22 +523,22 @@ int if_fetch(struct interface *ife)
- /* Look for IPX addresses with all framing types */
- fd = get_socket_for_af(AF_IPX);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_ETHERII, &ifr)) {
- ife->has_ipx_bb = 1;
- ife->ipxaddr_bb = ifr.ifr_addr;
- }
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_SNAP, &ifr)) {
- ife->has_ipx_sn = 1;
- ife->ipxaddr_sn = ifr.ifr_addr;
- }
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_8023, &ifr)) {
- ife->has_ipx_e3 = 1;
- ife->ipxaddr_e3 = ifr.ifr_addr;
- }
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_8022, &ifr)) {
- ife->has_ipx_e2 = 1;
- ife->ipxaddr_e2 = ifr.ifr_addr;
-@@ -536,7 +550,7 @@ int if_fetch(struct interface *ife)
- /* Econet address maybe? */
- fd = get_socket_for_af(AF_ECONET);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
- ife->ecaddr = ifr.ifr_addr;
- ife->has_econet = 1;
-@@ -548,29 +562,29 @@ int if_fetch(struct interface *ife)
- }
-
- int do_if_fetch(struct interface *ife)
--{
-+{
- if (if_fetch(ife) < 0) {
-- char *errmsg;
-- if (errno == ENODEV) {
-- /* Give better error message for this case. */
-- errmsg = _("Device not found");
-- } else {
-- errmsg = strerror(errno);
-+ char *errmsg;
-+ if (errno == ENODEV) {
-+ /* Give better error message for this case. */
-+ errmsg = _("Device not found");
-+ } else {
-+ errmsg = strerror(errno);
- }
- fprintf(stderr, _("%s: error fetching interface information: %s\n"),
- ife->name, errmsg);
- return -1;
- }
-- return 0;
-+ return 0;
- }
-
- int do_if_print(struct interface *ife, void *cookie)
- {
- int *opt_a = (int *) cookie;
-- int res;
-+ int res;
-
-- res = do_if_fetch(ife);
-- if (res >= 0) {
-+ res = do_if_fetch(ife);
-+ if (res >= 0) {
- if ((ife->flags & IFF_UP) || *opt_a)
- ife_print(ife);
- }
-@@ -579,11 +593,11 @@ int do_if_print(struct interface *ife, void *cookie)
-
- void ife_print_short(struct interface *ptr)
- {
-- printf("%-5.5s ", ptr->name);
-- printf("%5d %3d", ptr->mtu, ptr->metric);
-+ printf("%-8.8s ", ptr->name);
-+ printf("%5d ", ptr->mtu);
- /* If needed, display the interface statistics. */
- if (ptr->statistics_valid) {
-- printf("%8llu %6lu %6lu %6lu",
-+ printf("%8llu %6lu %6lu %-6lu ",
- ptr->stats.rx_packets, ptr->stats.rx_errors,
- ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors);
- printf("%8llu %6lu %6lu %6lu ",
-@@ -636,8 +650,9 @@ void ife_print_long(struct interface *ptr)
- int hf;
- int can_compress = 0;
- unsigned long long rx, tx, short_rx, short_tx;
-- char Rext[5]="b";
-- char Text[5]="b";
-+ const char *Rext = "B";
-+ const char *Text = "B";
-+ static char flags[200];
-
- #if HAVE_AFIPX
- static struct aftype *ipxtype = NULL;
-@@ -650,7 +665,7 @@ void ife_print_long(struct interface *ptr)
- #endif
- #if HAVE_AFINET6
- FILE *f;
-- char addr6[40], devname[20];
-+ char addr6[40], devname[21];
- struct sockaddr_in6 sap;
- int plen, scope, dad_status, if_idx;
- extern struct aftype inet6_aftype;
-@@ -663,39 +678,79 @@ void ife_print_long(struct interface *ptr)
-
- hf = ptr->type;
-
-+#if HAVE_HWSLIP
- if (hf == ARPHRD_CSLIP || hf == ARPHRD_CSLIP6)
- can_compress = 1;
-+#endif
-
- hw = get_hwntype(hf);
- if (hw == NULL)
- hw = get_hwntype(-1);
-
-- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title);
-- /* For some hardware types (eg Ash, ATM) we don't print the
-- hardware address if it's null. */
-- if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
-- hw->suppress_null_addr)))
-- printf(_("HWaddr %s "), hw->print(ptr->hwaddr));
--#ifdef IFF_PORTSEL
-- if (ptr->flags & IFF_PORTSEL) {
-- printf(_("Media:%s"), if_port_text[ptr->map.port][0]);
-- if (ptr->flags & IFF_AUTOMEDIA)
-- printf(_("(auto)"));
-- }
-+ sprintf(flags, "flags=%d<", ptr->flags);
-+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */
-+ if (ptr->flags == 0)
-+ strcat(flags,">");
-+ if (ptr->flags & IFF_UP)
-+ strcat(flags,_("UP,"));
-+ if (ptr->flags & IFF_BROADCAST)
-+ strcat(flags,_("BROADCAST,"));
-+ if (ptr->flags & IFF_DEBUG)
-+ strcat(flags,_("DEBUG,"));
-+ if (ptr->flags & IFF_LOOPBACK)
-+ strcat(flags,_("LOOPBACK,"));
-+ if (ptr->flags & IFF_POINTOPOINT)
-+ strcat(flags,_("POINTOPOINT,"));
-+ if (ptr->flags & IFF_NOTRAILERS)
-+ strcat(flags,_("NOTRAILERS,"));
-+ if (ptr->flags & IFF_RUNNING)
-+ strcat(flags,_("RUNNING,"));
-+ if (ptr->flags & IFF_NOARP)
-+ strcat(flags,_("NOARP,"));
-+ if (ptr->flags & IFF_PROMISC)
-+ strcat(flags,_("PROMISC,"));
-+ if (ptr->flags & IFF_ALLMULTI)
-+ strcat(flags,_("ALLMULTI,"));
-+ if (ptr->flags & IFF_SLAVE)
-+ strcat(flags,_("SLAVE,"));
-+ if (ptr->flags & IFF_MASTER)
-+ strcat(flags,_("MASTER,"));
-+ if (ptr->flags & IFF_MULTICAST)
-+ strcat(flags,_("MULTICAST,"));
-+#ifdef HAVE_DYNAMIC
-+ if (ptr->flags & IFF_DYNAMIC)
-+ strcat(flags,_("DYNAMIC,"));
-+#endif
-+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
-+ if (flags[strlen(flags)-1] == ',')
-+ flags[strlen(flags)-1] = '>';
-+ else
-+ flags[strlen(flags)-1] = 0;
-+
-+
-+ printf(_("%s: %s mtu %d"),
-+ ptr->name, flags, ptr->mtu);
-+#ifdef SIOCSKEEPALIVE
-+ if (ptr->outfill || ptr->keepalive)
-+ printf(_(" outfill %d keepalive %d"),
-+ ptr->outfill, ptr->keepalive);
- #endif
- printf("\n");
-
-+
-+
- #if HAVE_AFINET
- if (ptr->has_ip) {
-- printf(_(" %s addr:%s "), ap->name,
-+ printf(_(" %s %s"), ap->name,
- ap->sprint(&ptr->addr, 1));
-- if (ptr->flags & IFF_POINTOPOINT) {
-- printf(_(" P-t-P:%s "), ap->sprint(&ptr->dstaddr, 1));
-- }
-+ printf(_(" netmask %s"), ap->sprint(&ptr->netmask, 1));
- if (ptr->flags & IFF_BROADCAST) {
-- printf(_(" Bcast:%s "), ap->sprint(&ptr->broadaddr, 1));
-+ printf(_(" broadcast %s"), ap->sprint(&ptr->broadaddr, 1));
- }
-- printf(_(" Mask:%s\n"), ap->sprint(&ptr->netmask, 1));
-+ if (ptr->flags & IFF_POINTOPOINT) {
-+ printf(_(" destination %s"), ap->sprint(&ptr->dstaddr, 1));
-+ }
-+ printf("\n");
- }
- #endif
-
-@@ -703,7 +758,7 @@ void ife_print_long(struct interface *ptr)
- /* FIXME: should be integrated into interface.c. */
-
- if ((f = fopen(_PATH_PROCNET_IFINET6, "r")) != NULL) {
-- while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
-+ while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %08x %02x %02x %02x %20s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7],
- &if_idx, &plen, &scope, &dad_status, devname) != EOF) {
-@@ -712,29 +767,30 @@ void ife_print_long(struct interface *ptr)
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
- inet6_aftype.input(1, addr6, (struct sockaddr *) &sap);
-- printf(_(" inet6 addr: %s/%d"),
-- inet6_aftype.sprint((struct sockaddr *) &sap, 1), plen);
-- printf(_(" Scope:"));
-- switch (scope) {
-- case 0:
-- printf(_("Global"));
-- break;
-- case IPV6_ADDR_LINKLOCAL:
-- printf(_("Link"));
-- break;
-- case IPV6_ADDR_SITELOCAL:
-- printf(_("Site"));
-- break;
-- case IPV6_ADDR_COMPATv4:
-- printf(_("Compat"));
-- break;
-- case IPV6_ADDR_LOOPBACK:
-- printf(_("Host"));
-- break;
-- default:
-- printf(_("Unknown"));
-+ printf(_(" %s %s prefixlen %d"),
-+ inet6_aftype.name,
-+ inet6_aftype.sprint((struct sockaddr *) &sap, 1),
-+ plen);
-+ printf(_(" scopeid 0x%x"), scope);
-+
-+ flags[0] = '<'; flags[1] = 0;
-+ if (scope & IPV6_ADDR_COMPATv4) {
-+ strcat(flags, _("compat,"));
-+ scope -= IPV6_ADDR_COMPATv4;
- }
-- printf("\n");
-+ if (scope == 0)
-+ strcat(flags, _("global,"));
-+ if (scope & IPV6_ADDR_LINKLOCAL)
-+ strcat(flags, _("link,"));
-+ if (scope & IPV6_ADDR_SITELOCAL)
-+ strcat(flags, _("site,"));
-+ if (scope & IPV6_ADDR_LOOPBACK)
-+ strcat(flags, _("host,"));
-+ if (flags[strlen(flags)-1] == ',')
-+ flags[strlen(flags)-1] = '>';
-+ else
-+ flags[strlen(flags)-1] = 0;
-+ printf("%s\n", flags);
- }
- }
- fclose(f);
-@@ -747,17 +803,17 @@ void ife_print_long(struct interface *ptr)
-
- if (ipxtype != NULL) {
- if (ptr->has_ipx_bb)
-- printf(_(" IPX/Ethernet II addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_bb, 1));
-+ printf(_(" %s Ethernet-II %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_bb, 1));
- if (ptr->has_ipx_sn)
-- printf(_(" IPX/Ethernet SNAP addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_sn, 1));
-+ printf(_(" %s Ethernet-SNAP %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_sn, 1));
- if (ptr->has_ipx_e2)
-- printf(_(" IPX/Ethernet 802.2 addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_e2, 1));
-+ printf(_(" %s Ethernet802.2 %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e2, 1));
- if (ptr->has_ipx_e3)
-- printf(_(" IPX/Ethernet 802.3 addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_e3, 1));
-+ printf(_(" %s Ethernet802.3 %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e3, 1));
- }
- #endif
-
-@@ -766,7 +822,7 @@ void ife_print_long(struct interface *ptr)
- ddptype = get_afntype(AF_APPLETALK);
- if (ddptype != NULL) {
- if (ptr->has_ddp)
-- printf(_(" EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr, 1));
-+ printf(_(" %s %s\n"), ddptype->name, ddptype->sprint(&ptr->ddpaddr, 1));
- }
- #endif
-
-@@ -775,53 +831,30 @@ void ife_print_long(struct interface *ptr)
- ectype = get_afntype(AF_ECONET);
- if (ectype != NULL) {
- if (ptr->has_econet)
-- printf(_(" econet addr:%s\n"), ectype->sprint(&ptr->ecaddr, 1));
-+ printf(_(" %s %s\n"), ectype->name, ectype->sprint(&ptr->ecaddr, 1));
- }
- #endif
-
-- printf(" ");
-- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */
-- if (ptr->flags == 0)
-- printf(_("[NO FLAGS] "));
-- if (ptr->flags & IFF_UP)
-- printf(_("UP "));
-- if (ptr->flags & IFF_BROADCAST)
-- printf(_("BROADCAST "));
-- if (ptr->flags & IFF_DEBUG)
-- printf(_("DEBUG "));
-- if (ptr->flags & IFF_LOOPBACK)
-- printf(_("LOOPBACK "));
-- if (ptr->flags & IFF_POINTOPOINT)
-- printf(_("POINTOPOINT "));
-- if (ptr->flags & IFF_NOTRAILERS)
-- printf(_("NOTRAILERS "));
-- if (ptr->flags & IFF_RUNNING)
-- printf(_("RUNNING "));
-- if (ptr->flags & IFF_NOARP)
-- printf(_("NOARP "));
-- if (ptr->flags & IFF_PROMISC)
-- printf(_("PROMISC "));
-- if (ptr->flags & IFF_ALLMULTI)
-- printf(_("ALLMULTI "));
-- if (ptr->flags & IFF_SLAVE)
-- printf(_("SLAVE "));
-- if (ptr->flags & IFF_MASTER)
-- printf(_("MASTER "));
-- if (ptr->flags & IFF_MULTICAST)
-- printf(_("MULTICAST "));
--#ifdef HAVE_DYNAMIC
-- if (ptr->flags & IFF_DYNAMIC)
-- printf(_("DYNAMIC "));
--#endif
-- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
-- printf(_(" MTU:%d Metric:%d"),
-- ptr->mtu, ptr->metric ? ptr->metric : 1);
--#ifdef SIOCSKEEPALIVE
-- if (ptr->outfill || ptr->keepalive)
-- printf(_(" Outfill:%d Keepalive:%d"),
-- ptr->outfill, ptr->keepalive);
-+ /* For some hardware types (eg Ash, ATM) we don't print the
-+ hardware address if it's null. */
-+ if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
-+ hw->suppress_null_addr)))
-+ printf(_(" %s %s"), hw->name, hw->print(ptr->hwaddr));
-+ else
-+ printf(_(" %s"), hw->name);
-+ if (ptr->tx_queue_len != -1)
-+ printf(_(" txqueuelen %d"), ptr->tx_queue_len);
-+ printf(" (%s)\n", hw->title);
-+
-+#ifdef IFF_PORTSEL
-+ if (ptr->flags & IFF_PORTSEL) {
-+ printf(_(" media %s"), if_port_text[ptr->map.port][0]);
-+ if (ptr->flags & IFF_AUTOMEDIA)
-+ printf(_("autoselect"));
-+ printf("\n");
-+ }
- #endif
-- printf("\n");
-+
-
- /* If needed, display the interface statistics. */
-
-@@ -830,55 +863,87 @@ void ife_print_long(struct interface *ptr)
- * not for the aliases, although strictly speaking they're shared
- * by all addresses.
- */
-- printf(" ");
--
-- printf(_("RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"),
-- ptr->stats.rx_packets, ptr->stats.rx_errors,
-- ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors,
-- ptr->stats.rx_frame_errors);
-- if (can_compress)
-- printf(_(" compressed:%lu\n"), ptr->stats.rx_compressed);
--
-- rx = ptr->stats.rx_bytes;
-+ rx = ptr->stats.rx_bytes;
-+ short_rx = rx * 10;
-+ if (rx > 1125899906842624ull) {
-+ short_rx /= 1125899906842624ull;
-+ Rext = "PiB";
-+ } else if (rx > 1099511627776ull) {
-+ short_rx /= 1099511627776ull;
-+ Rext = "TiB";
-+ } else if (rx > 1073741824ull) {
-+ short_rx /= 1073741824ull;
-+ Rext = "GiB";
-+ } else if (rx > 1048576) {
-+ short_rx /= 1048576;
-+ Rext = "MiB";
-+ } else if (rx > 1024) {
-+ short_rx /= 1024;
-+ Rext = "KiB";
-+ }
- tx = ptr->stats.tx_bytes;
-- short_rx = rx * 10;
- short_tx = tx * 10;
-- if (rx > 1048576) { short_rx /= 1048576; strcpy(Rext, "Mb"); }
-- else if (rx > 1024) { short_rx /= 1024; strcpy(Rext, "Kb"); }
-- if (tx > 1048576) { short_tx /= 1048576; strcpy(Text, "Mb"); }
-- else if (tx > 1024) { short_tx /= 1024; strcpy(Text, "Kb"); }
-+ if (tx > 1125899906842624ull) {
-+ short_tx /= 1125899906842624ull;
-+ Text = "PiB";
-+ } else if (tx > 1099511627776ull) {
-+ short_tx /= 1099511627776ull;
-+ Text = "TiB";
-+ } else if (tx > 1073741824ull) {
-+ short_tx /= 1073741824ull;
-+ Text = "GiB";
-+ } else if (tx > 1048576) {
-+ short_tx /= 1048576;
-+ Text = "MiB";
-+ } else if (tx > 1024) {
-+ short_tx /= 1024;
-+ Text = "KiB";
-+ }
-
-- printf(" ");
-- printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"),
-- ptr->stats.tx_packets, ptr->stats.tx_errors,
-+ printf(" ");
-+ printf(_("RX packets %llu bytes %llu (%lu.%lu %s)\n"),
-+ ptr->stats.rx_packets,
-+ rx, (unsigned long)(short_rx / 10),
-+ (unsigned long)(short_rx % 10), Rext);
-+ if (can_compress) {
-+ printf(" ");
-+ printf(_("RX compressed:%lu\n"), ptr->stats.rx_compressed);
-+ }
-+ printf(" ");
-+ printf(_("RX errors %lu dropped %lu overruns %lu frame %lu\n"),
-+ ptr->stats.rx_errors, ptr->stats.rx_dropped,
-+ ptr->stats.rx_fifo_errors, ptr->stats.rx_frame_errors);
-+
-+
-+ printf(" ");
-+ printf(_("TX packets %llu bytes %llu (%lu.%lu %s)\n"),
-+ ptr->stats.tx_packets,
-+ tx, (unsigned long)(short_tx / 10),
-+ (unsigned long)(short_tx % 10), Text);
-+ if (can_compress) {
-+ printf(" ");
-+ printf(_("TX compressed %lu\n"), ptr->stats.tx_compressed);
-+ }
-+ printf(" ");
-+ printf(_("TX errors %lu dropped %lu overruns %lu carrier %lu collisions %lu\n"),
-+ ptr->stats.tx_errors,
- ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors,
-- ptr->stats.tx_carrier_errors);
-- printf(_(" collisions:%lu "), ptr->stats.collisions);
-- if (can_compress)
-- printf(_("compressed:%lu "), ptr->stats.tx_compressed);
-- if (ptr->tx_queue_len != -1)
-- printf(_("txqueuelen:%d "), ptr->tx_queue_len);
-- printf("\n ");
-- printf(_("RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"),
-- rx, (unsigned long)(short_rx / 10),
-- (unsigned long)(short_rx % 10), Rext,
-- tx, (unsigned long)(short_tx / 10),
-- (unsigned long)(short_tx % 10), Text);
-+ ptr->stats.tx_carrier_errors, ptr->stats.collisions);
- }
-
- if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma ||
-- ptr->map.base_addr)) {
-- printf(" ");
-+ ptr->map.base_addr >= 0x100)) {
-+ printf(" device ");
- if (ptr->map.irq)
-- printf(_("Interrupt:%d "), ptr->map.irq);
-- if (ptr->map.base_addr >= 0x100) /* Only print devices using it for
-+ printf(_("interrupt %d "), ptr->map.irq);
-+ if (ptr->map.base_addr >= 0x100) /* Only print devices using it for
- I/O maps */
-- printf(_("Base address:0x%x "), ptr->map.base_addr);
-+ printf(_("base 0x%x "), ptr->map.base_addr);
- if (ptr->map.mem_start) {
-- printf(_("Memory:%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end);
-+ printf(_("memory 0x%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end);
- }
- if (ptr->map.dma)
-- printf(_("DMA chan:%x "), ptr->map.dma);
-+ printf(_(" dma 0x%x"), ptr->map.dma);
- printf("\n");
- }
- printf("\n");
-diff --git a/lib/ipx.c b/lib/ipx.c
-index 0e760a3..837788c 100644
---- a/lib/ipx.c
-+++ b/lib/ipx.c
-@@ -42,7 +42,7 @@
- #endif
-
- /* Display a ipx domain address. */
--static char *IPX_print(unsigned char *ptr)
-+static const char *IPX_print(const char *ptr)
- {
- static char buff[64];
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) (ptr - 2);
-@@ -73,7 +73,7 @@ static char *IPX_print(unsigned char *ptr)
-
-
- /* Display a ipx domain address. */
--static char *IPX_sprint(struct sockaddr *sap, int numeric)
-+static const char *IPX_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-@@ -87,12 +87,10 @@ static int IPX_getsock(char *bufp, struct sockaddr *sap)
- {
- char *sp = bufp, *bp;
- unsigned int i;
-- unsigned char val;
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) sap;
-
- sipx->sipx_port = 0;
-
-- val = 0;
- bp = (char *) sipx->sipx_node;
- for (i = 0; i < sizeof(sipx->sipx_node); i++) {
- *sp = toupper(*sp);
-@@ -133,6 +131,9 @@ static int IPX_input(int type, char *bufp, struct sockaddr *sap)
- char *ep;
- int nbo;
-
-+ if (!sai)
-+ return (-1);
-+
- sai->sipx_family = AF_IPX;
- sai->sipx_network = htonl(0);
- sai->sipx_node[0] = sai->sipx_node[1] = sai->sipx_node[2] =
-diff --git a/lib/ipx_gr.c b/lib/ipx_gr.c
-index 3d7ef1d..09c8dcd 100644
---- a/lib/ipx_gr.c
-+++ b/lib/ipx_gr.c
-@@ -27,6 +27,7 @@
- #include "net-support.h"
- #include "pathnames.h"
- #include "intl.h"
-+#include "util.h"
-
- /* UGLY */
-
-@@ -38,25 +39,32 @@ int IPX_rprint(int options)
- char net[128], router_net[128];
- char router_node[128];
- int num;
-- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r");
-+ FILE *fp;
- struct aftype *ap;
- struct sockaddr sa;
-
-- if ((ap = get_afntype(AF_IPX)) == NULL) {
-- EINTERN("lib/ipx_rt.c", "AF_IPX missing");
-- return (-1);
-+ fp = fopen(_PATH_PROCNET_IPX_ROUTE1, "r");
-+
-+ if (!fp) {
-+ fp = fopen(_PATH_PROCNET_IPX_ROUTE2, "r");
- }
-
- if (!fp) {
-- perror(_PATH_PROCNET_IPX_ROUTE);
-- printf(_("IPX not configured in this system.\n"));
-+ perror(NULL);
-+ printf(_("IPX routing not in file %s or %s found.\n"), _PATH_PROCNET_IPX_ROUTE1, _PATH_PROCNET_IPX_ROUTE2);
- return 1;
- }
-
-+ if ((ap = get_afntype(AF_IPX)) == NULL) {
-+ EINTERN("lib/ipx_rt.c", "AF_IPX missing");
-+ return (-1);
-+ }
-+
- printf(_("Kernel IPX routing table\n")); /* xxx */
- printf(_("Destination Router Net Router Node\n"));
-
-- fgets(buff, 1023, fp);
-+ if (fgets(buff, 1023, fp))
-+ /* eat line */;
-
- while (fgets(buff, 1023, fp)) {
- num = sscanf(buff, "%s %s %s", net, router_net, router_node);
-@@ -65,15 +73,15 @@ int IPX_rprint(int options)
-
- /* Fetch and resolve the Destination */
- (void) ap->input(5, net, &sa);
-- strcpy(net, ap->sprint(&sa, numeric));
-+ safe_strncpy(net, ap->sprint(&sa, numeric), sizeof(net));
-
- /* Fetch and resolve the Router Net */
- (void) ap->input(5, router_net, &sa);
-- strcpy(router_net, ap->sprint(&sa, numeric));
-+ safe_strncpy(router_net, ap->sprint(&sa, numeric), sizeof(router_net));
-
- /* Fetch and resolve the Router Node */
- (void) ap->input(2, router_node, &sa);
-- strcpy(router_node, ap->sprint(&sa, numeric));
-+ safe_strncpy(router_node, ap->sprint(&sa, numeric), sizeof(router_node));
-
- printf("%-25s %-25s %-25s\n", net, router_net, router_node);
- }
-diff --git a/lib/irda.c b/lib/irda.c
-index fa147fe..3658673 100644
---- a/lib/irda.c
-+++ b/lib/irda.c
-@@ -1,29 +1,31 @@
- /*********************************************************************
-- *
-+ *
- * Filename: irda.c
-- * Version: 0.1
-- * Description: A first attempt to make ifconfig understand IrDA
-+ * Version: 0.2
-+ * Description: A second attempt to make ifconfig understand IrDA
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Wed Apr 21 09:03:09 1999
- * Modified at: Wed Apr 21 09:17:05 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
-- *
-- * 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
-+ * Modified at: Wed May 1 11:51:44 CEST 2002
-+ * Modified by: Christoph Bartelmus <christoph@bartelmus.de>
-+ *
-+ * 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., 59 Temple Place, Suite 330, Boston,
-+ *
-+ * 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., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
-- *
-+ *
- ********************************************************************/
-
- #include "config.h"
-@@ -57,11 +59,11 @@
- * Print hardware address of interface
- *
- */
--static char *irda_print(unsigned char *ptr)
-+static const char *irda_print(const char *ptr)
- {
-- static char buff[8];
-+ static char buff[12];
-
-- sprintf(&buff[strlen(buff)], "%02x:%02x:%02x:%02x", ptr[3], ptr[2],
-+ snprintf(buff, 12, "%02x:%02x:%02x:%02x", ptr[3], ptr[2],
- ptr[1], ptr[0]);
-
- return (buff);
-diff --git a/lib/loopback.c b/lib/loopback.c
-index 0f08ac2..1b7e9cc 100644
---- a/lib/loopback.c
-+++ b/lib/loopback.c
-@@ -32,7 +32,7 @@
- #include "util.h"
-
- /* Display an UNSPEC address. */
--static char *pr_unspec(unsigned char *ptr)
-+static const char *pr_unspec(const char *ptr)
- {
- static char buff[64];
- char *pos;
-diff --git a/lib/masq_info.c b/lib/masq_info.c
-index 45ca689..3a97a98 100644
---- a/lib/masq_info.c
-+++ b/lib/masq_info.c
-@@ -6,7 +6,7 @@
- * NET-3 Networking Distribution for the LINUX operating
- * system. (net-tools, net-drivers)
- *
-- * Version: $Id: masq_info.c,v 1.7 2000/10/08 01:00:44 ecki Exp $
-+ * Version: $Id: masq_info.c,v 1.8 2009/09/06 22:52:01 vapier Exp $
- *
- * Author: Bernd 'eckes' Eckenfels <net-tools@lina.inka.de>
- * Copyright 1999 Bernd Eckenfels, Germany
-@@ -119,7 +119,9 @@ static int read_masqinfo(FILE * f, struct masq *mslist, int nmslist)
- ms->src.sin_family = AF_INET;
- ms->dst.sin_family = AF_INET;
-
-- if (strcmp("TCP", buf) == 0)
-+ if (strcmp("IP", buf) == 0)
-+ ms->proto = "ip";
-+ else if (strcmp("TCP", buf) == 0)
- ms->proto = "tcp";
- else if (strcmp("UDP", buf) == 0)
- ms->proto = "udp";
-@@ -206,10 +208,9 @@ int ip_masq_info(int numeric_host, int numeric_port, int ext)
- }
- for (i = 0; i < ntotal; i++)
- print_masq(&(mslist[i]), numeric_host, numeric_port, ext);
-- if (mslist)
-- free(mslist);
--
- }
-+
-+ free(mslist);
- return 0;
- }
- #endif
-diff --git a/lib/net-features.h b/lib/net-features.h
-index 0de2730..569f4a5 100644
---- a/lib/net-features.h
-+++ b/lib/net-features.h
-@@ -20,7 +20,7 @@
- * your option) any later version.
- */
-
--/*
-+/*
- * This needs to be included AFTER the KErnel Header Files
- * one of the FEATURE_ should be defined to get the Feature Variable
- * definition included
-@@ -117,6 +117,9 @@ static char *Features =
- "-I18N"
- #endif /* I18N */
-
-+#if HAVE_SELINUX
-+" +SELINUX"
-+#endif
-
- "\nAF: "
- #ifdef DFLT_AF
-@@ -183,6 +186,12 @@ static char *Features =
- "-"
- #endif
- "ROSE "
-+#if HAVE_AFBLUETOOTH
-+"+"
-+#else
-+"-"
-+#endif
-+"BLUETOOTH"
-
- "\nHW: "
-
-@@ -295,6 +304,13 @@ static char *Features =
- "-"
- #endif
- "HDLC/LAPB "
-+
-+#if HAVE_HWEUI64
-+"+"
-+#else
-+"-"
-+#endif
-+"EUI64 "
- ;
-
-
-diff --git a/lib/net-support.h b/lib/net-support.h
-index 568fe81..0841170 100644
---- a/lib/net-support.h
-+++ b/lib/net-support.h
-@@ -38,15 +38,15 @@ struct aftype {
- char *title;
- int af;
- int alen;
-- char *(*print) (unsigned char *);
-- char *(*sprint) (struct sockaddr *, int numeric);
-+ const char *(*print) (const char *);
-+ const char *(*sprint) (struct sockaddr *, int numeric);
- int (*input) (int type, char *bufp, struct sockaddr *);
- void (*herror) (char *text);
- int (*rprint) (int options);
- int (*rinput) (int typ, int ext, char **argv);
-
- /* may modify src */
-- int (*getmask) (char *src, struct sockaddr * mask, char *name);
-+ int (*getmask) (char *src, struct sockaddr *mask, char *name);
-
- int fd;
- char *flag_file;
-@@ -60,7 +60,7 @@ struct hwtype {
- char *title;
- int type;
- int alen;
-- char *(*print) (unsigned char *);
-+ const char *(*print) (const char *);
- int (*input) (char *, struct sockaddr *);
- int (*activate) (int fd);
- int suppress_null_addr;
-@@ -119,11 +119,12 @@ extern int IPX_rinput(int action, int flags, char **argv);
- extern int NETROM_rinput(int action, int flags, char **argv);
- extern int AX25_rinput(int action, int flags, char **argv);
- extern int X25_rinput(int action, int flags, char **argv);
-+extern int ROSE_rinput(int action, int flags, char **argv);
-
- extern int aftrans_opt(const char *arg);
- extern void aftrans_def(char *tool, char *argv0, char *dflt);
-
--extern char *get_sname(int socknumber, char *proto, int numeric);
-+extern const char *get_sname(int socknumber, const char *proto, int numeric);
-
- extern int flag_unx;
- extern int flag_ipx;
-@@ -131,14 +132,16 @@ extern int flag_ax25;
- extern int flag_ddp;
- extern int flag_netrom;
- extern int flag_x25;
-+extern int flag_rose;
- extern int flag_inet;
- extern int flag_inet6;
-+extern int flag_bluetooth;
-
--extern char afname[];
-+extern char afname[256];
-
- #define AFTRANS_OPTS \
- {"ax25", 0, 0, 1}, \
-- {"x25", 0, 0, 1}, \
-+ {"x25", 0, 0, 1}, \
- {"ip", 0, 0, 1}, \
- {"ipx", 0, 0, 1}, \
- {"appletalk", 0, 0, 1}, \
-@@ -146,9 +149,11 @@ extern char afname[];
- {"inet", 0, 0, 1}, \
- {"inet6", 0, 0, 1}, \
- {"ddp", 0, 0, 1}, \
-+ {"rose", 0, 0, 1}, \
- {"unix", 0, 0, 1}, \
-+ {"bluetooth", 0, 0, 1}, \
- {"tcpip", 0, 0, 1}
--#define AFTRANS_CNT 11
-+#define AFTRANS_CNT 12
-
- #define EINTERN(file, text) fprintf(stderr, \
- _("%s: Internal Error `%s'.\n"),file,text);
-@@ -163,8 +168,8 @@ extern char afname[];
- #define E_NOTFOUND 8
- #define E_SOCK 7
- #define E_LOOKUP 6
--#define E_VERSION 5
--#define E_USAGE 4
-+#define E_VERSION EXIT_SUCCESS
-+#define E_USAGE EXIT_SUCCESS
- #define E_OPTERR 3
- #define E_INTERN 2
- #define E_NOSUPP 1
-@@ -234,7 +239,7 @@ extern char afname[];
- /* this is a 2.0.36 flag from /usr/src/linux/include/linux/route.h */
- #define RTF_NOTCACHED 0x0400 /* this route isn't cached */
-
--#ifdef HAVE_AFECONET
-+#if HAVE_AFECONET
- #ifndef AF_ECONET
- #define AF_ECONET 19 /* Acorn Econet */
- #endif
-diff --git a/lib/netrom.c b/lib/netrom.c
-index 1de9dc3..dfe1ae3 100644
---- a/lib/netrom.c
-+++ b/lib/netrom.c
-@@ -11,7 +11,7 @@
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-- *
-+ *
- * Changes:
- * 980701 {1.21} Arnaldo Carvalho de Melo - GNU gettext instead of catgets,
- * strncpy instead of strcpy for
-@@ -52,7 +52,7 @@ static char netrom_errmsg[128];
-
- extern struct aftype netrom_aftype;
-
--static char *NETROM_print(unsigned char *ptr)
-+static const char *NETROM_print(const char *ptr)
- {
- static char buff[8];
- int i;
-@@ -71,7 +71,7 @@ static char *NETROM_print(unsigned char *ptr)
-
-
- /* Display an AX.25 socket address. */
--static char *NETROM_sprint(struct sockaddr *sap, int numeric)
-+static const char *NETROM_sprint(struct sockaddr *sap, int numeric)
- {
- char buf[64];
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
-@@ -79,10 +79,15 @@ static char *NETROM_sprint(struct sockaddr *sap, int numeric)
- return (NETROM_print(((struct sockaddr_ax25 *) sap)->sax25_call.ax25_call));
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char *orig, c;
- unsigned int i;
-
-@@ -98,9 +103,8 @@ static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- c = toupper(c);
- if (!(isupper(c) || isdigit(c))) {
- safe_strncpy(netrom_errmsg, _("Invalid callsign"), sizeof(netrom_errmsg));
--#ifdef DEBUG
-- fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -111,9 +115,8 @@ static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- /* Callsign too long? */
- if ((i == 6) && (*bufp != '-') && (*bufp != '\0')) {
- safe_strncpy(netrom_errmsg, _("Callsign too long"), sizeof(netrom_errmsg));
--#ifdef DEBUG
-- fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
- errno = E2BIG;
- return (-1);
- }
-@@ -131,12 +134,12 @@ static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- /* All done. */
--#ifdef DEBUG
-- fprintf(stderr, "netrom_input(%s): ", orig);
-- for (i = 0; i < sizeof(ax25_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
--#endif
-+ if (_DEBUG) {
-+ fprintf(stderr, "netrom_input(%s): ", orig);
-+ for (i = 0; i < sizeof(ax25_address); i++)
-+ fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-+ fprintf(stderr, "\n");
-+ }
-
- return (0);
- }
-diff --git a/lib/netrom_gr.c b/lib/netrom_gr.c
-index adf54b2..ec82fe8 100644
---- a/lib/netrom_gr.c
-+++ b/lib/netrom_gr.c
-@@ -10,7 +10,7 @@
- *
- * Changes:
- * 980701 {0.02} Arnaldo Carvalho de Melo GNU gettext instead of catgets
-- *
-+ *
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -39,9 +39,7 @@ int NETROM_rprint(int options)
- /*int ext = options & FLAG_EXT;
- int numeric = options & FLAG_NUM_HOST; */
-
-- f1 = fopen(_PATH_PROCNET_NR_NODES, "r");
- if (!f1) perror(_PATH_PROCNET_NR_NODES);
-- f2 = fopen(_PATH_PROCNET_NR_NEIGH, "r");
- if (!f2) perror(_PATH_PROCNET_NR_NEIGH);
-
- if (f1 == NULL || f2 == NULL) {
-@@ -50,7 +48,8 @@ int NETROM_rprint(int options)
- }
- printf(_("Kernel NET/ROM routing table\n"));
- printf(_("Destination Mnemonic Quality Neighbour Iface\n"));
-- fgets(buffer, 256, f1);
-+ if (fgets(buffer, 256, f1))
-+ /* eat line */;
- while (fgets(buffer, 256, f1)) {
- buffer[9] = 0;
- buffer[17] = 0;
-@@ -60,7 +59,8 @@ int NETROM_rprint(int options)
- qual = atoi(buffer + 24 + 15 * w);
- n = atoi(buffer + 32 + 15 * w);
- rewind(f2);
-- fgets(buffer, 256, f2);
-+ if (fgets(buffer, 256, f2))
-+ /* eat line */;
- while (fgets(buffer, 256, f2)) {
- if (atoi(buffer) == n) {
- buffer[15] = 0;
-diff --git a/lib/nstrcmp.c b/lib/nstrcmp.c
-index 8b1ff30..b1fed12 100644
---- a/lib/nstrcmp.c
-+++ b/lib/nstrcmp.c
-@@ -1,34 +1,157 @@
- /* Copyright 1998 by Andi Kleen. Subject to the GPL. */
--/* $Id: nstrcmp.c,v 1.2 1998/11/15 20:11:38 freitag Exp $ */
-+/* rewritten by bernd eckenfels because of complicated alias semantic */
-+/* $Id: nstrcmp.c,v 1.4 2004/06/03 22:49:17 ecki Exp $ */
- #include <ctype.h>
- #include <stdlib.h>
-+#include <string.h>
- #include "util.h"
-
--/* like strcmp(), but knows about numbers */
--int nstrcmp(const char *astr, const char *b)
-+
-+/* return numerical :999 suffix or null. sideeffect: replace ':' with \0 */
-+char* cutalias(char* name)
- {
-- const char *a = astr;
--
-- while (*a == *b) {
-- if (*a == '\0')
-- return 0;
-- a++;
-- b++;
-- }
-- if (isdigit(*a)) {
-- if (!isdigit(*b))
-- return -1;
-- while (a > astr) {
-- a--;
-- if (!isdigit(*a)) {
-- a++;
-- break;
-- }
-- if (!isdigit(*b))
-- return -1;
-- b--;
-+ int digit = 0;
-+ int pos;
-+
-+ for(pos=strlen(name); pos>0; pos--)
-+ {
-+ if (name[pos-1]==':' && digit)
-+ {
-+ name[pos-1]='\0';
-+ return name+pos;
-+ }
-+ if (!isdigit(name[pos-1]))
-+ break;
-+ digit = 1;
- }
-- return atoi(a) > atoi(b) ? 1 : -1;
-- }
-- return *a - *b;
-+ return NULL;
-+}
-+
-+
-+/* return index of last non digit or -1 if it does not end with digits */
-+int rindex_nondigit(char *name)
-+{
-+ int pos = strlen(name);
-+
-+ for(pos=strlen(name); pos>0; pos--)
-+ {
-+ if (!isdigit(name[pos-1]))
-+ return pos;
-+ }
-+ return 0;
-+}
-+
-+
-+/* like strcmp(), but knows about numbers and ':' alias suffix */
-+int nstrcmp(const char *ap, const char *bp)
-+{
-+ char *a = (char*)strdup(ap);
-+ char *b = (char*)strdup(bp);
-+ char *an, *bn;
-+ int av = 0, bv = 0;
-+ char *aalias=cutalias(a);
-+ char *balias=cutalias(b);
-+ int aindex=rindex_nondigit(a);
-+ int bindex=rindex_nondigit(b);
-+ int complen=(aindex<bindex)?aindex:bindex;
-+ int res = strncmp(a, b, complen);
-+
-+ if (res != 0)
-+ { free(a); free(b); return res; }
-+
-+ if (aindex > bindex)
-+ { free(a); free(b); return 1; }
-+
-+ if (aindex < bindex)
-+ { free(a); free(b); return -1; }
-+
-+ an = a+aindex;
-+ bn = b+bindex;
-+
-+ av = atoi(an);
-+ bv = atoi(bn);
-+
-+ if (av < bv)
-+ { free(a); free(b); return -1; }
-+
-+ if (av > bv)
-+ { free(a); free(b); return 1; }
-+
-+ av = -1;
-+ if (aalias != NULL)
-+ av = atoi(aalias);
-+
-+ bv = -1;
-+ if (balias != NULL)
-+ bv = atoi(balias);
-+
-+ free(a); free(b);
-+
-+ if (av < bv)
-+ return -1;
-+
-+ if (av > bv)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+
-+#ifdef NSTRCMP_TEST
-+
-+int cs(int s)
-+{
-+ if (s < 0) return -1;
-+ if (s > 0) return 1;
-+ return 0;
-+}
-+
-+
-+int dotest(char* a, char* b, int exp)
-+{
-+ int res = nstrcmp(a, b);
-+ int err = (cs(res) != cs(exp));
-+ printf("nstrcmp(\"%s\", \"%s\")=%d %d %s\n", a, b, res, exp, err?"WRONG":"OK");
-+ return err;
- }
-+
-+int main()
-+{
-+ int err = 0;
-+
-+ err |= dotest("eth1", "eth1", 0);
-+ err |= dotest("eth0:1", "eth0:1", 0);
-+ err |= dotest("lan", "lan", 0);
-+ err |= dotest("100", "100", 0);
-+ err |= dotest("", "", 0);
-+ err |= dotest(":", ":", 0);
-+ err |= dotest("a:b:c", "a:b:c", 0);
-+ err |= dotest("a:", "a:", 0);
-+ err |= dotest(":a", ":a", 0);
-+
-+ err |= dotest("a", "aa", -1);
-+ err |= dotest("eth0", "eth1", -1);
-+ err |= dotest("eth1", "eth20", -1);
-+ err |= dotest("eth20", "eth100", -1);
-+ err |= dotest("eth1", "eth13", -1);
-+ err |= dotest("eth", "eth2", -1);
-+ err |= dotest("eth0:1", "eth0:2", -1);
-+ err |= dotest("eth1:10", "eth13:10", -1);
-+ err |= dotest("eth1:1", "eth1:13", -1);
-+ err |= dotest("a", "a:", -1);
-+
-+ err |= dotest("aa", "a", 1);
-+ err |= dotest("eth2", "eth1", 1);
-+ err |= dotest("eth13", "eth1", 1);
-+ err |= dotest("eth2", "eth", 1);
-+ err |= dotest("eth2:10", "eth2:1", 1);
-+ err |= dotest("eth2:5", "eth2:4", 1);
-+ err |= dotest("eth3:2", "eth2:3", 1);
-+ err |= dotest("eth13:1", "eth1:0", 1);
-+ err |= dotest("a:", "a", 1);
-+ err |= dotest("a1b12", "a1b2", 1);
-+
-+ return err;
-+}
-+
-+#endif
-diff --git a/lib/pathnames.h b/lib/pathnames.h
-index 1f7fefb..14b051c 100644
---- a/lib/pathnames.h
-+++ b/lib/pathnames.h
-@@ -1,9 +1,8 @@
--
- /*
-- * lib/pathnames.h This file contains the definitions of the path
-+ * lib/pathnames.h This file contains the definitions of the path
- * names used by the NET-LIB.
- *
-- * NET-LIB
-+ * NET-LIB
- *
- * Version: lib/pathnames.h 1.37 (1997-08-23)
- *
-@@ -17,6 +16,12 @@
- #define _PATH_PROCNET_TCP6 "/proc/net/tcp6"
- #define _PATH_PROCNET_UDP "/proc/net/udp"
- #define _PATH_PROCNET_UDP6 "/proc/net/udp6"
-+#define _PATH_PROCNET_UDPLITE "/proc/net/udplite"
-+#define _PATH_PROCNET_UDPLITE6 "/proc/net/udplite6"
-+#define _PATH_PROCNET_SCTPEPTS "/proc/net/sctp/eps"
-+#define _PATH_PROCNET_SCTP6EPTS "/proc/net/sctp6/eps"
-+#define _PATH_PROCNET_SCTPASSOCS "/proc/net/sctp/assocs"
-+#define _PATH_PROCNET_SCTP6ASSOCS "/proc/net/sctp6/assocs"
- #define _PATH_PROCNET_RAW "/proc/net/raw"
- #define _PATH_PROCNET_RAW6 "/proc/net/raw6"
- #define _PATH_PROCNET_UNIX "/proc/net/unix"
-@@ -29,8 +34,10 @@
- #define _PATH_PROCNET_NR_NODES "/proc/net/nr_nodes"
- #define _PATH_PROCNET_ARP "/proc/net/arp"
- #define _PATH_PROCNET_AX25 "/proc/net/ax25"
--#define _PATH_PROCNET_IPX "/proc/net/ipx"
--#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route"
-+#define _PATH_PROCNET_IPX_SOCKET1 "/proc/net/ipx/socket"
-+#define _PATH_PROCNET_IPX_SOCKET2 "/proc/net/ipx"
-+#define _PATH_PROCNET_IPX_ROUTE1 "/proc/net/ipx/route"
-+#define _PATH_PROCNET_IPX_ROUTE2 "/proc/net/ipx_route"
- #define _PATH_PROCNET_ATALK "/proc/net/appletalk"
- #define _PATH_PROCNET_IP_BLK "/proc/net/ip_block"
- #define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward"
-@@ -42,9 +49,12 @@
- #define _PATH_PROCNET_RARP "/proc/net/rarp"
- #define _PATH_ETHERS "/etc/ethers"
- #define _PATH_PROCNET_ROSE_ROUTE "/proc/net/rose_routes"
--#define _PATH_PROCNET_X25 "/proc/net/x25"
--#define _PATH_PROCNET_X25_ROUTE "/proc/net/x25_routes"
-+#define _PATH_PROCNET_X25 "/proc/net/x25"
-+#define _PATH_PROCNET_X25_ROUTE "/proc/net/x25/route"
- #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast"
-+#define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route"
-+#define _PATH_SYS_BLUETOOTH_L2CAP "/sys/class/bluetooth/l2cap"
-+#define _PATH_SYS_BLUETOOTH_RFCOMM "/sys/class/bluetooth/rfcomm"
-
- /* pathname for the netlink device */
- #define _PATH_DEV_ROUTE "/dev/route"
-diff --git a/lib/ppp.c b/lib/ppp.c
-index 8bf1499..27d660c 100644
---- a/lib/ppp.c
-+++ b/lib/ppp.c
-@@ -8,7 +8,7 @@
- * Copyright 1993 MicroWalt Corporation
- *
- * Modified by Alan Cox, May 94 to cover NET-3
-- *
-+ *
- * Changes:
- * 980701 {1.12} Arnaldo Carvalho de Melo - GNU gettext instead of catgets
- *
-diff --git a/lib/proc.c b/lib/proc.c
-index bf34dbe..feea1d1 100644
---- a/lib/proc.c
-+++ b/lib/proc.c
-@@ -1,11 +1,13 @@
- /* Tolerant /proc file parser. Copyright 1998 Andi Kleen */
--/* $Id: proc.c,v 1.4 1999/01/05 20:54:00 philip Exp $ */
--/* Fixme: cannot currently cope with removed fields */
-+/* $Id: proc.c,v 1.5 2007/12/01 18:44:57 ecki Exp $ */
-+/* Fixme: cannot currently cope with removed fields */
-
- #include <string.h>
- #include <stdarg.h>
- #include <stdio.h>
-+#include <stdlib.h>
- #include <ctype.h>
-+#include <unistd.h>
-
- /* Caller must free return string. */
-
-@@ -49,7 +51,7 @@ char *proc_gen_fmt(char *name, int more, FILE * fh,...)
- return strdup(format);
- }
-
--/*
-+/*
- * this will generate a bitmask of present/missing fields in the header of
- * a /proc file.
- */
-@@ -72,3 +74,22 @@ int proc_guess_fmt(char *name, FILE *fh, ...)
- va_end(ap);
- return flag;
- }
-+
-+
-+FILE *proc_fopen(const char *name)
-+{
-+ static char *buffer;
-+ static size_t pagesz;
-+ FILE *fd = fopen(name, "r");
-+
-+ if (fd == NULL)
-+ return NULL;
-+
-+ if (!buffer) {
-+ pagesz = getpagesize();
-+ buffer = malloc(pagesz);
-+ }
-+
-+ setvbuf(fd, buffer, _IOFBF, pagesz);
-+ return fd;
-+}
-diff --git a/lib/proc.h b/lib/proc.h
-index 91f803c..379de23 100644
---- a/lib/proc.h
-+++ b/lib/proc.h
-@@ -1,5 +1,7 @@
--
--
--/* Generate a suitable scanf format for a column title line */
-+/*
-+ * prototypes for proc.c
-+ */
- char *proc_gen_fmt(char *name, int more, FILE * fh,...);
- int proc_guess_fmt(char *name, FILE* fh,...);
-+FILE *proc_fopen(const char *name);
-+
-diff --git a/lib/rose.c b/lib/rose.c
-index 381226b..6286cb1 100644
---- a/lib/rose.c
-+++ b/lib/rose.c
-@@ -34,6 +34,7 @@
- #include "net-support.h"
- #include "pathnames.h"
- #include "intl.h"
-+#include "util.h"
-
- #ifndef _NETROSE_ROSE_H
- #include <linux/ax25.h>
-@@ -53,8 +54,8 @@ static char ROSE_errmsg[128];
-
- extern struct aftype rose_aftype;
-
--static char *
-- ROSE_print(unsigned char *ptr)
-+static const char *
-+ ROSE_print(const char *ptr)
- {
- static char buff[12];
-
-@@ -64,7 +65,7 @@ static char *
- }
-
- /* Display a ROSE socket address. */
--static char *
-+static const char *
- ROSE_sprint(struct sockaddr *sap, int numeric)
- {
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
-@@ -73,7 +74,6 @@ static char *
- return (ROSE_print(((struct sockaddr_rose *) sap)->srose_addr.rose_addr));
- }
-
--
- static int ROSE_input(int type, char *bufp, struct sockaddr *sap)
- {
- char *ptr;
-@@ -84,10 +84,7 @@ static int ROSE_input(int type, char *bufp, struct sockaddr *sap)
-
- /* Node address the correct length ? */
- if (strlen(bufp) != 10) {
-- strcpy(ROSE_errmsg, _("Node address must be ten digits"));
--#ifdef DEBUG
-- fprintf(stderr, "rose_input(%s): %s !\n", ROSE_errmsg, orig);
--#endif
-+ safe_strncpy(ROSE_errmsg, _("Node address must be ten digits"), sizeof(ROSE_errmsg));
- errno = EINVAL;
- return (-1);
- }
-@@ -98,13 +95,6 @@ static int ROSE_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- /* All done. */
--#ifdef DEBUG
-- fprintf(stderr, "rose_input(%s): ", orig);
-- for (i = 0; i < sizeof(rose_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
--#endif
--
- return (0);
- }
-
-diff --git a/lib/rose_gr.c b/lib/rose_gr.c
-index cf0a60a..a0858fd 100644
---- a/lib/rose_gr.c
-+++ b/lib/rose_gr.c
-@@ -53,7 +53,8 @@ int ROSE_rprint(int options)
- }
- printf(_("Kernel ROSE routing table\n"));
- printf(_("Destination Iface Use\n"));
-- fgets(buffer, 256, f);
-+ if (fgets(buffer, 256, f))
-+ /* eat line */;
- while (fgets(buffer, 256, f)) {
- buffer[9] = 0;
- buffer[14] = 0;
-diff --git a/lib/strip.c b/lib/strip.c
-index fd396ba..ced2325 100644
---- a/lib/strip.c
-+++ b/lib/strip.c
-@@ -38,8 +38,8 @@
-
- extern struct hwtype strip_hwtype;
-
--static char *
--pr_strip(unsigned char *ptr)
-+static const char *
-+pr_strip(const char *ptr)
- {
- static char buff[64];
- if(ptr[1])
-diff --git a/lib/tr.c b/lib/tr.c
-index 8d86aa7..c5314da 100644
---- a/lib/tr.c
-+++ b/lib/tr.c
-@@ -2,7 +2,7 @@
- * lib/tr.c This file contains an implementation of the "Tokenring"
- * support functions.
- *
-- * Version: $Id: tr.c,v 1.8 2000/02/02 08:56:30 freitag Exp $
-+ * Version: $Id: tr.c,v 1.9 2005/05/16 03:15:12 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -30,10 +30,16 @@
- #include "net-support.h"
- #include "pathnames.h"
- #include "intl.h"
-+#include "util.h"
-
-+
-+/* actual definition at the end of file */
- extern struct hwtype tr_hwtype;
-+#ifdef ARPHRD_IEEE802_TR
-+extern struct hwtype tr_hwtype1;
-+#endif
-
--static char *pr_tr(unsigned char *ptr)
-+static const char *pr_tr(const char *ptr)
- {
- static char buff[64];
-
-@@ -42,16 +48,31 @@ static char *pr_tr(unsigned char *ptr)
- (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
- );
- return (buff);
--}
-+ }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- static int in_tr(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-+#ifdef ARPHRD_IEEE802_TR
-+ if (kernel_version() < KRELEASE(2,3,30)) {
-+ sap->sa_family = tr_hwtype.type;
-+ } else {
-+ sap->sa_family = tr_hwtype1.type;
-+ }
-+#else
- sap->sa_family = tr_hwtype.type;
-+ #warning "Limited functionality, no support for ARPHRD_IEEE802_TR (old kernel headers?)"
-+#endif
-+
- ptr = sap->sa_data;
-
- i = 0;
-@@ -66,9 +87,8 @@ static int in_tr(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -81,9 +101,8 @@ static int in_tr(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -92,28 +111,21 @@ static int in_tr(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == TR_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == TR_ALEN)
- fprintf(stderr, _("in_tr(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == TR_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == TR_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_tr(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_tr(%s): %s\n", orig, pr_tr(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_tr(%s): %s\n", orig, pr_tr(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/tunnel.c b/lib/tunnel.c
-index 19606c1..8a160bf 100644
---- a/lib/tunnel.c
-+++ b/lib/tunnel.c
-@@ -21,7 +21,7 @@
-
- extern struct hwtype ether_hwtype;
-
--static char *pr_tunnel(unsigned char *ptr)
-+static const char *pr_tunnel(const char *ptr)
- {
- return ("");
- }
-diff --git a/lib/unix.c b/lib/unix.c
-index fb4dcce..936cd48 100644
---- a/lib/unix.c
-+++ b/lib/unix.c
-@@ -32,7 +32,7 @@
-
-
- /* Display an UNSPEC address. */
--static char *UNSPEC_print(unsigned char *ptr)
-+static const char *UNSPEC_print(const char *ptr)
- {
- static char buff[64];
- char *pos;
-@@ -48,7 +48,7 @@ static char *UNSPEC_print(unsigned char *ptr)
-
-
- /* Display an UNSPEC socket address. */
--static char *UNSPEC_sprint(struct sockaddr *sap, int numeric)
-+static const char *UNSPEC_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-@@ -61,14 +61,14 @@ static char *UNSPEC_sprint(struct sockaddr *sap, int numeric)
- #if HAVE_AFUNIX
-
- /* Display a UNIX domain address. */
--static char *UNIX_print(unsigned char *ptr)
-+static const char *UNIX_print(const char *ptr)
- {
- return (ptr);
- }
-
-
- /* Display a UNIX domain address. */
--static char *UNIX_sprint(struct sockaddr *sap, int numeric)
-+static const char *UNIX_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-diff --git a/lib/util-ank.c b/lib/util-ank.c
-index 43a7f1c..b077f35 100644
---- a/lib/util-ank.c
-+++ b/lib/util-ank.c
-@@ -293,7 +293,7 @@ int inet_addr_match(inet_prefix *a, inet_prefix *b, int bits)
- return 0;
- }
-
--const char *format_host(int af, void *addr, __u8 *abuf, int alen)
-+const char *format_host(int af, void *addr, char *abuf, int alen)
- {
- #ifdef RESOLVE_HOSTNAMES
- if (resolve_hosts) {
-diff --git a/lib/util.c b/lib/util.c
-index ac932f4..705c862 100644
---- a/lib/util.c
-+++ b/lib/util.c
-@@ -1,4 +1,4 @@
--/* Copyright 1998 by Andi Kleen. Subject to the GPL. */
-+/* Copyright 1998 by Andi Kleen. Subject to the GPL. */
- /* $Id: util.c,v 1.4 1998/11/17 15:17:02 freitag Exp $ */
- #include <stdio.h>
- #include <stdlib.h>
-@@ -33,19 +33,19 @@ void *xrealloc(void *oldp, size_t sz)
- int kernel_version(void)
- {
- struct utsname uts;
-- int major, minor, patch;
-+ int major, minor, patch=0;
-
- if (uname(&uts) < 0)
- return -1;
-- if (sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch) != 3)
-+ if (sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch) < 2)
- return -1;
- return KRELEASE(major, minor, patch);
- }
-
-
--/* Like strncpy but make sure the resulting string is always 0 terminated. */
-+/* Like strncpy but make sure the resulting string is always 0 terminated. */
- char *safe_strncpy(char *dst, const char *src, size_t size)
--{
-+{
- dst[size-1] = '\0';
-- return strncpy(dst,src,size-1);
-+ return strncpy(dst,src,size-1);
- }
-diff --git a/lib/util.h b/lib/util.h
-index 6acb158..97ce379 100644
---- a/lib/util.h
-+++ b/lib/util.h
-@@ -12,5 +12,8 @@ int kernel_version(void);
-
- int nstrcmp(const char *, const char *);
-
--char *safe_strncpy(char *dst, const char *src, size_t size);
-+char *safe_strncpy(char *dst, const char *src, size_t size);
-
-+
-+#define netmin(a,b) ((a)<(b) ? (a) : (b))
-+#define netmax(a,b) ((a)>(b) ? (a) : (b))
-diff --git a/lib/x25.c b/lib/x25.c
-index 1ffb569..5c7be2c 100644
---- a/lib/x25.c
-+++ b/lib/x25.c
-@@ -38,6 +38,7 @@
- #include "net-locale.h"
- #endif
- #include "intl.h"
-+#include "util.h"
-
- static char X25_errmsg[128];
-
-@@ -50,8 +51,8 @@ extern struct aftype x25_aftype;
- #endif
-
-
--static char *
--X25_print(unsigned char *ptr)
-+static const char *
-+X25_print(const char *ptr)
- {
- static char buff[X25_ADDR_LEN+1];
-
-@@ -63,7 +64,7 @@ X25_print(unsigned char *ptr)
-
-
- /* Display an X.25 socket address. */
--static char *
-+static const char *
- X25_sprint(struct sockaddr *sap, int numeric)
- {
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
-@@ -78,7 +79,7 @@ X25_sprint(struct sockaddr *sap, int numeric)
- static int
- X25_input(int type, char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char *p;
- unsigned int sigdigits;
-
-@@ -88,7 +89,9 @@ X25_input(int type, char *bufp, struct sockaddr *sap)
-
- /* Address the correct length ? */
- if (strlen(bufp)>18) {
-- strcpy(X25_errmsg, _("Address can't exceed eighteen digits with sigdigits"));
-+ safe_strncpy(X25_errmsg,
-+ _("Address can't exceed eighteen digits with sigdigits"),
-+ sizeof(X25_errmsg));
- #ifdef DEBUG
- fprintf(stderr, "x25_input(%s): %s !\n", X25_errmsg, orig);
- #endif
-@@ -105,8 +108,9 @@ X25_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- if (strlen(bufp) < 1 || strlen(bufp) > 15 || sigdigits > strlen(bufp)) {
-- *p = '/';
-- strcpy(X25_errmsg, _("Invalid address"));
-+ if (p != NULL)
-+ *p = '/';
-+ safe_strncpy(X25_errmsg, _("Invalid address"), sizeof(X25_errmsg));
- #ifdef DEBUG
- fprintf(stderr, "x25_input(%s): %s !\n", X25_errmsg, orig);
- #endif
-@@ -152,7 +156,7 @@ struct hwtype x25_hwtype = {
- };
-
- struct aftype x25_aftype =
--{
-+{
- "x25", NULL, /*"CCITT X.25", */ AF_X25, X25_ADDR_LEN,
- X25_print, X25_sprint, X25_input, X25_herror,
- X25_rprint, X25_rinput, NULL /* getmask */,
-diff --git a/lib/x25_gr.c b/lib/x25_gr.c
-index 187fc05..79682e0 100644
---- a/lib/x25_gr.c
-+++ b/lib/x25_gr.c
-@@ -37,6 +37,7 @@
- #include <string.h>
- #include "net-support.h"
- #include "pathnames.h"
-+#include "proc.h"
- #define EXTERN
- #if 0
- #include "net-locale.h"
-@@ -48,9 +49,18 @@
- #define X25_ADDR_LEN 16
- #endif
-
-+static FILE *proc_fopen_x25_route(void)
-+{
-+ FILE *ret = proc_fopen(_PATH_PROCNET_X25_ROUTE);
-+ if (ret)
-+ return ret;
-+ /* try old linux-2.4 name */
-+ return proc_fopen("/proc/net/x25_routes");
-+}
-+
- int X25_rprint(int options)
- {
-- FILE *f=fopen(_PATH_PROCNET_X25_ROUTE, "r");
-+ FILE *f=proc_fopen_x25_route();
- char buffer[256];
- char *p;
- int digits;
-@@ -62,7 +72,8 @@ int X25_rprint(int options)
- }
- printf( _("Kernel X.25 routing table\n")); /* xxx */
- printf( _("Destination Iface\n")); /* xxx */
-- fgets(buffer,256,f);
-+ if (fgets(buffer,256,f))
-+ /* eat line */;
- while(fgets(buffer,256,f))
- {
- p = strchr(buffer,'\n');
-diff --git a/lib/x25_sr.c b/lib/x25_sr.c
-index 8637c98..fde79dc 100644
---- a/lib/x25_sr.c
-+++ b/lib/x25_sr.c
-@@ -38,6 +38,7 @@
- #include "net-locale.h"
- #endif
- #include "intl.h"
-+#include "util.h"
-
- #include "net-features.h"
-
-@@ -64,10 +65,10 @@ static int X25_setroute(int action, int options, char **args)
- if (*args == NULL)
- return(usage());
-
-- strcpy(target, *args++);
-+ safe_strncpy(target, *args++, sizeof(target));
-
- /* Clean out the x25_route_struct structure. */
-- memset((char *) &rt, 0, sizeof(struct x25_route_struct));
-+ memset((char *) &rt, 0, sizeof(rt));
-
-
- if ((sigdigits = x25_aftype.input(0, target, (struct sockaddr *)&sx25)) < 0) {
-@@ -76,8 +77,8 @@ static int X25_setroute(int action, int options, char **args)
- }
- rt.sigdigits=sigdigits;
-
-- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
-- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
-+ /* this works with 2.4 and 2.6 headers struct x25_address vs. typedef */
-+ memcpy(&rt.address, &sx25.sx25_addr, sizeof(sx25.sx25_addr));
-
- while (*args) {
- if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
-@@ -89,7 +90,7 @@ static int X25_setroute(int action, int options, char **args)
- return(usage());
- if (rt.device[0])
- return(usage());
-- strcpy(rt.device, *args);
-+ safe_strncpy(rt.device, *args, sizeof(rt.device));
- args++;
- }
- if (rt.device[0]=='\0')
-@@ -111,7 +112,7 @@ static int X25_setroute(int action, int options, char **args)
- perror("socket");
- return(E_SOCK);
- }
--
-+
- /* Tell the kernel to accept this route. */
- if (action==RTACTION_DEL) {
- if (ioctl(skfd, SIOCDELRT, &rt) < 0) {
-@@ -137,14 +138,14 @@ int X25_rinput(int action, int options, char **args)
- if (action == RTACTION_FLUSH) {
- fprintf(stderr,"Flushing `x25' routing table not supported\n");
- return(usage());
-- }
-+ }
- if (options & FLAG_CACHE) {
- fprintf(stderr,"Modifying `x25' routing cache not supported\n");
- return(usage());
-- }
-+ }
- if ((*args == NULL) || (action == RTACTION_HELP))
- return(usage());
--
-+
- return(X25_setroute(action, options, args));
- }
- #endif /* HAVE_AFX25 */
-diff --git a/man/Makefile b/man/Makefile
-index 4ef1af8..23f5468 100644
---- a/man/Makefile
-+++ b/man/Makefile
-@@ -29,9 +29,14 @@ mandir=/usr/share/man
-
- -include ../config.make
- ifeq ($(I18N),1)
--LANGS=`ls -d * | grep -v Makefile`
-+ALL_LANGS = $(filter-out Makefile,$(wildcard *))
-+ifeq ($(LINGUAS),)
-+LANGS = $(ALL_LANGS)
- else
--LANGS=en_US
-+LANGS = $(sort $(filter $(LINGUAS),$(ALL_LANGS)) en_US)
-+endif
-+else
-+LANGS = en_US
- endif
-
- all:
-@@ -43,7 +48,7 @@ clean:
- clobber: clean
-
- install:
-- LANGS=$(LANGS) ; \
-+ LANGS='$(LANGS)' ; \
- for LANG in $$LANGS; do \
- cd $$LANG; \
- for SECTION in 1 5 8; do \
-diff --git a/man/de_DE/arp.8 b/man/de_DE/arp.8
-index debd879..79abfc7 100644
---- a/man/de_DE/arp.8
-+++ b/man/de_DE/arp.8
-@@ -1,149 +1,145 @@
--.TH ARP 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
-+.TH ARP 8 "17. Oktober 2012" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
- .SH NAME
- arp \- Manipulation des ARP-Caches
- .SH SYNOPSIS
--.B arp
--.RB [ \-vn ]
--.RB [ "\-H Typ" ]
--.RB [ "-i Schnittstelle" ]
--.B -a
-+.B arp
-+.RB [ \-vn ]
-+.RB [ "\-H Typ" ]
-+.RB [ "-i Schnittstelle" ]
-+.B -a
- .RB [ Rechnername ]
- .PP
--.B arp
-+.B arp
- .RB [ \-v ]
--.RB [ "\-i if" ]
-+.RB [ "\-i Schnittstelle" ]
- .B "\-d Rechnername"
- .RB [ pub ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H Typ" ]
--.RB [ "\-i Schnittstelle" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ "\-H Typ" ]
-+.RB [ "\-i Schnittstelle" ]
- .B -s Rechnername hw_adr
--.RB [ temp ]
-+.RB [ temp ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H Typ" ]
--.RB [ "\-i Interface" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ "\-H Typ" ]
-+.RB [ "\-i Interface" ]
- .B -s Rechnername hw_adr
--.RB [ "netmask nm" ]
-+.RB [ "netmask Maske" ]
- .B pub
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H Typ" ]
--.RB [ "\-i Schnittstelle" ]
--.B -Ds Rechnername ifa
--.RB [ "netmask nm" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ "\-H Typ" ]
-+.RB [ "\-i Schnittstelle" ]
-+.B -Ds Rechnername Schnittstelle2
-+.RB [ "netmask Maske" ]
- .B pub
- .PP
--.B arp
-+.B arp
- .RB [ \-vnD ]
--.RB [ "\-H Typ" ]
-+.RB [ "\-H Typ" ]
- .RB [ "-i Schnittstelle" ]
- .B -f [Dateiname]
-
- .SH BESCHREIBUNG
- .B Arp
- kann den ARP-Cache des Kernels auf verschiedene Arten manipulieren. Die
--haupts\(:achliche Verwendung ist es Adresszuordnungseintr\(:age zu
-+haupts\(:achliche Verwendung ist es, Adresszuordnungseintr\(:age zu
- l\(:oschen und von Hand neue zu erzeugen. Zum Zweck der Fehlersuche ist
--moeglich mit dem
--.B arp
--Programm den Inhalt des ARP-Caches vollst\(:andig auszugeben.
-+es m\(:oglich, mit dem
-+.BR arp -Programm
-+den Inhalt des ARP-Caches vollst\(:andig auszugeben.
-+
-+.B ARP
-+steht f\(:ur Address Resolution Protocol, welches dazu verwendet wird, \(:uber
-+die IPv4-Adresse die MAC-Adresse von Nachbarn im Netzwerk zu finden.
- .SH OPTIONEN
- .TP
- .B "\-v, \-\-verbose"
- Ausf\(:uhrlichere Ausgaben.
- .TP
- .B "\-n, \-\-numeric"
--macht numerische Adressausgaben anstatt zu versuche, den symbolischen Rechner-,
-+Numerische Adressausgaben anstatt zu versuchen, den symbolischen Rechner-,
- Port- oder Benutzernamen zu ermitteln.
- .TP
--.B "\-H type, \-\-hw-type type"
-+.B "\-H Typ, \-\-hw-type Typ"
- Beim Setzen oder Auslesen des ARP-Caches schr\(:ankt diese Option
--ein, auf welcher Klasse von Eintr\(:agen
-+ein, auf welcher Klasse von Eintr\(:agen
- .B arp
- operieren soll. Der Standardwert dieses Arguments ist
- .B ether
- (d.h. Hardwarecode 0x01 f\(:ur IEEE 802.3 10Mbps Ethernet).
- Andere m\(:ogliche Werte sind Netzwerkstechnologien so wie z.B.
--.RB "ARCnet (" arcnet ")"
--,
--.RB "PROnet (" pronet ")"
--,
--.RB "AX.25 (" ax25 ")"
--and
--.RB "NET/ROM (" netrom ")."
-+.RB "ARCnet (" arcnet "), PROnet (" pronet "), AX.25 (" ax25 ") und NET/ROM (" netrom ")."
- .TP
- .B "\-a [Rechnername], \-\-display [Rechnername]"
- Zeigt die Eintr\(:age der angegebenen Rechner an. Wird kein
--.B hostname
--Argument verwendet, so werden alle Eintr\(:age aufgelistet.
-+.BR hostname -Argument
-+verwendet, so werden alle Eintr\(:age aufgelistet.
- .TP
- .B "\-d Rechnername, \-\-delete Rechnername"
--Alle Eintr\(:age f\(:ur den angegebenen Host entfernen. Dies kann z.B.
--benutzt werden, wenn ein System angehalten wird.
-+Alle Eintr\(:age f\(:ur den angegebenen Host entfernen. Dies kann z.B. benutzt
-+werden, wenn ein System angehalten wird.
- .TP
- .B "\-D, \-\-use-device"
- Die Hardwareadresse der Netzwerksschnittstelle
--.B ifa
-+.B Schnittstelle2
- verwenden.
- .TP
--.B "\-i If, \-\-device Schnittstelle"
-+.B "\-i Schnittstelle, \-\-device Schnittstelle"
- Eine Netzwerksschnittstelle ausw\(:ahlen. Es werden nur Eintr\(:age
--f\(:ur die angegebene Schnittstelle ausgedruckt. Beim Setzen von von
-+f\(:ur die angegebene Schnittstelle ausgegeben. Beim Setzen von
- permanenten oder tempor\(:aren Eintr\(:agen wird diese Schnittstelle mit
- dem Eintrag assoziiert. Wird diese Option nicht verwendet, so versucht der
--Kernel auf Basis der Routentabelle eine Schnittstelle auszuw\(:ahlen. F\(:ur
--.B pub
--Eintr\(:age ist die angegebene Schnittstelle diejenige, auf der ARP-Anfragen
-+Kernel, auf Basis der Routentabelle eine Schnittstelle auszuw\(:ahlen. F\(:ur
-+.BR pub -Eintr\(:age
-+ist die angegebene Schnittstelle diejenige, auf der ARP-Anfragen
- beantwortet werden.
- .br
- .B ANMERKUNG:
--Diese Schnittstelle mu\(ss eine andere sein als die, auf die die IP-Datagramme
-+Diese Schnittstelle mu\(ss eine andere sein als die, auf welche die IP-Datagramme
- weitergeleitet werden.
- .TP
--.B "\-s Rechnername hw_addr, \-\-set Rechnername"
--Erzeugt manuel einen ARP Adresseintrag f\(:ur den Rechner
--.B Rechnername
-+.B "\-s Rechnername hw_addr, \-\-set Rechnername hw_addr"
-+Erzeugt manuell einen ARP-Adresseintrag f\(:ur den Rechner
-+.BR Rechnername ,
- in dem die Hardwareadresse auf
- .B hw_addr
- gesetzt ist. Das genaue Format der Hardwareadresse ist abh\(:angig von der
--Hardwareklasse aber f\(:ur die meisten Klassen kann man davon ausgehen, da\(ss
-+Hardwareklasse, aber f\(:ur die meisten Klassen kann man davon ausgehen, da\(ss
- die \(:ubliche Darstellung verwendet wird. F\(:ur die Ethernetklasse sind
--dies sechs hexadezimale, von Doppelpunkten getrennte Bytes. Beim Zuf\(:ugen
--von Proxy-ARP-Entr\(:agen (das sind die mit der gesetzten
--.BR pub lizieren
--Flagge) kann
--.B Netmaske
-+dies sechs hexadezimale, durch Doppelpunkte getrennte Bytes. Beim Zuf\(:ugen
-+von Proxy-ARP-Entr\(:agen (das sind die mit dem gesetzten
-+.BR pub lished-Flag)
-+kann die
-+.B Maske
- f\(:ur ARP-Eintr\(:age f\(:ur ganze Subnetze angegeben werde. Von dieser
- Praxis wird abgeraten. Sie wird von \(:alteren Kerneln unterst\(:utzt, da
--sie gelegentlich n\(:utzlich ist. Wird die
--If the
--.B temp
--Flagge nicht angegeben, so werden die erzeugten Eintr\(:age nicht dauerhaft
--in den ARP-Cache eingetragen.
-+sie gelegentlich n\(:utzlich ist.
-+Der Eintrag wird permanent im ARP-Cache gespeichert,
-+wenn das \fBtemp\fR-Flag nicht angegeben wird.
- .br
- .B ANMERKUNG:
--Ab der Kernelversion 2.2.0 ist es nicht mehr m\(:oglich ARP-Eintr\(:age f\(:ur
--ganze Teilnetze zu erzeugen. Statt dessen wird automatisches Proxy ARP
-+Ab der Kernelversion 2.2.0 ist es nicht mehr m\(:oglich, ARP-Eintr\(:age f\(:ur
-+ganze Teilnetze zu erzeugen. Stattdessen wird automatisches Proxy ARP
- durchgef\(:uhrt, d.h. wenn eine Route existiert und Forwarding eingeschaltet
--ist wird automatisch ein tempor\(:arer Proxyarpeintrag erzeugt.
-+ist, wird automatisch ein tempor\(:arer Proxyarpeintrag erzeugt.
- Siehe auch
- .BR arp (7)
- f\(:ur mehr Details.
- .TP
--.B "\-f Dateiname, \-\-file Dateiname"
-+.B "\-f [Dateiname], \-\-file [Dateiname]"
- \(:Ahnlich der
- .B \-s
- Option, au\(sser, da\(ss diesmal die Adressinformation aus der Datei
- .B Dateiname
- verwendet wird. Dies kann verwendet werden, wenn ARP-Eintr\(:age f\(:ur
- etliche Rechner erzeugt werden m\(:ussen. Der Name dieser Datei ist oft
--.IR /etc/ethers ,
--aber dies ist nicht offizieil standardisiert. Wenn kein Dateinamen
-+.IR /etc/ethers ,
-+aber dies ist nicht offizieil standardisiert. Wenn kein Dateinamen
- angeben ist wird /etc/ethers benutzt.
- .sp 1
- Das Format der Datei ist einfach; es enth\(:alt nur ASCII-Textzeilen, die
-@@ -158,16 +154,28 @@ erwartet wird, kann auch eine
- .B "IP-Adresse"
- in Form eines durch Punkte getrennten Dezimalquadrupels angegeben werden.
- .P
--Aus Kompatiblit\(:atsgr\(:unden k\(:onnen Rechnername und die
-+Aus Kompatiblit\(:atsgr\(:unden k\(:onnen Rechnername und die
- Hardwareadresse auch vertauscht werden.
--.LP
--Jeder vollst\(:andige Eintrag wird im ARP-Cache mit der
--.B C
--Flagge markiert. Permanente Eintr\(:age werden mit
-+.LP
-+Jeder vollst\(:andige Eintrag wird im ARP-Cache mit dem
-+.BR C -Flag
-+markiert. Permanente Eintr\(:age werden mit
- .B M
--und zu publizierende Eintr\(:age mit der
-+und zu publizierende Eintr\(:age mit
- .B P
--Flagge.
-+markiert.
-+.SH BEISPIELE
-+.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
-+
-+Beantwortet ARP-Anfragen f\(:ur 10.0.0.2 die auf der Schnittstelle eth0
-+empfangen werden mit der MAC-Adresse f\(:ur eth1.
-+
-+.B /usr/sbin/arp -i eth1 -d 10.0.0.1
-+
-+Entfernt den ARP-Eintrag f\(:ur 10.0.0.1 auf der Schnittstelle
-+.BR eth1 .
-+Dies betrifft sowohl publizierte Proxy-ARP-Einträge als auch auf permanente ARP-Eintr\(:age.
-+
- .SH DATEIEN
- .I /proc/net/arp,
- .br
-@@ -176,10 +184,12 @@ Flagge.
- .I /etc/hosts
- .br
- .I /etc/ethers
-+
- .SH SIEHE AUCH
- ethers(5), rarp(8), route(8), ifconfig(8), netstat(8)
-+
- .SH AUTOREN
--Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> mit vielen Verbesserungen vom
--Verwalter der Net-Tools Bernd Eckenfels <net-tools@lina.inka.de>.
-+Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net-tools@lina.inka.de>.
-+
- .SH \(:Ubersetzung
--Ralf B\(:achle <ralf@gnu.org>
-+Ralf B\(:achle <ralf@gnu.org>, Simon A. Eugster <simon.eu@gmail.com>
-diff --git a/man/de_DE/ifconfig.8 b/man/de_DE/ifconfig.8
-index aa2a4a0..9713965 100644
---- a/man/de_DE/ifconfig.8
-+++ b/man/de_DE/ifconfig.8
-@@ -73,9 +73,6 @@ Modus. Ist er eingeschaltet, so werden alle Multicastpakete vom Netzwerk
- empfangen unabh\(:angig davon, ob sie an die Schnittstelle adressiert sind
- oder nicht.
- .TP
--.B "metric N"
--Dieses Argument setzt den Metrik-Wert f\(:ur die Schnittstelle auf N.
--.TP
- .B "mtu N"
- Dieses Argument setzt die Maximum Transfer Unit (MTU) der Schnittstelle,
- das ist das gr\(:o\(sste Paket, dass gesendet werden kann.
-@@ -98,7 +95,7 @@ F\(:ugt der Schnittstelle eine IPv6-Adresse zu.
- .B "del addr/prefixlen"
- Entfernt eine IPv6-Adresse von der Schnittstelle.
- .TP
--.B "tunnel aa.bb.cc.dd"
-+.B "tunnel ::aa.bb.cc.dd"
- Erzeugt ein neues SIT (IPv6-in-IPv4) Ger\(:at, das Pakete zum angegebenen
- Ziel tunnelt.
- .TP
-@@ -180,12 +177,10 @@ Seit Kernel Version 2.2 gibt es keine expliziten Statistiken f\(:ur
- Schnittstellenaliase mehr. Die Statistiken f\(:ur die Originaladresse werden
- mit allen Aliasen auf das gleiche Ger\(:at geteilt. Um Statistiken per
- Adresse zu erhalten sollte explizite EIntr\(:age f\(:ur die Adresse mit dem
--.BR ipchains(8)
-+.BR iptables(8)
- Kommando gemacht werden.
-
- .SH DATEIEN
--.I /proc/net/socket
--.br
- .I /proc/net/dev
- .br
- .I /proc/net/if_inet6
-@@ -193,7 +188,7 @@ Kommando gemacht werden.
- W\(:ahrend AppleTalk DDP und IPX Adressen angezeigt werden, k\(:onnen sie mit
- diesem Kommando nicht ge\(:andert werden.
- .SH SIEHE AUCH
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
-+route(8), netstat(8), arp(8), rarp(8), iptables(8)
- .SH AUTOREN
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- .br
-diff --git a/man/de_DE/netstat.8 b/man/de_DE/netstat.8
-index f59aec0..d6b77ff 100644
---- a/man/de_DE/netstat.8
-+++ b/man/de_DE/netstat.8
-@@ -9,7 +9,7 @@
- .\" Modified: Tuan Hoang tuan@optimus.mitre.org
- .\"
- .\"
--.TH NETSTAT 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
-+.TH NETSTAT 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
-
- .SH NAME
- netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstatistiken, maskierten Verbindungen, Netlink-Nachrichten und Mitgliedschaft in Multicastgruppen
-@@ -44,7 +44,6 @@ netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstat
- .B netstat
- .RB [ \-veenpac ]
- .RB { \-\-interfaces | \-i }
--.RI [ Schnittstelle ]
-
- .PP
-
-@@ -68,6 +67,8 @@ netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstat
- .SH BESCHREIBUNG
- .B Netstat
- zeigt Informationen des Linux Netzwerkssystems an.
-+.PP
-+.B Bitte beachten Sie, dass der Inhalt der deutschen man-page nicht vollst\(:andig ist, im Moment.
-
- .SS "(no option)"
- Ohne Optionen zeigt
-@@ -103,18 +104,17 @@ benutzt das Ausgabeformat von
- Wegen Details siehe
- .BR route (8).
-
--.SS "\-i, \-\-interface \fISchnittstelle\fI"
-+.SS "\-i, \-\-interfaces"
- Wird die
- .BR -i ", " --interfaces
--Option verwendet, so wird eine Tabelle aller (oder der angegebenen
--.IR Schnittstellen )
-+Option verwendet, so wird eine Tabelle aller Schnittstellen
- ausgedruckt. Die Ausgabe ist im Format von
- .B "ifconfig -e"
- und wird in
- .BR ifconfig (8)
- beschrieben.
- .B "netstat -ei"
--druckt eine Tabelle oder einen Eintrag f\(:ur einen einzelnes Interface wie
-+druckt eine Tabelle f\(:ur Interfaces wie
- .BR ifconfig .
- Die
- .B -a
-@@ -182,7 +182,7 @@ Dies hat den gleichen Effekt wie die Langoptionen
- und
- .BR \-\-ddp.
-
--.SS "\-c, \-\-continous"
-+.SS "\-c, \-\-continuous"
- Mit dieser Option wiederholt
- .B netstat
- im Sekundenabstand die Ausgabe, bis es abgebrochen wird.
-@@ -414,7 +414,7 @@ werden.)
- Seit der Kern Version 2.2 zeigt netstat -i keine Schnittstellenstatistiken
- von Schnittstellenaliasen mehr an. Um Statistiken per Schnittstelle zur
- erhalten, m\(:ussen jetzt mit dem
--.BR ipchains(8)
-+.BR iptables(8)
- Befehl explizite Regeln zugef\(:ugt werden.
-
- .SH DATEIEN
-@@ -477,10 +477,7 @@ Befehl explizite Regeln zugef\(:ugt werden.
- .SH SIEHE AUCH
- .BR route (8),
- .BR ifconfig (8),
--.BR ipfw (4),
--.BR ipfw (8),
--.BR ipfwadm (8)
--.BR ipchains (8)
-+.BR iptables (8)
-
- .PP
- .SH PROBLEME
-diff --git a/man/de_DE/route.8 b/man/de_DE/route.8
-index a28c9d1..1a32712 100644
---- a/man/de_DE/route.8
-+++ b/man/de_DE/route.8
-@@ -55,7 +55,7 @@ Schnittstelle]
- .SH BESCHREIBUNG
- .B Route
- wird zum \(:Andern der IP-Routing-Tabelle der Kernels verwendet. Seine
--prim\(:are Verwendung ist statische Routen f\*:ur bestimmte Rechner oder
-+prim\(:are Verwendung ist statische Routen f\(:ur bestimmte Rechner oder
- Netzwerke \(:uber eine Schnittstelle einzutragen, nachdem diese mit dem
- Programm
- .BR ifconfig (8)
-diff --git a/man/en_US/arp.8 b/man/en_US/arp.8
-index d859b46..c065e22 100644
---- a/man/en_US/arp.8
-+++ b/man/en_US/arp.8
-@@ -1,56 +1,111 @@
--.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual"
-+.TH ARP 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- arp \- manipulate the system ARP cache
- .SH SYNOPSIS
--.B arp
--.RB [ \-vn ]
--.RB [ "\-H type" ]
--.RB [ "-i if" ]
--.B -a
--.RB [ hostname ]
-+.B arp
-+.RB [ \-vn ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.RB [ \-ae ]
-+.RI [ hostname ]
- .PP
--.B arp
-+.B arp
- .RB [ \-v ]
--.RB [ "\-i if" ]
--.B "\-d hostname"
-+.RB [ \-i
-+.IR if ]
-+.B \-d
-+.I hostname
- .RB [ pub ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H type" ]
--.RB [ "\-i if" ]
--.B -s hostname hw_addr
--.RB [ temp ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-s
-+.I hostname hw_addr
-+.RB [ temp ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H type" ]
--.RB [ "\-i if" ]
--.B -s hostname hw_addr
--.RB [ "netmask nm" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-s
-+.I hostname hw_addr
-+.RB [ netmask
-+.IR nm ]
- .B pub
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H type" ]
--.RB [ "\-i if" ]
--.B -Ds hostname ifa
--.RB [ "netmask nm" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-Ds
-+.I hostname
-+.I ifname
-+.RB [ netmask
-+.IR nm ]
- .B pub
- .PP
--.B arp
-+.B arp
- .RB [ \-vnD ]
--.RB [ "\-H type" ]
--.RB [ "-i if" ]
--.B -f [filename]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-f
-+.RI [ filename ]
-
- .SH DESCRIPTION
- .B Arp
--manipulates the kernel's ARP cache in various ways. The primary options
--are clearing an address mapping entry and manually setting up one. For
--debugging purposes, the
-+manipulates or displays the kernel's IPv4 network neighbour cache. It can add
-+entries to the table, delete one or display the current content.
-+
-+.B ARP
-+stands for Address Resolution Protocol, which is used to find the media
-+access control address of a network neighbour for a given IPv4 Address.
-+.SH MODES
- .B arp
--program also allows a complete dump of the ARP cache.
-+with no mode specifier will print the current content of the table. It is
-+possible to limit the number of entries printed, by specifying an hardware
-+address type, interface name or host address.
-+
-+.B arp -d
-+.I address
-+will delete a ARP table entry. Root or netadmin privilege is required to do
-+this. The entry is found by IP address. If a hostname is given, it will be
-+resolved before looking up the entry in the ARP table.
-+
-+.B arp -s
-+.I address hw_addr
-+is used to set up a new table entry. The format of the
-+.I hw_addr
-+parameter is dependent on the hardware class, but for most classes one can
-+assume that the usual presentation can be used. For the Ethernet class,
-+this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp
-+entries (that is those with the
-+.BR pub lish
-+flag set) a
-+.B netmask
-+may be specified to proxy arp for entire subnets. This is not good
-+practice, but is supported by older kernels because it can be
-+useful. If the
-+.B temp
-+flag is not supplied entries will be permanent stored into the ARP
-+cache. To simplify setting up entries for one of your own network interfaces, you can use the
-+.B "arp \-Ds"
-+.I address ifname
-+form. In that case the hardware address is taken from the interface with the
-+specified name.
-+
-+.br
- .SH OPTIONS
- .TP
- .B "\-v, \-\-verbose"
-@@ -60,7 +115,7 @@ Tell the user what is going on by being verbose.
- shows numerical addresses instead of trying to determine symbolic host, port
- or user names.
- .TP
--.B "\-H type, \-\-hw-type type"
-+\fB\-H\fI type\fR, \fB\-\-hw\-type\fI type\fR, \fB\-t\fI type\fR
- When setting or reading the ARP cache, this optional parameter tells
- .B arp
- which class of entries it should check for. The default value of
-@@ -76,23 +131,18 @@ Other values might include network technologies such as
- and
- .RB "NET/ROM (" netrom ")."
- .TP
--.B "\-a [hostname], \-\-display [hostname]"
--Shows the entries of the specified hosts. If the
--.B hostname
--parameter is not used,
--.B all
--entries will be displayed.
-+.B \-a
-+Use alternate BSD style output format (with no fixed columns).
- .TP
--.B "\-d hostname, \-\-delete hostname"
--Remove any entry for the specified host. This can be used if the
--indicated host is brought down, for example.
-+.B \-e
-+Use default Linux style output format (with fixed columns).
- .TP
- .B "\-D, \-\-use-device"
--Use the interface
--.BR ifa "'s"
--hardware address.
-+Instead of a hw_addr, the given argument is the name of an interface.
-+.B arp
-+will use the MAC address of that interface for the table entry. This is usually the best option to set up a proxy ARP entry to yourself.
- .TP
--.B "\-i If, \-\-device If"
-+\fB\-i\fI If\fR, \fB\-\-device\fI If\fR
- Select an interface. When dumping the ARP cache only entries matching
- the specified interface will be printed. When setting a permanent or
- .B temp
-@@ -101,53 +151,36 @@ option is not used, the kernel will guess based on the routing
- table. For
- .B pub
- entries the specified interface is the interface on which ARP requests will
--be answered.
-+be answered.
- .br
- .B NOTE:
- This has to be different from the interface to which the IP
- datagrams will be routed.
--.TP
--.B "\-s hostname hw_addr, \-\-set hostname"
--Manually create an ARP address mapping entry for host
--.B hostname
--with hardware address set to
--.B hw_addr
--. The format of the hardware address is dependent on the hardware
--class, but for most classes one can assume that the usual presentation
--can be used. For the Ethernet class, this is 6 bytes in hexadecimal,
--separated by colons. When adding proxy arp entries (that is those with
--the
--.BR pub lish
--flag set a
--.B netmask
--may be specified to proxy arp for entire subnets. This is not good
--practice, but is supported by older kernels because it can be
--useful. If the
--.B temp
--flag is not supplied entries will be permanent stored into the ARP
--cache.
--.br
- .B NOTE:
--As of kernel 2.2.0 it is no longer possible to set an ARP entry for an
-+As of kernel 2.2.0 it is no longer possible to set an ARP entry for an
- entire subnet. Linux instead does automagic proxy arp when a route
--exists and it is forwarding. See
-+exists and it is forwarding. See
- .BR arp (7)
--for details.
-+for details. Also the
-+.B dontpub
-+option which is available for delete and set operations cannot be
-+used with 2.4 and newer kernels.
- .TP
--.B "\-f filename, \-\-file filename"
-+\fB\-f\fI filename\fR, \fB\-\-file\fI filename\fR
- Similar to the
- .B \-s
- option, only this time the address info is taken from file
--.B filename
--. This can be used if ARP entries for a lot of hosts have to be
-+.IR filename .
-+This can be used if ARP entries for a lot of hosts have to be
- set up. The name of the data file is very often
--.IR /etc/ethers ,
--but this is not official. If no filename is specified /etc/ethers
-+.IR /etc/ethers ,
-+but this is not official. If no filename is specified
-+.I /etc/ethers
- is used as default.
- .sp 1
- The format of the file is simple; it
- only contains ASCII text lines with a hostname, and a hardware
--address separated by whitespace. Additionally the
-+address separated by whitespace. Additionally the
- .BR "pub" , " temp" " and" " netmask"
- flags can be used.
- .LP
-@@ -157,9 +190,9 @@ is expected, one can also enter an
- .B "IP address"
- in dotted-decimal notation.
- .P
--As a special case for compatibility the order of the hostname and
-+As a special case for compatibility the order of the hostname and
- the hardware address can be exchanged.
--.LP
-+.LP
- Each complete entry in the ARP cache will be marked with the
- .B C
- flag. Permanent entries are marked with
-@@ -167,8 +200,18 @@ flag. Permanent entries are marked with
- and published entries have the
- .B P
- flag.
-+.SH EXAMPLES
-+.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
-+
-+This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for
-+eth1.
-+
-+.B /usr/sbin/arp -i eth1 -d 10.0.0.1
-+
-+Delete the ARP table entry for 10.0.0.1 on interface eth1. This will match
-+published proxy ARP entries and permanent entries.
- .SH FILES
--.I /proc/net/arp,
-+.I /proc/net/arp
- .br
- .I /etc/networks
- .br
-@@ -178,5 +221,4 @@ flag.
- .SH SEE ALSO
- rarp(8), route(8), ifconfig(8), netstat(8)
- .SH AUTHORS
--Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> with a lot of improvements
--from net-tools Maintainer Bernd Eckenfels <net-tools@lina.inka.de>.
-+Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net\-tools@lina.inka.de>.
-diff --git a/man/en_US/ethers.5 b/man/en_US/ethers.5
-index f3ba116..5a02892 100644
---- a/man/en_US/ethers.5
-+++ b/man/en_US/ethers.5
-@@ -1,4 +1,4 @@
--.TH ETHERS 5 "April 26th, 1996" "" "File formats"
-+.TH ETHERS 5 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME \"{{{roff}}}\"{{{
- ethers \- Ethernet address to IP number database
- .\"}}}
-@@ -7,17 +7,17 @@ ethers \- Ethernet address to IP number database
- IP numbers, one line for each IP number:
- .sp
- .RS
--\fIEthernet-address\fP \fIIP-number\fP
-+\fIEthernet\-address\fP \fIIP\-number\fP
- .RE
- .sp
--The two items are separated by any number of SPACE and/or TAB char
--acters. A \fB#\fP at the beginning of a line starts a comment
--which extends to the end of the line. The \fIEthernet-address\fP is
-+The two items are separated by any number of SPACE and/or TAB characters.
-+A \fB#\fP at the beginning of a line starts a comment
-+which extends to the end of the line. The \fIEthernet\-address\fP is
- written as
- .IR x : x : x : x : x : x ,
- where \fIx\fP is a hexadecimal number between \fB0\fP and \fBff\fP
- which represents one byte of the address, which is in network byte
--order (big-endian). The \fIIP-number\fP may be a hostname which
-+order (big-endian). The \fIIP\-number\fP may be a hostname which
- can be resolved by DNS or a dot separated number.
- .\"}}}
- .SH EXAMPLES \"{{{
-diff --git a/man/en_US/hostname.1 b/man/en_US/hostname.1
-index cea3f6e..9f7dd7f 100644
---- a/man/en_US/hostname.1
-+++ b/man/en_US/hostname.1
-@@ -1,4 +1,4 @@
--.TH HOSTNAME 1 "28 Jan 1996" "net-tools" "Linux Programmer's Manual"
-+.TH HOSTNAME 1 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
-
- .SH NAME
- hostname \- show or set the system's host name
-@@ -23,7 +23,7 @@ nodename \- show or set the system's DECnet node name
- .RB [ \-f ]
- .RB [ \-\-fqdn ]
- .RB [ \-i ]
--.RB [ \-\-ip-address ]
-+.RB [ \-\-ip\-address ]
- .RB [ \-\-long ]
- .RB [ \-s ]
- .RB [ \-\-short ]
-@@ -181,7 +181,7 @@ part of the FQDN) in the \fI/etc/hosts\fR file.
- .I "\-h, \-\-help"
- Print a usage message and exit.
- .TP
--.I "\-i, \-\-ip-address"
-+.I "\-i, \-\-ip\-address"
- Display the IP address(es) of the host.
- .TP
- .I "\-n, \-\-node"
-@@ -205,9 +205,9 @@ Display the NIS domain name. If a parameter is given (or
- .SH FILES
- .B /etc/hosts
- .SH AUTHOR
--Peter Tobias, <tobias@et-inf.fho-emden.de>
-+Peter Tobias, <tobias@et\-inf.fho\-emden.de>
- .br
--Bernd Eckenfels, <net-tools@lina.inka.de> (NIS and manpage).
-+Bernd Eckenfels, <net\-tools@lina.inka.de> (NIS and manpage).
- .br
- Steve Whitehouse, <SteveW@ACM.org> (DECnet support and manpage).
-
-diff --git a/man/en_US/ifconfig.8 b/man/en_US/ifconfig.8
-index e75cf59..0243be3 100644
---- a/man/en_US/ifconfig.8
-+++ b/man/en_US/ifconfig.8
-@@ -1,10 +1,10 @@
--.TH IFCONFIG 8 "14 August 2000" "net-tools" "Linux Programmer's Manual"
-+.TH IFCONFIG 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- ifconfig \- configure a network interface
- .SH SYNOPSIS
--.B "ifconfig [interface]"
-+.B "ifconfig [-v] [-a] [-s] [interface]"
- .br
--.B "ifconfig interface [aftype] options | address ..."
-+.B "ifconfig [-v] interface [aftype] options | address ..."
- .SH DESCRIPTION
- .B Ifconfig
- is used to configure the kernel-resident network interfaces. It is
-@@ -18,7 +18,7 @@ a single
- .B interface
- argument is given, it displays the status of the given interface
- only; if a single
--.B -a
-+.B \-a
- argument is given, it displays the status of all interfaces, even
- those that are down. Otherwise, it configures an interface.
-
-@@ -39,13 +39,34 @@ supported address families include
- (Novell IPX) and
- .B netrom
- (AMPR Packet radio).
-+All numbers supplied as parts in IPv4 dotted decimal notation may be decimal,
-+octal, or hexadecimal, as specified in the ISO C standard (that is, a leading 0x
-+or 0X implies hexadecimal; otherwise, a leading '0' implies octal; otherwise,
-+the number is interpreted as decimal). Use of hexadecimal and octal numbers
-+is not RFC-compliant and therefore its use is discouraged.
- .SH OPTIONS
- .TP
-+.B -a
-+display all interfaces which are currently available, even if down
-+.TP
-+.B -s
-+display a short list (like netstat -i)
-+.TP
-+.B -v
-+be more verbose for some error conditions
-+.TP
- .B interface
- The name of the interface. This is usually a driver name followed by
- a unit number, for example
- .B eth0
--for the first Ethernet interface.
-+for the first Ethernet interface. If your kernel supports alias interfaces,
-+you can specify them with
-+.B eth0:0
-+for the first alias of eth0. You can use them to assign a second address. To
-+delete an alias interface use
-+.BR "ifconfig eth0:0 down" .
-+Note: for every scope (i.e. same net with address/netmask combination) all
-+aliases are deleted, if you delete the first (primary).
- .TP
- .B up
- This flag causes the interface to be activated. It is implicitly
-@@ -69,9 +90,6 @@ Enable or disable
- mode. If selected, all multicast packets on the network will be
- received by the interface.
- .TP
--.B "metric N"
--This parameter sets the interface metric.
--.TP
- .B "mtu N"
- This parameter sets the Maximum Transfer Unit (MTU) of an interface.
- .TP
-@@ -92,7 +110,7 @@ Add an IPv6 address to an interface.
- .B "del addr/prefixlen"
- Remove an IPv6 address from an interface.
- .TP
--.B "tunnel aa.bb.cc.dd"
-+.B "tunnel ::aa.bb.cc.dd"
- Create a new SIT (IPv6-in-IPv4) device, tunnelling to the given destination.
- .TP
- .B "irq addr"
-@@ -122,13 +140,13 @@ are
- can be used to tell the driver to auto-sense the media. Again, not
- all drivers can do this.
- .TP
--.B "[-]broadcast [addr]"
-+.B "[\-]broadcast [addr]"
- If the address argument is given, set the protocol broadcast
- address for this interface. Otherwise, set (or clear) the
- .B IFF_BROADCAST
- flag for the interface.
- .TP
--.B "[-]pointopoint [addr]"
-+.B "[\-]pointopoint [addr]"
- This keyword enables the
- .B point-to-point
- mode of an interface, meaning that it is a direct link between two
-@@ -173,23 +191,40 @@ alias interfaces anymore. The statistics printed for the original address
- are shared with all alias addresses on the same device. If you want per-address
- statistics you should add explicit accounting
- rules for the address using the
--.BR ipchains(8)
-+.BR iptables (8)
- command.
- .LP
--Interrupt problems with Ethernet device drivers fail with EAGAIN. See
--.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html
-+Since net\-tools 1.60\-4 ifconfig is printing byte counters and human readable
-+counters with IEC 60027-2 units. So 1 KiB are 2^10 byte. Note, the numbers
-+are truncated to one decimal (which can by quite a large error if you
-+consider 0.1 PiB is 112.589.990.684.262 bytes :)
-+.LP
-+Interrupt problems with Ethernet device drivers fail with EAGAIN
-+.I (SIOCSIIFLAGS: Resource temporarily unavailable)
-+it is most likely a interrupt conflict. See
-+.I http://www.scyld.com/expert/irq\-conflict.html
- for more information.
- .SH FILES
--.I /proc/net/socket
--.br
- .I /proc/net/dev
- .br
- .I /proc/net/if_inet6
- .SH BUGS
-+Ifconfig uses the ioctl access method to get the full address information,
-+which limits hardware addresses to 8 bytes.
-+Because Infiniband hardware address has 20 bytes,
-+only the first 8 bytes are displayed correctly.
-+Please use
-+.B ip link
-+command from
-+.B iproute2
-+package to display link layer informations including the hardware address.
-+.LP
- While appletalk DDP and IPX addresses will be displayed they cannot be
- altered by this command.
- .SH SEE ALSO
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
-+route(8), netstat(8), arp(8), rarp(8), iptables(8), ifup(8), interfaces(5).
-+.br
-+http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples
- .SH AUTHORS
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- .br
-@@ -198,3 +233,5 @@ Alan Cox, <Alan.Cox@linux.org>
- Phil Blundell, <Philip.Blundell@pobox.com>
- .br
- Andi Kleen
-+.br
-+Bernd Eckenfels, <net\-tools@lina.inka.de>
-diff --git a/man/en_US/mii-tool.8 b/man/en_US/mii-tool.8
-index 6b773ec..7decaac 100644
---- a/man/en_US/mii-tool.8
-+++ b/man/en_US/mii-tool.8
-@@ -1,13 +1,12 @@
- .\" Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org
--.\" mii-tool.8 1.5 2000/04/25 22:58:19
- .\"
--.TH MII-TOOL 8 "2000/04/25 22:58:19" "net-tools"
-+.TH MII\-TOOL 8 "2013\-02\-15" "net\-tools" "Linux System Administrator's Manual"
-
- .SH NAME
--mii-tool \- view, manipulate media-independent interface status
-+mii\-tool \- view, manipulate media-independent interface status
-
- .SH SYNOPSIS
--.B mii-tool
-+.B mii\-tool
- [\fB\-v\fR, \fB\-\-verbose\fR]
- [\fB\-V\fR, \fB\-\-version\fR]
- [\fB\-R\fR, \fB\-\-reset\fR]
-@@ -16,7 +15,8 @@ mii-tool \- view, manipulate media-independent interface status
- [\fB\-l\fR, \fB\-\-log\fR]
- [\fB\-A\fR, \fB\-\-advertise=\fImedia,...\fR]
- [\fB\-F\fR, \fB\-\-force=\fImedia\fR]
--.RI [ "interface\ ..." ]
-+[\fB\-p\fR, \fB\-\-phy=\fIaddr\fR]
-+.RI "interface\ ..."
-
- .SH DESCRIPTION
- This utility checks or sets the status of a network interface's Media
-@@ -32,18 +32,21 @@ single-speed hubs, are unable to autonegotiate. To handle such
- devices, the MII protocol also allows for establishing a link by
- simply detecting either a 10baseT or 100baseT link beat. The \fB\-F\fR
- or \fB\-\-force\fR options can be used to force the MII to operate in
--one mode, instead of autonegotiating. The \fB\-A\fR and \fB-F\fR
-+one mode, instead of autonegotiating. The \fB\-A\fR and \fB\-F\fR
- options are mutually exclusive.
- .PP
- The default short output reports the negotiated link speed and link
--status for each interface. If an interface or interfaces are not
--specified on the command line, then \fBmii-tool\fR will check any
--available interfaces from \fBeth0\fR through \fBeth7\fR.
-+status for each interface.
- .SH OPTIONS
- .TP
- \fB\-v\fR, \fB\-\-verbose\fR
- Display more detailed MII status information. If used twice, also
- display raw MII register contents.
-+.br
-+\fBAlert:\fR If used three times, will force reading all MII
-+registers, including non standard ones. It's not guaranteed any
-+valid answer from PHY while PHY communication can even hang.
-+With driver e1000e will fail while reading register 0x07.
- .TP
- \fB\-V\fR, \fB\-\-version\fR
- Display program version information.
-@@ -59,7 +62,7 @@ Watch interface(s) and report changes in link status. The MII
- interfaces are polled at one second intervals.
- .TP
- \fB\-l\fR, \fB\-\-log\fR
--Used with \fB-w\fR, records link status changes in the system log
-+Used with \fB\-w\fR, records link status changes in the system log
- instead of printing on standard output.
- .TP
- \fB\-F\fI media\fR, \fB\-\-force=\fImedia\fR
-@@ -71,8 +74,31 @@ Enable and restart autonegotiation, and advertise only the specified
- media technologies. Multiple technologies should be separated by
- commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR,
- \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR.
-+.TP
-+\fB\-p\fI addr\fR, \fB\-\-phy=\fIaddr\fR
-+Override the MII address provided by kernel with value \fBaddr\fR.
-+
-+.SH DIAGNOSTICS
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: Invalid argument
-+If the interface is not running (up), kernel will refuse to report its link state.
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: Operation not permitted
-+Most kernels restrict access to root.
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: No such device
-+This error is shown, if the kernel does not know about the named device.
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: Operation not supported
-+The interface in question does not support MII queries. Most likely, it does not have
-+MII transceivers, at all.
-
- .SH AUTHORS
- David Hinds \- dhinds@pcmcia.sourceforge.org
- .br
- Donald Becker \- becker@scyld.com
-+.br
-+Bernd Eckenfels \- net-tools@lina.inka.de
-+
-+.SH SEE ALSO
-+http://net-tools.sourceforge.net \- Homepage of the net-tools project
-diff --git a/man/en_US/nameif.8 b/man/en_US/nameif.8
-index ff2430f..195304d 100644
---- a/man/en_US/nameif.8
-+++ b/man/en_US/nameif.8
-@@ -1,10 +1,10 @@
--.TH NAMEIF 8 "18 Oct 2000" "net-tools" "Linux's Administrator's Manual"
-+.TH NAMEIF 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- nameif \- name network interfaces based on MAC addresses
- .SH SYNOPSIS
--.B "nameif [-c configfile] [-s]"
-+.B "nameif [\-c configfile] [\-s]"
- .br
--.B "nameif [-c configfile] [-s] {interface macaddress}"
-+.B "nameif [\-c configfile] [\-s] {interface macaddress}"
- .SH DESCRIPTION
- .B nameif
- renames network interfaces based on mac addresses. When no arguments are
-@@ -18,11 +18,11 @@ looks for the interface with the given MAC address and renames it to the
- name given.
-
- When the
--.I -s
-+.I \-s
- argument is given all error messages go to the syslog.
-
- When the
--.I -c
-+.I \-c
- argument is given with a file name that file is read instead of /etc/mactab.
-
- .SH NOTES
-diff --git a/man/en_US/netstat.8 b/man/en_US/netstat.8
-index b33996a..1aba23b 100644
---- a/man/en_US/netstat.8
-+++ b/man/en_US/netstat.8
-@@ -6,9 +6,10 @@
- .\" Modified: Bernd.Eckenfels@inka.de
- .\" Modified: Andi Kleen ak@muc.de
- .\" Modified: Tuan Hoang tqhoang@bigfoot.com
-+.\" Modified: Brian Micek bmicek@gmail.com
- .\"
- .\"
--.TH NETSTAT 8 "19 December 2000" "net-tools" "Linux Programmer's Manual"
-+.TH NETSTAT 8 "2012\-09\-15" "net\-tools" "Linux System Administrator's Manual"
-
- .SH NAME
- netstat \- Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
-@@ -19,17 +20,19 @@ netstat \- Print network connections, routing tables, interface statistics, masq
- .RI [ address_family_options ]
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
- .RB [ \-\-raw | \-w ]
- .RB [ \-\-listening | \-l ]
- .RB [ \-\-all | \-a ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-symbolic | \-N ]
- .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
- .RB [ \-\-timers | \-o ]
- .RB [ \-\-program | \-p ]
- .RB [ \-\-verbose | \-v ]
- .RB [ \-\-continuous | \-c]
-+.RB [ \-\-wide | \-W]
- .P
- .B netstat
- .RB { \-\-route | \-r }
-@@ -37,37 +40,37 @@ netstat \- Print network connections, routing tables, interface statistics, masq
- .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
- .RB [ \-\-verbose | \-v ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-interfaces | \-i }
--.RI [ iface ]
- .RB [ \-\-all | \-a ]
- .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
- .RB [ \-\-verbose | \-v ]
- .RB [ \-\-program | \-p ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-groups | \-g }
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-masquerade | \-M }
- .RB [ \-\-extend | \-e ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-statistics | -s }
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
- .RB [ \-\-raw | \-w ]
- .P
- .B netstat
-@@ -78,13 +81,26 @@ netstat \- Print network connections, routing tables, interface statistics, masq
- .P
- .IR address_family_options :
- .PP
--.RB [ \-\-protocol= { inet , unix , ipx , ax25 , netrom , ddp }[, ...] ]
-+.RB [ -4 | \-\-inet ]
-+.RB [ -6 | \-\-inet6 ]
-+.RB [ \-\-protocol= { inet , inet6 , unix , ipx , ax25 , netrom , ddp ", ... } ]"
- .RB [ \-\-unix | \-x ]
--.RB [ \-\-inet | \-\-ip ]
-+.RB [ \-\-inet | \-\-ip | \-\-tcpip ]
- .RB [ \-\-ax25 ]
-+.RB [ \-\-x25 ]
-+.RB [ \-\-rose ]
-+.RB [ \-\-ash ]
- .RB [ \-\-ipx ]
- .RB [ \-\-netrom ]
--.RB [ \-\-ddp ]
-+.RB [ \-\-ddp | \-\-appletalk ]
-+.RB [ \-\-econet | \-\-ec ]
-+
-+.SH NOTES
-+This program is obsolete.
-+Replacement for \fBnetstat\fR is \fBss\fR.
-+Replacement for \fBnetstat -r\fR is \fBip route\fR.
-+Replacement for \fBnetstat -i\fR is \fBip -s link\fR.
-+Replacement for \fBnetstat -g\fR is \fBip maddr\fR.
-
- .SH DESCRIPTION
- .B Netstat
-@@ -98,12 +114,17 @@ displays a list of open sockets. If you don't specify any
- address families, then the active sockets of all configured address
- families will be printed.
- .SS "\-\-route , \-r"
--Display the kernel routing tables.
-+Display the kernel routing tables. See the description in
-+.BR route (8)
-+for details.
-+.B netstat -r
-+and
-+.B route -e
-+produce the same output.
- .SS "\-\-groups , \-g"
- Display multicast group membership information for IPv4 and IPv6.
--.SS "\-\-interface=\fIiface \fR, \fB\-i"
--Display a table of all network interfaces, or the specified
--.IR iface ) .
-+.SS "\-\-interfaces, \-i"
-+Display a table of all network interfaces.
- .SS "\-\-masquerade , \-M"
- Display a list of masqueraded connections.
- .SS "\-\-statistics , \-s"
-@@ -112,16 +133,19 @@ Display summary statistics for each protocol.
- .SS "\-\-verbose , \-v"
- Tell the user what is going on by being verbose. Especially print some
- useful information about unconfigured address families.
-+.SS "\-\-wide , \-W"
-+Do not truncate IP addresses by using output as wide as needed. This is
-+optional for now to not break existing scripts.
- .SS "\-\-numeric , \-n"
- Show numerical addresses instead of trying to determine symbolic host, port
- or user names.
--.SS "\-\-numeric-hosts"
-+.SS "\-\-numeric\-hosts"
- shows numerical host addresses but does not affect the resolution of
- port or user names.
--.SS "\-\-numeric-ports"
-+.SS "\-\-numeric\-ports"
- shows numerical port numbers but does not affect the resolution of
- host or user names.
--.SS "\-\-numeric-users"
-+.SS "\-\-numeric\-users"
- shows numerical user IDs but does not affect the resolution of host or
- port names.
-
-@@ -131,15 +155,18 @@ protocols) for which connections are to be shown.
- .I family
- is a comma (',') separated list of address family keywords like
- .BR inet ,
-+.BR inet6 ,
- .BR unix ,
- .BR ipx ,
- .BR ax25 ,
- .BR netrom ,
-+.BR econet ,
- and
- .BR ddp .
- This has the same effect as using the
--.BR \-\-inet ,
--.BR \-\-unix " (" \-x ),
-+.BR \-\-inet | -4 ,
-+.BR \-\-inet6 | -6 ,
-+.BR \-\-unix | -x ,
- .BR \-\-ipx ,
- .BR \-\-ax25 ,
- .BR \-\-netrom ,
-@@ -149,7 +176,7 @@ options.
- .P
- The address family
- .B inet
--includes raw, udp and tcp protocol sockets.
-+(Iv4) includes raw, udp, udplite and tcp protocol sockets.
- .SS "\-c, \-\-continuous"
- This will cause
- .B netstat
-@@ -164,23 +191,24 @@ Show the PID and name of the program to which each socket belongs.
- Show only listening sockets. (These are omitted by default.)
- .SS "\-a, \-\-all"
- Show both listening and non-listening sockets. With the
--.B --interfaces
--option, show interfaces that are not marked
-+.B \-\-interfaces
-+option, show interfaces that are not up
- .SS "\-F"
- Print routing information from the FIB. (This is the default.)
- .SS "\-C"
- Print routing information from the route cache.
--.IR UP .
- .P
- .SH OUTPUT
- .P
--.SS Active Internet connections \fR(TCP, UDP, raw)\fR
-+.SS Active Internet connections \fR(TCP, UDP, UDPLite, raw)\fR
- .SS "Proto"
--The protocol (tcp, udp, raw) used by the socket.
--.SS "Recv-Q"
--The count of bytes not copied by the user program connected to this socket.
--.SS "Send-Q"
--The count of bytes not acknowledged by the remote host.
-+The protocol (tcp, udp, udpl, raw) used by the socket.
-+.SS "Recv\-Q"
-+Established: The count of bytes not copied by the user program connected to this socket.
-+Listening: Since Kernel 2.6.18 this column contains the current syn backlog.
-+.SS "Send\-Q"
-+Established: The count of bytes not acknowledged by the remote host.
-+Listening: Since Kernel 2.6.18 this column contains the maximum size of the syn backlog.
- .SS "Local Address"
- Address and port number of the local end of the socket. Unless the
- .BR \-\-numeric " (" \-n )
-@@ -192,7 +220,7 @@ Address and port number of the remote end of the socket.
- Analogous to "Local Address."
- .SS "State"
- The state of the socket. Since there are no states in raw mode and usually no
--states used in UDP, this column may be left blank. Normally this can be one
-+states used in UDP and UDPLite, this column may be left blank. Normally this can be one
- of several values:
- .TP
- .I
-@@ -221,7 +249,7 @@ TIME_WAIT
- The socket is waiting after close to handle packets still in the network.
- .TP
- .I
--CLOSED
-+CLOSE
- The socket is not being used.
- .TP
- .I
-@@ -255,7 +283,7 @@ The username or the user id (UID) of the owner of the socket.
- .SS "PID/Program name"
- Slash-separated pair of the process id (PID) and process name of the
- process that owns the socket.
--.B --program
-+.B \-\-program
- causes this column to be included. You will also need
- .I superuser
- privileges to see this information on sockets you don't own. This
-@@ -356,13 +384,6 @@ to the socket.
- .SS Active AX.25 sockets
- (this needs to be done by somebody who knows it)
- .PP
--.SH NOTES
--Starting with Linux release 2.2
--.B netstat -i
--does not show interface statistics for alias interfaces. To get per
--alias interface counters you need to setup explicit rules using the
--.BR ipchains(8)
--command.
-
- .SH FILES
- .ta
-@@ -385,6 +406,9 @@ status information via the following files.
- .I /proc/net/udp
- -- UDP socket information
-
-+.I /proc/net/udplite
-+-- UDPLite socket information
-+
- .I /proc/net/igmp
- -- IGMP multicast information
-
-@@ -428,9 +452,10 @@ status information via the following files.
- .SH SEE ALSO
- .BR route (8),
- .BR ifconfig (8),
--.BR ipchains (8),
- .BR iptables (8),
- .BR proc (5)
-+.BR ss (8)
-+.BR ip (8)
- .P
- .SH BUGS
- Occasionally strange information may appear if a socket changes
-@@ -438,12 +463,10 @@ as it is viewed. This is unlikely to occur.
- .P
- .SH AUTHORS
- The netstat user interface was written by Fred Baumgarten
--<dc6iq@insu1.etec.uni-karlsruhe.de> the man page basically
-+<dc6iq@insu1.etec.uni\-karlsruhe.de>, the man page basically
- by Matt Welsh <mdw@tc.cornell.edu>. It was updated by
--Alan Cox <Alan.Cox@linux.org> but could do with a bit more
--work. It was updated again by Tuan Hoang
--<tqhoang@bigfoot.com>.
--.br
--The man page and the command included in the net-tools
--package is totally rewritten by Bernd Eckenfels
--<ecki@linux.de>.
-+Alan Cox <Alan.Cox@linux.org>, updated again by Tuan Hoang
-+<tqhoang@bigfoot.com>. The man page and the command included
-+in the net\-tools package is totally rewritten by Bernd Eckenfels
-+<ecki@linux.de>. UDPLite options were added by Brian Micek
-+<bmicek@gmail.com>
-diff --git a/man/en_US/plipconfig.8 b/man/en_US/plipconfig.8
-index c6d2567..d42a0bc 100644
---- a/man/en_US/plipconfig.8
-+++ b/man/en_US/plipconfig.8
-@@ -1,10 +1,18 @@
--.TH PLIPCONFIG 8 "17 February 1995" "" ""
-+.TH PLIPCONFIG 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- plipconfig \- fine tune PLIP device parameters
- .SH SYNOPSIS
--.B "plipconfig interface"
-+.B plipconfig interface
-+.RB [ nibble
-+.IR NN ]
-+.RB [ trigger
-+.IR NN ]
- .br
--.B "plipconfig interface [nibble NN] [trigger NN] [unit NN]"
-+.B plipconfig
-+.RB [ \-V ]
-+.RB [ \-\-version ]
-+.RB [ \-h ]
-+.RB [ \-\-help ]
- .SH DESCRIPTION
- .B Plipconfig
- is used to (hopefully) improve PLIP performance by changing the default
-diff --git a/man/en_US/rarp.8 b/man/en_US/rarp.8
-index e462799..d9d31f9 100644
---- a/man/en_US/rarp.8
-+++ b/man/en_US/rarp.8
-@@ -1,20 +1,20 @@
--.TH RARP 8 "4 August 1997" "net-tools" "Linux Programmer's Manual"
-+.TH RARP 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- rarp \- manipulate the system RARP table
- .SH SYNOPSIS
--.B "rarp [-V] [--version] [-h] [--help]"
-+.B "rarp [\-V] [\-\-version] [\-h] [\-\-help]"
- .br
--.B "rarp -a"
-+.B "rarp \-a"
- .br
--.B "rarp [-v] -d hostname ..."
-+.B "rarp [\-v] \-d hostname ..."
- .br
--.B "rarp [-v] [-t type] -s hostname hw_addr"
-+.B "rarp [\-v] [\-t type] \-s hostname hw_addr"
- .SH NOTE
- .P
- This program is obsolete. From version 2.3, the Linux kernel
- no longer contains RARP support. For a replacement RARP daemon, see
- .I
--ftp://ftp.dementia.org/pub/net-tools
-+ftp://ftp.dementia.org/pub/net\-tools
- .SH DESCRIPTION
- .B Rarp
- manipulates the kernel's RARP table in various ways. The primary options
-@@ -61,8 +61,8 @@ Remove all RARP entries for the specified host.
- Create a RARP address mapping entry for host
- .B hostname
- with hardware address set to
--.B hw_addr
--. The format of the hardware address is dependent on the hardware
-+.BR hw_addr .
-+The format of the hardware address is dependent on the hardware
- class, but for most classes one can assume that the usual presentation
- can be used. For the Ethernet class, this is 6 bytes in hexadecimal,
- separated by colons.
-diff --git a/man/en_US/route.8 b/man/en_US/route.8
-index f59c074..3d97077 100644
---- a/man/en_US/route.8
-+++ b/man/en_US/route.8
-@@ -1,14 +1,18 @@
--.TH ROUTE 8 "2 January 2000" "net-tools" "Linux Programmer's Manual"
-+.TH ROUTE 8 "2013\-06\-15" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- route \- show / manipulate the IP routing table
- .SH SYNOPSIS
- .B route
--.RB [ \-CFvnee ]
-+.RB [ \-CFvnNee ]
-+.RB [ \-A
-+family
-+.RB | \-4 | \-6 ]
- .TP
- .B route
- .RB [ \-v ]
- .RB [ \-A
--family]
-+family
-+.RB | \-4 | \-6 ]
- .B add
- .RB [ \-net | \-host ]
- target
-@@ -34,7 +38,8 @@ If]
- .B route
- .RB [ \-v ]
- .RB [ \-A
--family]
-+family
-+.RB | \-4 | \-6 ]
- .B del
- .RB [ \-net | \-host ]
- target
-@@ -51,7 +56,7 @@ If]
- .RB [ \-V ]
- .RB [ \-\-version ]
- .RB [ \-h ]
--.RB [ \--help ]
-+.RB [ \-\-help ]
- .SH DESCRIPTION
- .B Route
- manipulates the kernel's IP routing tables. Its primary use is to set
-@@ -73,16 +78,25 @@ displays the current contents of the routing tables.
- .SH OPTIONS
- .TP
- .B \-A family
--use the specified address family (eg `inet'; use `route --help' for a full
--list).
-+use the specified address family (eg `inet'). Use
-+.B route \-\-help
-+for a full list. You can use
-+.B \-6
-+as an alias for
-+.B \-\-inet6
-+and
-+.B \-4
-+as an alias for
-+.B -A inet
-+.
-
- .TP
--.B -F
-+.B \-F
- operate on the kernel's FIB (Forwarding Information Base) routing
- table.
- This is the default.
- .TP
--.B -C
-+.B \-C
- operate on the kernel's routing cache.
-
- .TP
-@@ -96,7 +110,7 @@ nameserver has vanished.
- .TP
- .B \-e
- use
--.BR netstat (8)-format
-+.BR netstat (8)\-format
- for displaying the routing table.
- .B \-ee
- will generate a very long line with all parameters from the routing table.
-@@ -117,7 +131,7 @@ the
- .B target
- is a network.
- .TP
--.B -host
-+.B \-host
- the
- .B target
- is a host.
-@@ -138,12 +152,9 @@ compatibility hack.
- set the metric field in the routing table (used by routing daemons) to M.
- .TP
- .B mss M
--set the TCP Maximum Segment Size (MSS) for connections over this route
--to M bytes.
--The default is the device MTU minus headers, or a lower MTU when path mtu
--discovery occured. This setting can be used to force smaller TCP packets on the
--other end when path mtu discovery does not work (usually because of
--misconfigured firewalls that block ICMP Fragmentation Needed)
-+sets MTU (Maximum Transmission Unit) of the route to M bytes.
-+Note that the current implementation of the route command does not allow
-+the option to set the Maximum Segment Size (MSS).
- .TP
- .B window W
- set the TCP window size for connections over this route to W
-@@ -179,24 +190,27 @@ modifiers (metric - netmask - gw - dev) doesn't matter.
-
- .SH EXAMPLES
- .TP
--.B route add -net 127.0.0.0
--adds the normal loopback entry, using netmask 255.0.0.0 (class A net,
--determined from the destination address) and associated with the
--"lo" device (assuming this device was prviously set up correctly with
-+.B route add \-net 127.0.0.0 netmask 255.0.0.0 dev lo
-+adds the normal loopback entry, using netmask 255.0.0.0 and associated with the
-+"lo" device (assuming this device was previously set up correctly with
- .BR ifconfig (8)).
-
- .TP
--.B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
--adds a route to the network 192.56.76.x via
--"eth0". The Class C netmask modifier is not really necessary here because
--192.* is a Class C IP address. The word "dev" can be omitted here.
-+.B route add \-net 192.56.76.0 netmask 255.255.255.0 dev eth0
-+adds a route to the local network 192.56.76.x via
-+"eth0". The word "dev" can be omitted here.
-+
-+.TP
-+.B route del default
-+deletes the current default route, which is labeled "default" or 0.0.0.0
-+in the destination field of the current routing table.
-
- .TP
--.B route add default gw mango-gw
-+.B route add default gw mango\-gw
- adds a default route (which will be used if no other route matches).
--All packets using this route will be gatewayed through "mango-gw". The
-+All packets using this route will be gatewayed through "mango\-gw". The
- device which will actually be used for that route depends on how we
--can reach "mango-gw" - the static route to "mango-gw" will have to be
-+can reach "mango\-gw" - the static route to "mango\-gw" will have to be
- set up before.
-
- .TP
-@@ -205,18 +219,18 @@ Adds the route to the "ipx4" host via the SLIP interface (assuming that
- "ipx4" is the SLIP host).
-
- .TP
--.B route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
-+.B route add \-net 192.57.66.0 netmask 255.255.255.0 gw ipx4
- This command adds the net "192.57.66.x" to be gatewayed through the former
- route to the SLIP interface.
-
- .TP
--.B route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
-+.B route add \-net 224.0.0.0 netmask 240.0.0.0 dev eth0
- This is an obscure one documented so people know how to do it. This sets
- all of the class D (multicast) IP routes to go via "eth0". This is the
- correct normal configuration line with a multicasting kernel.
-
- .TP
--.B route add -net 10.0.0.0 netmask 255.0.0.0 reject
-+.B route add \-net 10.0.0.0 netmask 255.0.0.0 reject
- This installs a rejecting route for the private network "10.x.x.x."
-
- .LP
-@@ -282,14 +296,14 @@ recent kernels, but may be needed by routing daemons.
- Number of references to this route. (Not used in the Linux kernel.)
- .TP
- .B Use
--Count of lookups for the route. Depending on the use of -F and -C this will
--be either route cache misses (-F) or hits (-C).
-+Count of lookups for the route. Depending on the use of \-F and \-C this will
-+be either route cache misses (\-F) or hits (\-C).
- .TP
- .B Iface
- Interface to which packets for this route will be sent.
- .TP
- .B MSS
--Default maximum segement size for TCP connections over this route.
-+Default maximum segment size for TCP connections over this route.
- .TP
- .B Window
- Default window size for TCP connections over this route.
-@@ -323,4 +337,4 @@ for Linux was originally written by Fred N. van Kempen,
- Linus Torvalds for pl15. Alan Cox added the mss and window options for
- Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels.
- .SH AUTHOR
--Currently maintained by Phil Blundell <Philip.Blundell@pobox.com>.
-+Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>.
-diff --git a/man/en_US/slattach.8 b/man/en_US/slattach.8
-index 0c4c863..0e2cfcc 100644
---- a/man/en_US/slattach.8
-+++ b/man/en_US/slattach.8
-@@ -1,8 +1,8 @@
--.TH SLATTACH 8 "12 Feb 1994" "" ""
-+.TH SLATTACH 8 "2011\-12\-31" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- slattach \- attach a network interface to a serial line
- .SH SYNOPSIS
--.B "slattach [-dehlLmnqv] [-c command] [-p proto] [-s speed] [tty]"
-+.B "slattach [\-dehlLmnqv] [\-c command] [\-p proto] [\-s speed] [tty]"
- .br
- .SH DESCRIPTION
- .B Slattach
-@@ -11,47 +11,53 @@ is a tiny little program that can be used to put a normal terminal
- you to use it for point-to-point links to other computers.
- .SH OPTIONS
- .TP
--.B "[-c command]"
-+.B tty
-+Path to a serial device like
-+.IR /dev/ttyS* ", " /dev/cua* " or " /dev/ptmx
-+to spawn a new pseudo tty.
-+.TP
-+.B "[\-c command]"
- Execute
- .B command
- when the line is hung up. This can be used to run scripts or re-establish
- connections when a link goes down.
- .TP
--.B "[-d]"
-+.B "[\-d]"
- Enable debugging output. Useful when determining why a given
- setup doesn't work.
- .TP
--.B "[-h]"
-+.B "[\-h]"
- Exit when the carrier is lost. This works on both /dev/tty and /dev/cua
- devices by directly monitoring the carrier status every 15 seconds.
--.B "[-v]"
-+.TP
-+.B "[\-v]"
- Enable verbose output. Useful in shell scripts.
- .TP
--.B "[-q]"
-+.B "[\-q]"
- Operate in quiet mode - no messages at all.
- .TP
--.B "[-l]"
-+.B "[\-l]"
- Create an UUCP-style lockfile for the device in /var/lock.
- .TP
--.B "[-n]"
-+.B "[\-n]"
- Equivalent to the "mesg n" command.
- .TP
--.B "[-m]"
-+.B "[\-m]"
- Do \fBnot\fP initialize the line into 8 bits raw mode.
- .TP
--.B "[-e]"
-+.B "[\-e]"
- Exit right after initializing device, instead of waiting for the
--line to hangup.
-+line to hang up.
- .TP
--.B "[-L]"
-+.B "[\-L]"
- Enable 3 wire operation. The terminal is moved into CLOCAL mode,
- carrier watching is disabled.
- .TP
--.B "[-p proto]"
-+.B "[\-p proto]"
- Set a specific kind of protocol to use on the line. The default
- is set to
--.B "cslip"
--, i.e. compressed SLIP. Other possible values are
-+.BR "cslip" ,
-+i.e. compressed SLIP. Other possible values are
- .B "slip"
- (normal SLIP),
- .B "adaptive"
-@@ -70,14 +76,14 @@ to be active on the line. For kiss connections the
- .B axattach
- program should be used.
- .TP
--.B "[-s speed]"
-+.B "[\-s speed]"
- Set a specific line speed, other than the default.
- .PP
- If no arguments are given, the current terminal line (usually: the
- login device) is used. Otherwise, an attempt is made to claim the
- indicated terminal port, lock it, and open it.
- .SH FILES
--.I /dev/cua* /var/lock/LCK.*
-+.I /dev/cua* /var/lock/LCK.* /dev/ttyS* /dev/ptmx
- .SH BUGS
- None known.
- .SH SEE ALSO
-diff --git a/man/fr_FR/arp.8 b/man/fr_FR/arp.8
-index df37e8b..a669469 100644
---- a/man/fr_FR/arp.8
-+++ b/man/fr_FR/arp.8
-@@ -1,32 +1,32 @@
--.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual"
-+.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Administrator's Manual"
- .SH NOM
--arp \- manipule la table ARP du système
-+arp \- manipule la table ARP du système
- .SH SYNOPSIS
- .B arp
- .RB [ \-vn ]
- .RB [ "\-H type" ]
- .RB [ "-i if" ]
- .B -a
--.RB [ nom_hôte ]
-+.RB [ nom_hôte ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-i if" ]
--.B "\-d nom_hôte"
-+.B "\-d nom_hôte"
- .RB [ pub ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-H type" ]
- .RB [ "\-i if" ]
--.B -s nom_hôte hw_addr
-+.B -s nom_hôte hw_addr
- .RB [ temp ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-H type" ]
- .RB [ "\-i if" ]
--.B -s nom_hôte hw_addr
-+.B -s nom_hôte hw_addr
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -34,7 +34,7 @@ arp \- manipule la table ARP du syst
- .RB [ \-v ]
- .RB [ "\-H type" ]
- .RB [ "\-i if" ]
--.B -Ds nom_hôte ifa
-+.B -Ds nom_hôte ifa
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -46,33 +46,33 @@ arp \- manipule la table ARP du syst
-
- .SH DESCRIPTION
- .B Arp
--manipule la table ARP du noyau de différentes façons. Les options principales
--permettent d'effacer une correspondance d'adresses et d'en définir
-+manipule la table ARP du noyau de différentes façons. Les options principales
-+permettent d'effacer une correspondance d'adresses et d'en définir
- une manuellement.
--Pour les besoins de débogage, le programme
-+Pour les besoins de débogage, le programme
- .B arp
- permet aussi d'effectuer un dump complet de la table ARP.
- .SH OPTIONS
- .TP
- .B "\-v, \-\-verbose"
--Dit à l'utilisateur ce qui se passe en étant verbeux.
-+Dit à l'utilisateur ce qui se passe en étant verbeux.
- .TP
- .B "\-n, \-\-numeric"
--Affiche les adresses numériques au lieu d'essayer de déterminer les nom
--d'hôtes symboliques.
-+Affiche les adresses numériques au lieu d'essayer de déterminer les nom
-+d'hôtes symboliques.
- .TP
- .B "\-H type, \-\-hw-type type"
--En positionnant ou lisant les entrées ARP, ce paramètre optionnel indique
--à
-+En positionnant ou lisant les entrées ARP, ce paramètre optionnel indique
-+à
- .B arp
--les classes d'entrées qu'il doit contrôler. La valeur par défaut de
--ce paramètre est
-+les classes d'entrées qu'il doit contrôler. La valeur par défaut de
-+ce paramètre est
- .B ether
--(i.e. code de matériel
-+(i.e. code de matériel
- .B 0x01
- pour
- .B "IEEE 802.3 10Mbps Ethernet".
--D'autres valeurs doivent correspondre à des technologies réseaux telles que
-+D'autres valeurs doivent correspondre à des technologies réseaux telles que
- .RB "ARCnet (" arcnet ")"
- ,
- .RB "PROnet (" pronet ")"
-@@ -81,89 +81,89 @@ D'autres valeurs doivent correspondre
- and
- .RB "NET/ROM (" netrom ")."
- .TP
--.B "\-a [nom_d_hôte], \-\-display [nom_d_hôte]"
--Affiche les entrées concernant l'hôte spécifié. Si le paramètre
--.B nom_d_hôte
--n'est pas utilisé,
-+.B "\-a [nom_d_hôte], \-\-display [nom_d_hôte]"
-+Affiche les entrées concernant l'hôte spécifié. Si le paramètre
-+.B nom_d_hôte
-+n'est pas utilisé,
- .B toutes
--les entrées seront affichées.
-+les entrées seront affichées.
- .TP
--.B "\-d nom_d_hôte, \-\-delete nom_d_hôte"
--Enlève une entrée pour l'hôte spécifié. Ceci peut être
--utilisé si l'hôte concerné ne fonctionne plus, par exemple.
-+.B "\-d nom_d_hôte, \-\-delete nom_d_hôte"
-+Enlève une entrée pour l'hôte spécifié. Ceci peut être
-+utilisé si l'hôte concerné ne fonctionne plus, par exemple.
- .TP
- .B "\-D, \-\-use-device"
--Utilise l'adresse matérielle de l'interface
-+Utilise l'adresse matérielle de l'interface
- .BR ifa
- .
- .TP
- .B "\-i If, \-\-device If"
--Sélectionne une interface. Lors du dump du cache ARP, seules les entrées
--correspondant à l'interface spécifiée seront affichées. Lorsque l'on définit
--une entrée permanente ou une entrée
-+Sélectionne une interface. Lors du dump du cache ARP, seules les entrées
-+correspondant à l'interface spécifiée seront affichées. Lorsque l'on définit
-+une entrée permanente ou une entrée
- .B temp
--, cette interface lui sera associée; si cette option n'est pas utilisée,
--le noyau fera des tentatives de résolution selon la table de routage. Pour
--les entrées
-+, cette interface lui sera associée; si cette option n'est pas utilisée,
-+le noyau fera des tentatives de résolution selon la table de routage. Pour
-+les entrées
- .B pub
--l'interface spécifiée est celle pour laquelle les requêtes ARP auront trouvé
--une réponse.
-+l'interface spécifiée est celle pour laquelle les requêtes ARP auront trouvé
-+une réponse.
- .br
- .B NOTE:
--Ceci est différent de l'interface vers laquelle les datagrammes IP seront routés.
-+Ceci est différent de l'interface vers laquelle les datagrammes IP seront routés.
- .TP
--.B "\-s nom_d_hôte hw_addr, \-\-set hostname hw_addr"
--Crée manuellement une correspondance d'adresses ARP pour l'hôte
--.B nom_d_hôte
--avec l'adresse matérielle positionnée à
-+.B "\-s nom_d_hôte hw_addr, \-\-set hostname hw_addr"
-+Crée manuellement une correspondance d'adresses ARP pour l'hôte
-+.B nom_d_hôte
-+avec l'adresse matérielle positionnée à
- .B hw_addr.
--Le format de l'adresse matérielle est dépendant de la classe du matériel,
--mais pour la plupart on peut considérer que la présentation classique
--peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
--séparés par des double-points. Pour ajouter des entrées proxy-arp
-+Le format de l'adresse matérielle est dépendant de la classe du matériel,
-+mais pour la plupart on peut considérer que la présentation classique
-+peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
-+séparés par des double-points. Pour ajouter des entrées proxy-arp
- (Ce sont celles avec l'indicateur
- .BR pub lish
--positionné)
--un masque réseau (
-+positionné)
-+un masque réseau (
- .B netmask
--) peut être spécifié au proxy-arp pour le
--sous-réseau entier. Ceci n'est pas très recommandé, mais est supporté par
-+) peut être spécifié au proxy-arp pour le
-+sous-réseau entier. Ceci n'est pas très recommandé, mais est supporté par
- les anciens noyaux, car c'est utile dans certains cas. Si l'indicateur
- .B temp
--n'est pas fourni, les entrées ARP seront permanentes.
-+n'est pas fourni, les entrées ARP seront permanentes.
- .br
- .B NOTE:
--A partir du noyau 2.2.0 il n'est plus possible de définir des entrées ARP
--pour un sous réseau entier.
-+A partir du noyau 2.2.0 il n'est plus possible de définir des entrées ARP
-+pour un sous réseau entier.
- .TP
- .B "\-f nom_de_fichier, \-\-file nom_de_fichier"
--Similaire à l'option
-+Similaire à l'option
- .B \-s
- , mais cette fois les informations d'adresses sont prises dans le fichier
--.B nom_de_fichier
--. Ceci peut être utilisé si les entrées ARP à configurer sont
--nombreuses. Le nom du fichier de données est très souvent nommé
-+.BR nom_de_fichier .
-+Ceci peut être utilisé si les entrées ARP à configurer sont
-+nombreuses. Le nom du fichier de données est très souvent nommé
- .B /etc/ethers
- , mais ce n'est pas officiel.
- .sp 1
- Le format du fichier est simple; Il contient
--seulement des lignes de texte ASCII avec sur chaque ligne un nom d'hôte et
--une adresse matérielle, séparés par des espaces. Les indicateurs
-+seulement des lignes de texte ASCII avec sur chaque ligne un nom d'hôte et
-+une adresse matérielle, séparés par des espaces. Les indicateurs
- .BR "pub" , " temp" " et" " netmask"
--peuvent également être utilisés.
-+peuvent également être utilisés.
- .LP
--A tous les endroits où un
--.B nom d'hôte
-+A tous les endroits où un
-+.B nom d'hôte
- est attendu, on peut aussi entrer une
- .B "addresse IP"
--en notation décimale pointée.
-+en notation décimale pointée.
- .LP
--Chaque entrée complète se trouvant dans le cache ARP est marquée de
-+Chaque entrée complète se trouvant dans le cache ARP est marquée de
- l'indicateur
--.B C
--. Les entrées permanentes sont marquées de l'indicateur
-+.BR C .
-+Les entrées permanentes sont marquées de l'indicateur
- .B M
--et les entrées 'pub' ont l'indicateur
-+et les entrées 'pub' ont l'indicateur
- .B P
- .
- .SH FICHIERS
-@@ -177,8 +177,8 @@ et les entr
- .SH VOIR AUSSI
- rarp(8), route(8), ifconfig(8), netstat(8)
- .SH AUTEUR
--Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> avec les améliorations
--apportées par le mainteneur des net-tools Bernd Eckenfels
-+Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> avec les améliorations
-+apportées par le mainteneur des net-tools Bernd Eckenfels
- <net-tools@lina.inka.de>.
- .SH TRADUCTION
- Jean Michel VANSTEENE (vanstee@worldnet.fr)
-diff --git a/man/fr_FR/ethers.5 b/man/fr_FR/ethers.5
-index 5e70929..030fdf6 100644
---- a/man/fr_FR/ethers.5
-+++ b/man/fr_FR/ethers.5
-@@ -5,7 +5,7 @@
- .\"
- .TH ETHERS 5 "26 Avril 1996" "" "Formats de fichiers"
- .SH NOM \"{{{roff}}}\"{{{
--ethers \- Base de données adresses Ethernet - adresses IP
-+ethers \- Base de données adresses Ethernet - adresses IP
- .\"}}}
- .SH DESCRIPTION \"{{{
- \fB/etc/ethers\fP contient des adresses Ethernet sur 48 bits et leur
-@@ -15,14 +15,14 @@ adresse IP correspondante, une ligne par adresses IP:
- \fIAdresse-Ethernet\fP \fIAdresse-IP\fP
- .RE
- .sp
--Les deux items sont séparés par un ou plusieurs espaces et/ou tabulations.
--Un \fB#\fP en début de ligne est un commentaire pour tout le reste de la ligne.
--L'\fIadresse-Ethernet\fP est écrite sous la forme
-+Les deux items sont séparés par un ou plusieurs espaces et/ou tabulations.
-+Un \fB#\fP en début de ligne est un commentaire pour tout le reste de la ligne.
-+L'\fIadresse-Ethernet\fP est écrite sous la forme
- .IR x : x : x : x : x : x ,
--où \fIx\fP est une valeur héxadecimale comprise entre \fB0\fP et \fBff\fP
--représentant un octet de l'adresse, dans l'ordre du réseau (big-endian).
--L'\fIAdresse-IP\fP peut être soit un nom d'hôte résolu par DNS ou une adresse
--en notation décimale pointée.
-+où \fIx\fP est une valeur héxadecimale comprise entre \fB0\fP et \fBff\fP
-+représentant un octet de l'adresse, dans l'ordre du réseau (big-endian).
-+L'\fIAdresse-IP\fP peut être soit un nom d'hôte résolu par DNS ou une adresse
-+en notation décimale pointée.
- .\"}}}
- .SH EXEMPLES \"{{{
- 08:00:20:00:61:CA pal
-diff --git a/man/fr_FR/hostname.1 b/man/fr_FR/hostname.1
-index c4cd412..3adaf4b 100644
---- a/man/fr_FR/hostname.1
-+++ b/man/fr_FR/hostname.1
-@@ -1,16 +1,16 @@
- .TH HOSTNAME 1 "15 Mars 1999" "net-tools" "Linux Programmer's Manual"
- .SH NOM
--hostname \- affiche ou définit le nom d'hôte du système
-+hostname \- affiche ou définit le nom d'hôte du système
- .br
--domainname \- affiche le nom de domaine NIS/YP du système
-+domainname \- affiche le nom de domaine NIS/YP du système
- .br
--dnsdomainname \- affiche le nom de domaine du système
-+dnsdomainname \- affiche le nom de domaine du système
- .br
--nisdomainname \- affiche ou définit le nom de domaine NIS/YP du système
-+nisdomainname \- affiche ou définit le nom de domaine NIS/YP du système
- .br
--ypdomainname \- affiche ou définit le nom de domaine NIS/YP du système
-+ypdomainname \- affiche ou définit le nom de domaine NIS/YP du système
- .br
--nodename \- affiche ou définit le nom de domaine DECnet du système
-+nodename \- affiche ou définit le nom de domaine DECnet du système
-
- .SH SYNOPSIS
- .B hostname
-@@ -73,45 +73,45 @@ nodename \- affiche ou d
-
- .SH DESCRIPTION
- .B Hostname
--est le programme utilisé soit pour définir le nom d'hôte, soit
--pour visualiser le nom d'hôte ou de domaine du système. Ce nom est
--utilisé par différents programmes réseaux pour identifier la machine. Le
--nom de domaine est également utilisé par les NIS/YP.
-+est le programme utilisé soit pour définir le nom d'hôte, soit
-+pour visualiser le nom d'hôte ou de domaine du système. Ce nom est
-+utilisé par différents programmes réseaux pour identifier la machine. Le
-+nom de domaine est également utilisé par les NIS/YP.
-
- .SS "OBTENTION DU NOM"
--Appelé sans argument, le programme affiche les noms courants:
-+Appelé sans argument, le programme affiche les noms courants:
-
- .LP
- .B hostname
--fournit le nom du système tel qu'il est retourné par la fonction
--.BR getdomainname (2)
--. Ceci est connu comme nom de domaine YP/NIS du système.
-+fournit le nom du système tel qu'il est retourné par la fonction
-+.BR getdomainname (2).
-+Ceci est connu comme nom de domaine YP/NIS du système.
-
-
- .LP
- .B nodename
--fournit le nom de noeud DECnet du système tel qu'il est retourné par la
-+fournit le nom de noeud DECnet du système tel qu'il est retourné par la
- fonction
- .BR getnodename (2)
- .
-
- .LP
- .B dnsdomainname
--fournit la partie domaine du nom complètement qualifié - FQDN (Fully
--Qualified Domain Name). Le nom FQDN du système est retourné par la commande
-+fournit la partie domaine du nom complètement qualifié - FQDN (Fully
-+Qualified Domain Name). Le nom FQDN du système est retourné par la commande
- .BR "hostname \-\-fqdn" .
-
- .SS "SET NAME"
--Appelé avec un argument ou avec l'option
-+Appelé avec un argument ou avec l'option
- .B \-\-file
--, la commande définit le nom d'hôte, le nom de domaine NIS/YP ou
-+, la commande définit le nom d'hôte, le nom de domaine NIS/YP ou
- le nom de noeud.
-
- .LP
- Notez que seul le super-utilisateur peut changer les noms.
-
- .LP
--Il n'est pas possible de définir le nom FQDN ou le nom de domaine DNS avec
-+Il n'est pas possible de définir le nom FQDN ou le nom de domaine DNS avec
- la commande
- .B dnsdomainname
- (voir
-@@ -119,8 +119,8 @@ la commande
- ci-dessous).
-
- .LP
--Le nom d'hôte est générallement définit une seule fois, au
--démarrage du système, par le script de configuration
-+Le nom d'hôte est générallement définit une seule fois, au
-+démarrage du système, par le script de configuration
- .I /etc/rc.d/rc.inet1.
- ou
- .I /etc/init.d/boot
-@@ -132,45 +132,45 @@ Vous pouvez modifier le FQDN (tel que fourni par la commande
- .BR "hostname \-\-fqdn" )
- ou le nom de domaine DNS (tel que fourni par la commande
- .BR "dnsdomainname" )
--avec cette commande. Le FQDN du système est le nom que le resolveur (
-+avec cette commande. Le FQDN du système est le nom que le resolveur (
- .BR resolver (3)
-- ) retourne comme nom d'hôte.
-+ ) retourne comme nom d'hôte.
-
- .LP
- Techniquement: Le FQDN est le nom fourni par
- .BR gethostbyname (2)
--à partir du nom d'hôte retourné par
-+à partir du nom d'hôte retourné par
- .BR gethostname (2).
- Le nom de domaine DNS est la partie suivant le premier point.
- .LP
--La façon dont vous pouvez le changer dépend de la configuration
-+La façon dont vous pouvez le changer dépend de la configuration
- (habituellement dans
--.IR /etc/host.conf )
--. Si le fichier 'hosts' est analysé avant d'interroger le DNS ou
-+.IR /etc/host.conf ).
-+Si le fichier 'hosts' est analysé avant d'interroger le DNS ou
- NIS) vous pouvez le changer dans le fichier
- .IR /etc/hosts .
-
- .SH OPTIONS
- .TP
- .I "\-a, \-\-alias"
--Affiche l'alias de l'hôte (si utilisé).
-+Affiche l'alias de l'hôte (si utilisé).
- .TP
- .I "\-d, \-\-domain"
- Affiche le nom du domaine DNS. Ne pas utiliser la commande
- .B domainname
--pour obtenir le nom de domaine DNS car vous obtiendrez en réalité le
--nom de domaine NIS. Utilisez plutôt la commande
-+pour obtenir le nom de domaine DNS car vous obtiendrez en réalité le
-+nom de domaine NIS. Utilisez plutôt la commande
- .B dnsdomainname
- .
- .TP
- .I "\-F, \-\-file nom_fichier"
--Lit le nom d'hôte à partir du fichier spécifié. Les commentaires (lignes commençant
--par un `#') sont ignorés.
-+Lit le nom d'hôte à partir du fichier spécifié. Les commentaires (lignes commençant
-+par un `#') sont ignorés.
- .TP
- .I "\-f, \-\-fqdn, \-\-long"
--Affiche le nom pleinement qualifié - FQDN (Fully Qualified Domain Name). un
--FQDN consiste en un nom d'hôte court et un nom de domaine. A moins que vous
--utilisiez 'bind' ou les NIS pour la recherche d'hôtes, vous pouvez changer
-+Affiche le nom pleinement qualifié - FQDN (Fully Qualified Domain Name). un
-+FQDN consiste en un nom d'hôte court et un nom de domaine. A moins que vous
-+utilisiez 'bind' ou les NIS pour la recherche d'hôtes, vous pouvez changer
- le nom FQDN et le nom de domaine (qui fait partie du FQDN) dans le fichier
- \fI/etc/hosts\fR.
- .TP
-@@ -178,15 +178,15 @@ le nom FQDN et le nom de domaine (qui fait partie du FQDN) dans le fichier
- Affiche un message d'aide et se termine.
- .TP
- .I "\-i, \-\-ip-address"
--Affiche la (les) adresse(s) IP de l'hôte.
-+Affiche la (les) adresse(s) IP de l'hôte.
- .TP
- .I "\-n, \-\-node"
--Affiche le nom de noeud DECnet. Si un paramètre est fourni (ou
-+Affiche le nom de noeud DECnet. Si un paramètre est fourni (ou
- .B \-\-file nom_fichier
--) le super-utilisateur peut également définir un nouveau nom de neud.
-+) le super-utilisateur peut également définir un nouveau nom de neud.
- .TP
- .I "\-s, \-\-short"
--Affiche le nom d'hôte en format court. Il s'agit du nom d'hôte coupé au
-+Affiche le nom d'hôte en format court. Il s'agit du nom d'hôte coupé au
- premier point.
- .TP
- .I "\-V, \-\-version"
-@@ -197,9 +197,9 @@ termine correctement.
- Mode verbeux.
- .TP
- .I "\-y, \-\-yp, \-\-nis"
--Affiche le nom de domaine NIS. Si un paramètre est fourni (ou
-+Affiche le nom de domaine NIS. Si un paramètre est fourni (ou
- .B \-\-file nom_fichier
--) le super-utilisateur peut également définir un nouveau nom de domaine NIS.
-+) le super-utilisateur peut également définir un nouveau nom de domaine NIS.
- .SH FICHIERS
- .B /etc/hosts
- .SH AUTEURS
-diff --git a/man/fr_FR/ifconfig.8 b/man/fr_FR/ifconfig.8
-index 0c29eb0..821f164 100644
---- a/man/fr_FR/ifconfig.8
-+++ b/man/fr_FR/ifconfig.8
-@@ -1,160 +1,178 @@
--.TH IFCONFIG 8 "4 August 1997" "net-tools" "Linux Programmer's Manual"
-+.\"
-+.\" Traduction : Jean Michel VANSTEENE <vanstee@worldnet.fr>
-+.\" zz/08/1997
-+.\" Màj zz/08/2004 net-tools-1.60 Guillaume Audirac
-+.\" Màj 17/08/2006 net-tools-1.65 Alain Portal
-+.\"
-+.TH IFCONFIG 8 "30 juin 2005" "net-tools" "Manuel de l'administrateur Linux"
- .SH NOM
--ifconfig \- configure une interface réseau
-+ifconfig \- Configurer une interface réseau.
- .SH SYNOPSIS
--.B "ifconfig [interface]"
-+.B "ifconfig [\-v] [\-a] [\-s] [interface]"
- .br
--.B "ifconfig interface [aftype] options | adresse ..."
-+.B "ifconfig [\-v] interface [aftype] options | adresse ..."
- .SH DESCRIPTION
--.B Ifconfig
--est utilisé pour configurer (et maintenir ensuite) les interfaces
--réseau résidentes dans le noyau. Il est utilisé lors du boot pour
--configurer la plupart d'entre-elles et ainsi rendre le système
--opérationnel. Après, ce n'est quasiment plus utilisé que pour
--le débogage ou pour des réglages si nécessaire.
-+.B ifconfig
-+permet de configurer les interfaces réseau présentes dans le noyau.
-+On peut les configurer lors du démarrage quand c'est nécessaire. Ensuite,
-+on l'utilise généralement pour le débogage ou pour d'éventuels réglages.
- .LP
--Si aucun argument n'est donné,
-+Si aucun argument n'est donné,
- .B ifconfig
--affiche simplement l'état des interfaces actuellement définies. Si
--seul le paramètre
-+affiche l'état des interfaces actives. Si seul le paramètre
- .B interface
--est donné, il affiche seulement l'état de l'interface correspondante;
--si seul le paramètre
--.B -a
--est fourni, il affiche l'état de toutes les interfaces, même celles qui
--ne sont pas actives.
--Autrement, il considère qu'il faut positionner de nouvelles valeurs.
--
--.SH Familles d'adresses
--Si le premier argument après le nom de l'interface est reconnu comme
--étant un nom de famille d'adresses supporté, cette famille d'adresses
--est utilisée pour décoder et afficher toutes les adresses
--protocolaires. Les familles d'adresses actuellement supportées comprennent
-+est donné, il affiche seulement l'état de l'interface correspondante\ ;
-+si seul le paramètre
-+.B \-a
-+est fourni, il affiche l'état de toutes les interfaces, même celles
-+qui sont inactives. Autrement, il permet de configurer une interface.
-+.SH Familles d'Adresses
-+Si le premier argument après le nom d'interface est reconnu comme
-+le nom d'une famille d'adresses prise en charge, alors cette famille
-+d'adresses est utilisée pour décoder et afficher toutes les adresses
-+du protocole. Les familles d'adresses actuellement prises en charge
-+comprennent
- .B inet
--(TCP/IP, default)
-+(TCP/IP, par défaut),
-+.B inet6
-+(IPv6),
- .B ax25
--(AMPR Packet Radio.)
-+(AMPR Packet Radio),
- .B ddp
--(Appletalk Phase 2) and
-+(Appletalk Phase 2),
- .B ipx
--(Novell IPX).
-+(Novell IPX) et
-+.B netrom
-+(AMPR Packet Radio).
- .SH OPTIONS
- .TP
-+.B \-a
-+Afficher toutes les interfaces actuellement disponibles, même celles
-+qui sont inactives.
-+.TP
-+.B \-s
-+Afficher un résumé (comme netstat \-i).
-+.TP
-+.B \-v
-+Mode volubile pour certains types d'erreurs.
-+.TP
- .B interface
--Le nom de l'interface réseau. C'est généralement un nom de pilote suivi
--d'un numéro d'ordre comme
-+Correspond au nom de l'interface de réseau. C'est généralement un nom de
-+pilote suivi d'un chiffre, comme
- .B eth0
--pour la première interface Ethernet.
-+pour la première interface Ethernet. Si votre noyau accepte les alias
-+d'interfaces, vous pouvez les spécifier avec
-+.B eth0:0
-+pour le premier alias de eth0. On peut les utiliser pour les affecter
-+à une seconde adresse. Pour supprimer un alias d'interface, utilisez
-+.BR "ifconfig eth0:0 down" .
-+Note\ : pour chaque groupe (un même noeud donné par une combinaison
-+adresse/masque de réseau), si vous supprimez le premier alias (le
-+principal), tous les alias sont supprimés.
- .TP
- .B up
--Cette option active l'interface. Elle est implicitement spécifiée
--si une nouvelle adresse est affectée à l'interface (voir plus loin).
-+Activer l'interface donnée. Cette option est implicite si une adresse est
-+affectée à l'interface.
- .TP
- .B down
--Cette option arrête le fonctionnement du pilote pour cette interface, et
--est utilisée lorsque les choses commencent à aller mal.
-+Désactiver le pilote pour l'interface donnée.
- .TP
- .B "[\-]arp"
--Valide ou invalide l'utilisation du protocole ARP sur cette interface. Si
--le signe moins (\-) est présent, l'option est invalidée.
-+Activer ou désactiver l'utilisation du protocole ARP sur une interface.
- .TP
- .B "[\-]promisc"
--Valide ou invalide le mode
--.B promiscuous
--. S'il est validé, tous les paquets circulant sur le réseau
--seront reçus sur cette interface.
-+Activer ou désactiver le mode
-+.BR promiscuous .
-+S'il est activé, tous les paquets circulant sur le réseau seront reçus
-+par l'interface.
- .TP
- .B "[\-]allmulti"
--Valide ou invalide le fonctionnement de l'interface en mode
--.B all-multicast
--. S'il est validé, tous les paquets multicast circulant sur le réseau
--seront reçus sur cette interface.
-+Activer ou désactiver le mode
-+.BR all-multicast .
-+S'il est activé, l'interface recevra tous les paquets de multidiffusion
-+circulant sur le réseau.
- .TP
- .B "metric N"
--Ce paramètre définit la métrique de l'interface. Il n'est pour
--l'instant pas implémenté, mais le sera prochainement.
-+Définir la métrique de l'interface.
- .TP
- .B "mtu N"
--Ce paramètre définit le MTU (Maximum Transfer Unit) d'une
--interface.
-+Définir l'unité de transfert maximum ou MTU («\ Maximum Transfer Unit\ »)
-+d'une interface.
- .TP
--.B "dstaddr adr"
--Définit l'adresse IP de "l'autre bout" dans le cas d'un lien
--point-à-point, comme PPP. Ce paramètre est obsolète; utilisez plutôt
--le paramètre
--.B pointopoint.
-+.B "dstaddr adresse"
-+Définir l'adresse IP distante dans le cas d'un lien point-à-point
-+(comme PPP). Cette option est obsolète\ ; utilisez à la place l'option
-+.BR pointopoint .
- .TP
--.B "netmask adr"
--Définit le masque de réseau IP pour cette interface. La valeur par
--défaut de cette valeur correspond au masque réseau usuel pour les
--classes A, B ou C (déduite de l'adresse IP), mais toute autre valeur peut
--être définie selon les besoins en sous-réseaux.
-+.B "netmask adresse"
-+Définir le masque de réseau IP pour cette interface. La valeur par
-+défaut correspond au masque de réseau usuel pour les classes A, B ou C
-+(déduite de l'adresse IP), mais une autre valeur peut être définie.
- .TP
--.B "add adr/lg_prefix"
--Ajoute une adresse IPv6 à une interface.
-+.B "add adresse/long_préfixe"
-+Ajouter une adresse IPv6 à une interface.
- .TP
--.B "del adr/lg_prefix"
--Supprime une adresse IPv6 d'une interface.
-+.B "del adresse/long_préfixe"
-+Supprimer une adresse IPv6 d'une interface.
- .TP
- .B "tunnel aa.bb.cc.dd"
--Crée un nouveau périphérique SIT (IPv6-dans-IPv4), en mode
--tunnel jusqu'à la destination.
-+Créer un nouveau périphérique SIT (IPv6-dans-IPv4), fonctionnant en mode
-+tunnel jusqu'à la destination donnée.
- .TP
--.B "irq adr"
--Définit la ligne d'interruption utilisée par ce
--périphérique. Certains périphériques ne supportent pas le
--changement dynamique de l'IRQ.
-+.B "irq adresse"
-+Définir la ligne d'interruption utilisée par un périphérique.
-+Certains périphériques ne sont pas capables de changer
-+dynamiquement d'IRQ.
- .TP
--.B "io_addr adr"
--Définit pour ce périphérique, l'adresse de début dans l'espace
--d'entrée-sortie I/O.
-+.B "io_addr adresse"
-+Définir l'adresse de début dans l'espace d'entrée-sortie pour un
-+périphérique.
- .TP
--.B "mem_start adr"
--Définit l'adresse de début de mémoire partagée pour ce périphérique. Seuls
--quelques périphériques ont besoin de ce paramètre.
-+.B "mem_start adresse"
-+Définir l'adresse de début de la mémoire partagée utilisée par un
-+périphérique. Peu de périphériques ont besoin de ce paramètre.
- .TP
- .B "media type"
--Définit le port physique ou le type de medium utilisé par ce périphérique.
--Tous les périphériques ne peuvent pas changer de configuration et les
--valeurs supportées varient de l'un à l'autre. Les valeur typiques sont
-+Définir le port physique ou le type de médium utilisé par le périphérique.
-+Tous les périphériques ne peuvent pas changer cette configuration et les
-+types acceptés varient de l'un à l'autre. Les valeurs habituelles du
-+.B type
-+sont
- .B 10base2
- (Ethernet fin),
- .B 10baseT
--(10Mbps Ethernet paire torsadée),
--.B AUI
--(transceiver externe) etc. Le type
-+(Ethernet 10Mbps en paire torsadée),
-+.B AUI
-+(émetteur-récepteur externe), etc. Le médium spécial de type
- .B auto
--permet d'indiquer au pilote de détecter automatiquement le medium
--utilisé. Une fois de plus, tous les périphériques ne supportent pas cette
--option.
--.TP
--.B "[-]broadcast [adr]"
--Si l'adresse est également donnée, définit l'adresse broadcast
--protocolaire pour cette interface. Autrement, il permet d'armer (ou désarmer)
--l'indicateur
-+permet d'indiquer au pilote de détecter automatiquement le médium utilisé.
-+Une fois de plus, tous les pilotes n'acceptent pas cette option.
-+.TP
-+.B "[\-]broadcast [adresse]"
-+Si l'adresse est donnée, elle définit l'adresse de diffusion du
-+protocole pour cette interface. Autrement, on arme
-+(ou désarme) l'indicateur
- .B IFF_BROADCAST
- de l'interface.
- .TP
--.B "[-]pointopoint [adr]"
--Ce mot clé valide le mode
--.B point-à-point
--d'une interface, signifiant qu'il existe un lien direct entre 2 machines,
--sans que personne d'autre ne puisse être à l'écoute.
-+.B "[\-]pointopoint [adresse]"
-+Valider le mode
-+.B point-à-point
-+d'une interface, signifiant qu'il existe un lien direct entre 2\ machines,
-+sans que personne d'autre ne puisse être à l'écoute.
- .br
--Si l'argument d'adresse est également donné, il définit l'adresse
--de l'autre machine, de la même manière que le paramètre obsolète
--.B dstaddr
--.
--Autrement il arme (ou désarme) l'indicateur
-+Si l'adresse est également donnée, cela définit l'adresse de
-+protocole de l'autre machine, de la même manière que l'option obsolète
-+.BR dstaddr .
-+Autrement, il arme (ou désarme) l'indicateur
- .B IFF_POINTOPOINT
- de l'interface.
- .TP
- .B hw classe adresse
--Définit l'adresse matérielle de l'interface, si le pilote du
--périphérique supporte cette opération. Le mot clé doit être
--suivi du nom de la classe matérielle et de l'adresse matérielle en
--caractères imprimables ASCII. Les classes matérielles actuellement
--supportées comprennent
-+Définir l'adresse matérielle de l'interface, si le pilote du périphérique
-+accepte cette opération. L'option doit être suivie du nom de la classe
-+matérielle et de l'adresse matérielle en caractères ASCII affichables.
-+Les classes matérielles actuellement prises en charge comprennent
- .B ether
- (Ethernet),
- .B ax25
-@@ -165,45 +183,82 @@ et
- (AMPR NET/ROM).
- .TP
- .B multicast
--Positionne l'indicateur multicast sur l'interface. Elle n'est
--généralement pas nécessaire puisque les pilotes positionnent
--l'option correcte eux même.
-+Positionner l'indicateur de multidiffusion sur l'interface. Ce n'est
-+généralement pas nécessaire puisque les pilotes positionnent correctement
-+l'option eux-mêmes.
- .TP
- .B adresse
--L'adresse IP de cette interface.
-+Correspond à l'adresse IP affectée à cette interface.
- .TP
--.B txqueuelen length
--Set the length of the transmit queue of the device. It is useful to set this
--to small values for slower devices with a high latency (modem links, ISDN)
--to prevent fast bulk transfers from disturbing interactive traffic like
--telnet too much.
-+.B txqueuelen longueur
-+Définir la longueur de la file d'attente de transmission du périphérique.
-+Il est utile de la fixer à des valeurs faibles pour les périphériques
-+lents avec un temps d'attente important (modems, ISDN), pour empêcher
-+d'être perturbé par de rapides transferts de masse issus des trafics
-+interactifs, comme
-+.BR telnet .
- .SH NOTES
--Depuis le noyau 2.2 il n'y a plus de statistiques d'interface explicite
--pour les interfaces en alias. Les statistiques affichées pour la véritable
--adresse sont partagées avec toutes les adresses alias du même périphérique.
--Si vous voulez des adresses par interface, vous devez ajouter des règles de
--comptabilité particulières pour l'adresse en utilisant la commande
--.BR ipchains(8)
--.
--
-+Depuis la version 2.2 du noyau, il n'y a plus de statistiques d'interface
-+explicites pour les alias d'interfaces. Les statistiques affichées pour la
-+véritable adresse sont partagées avec toutes les adresses d'alias du même
-+périphérique. Pour avoir des statistiques par adresse, il faut ajouter
-+des règles de comptabilité particulières pour l'adresse en utilisant
-+la commande
-+.BR ipchains (8)
-+ou
-+.BR iptables (8).
-+.LP
-+Depuis net-tools 1.61,
-+.B ifconfig
-+affiche les compteurs d'octets et ceux lisibles par un utilisateur en
-+unités IEC\ 60027-2. Ainsi, 1\ KiB vaut 2^10 octets. Notez que les nombres
-+sont tronqués à la première décimale (ce qui peut être une erreur importante
-+si vous considérez que 0,1\ PiB vaut 112.589.990.684.262\ octets\ :)
-+.LP
-+Des problèmes d'interruption avec les pilotes de périphériques Ethernet
-+apparaissent avec EAGAIN
-+(\fISIOCSIIFLAGS\ : Ressource temporairement indisponible\fR)
-+il s'agit sûrement d'un conflit d'interruptions. Voir
-+.I http://www.scyld.com/expert/irq-conflict.html
-+pour plus d'informations.
- .SH FICHIERS
--.I /proc/net/socket
-+.I /proc/net/socket
- .br
- .I /proc/net/dev
- .br
- .I /proc/net/if_inet6
--.SH BUGS
--Même si les adresses appletalk DDP et IPX peuvent être affichées,
--elles ne peuvent être modifiées avec cette commande.
-+.SH BOGUES
-+Même si les adresses appletalk DDP et IPX peuvent être affichées,
-+elles ne peuvent être modifiées avec cette commande.
- .SH VOIR AUSSI
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
--.SH AUTHORS
-+.BR route (8),
-+.BR netstat (8),
-+.BR arp (8),
-+.BR rarp (8),
-+.BR ipchains (8),
-+.BR iptables (8)
-+.br
-+http://physics.nist.gov/cuu/Units/binary.html \- Préfixes
-+pour les multiples binaires.
-+.SH AUTEURS
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- .br
- Alan Cox, <Alan.Cox@linux.org>
- .br
- Phil Blundell, <Philip.Blundell@pobox.com>
- .br
--Andi Kleen,
-+Andi Kleen,
-+.br
-+Bernd Eckenfels, <net-tools@lina.inka.de>
- .SH TRADUCTION
--Jean-Michel VANSTEENE (vanstee@worldnet.fr)
-+.PP
-+Ce document est une traduction réalisée par Jean Michel Vansteene
-+<vanstee\ AT\ worldnet\ DOT\ fr> en août\ 1997,
-+mise à jour par Guillaume Audirac en août 2004
-+et révisée le 17\ août\ 2006.
-+.PP
-+L'équipe de traduction a fait le maximum pour réaliser une adaptation
-+française de qualité. La version anglaise la plus à jour de ce document est
-+toujours consultable via la commande\ : «\ \fBLANG=C\ man\ 8\ ifconfig\fR\ ».
-+N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
-+erreur dans cette page de manuel.
-diff --git a/man/fr_FR/netstat.8 b/man/fr_FR/netstat.8
-index bf16bc6..fedbe4f 100644
---- a/man/fr_FR/netstat.8
-+++ b/man/fr_FR/netstat.8
-@@ -8,11 +8,11 @@
- .\" Modified: Tuan Hoang tuan@optimus.mitre.org
- .\"
- .\"
--.TH NETSTAT 8 "25 Fév 1999" "net-tools" "Linux Programmer's Manual"
-+.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Administrator's Manual"
-
- .SH NAME
--netstat \- Affiche les connexions réseau, les tables de routage, les
--statistiques des interfaces, les connexions masquées, les messages netlink,
-+netstat \- Affiche les connexions réseau, les tables de routage, les
-+statistiques des interfaces, les connexions masquées, les messages netlink,
- et les membres multicast.
-
- .SH SYNOPSIS
-@@ -68,34 +68,34 @@ et les membres multicast.
- .PP
- .SH DESCRIPTION
- .B Netstat
--affiche les informations du sous-système réseau de Linux
-+affiche les informations du sous-système réseau de Linux
-
- .SS "(no option)"
--Vous pouvez voir l'état des connexions réseau en listant les sockets
--ouvertes. C'est l'option par défaut : si vous ne spécifiez aucune famille
-+Vous pouvez voir l'état des connexions réseau en listant les sockets
-+ouvertes. C'est l'option par défaut : si vous ne spécifiez aucune famille
- d'adresses, les sockets actives de toutes les familles d'adresses seront
--affichées.
--Avec le paramètre
-+affichées.
-+Avec le paramètre
- .B -e
--vous obtenez quelques informations supplémentaires (userid). Avec le paramètre
-+vous obtenez quelques informations supplémentaires (userid). Avec le paramètre
- .B -v
--vous pouvez demander à netstat de signaler des familles d'adresses connues
--non supportées par le noyau. Le paramètre
-+vous pouvez demander à netstat de signaler des familles d'adresses connues
-+non supportées par le noyau. Le paramètre
- .B -o
--affiche des informations supplémentaires sur les timers réseau. En donnant
--le paramètre
-+affiche des informations supplémentaires sur les timers réseau. En donnant
-+le paramètre
- .B -p
--vous verrez le PID et le nom du processus à qui appartient la socket. Le paramètre
-+vous verrez le PID et le nom du processus à qui appartient la socket. Le paramètre
- .B -a
--affiche toutes les sockets, y compris les sockets d'écoute des serveurs. La famille
-+affiche toutes les sockets, y compris les sockets d'écoute des serveurs. La famille
- d'adresses
- .B inet
- affiche les sockets raw, udp et tcp.
-
- .SS "\-r, \-\-route"
--Avec le paramètre
-+Avec le paramètre
- .BR \-r ", " \-\-route
--vous pouvez visualiser les tables de routage dans le même format qu'avec la
-+vous pouvez visualiser les tables de routage dans le même format qu'avec la
- commande
- .B "route -e"
- .
-@@ -104,44 +104,44 @@ utilisera le format de la commande
- .BR route .
- Veuillez consulter
- .BR route (8)
--pour plus de détails.
-+pour plus de détails.
-
--.SS "\-i, \-\-interface \fIiface\fI"
-+.SS "\-i, \-\-interfaces \fIiface\fI"
- Si vous utilisez l'option
- .BR -i ", " --interfaces
- , une table de toutes (ou de l'interface
- .IR iface
--spécifiée) les interfaces réseau sera affichée. Le format de sortie est le
--même que celui de la commande
-+spécifiée) les interfaces réseau sera affichée. Le format de sortie est le
-+même que celui de la commande
- .B "ifconfig -e"
--, et est décrit dans
-+, et est décrit dans
- .BR ifconfig (8).
- .B "netstat -ei"
--affiche une table ou une seule entrée d'interface comme la commande
--.B ifconfig
--. Avec le paramètre
-+affiche une table ou une seule entrée d'interface comme la commande
-+.BR ifconfig .
-+Avec le paramètre
- .B -a
--, vous pouvez inclure les interfaces qui ne sont pas configurées (c.a.d qui
-+, vous pouvez inclure les interfaces qui ne sont pas configurées (c.a.d qui
- n'ont pas l'indicateur
- .BR U = UP
--armé).
-+armé).
-
- .SS "\-M, \-\-masquerade"
-
--Permet de voir les sessions ayant de l'IP-masquerade. Avec le paramètre
-+Permet de voir les sessions ayant de l'IP-masquerade. Avec le paramètre
- .B -e
--vous pouvez inclure quelques informations concernant les numéros de
--séquence et les deltas causés par des réécritures de données sur des
--sessions FTP (commande PORT). Le support de l'IP-Masquerade est utilisé
--pour cacher au monde extérieur des hôtes appartenant à un réseau (et ayant
--des adresses) non officiel, tel que décrit dans
--.BR ipfw (4), ipfwadm "(8) et " ipfw (8).
-+vous pouvez inclure quelques informations concernant les numéros de
-+séquence et les deltas causés par des réécritures de données sur des
-+sessions FTP (commande PORT). Le support de l'IP-Masquerade est utilisé
-+pour cacher au monde extérieur des hôtes appartenant à un réseau (et ayant
-+des adresses) non officiel, tel que décrit dans
-+.BR iptables (8).
-
- .SS "\-N, \-\-netlink"
-
--Les noyaux récents supportent une communication avec l'utilisateur appelée
--netlink. Vous pouvez obtenir des messages relatifs à la création, la
--suppression d'interfaces ou de routes à partir de
-+Les noyaux récents supportent une communication avec l'utilisateur appelée
-+netlink. Vous pouvez obtenir des messages relatifs à la création, la
-+suppression d'interfaces ou de routes à partir de
- .I /dev/route
- (36,0).
-
-@@ -149,23 +149,23 @@ suppression d'interfaces ou de routes
- .SH OPTIONS
- .SS "\-v, \-\-verbose"
- active le mode verbeux. Affiche quelques informations utiles concernant les
--familles d'adresses non configurées.
-+familles d'adresses non configurées.
-
- .SS "\-n, \-\-numeric"
--affiche les adresses en format numérique au lieu d'essayer de déterminer le
--nom symbolique d'hôte, de port ou d'utilisateur.
-+affiche les adresses en format numérique au lieu d'essayer de déterminer le
-+nom symbolique d'hôte, de port ou d'utilisateur.
-
- .SS "\-p, \-\-programs"
--affiche le nom et le PID des processus propriétaires de chaque socket
--décrite. Vous devez être le propriétaire d'un processus pour visualiser les
--sockets qui lui appartiennent ou être l'utilisateur
-+affiche le nom et le PID des processus propriétaires de chaque socket
-+décrite. Vous devez être le propriétaire d'un processus pour visualiser les
-+sockets qui lui appartiennent ou être l'utilisateur
- .B root
- pour disposer de toutes les informations.
-
- .SS "\-A, \-\-af \fIfamille\fI"
--utilise une méthode différente pour affecter les familles d'adresses.
-+utilise une méthode différente pour affecter les familles d'adresses.
- .I famille
--est une liste de familles d'adresses séparées par des (',') telles que
-+est une liste de familles d'adresses séparées par des (',') telles que
- .BR inet ,
- .BR unix ,
- .BR ipx ,
-@@ -173,7 +173,7 @@ est une liste de familles d'adresses s
- .B netrom
- et
- .BR ddp .
--L'utilisation des options longues suivantes a le même effet
-+L'utilisation des options longues suivantes a le même effet
- .BR \-\-inet ,
- .BR \-\-unix ,
- .BR \-\-ipx ,
-@@ -183,9 +183,9 @@ et
- .BR \-\-ddp.
-
- .SS "\-c, \-\-continous"
--Demandera à
-+Demandera à
- .B netstat
--d'afficher la table sélectionnée chaque seconde jusqu'à ce que vous
-+d'afficher la table sélectionnée chaque seconde jusqu'à ce que vous
- l'interrompiez.
-
- .PP
-@@ -195,102 +195,102 @@ l'interrompiez.
- .SS Connexions Internet actives \fR(TCP, UDP, RAW)\fR
-
- .SS "Proto"
--Le protocole (TCP, UDP, RAW) utilisé par la socket.
-+Le protocole (TCP, UDP, RAW) utilisé par la socket.
-
- .SS "Recv-Q"
--Le nombre d'octets non encore lus par le programme utilisateur connecté
--à cette socket.
-+Le nombre d'octets non encore lus par le programme utilisateur connecté
-+à cette socket.
-
- .SS "Send-Q"
--Le nombre d'octets non encore acquittés par l'hôte distant.
-+Le nombre d'octets non encore acquittés par l'hôte distant.
-
- .SS "Local Address (Adresse locale)"
--L'adresse locale (nom d'hôte local) et numéro de port de la
-+L'adresse locale (nom d'hôte local) et numéro de port de la
- socket. Sauf si l'option
- .B -n
--est donnée, l'adresse de la prise est traduite en nom d'hôte,
--et le numéro de port est traduit en nom de service correspondant.
-+est donnée, l'adresse de la prise est traduite en nom d'hôte,
-+et le numéro de port est traduit en nom de service correspondant.
-
- .SS "Foreign Address (Adresse distante)"
--L'adresse distante (nom d'hôte distant) et le numéro de port de
--la prise. Comme pour l'adresse locale et le numéro de port, l'option
-+L'adresse distante (nom d'hôte distant) et le numéro de port de
-+la prise. Comme pour l'adresse locale et le numéro de port, l'option
- .B -n
--invalide la traduction du nom d'hôte et de service.
-+invalide la traduction du nom d'hôte et de service.
-
- .SS "State (Etat)"
--L'état de la socket. Puisqu'il n'y a pas d'état dans le mode RAW
--et généralement pas d'état utilisé en UDP, cette colonne
-+L'état de la socket. Puisqu'il n'y a pas d'état dans le mode RAW
-+et généralement pas d'état utilisé en UDP, cette colonne
- peut se trouver vierge. Normalement, on trouvera une des valeur suivante:
-
- .TP
- .I
- ESTABLISHED
--La socket a une connexion établie.
-+La socket a une connexion établie.
- .TP
- .I
- SYN_SENT
--La socket attend activement d'établir une connexion.
-+La socket attend activement d'établir une connexion.
- .TP
- .I
- SYN_RECV
--Une requête de connexion a été reçue du réseau.
-+Une requête de connexion a été reçue du réseau.
- .TP
- .I
- FIN_WAIT1
--La socket est fermée, et la connexion est en cours de terminaison.
-+La socket est fermée, et la connexion est en cours de terminaison.
- .TP
- .I
- FIN_WAIT2
--La connexion est fermée, et la socket attend une terminaison du distant.
-+La connexion est fermée, et la socket attend une terminaison du distant.
- .TP
- .I
- TIME_WAIT
--La socket attend le traitement de tous les paquets encore sur le réseau
-+La socket attend le traitement de tous les paquets encore sur le réseau
- avant d'entreprendre la fermeture.
- .TP
- .I
--CLOSED
--La socket n'est pas utilisée.
-+CLOSE
-+La socket n'est pas utilisée.
- .TP
- .I
- CLOSE_WAIT
--Le distant a arrêté, attendant la fermeture de la socket.
-+Le distant a arrêté, attendant la fermeture de la socket.
- .TP
- .I
- LAST_ACK
--Le distant termine, et la socket est fermée. Attente d'acquittement.
-+Le distant termine, et la socket est fermée. Attente d'acquittement.
- .TP
- .I
- LISTEN
--La socket est à l'écoute de connexions entrantes. Ces sockets ne sont
--affichées que si le paramètre
-+La socket est à l'écoute de connexions entrantes. Ces sockets ne sont
-+affichées que si le paramètre
- .BR -a , --listening
- est fourni.
- .TP
- .I
- CLOSING
--Les deux prises sont arrêtées mais toutes les données locales n'ont
--pas encore été envoyées.
-+Les deux prises sont arrêtées mais toutes les données locales n'ont
-+pas encore été envoyées.
- .TP
- .I
- UNKNOWN
--L'état de la prise est inconnu.
-+L'état de la prise est inconnu.
-
- .SS "User (Utilisateur)"
--Le nom d'utilisateur ou l'UID du propriétaire de la socket.
-+Le nom d'utilisateur ou l'UID du propriétaire de la socket.
-
- .SS "PID/Program name (PID/Nom de Programme)"
--Le PID et le nom du programme (séparés par un slash) propriétaire de la
--socket. Le paramètre
-+Le PID et le nom du programme (séparés par un slash) propriétaire de la
-+socket. Le paramètre
- .B -p
- active l'affichage de cette colonne. Vous devez avoir les droits de
- .B root
--puisque vous devez avoir les droits d'accès aux processus pour visualiser
-+puisque vous devez avoir les droits d'accès aux processus pour visualiser
- les sockets qui lui correspondent. Ces informations ne sont pas disponibles
- avec les sockets IPX.
-
- .SS "Timer"
--(Ceci doit être rédigé)
-+(Ceci doit être rédigé)
-
-
- .PP
-@@ -298,28 +298,28 @@ avec les sockets IPX.
-
-
- .SS "Proto"
--Le protocole (habituellement UNIX) utilisé par la socket.
-+Le protocole (habituellement UNIX) utilisé par la socket.
-
- .SS "RefCnt"
--Le nombre de références (i.e. processus attachés via cette socket).
-+Le nombre de références (i.e. processus attachés via cette socket).
-
- .SS "Flags (indicateurs)"
--Les indicateurs affichée sont SO_ACCEPTON (affiché
-+Les indicateurs affichée sont SO_ACCEPTON (affiché
- .BR ACC ),
- SO_WAITDATA
- .RB ( W )
- ou SO_NOSPACE
- .RB ( N ).
--SO_ACCECPTON est utilisé pour les sockets
--non-connectées si les processus correspondant sont en attente de
--demande de connexion. Les autres indicateurs sont d'un intérêt limité.
-+SO_ACCECPTON est utilisé pour les sockets
-+non-connectées si les processus correspondant sont en attente de
-+demande de connexion. Les autres indicateurs sont d'un intérêt limité.
-
- .SS "Type"
--Il y a différents types d'accès aux sockets :
-+Il y a différents types d'accès aux sockets :
- .TP
- .I
- SOCK_DGRAM
--La prise est utilisée en mode Datagram (sans connexion).
-+La prise est utilisée en mode Datagram (sans connexion).
- .TP
- .I
- SOCK_STREAM
-@@ -327,90 +327,89 @@ C'est une socket `stream' (connexion).
- .TP
- .I
- SOCK_RAW
--La prise est utilisée en mode `raw'.
-+La prise est utilisée en mode `raw'.
- .TP
- .I
- SOCK_RDM
--Celle-ci est utilisée pour les messages délivrée de manière fiable.
-+Celle-ci est utilisée pour les messages délivrée de manière fiable.
- .TP
- .I
- SOCK_SEQPACKET
--C'est une socket en mode paquets séquentiels.
-+C'est une socket en mode paquets séquentiels.
- .TP
- .I
- SOCK_PACKET
--Prise d'accès à l'interface RAW.
-+Prise d'accès à l'interface RAW.
- .TP
- .I
- UNKNOWN
--Qui sait ce que l'avenir nous réserve - Juste à remplir ici :-)
-+Qui sait ce que l'avenir nous réserve - Juste à remplir ici :-)
-
- .PP
- .SS "State (Etat)"
--Ce champ contient un des mots clés suivants :
-+Ce champ contient un des mots clés suivants :
- .TP
- .I
- FREE
--La socket n'est pas allouée
-+La socket n'est pas allouée
- .TP
- .I
- LISTENING
--La socket est à l'écoute de demandes de connexions. Ces sockets ne sont
--affichées que si le paramètre
-+La socket est à l'écoute de demandes de connexions. Ces sockets ne sont
-+affichées que si le paramètre
- .BR -a , --listening
- est fourni.
- .TP
- .I
- CONNECTING
--La prise est en cours d'établissement de connexion.
-+La prise est en cours d'établissement de connexion.
- .TP
- .I
- CONNECTED
--La socket est connectée.
-+La socket est connectée.
- .TP
- .I
- DISCONNECTING
--La socket est en cours de déconnexion.
-+La socket est en cours de déconnexion.
- .TP
- .I
- (empty)
--La socket n'est connectée à aucune autre.
-+La socket n'est connectée à aucune autre.
- .TP
- .I
- UNKNOWN
--Cet état ne devrait pas apparaître.
-+Cet état ne devrait pas apparaître.
-
- .SS "PID/Program name (PID/Nom de programme"
--Le PID et le nom du programme propriétaire de la socket. Plus
-+Le PID et le nom du programme propriétaire de la socket. Plus
- d'informations sont disponibles dans la section
- .B "Connexions Internet actives"
- ci-dessus.
-
- .SS "Path (chemin)"
--Affiche le chemin correspondant à l'attachement des processus à la socket.
-+Affiche le chemin correspondant à l'attachement des processus à la socket.
-
- .PP
- .SS Sockets IPX actives
-
--(à faire par quelqu'un qui connaît)
-+(à faire par quelqu'un qui connaît)
-
- .PP
- .SS Sockets NET/ROM actives
-
--(à faire par quelqu'un qui connaît)
-+(à faire par quelqu'un qui connaît)
-
- .PP
- .SS Sockets AX.25 actives
-
--(à faire par quelqu'un qui connaît)
-+(à faire par quelqu'un qui connaît)
-
- .PP
- .SH NOTES
- Depuis la version 2.2 du noyau, netstat -i n'affiche plus les statistiques
- des interfaces alias. Pour obtenir les compteurs par interface alias, vous
--devez définir des règles spécifiques à l'aide de la commande
--.BR ipchains(8)
--.
-+devez définir des règles spécifiques à l'aide de la commande
-+.BR iptables(8).
-
- .SH FICHIERS
- .ta
-@@ -418,7 +417,7 @@ devez d
- -- Le fichier de correspondance des services
-
- .I /proc/net/dev
---- informations périphériques
-+-- informations périphériques
-
- .I /proc/net/raw
- -- informations sockets RAW
-@@ -471,31 +470,28 @@ devez d
- .SH VOIR AUSSI
- .BR route (8),
- .BR ifconfig (8),
--.BR ipfw (4),
--.BR ipfw (8),
--.BR ipfwadm (8)
--.BR ipchains (8)
-+.BR iptables (8)
-
- .PP
- .SH BUGS
--Des informations étranges peuvent apparaitre occasionnellement
--si une socket change d'état au moment ou elle est visualisée.
-+Des informations étranges peuvent apparaitre occasionnellement
-+si une socket change d'état au moment ou elle est visualisée.
- Ceci est peut probable.
- .br
--Le paramètre
-+Le paramètre
- .B netstat -i
--est décrit tel qu'il fonctionnera lorsque le code de la version BETA du
--paquetage net-tools aura été nettoyé.
-+est décrit tel qu'il fonctionnera lorsque le code de la version BETA du
-+paquetage net-tools aura été nettoyé.
-
- .PP
- .SH AUTEURS
--L'interface utilisateur de netstat a été développée par
-+L'interface utilisateur de netstat a été développée par
- Fred Baumgarten <dc6iq@insu1.etec.uni-karlsruhe.de>. Les pages du
--manuel essentiellement écrites par Matt Welsh
--<mdw@tc.cornell.edu>. Mis à jour par Alan Cox <Alan.Cox@linux.org>.
-+manuel essentiellement écrites par Matt Welsh
-+<mdw@tc.cornell.edu>. Mis à jour par Alan Cox <Alan.Cox@linux.org>.
- .br
- La page de manuel et la commande incluse dans le paquetage net-tools
--a été totallement réécrite par Bernd Eckenfels
-+a été totallement réécrite par Bernd Eckenfels
- <ecki@linux.de>.
- .SH TRADUCTION
- Jean Michel VANSTEENE (vanstee@worldnet.fr)
-diff --git a/man/fr_FR/plipconfig.8 b/man/fr_FR/plipconfig.8
-index cd44449..4d17ea2 100644
---- a/man/fr_FR/plipconfig.8
-+++ b/man/fr_FR/plipconfig.8
-@@ -1,44 +1,44 @@
- .TH PLIPCONFIG 8 "17 February 1995" "" ""
- .SH NOM
--plipconfig \- réglage fin des paramètres du périphérique PLIP
-+plipconfig \- réglage fin des paramètres du périphérique PLIP
- .SH SYNOPSIS
- .B "plipconfig interface"
- .br
- .B "plipconfig interface [nibble NN] [trigger NN] [unit NN]"
- .SH DESCRIPTION
- .B Plipconfig
--est utilisé pour améliorer (espérons-le) les performances PLIP
--en changeant les timings par défaut utilisés par le protocole PLIP. Les
--résultats dépendent du port parallèle
--utilisé, du cable, et de la vitesse CPU de chaque machine
--à chaque bout du lien PLIP.
-+est utilisé pour améliorer (espérons-le) les performances PLIP
-+en changeant les timings par défaut utilisés par le protocole PLIP. Les
-+résultats dépendent du port parallèle
-+utilisé, du cable, et de la vitesse CPU de chaque machine
-+à chaque bout du lien PLIP.
- .LP
- Si le seul argument est l'
- .B interface
- ,
- .B plipconfig
--affiche seulement l'état de cette interface. Autrement, il essaiera de
--positionner les options données.
-+affiche seulement l'état de cette interface. Autrement, il essaiera de
-+positionner les options données.
- .SH OPTIONS
- .TP
- .B "nibble NN"
--Définit la valeur d'attente des digits en microsecondes. Par défault : 3000.
-+Définit la valeur d'attente des digits en microsecondes. Par défault : 3000.
- .TP
- .B "trigger NN"
--Définit le délai de déclenchement en microsecondes. Par défault : 500.
-+Définit le délai de déclenchement en microsecondes. Par défault : 500.
- .LP
--La vitesse de PLIP peut, dans certains cas, être améliorée en
--diminuant les valeurs par défaut.
-+La vitesse de PLIP peut, dans certains cas, être améliorée en
-+diminuant les valeurs par défaut.
- Les valeurs trop petites peuvent engendrer une utilisation excessive de CPU,
--et un temps de réponse aux interruptions mauvais, dont le résultat est
--la perte de caractères lus sur le port, ou de paquets PLIP.
-+et un temps de réponse aux interruptions mauvais, dont le résultat est
-+la perte de caractères lus sur le port, ou de paquets PLIP.
- La modification du MTU PLIP peut aussi affecter la vitesse PLIP.
- .SH NOTE
--Si vous n'obtenez aucune réponse, il est fort probable que l'IRQ configurée
--soit mauvaise, et qu'elle nécessite une configuration avec ifconfig.
--Les quelques cas pour lesquels les timings par défaut sont trop courts,
--arrivent lorque l'on utilise de longs cables. Quelque chose à ne pas faire,
--puisque le port parallèle n'est pas fait pour fonctionner avec de longs cables.
-+Si vous n'obtenez aucune réponse, il est fort probable que l'IRQ configurée
-+soit mauvaise, et qu'elle nécessite une configuration avec ifconfig.
-+Les quelques cas pour lesquels les timings par défaut sont trop courts,
-+arrivent lorque l'on utilise de longs cables. Quelque chose à ne pas faire,
-+puisque le port parallèle n'est pas fait pour fonctionner avec de longs cables.
- .SH VOIR AUSSI
- .I ifconfig(8)
- .SH BUGS
-diff --git a/man/fr_FR/rarp.8 b/man/fr_FR/rarp.8
-index 73e9328..e68730f 100644
---- a/man/fr_FR/rarp.8
-+++ b/man/fr_FR/rarp.8
-@@ -1,6 +1,6 @@
--.TH RARP 8 "4 Août 1997" "net-tools" "Linux Programmer's Manual"
-+.TH RARP 8 "4 Août 1997" "net-tools" "Linux Administrator's Manual"
- .SH NOM
--rarp \- manipule la table système RARP
-+rarp \- manipule la table système RARP
- .SH SYNOPSIS
- .B "rarp [-V] [--version] [-h] [--help]"
- .br
-@@ -11,30 +11,30 @@ rarp \- manipule la table syst
- .B "rarp [-v] [-t type] -s nom_d_hote adr_materiel"
- .SH DESCRIPTION
- .B Rarp
--manipule la table RARP du noyau de différentes façons. Les options de base
--permettent d'effacer une entrée de correspondance d'adresses et d'en
--redéfinir une manuellement. Pour des besoins de débogage, le programme
-+manipule la table RARP du noyau de différentes façons. Les options de base
-+permettent d'effacer une entrée de correspondance d'adresses et d'en
-+redéfinir une manuellement. Pour des besoins de débogage, le programme
- .B rarp
--permet aussi de vider complètement la table RARP.
-+permet aussi de vider complètement la table RARP.
- .SH OPTIONS
- .TP
- .B \-V
--Affiche la version de RARP utilisé.
-+Affiche la version de RARP utilisé.
- .TP
- .B \-v
--Dit à l'utilisateur ce qui se passe, en étant verbeux.
-+Dit à l'utilisateur ce qui se passe, en étant verbeux.
- .TP
- .B "\-t type"
--En définissant ou lisant la table RARP, ce paramètre optionnel dit à
-+En définissant ou lisant la table RARP, ce paramètre optionnel dit à
- .B rarp
--quelles classes d'entrées il doit contrôler. La valeur par défaut de
--ce paramètre est
-+quelles classes d'entrées il doit contrôler. La valeur par défaut de
-+ce paramètre est
- .B ether
--(i.e. code matériel
-+(i.e. code matériel
- .B 0x01
- pour
- .B "IEEE 802.3 10Mbps Ethernet".
--D'autres valeurs doivent correspondre à des technologies réseaux telles que
-+D'autres valeurs doivent correspondre à des technologies réseaux telles que
- .B AX.25 (ax25).
- et
- .B NET/ROM (netrom).
-@@ -42,31 +42,31 @@ et
- .B "\-a"
- .TP
- .B "\-\-list"
--Liste les entrées de la table RARP.
-+Liste les entrées de la table RARP.
- .TP
- .B "\-d nom_d_hote"
- .TP
- .B "\-\-delete nom_d_hote"
--Supprime toutes les entrées RARP relatives à l'hôte spécifié.
-+Supprime toutes les entrées RARP relatives à l'hôte spécifié.
- .TP
- .B "\-s nom_d_hote adr_materielle"
- .TP
- .B "\-\-set nom_d_hote adr_materielle"
--Crée manuellement une correspondance d'adresses RARP pour l'hôte
--.B nom_d_hôte
--avec l'adresse matérielle
--.B adr_materielle
--. Le format de l'adresse matérielle est dépendant du matériel,
--mais pour la plupart on peut considérer que la présentation classique
--peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
--séparés par des double-points.
-+Crée manuellement une correspondance d'adresses RARP pour l'hôte
-+.B nom_d_hôte
-+avec l'adresse matérielle
-+.BR adr_materielle .
-+Le format de l'adresse matérielle est dépendant du matériel,
-+mais pour la plupart on peut considérer que la présentation classique
-+peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
-+séparés par des double-points.
-
- .SH ATTENTION
--Certains systèmes (notamment des vieux Sun's) supposent que l'hôte
--répondant à une requête RARP peut aussi fournir d'autres services
--de boot à distance. Par conséquent n'ajoutez jamais
--d'entrées RARP à la légère à moins que vous souhaitiez affronter la
--colère de votre administrateur réseau.
-+Certains systèmes (notamment des vieux Sun's) supposent que l'hôte
-+répondant à une requête RARP peut aussi fournir d'autres services
-+de boot à distance. Par conséquent n'ajoutez jamais
-+d'entrées RARP à la légère à moins que vous souhaitiez affronter la
-+colère de votre administrateur réseau.
- .SH FICHIERS
- .I /proc/net/rarp,
- .SH VOIR AUSSI
-diff --git a/man/fr_FR/route.8 b/man/fr_FR/route.8
-index 9109e8d..986faf9 100644
---- a/man/fr_FR/route.8
-+++ b/man/fr_FR/route.8
-@@ -1,4 +1,4 @@
--.TH ROUTE 8 "8 Août 1997" "net-tools" "Linux Programmer's Manual"
-+.TH ROUTE 8 "8 Août 1997" "net-tools" "Linux Administrator's Manual"
- .SH NAME
- route \- affiche / manipule la table de routage IP
- .SH SYNOPSIS
-@@ -54,9 +54,9 @@ If]
- .RB [ \--help ]
- .SH DESCRIPTION
- .B Route
--manipule la table de routage IP du noyau. Son utilisation première
--consiste à configurer des routes statiques vers des hôtes ou des réseaux
--via une interface, après sa configuration par le programme
-+manipule la table de routage IP du noyau. Son utilisation première
-+consiste à configurer des routes statiques vers des hôtes ou des réseaux
-+via une interface, après sa configuration par le programme
- .B ifconfig(8).
-
- .SH OPTIONS
-@@ -66,12 +66,12 @@ Active le mode verbeux.
-
- .TP
- .B \-A famille
--Utilise la famille d'adresses spécifiée (p.ex. `inet', `inet6').
-+Utilise la famille d'adresses spécifiée (p.ex. `inet', `inet6').
-
- .TP
- .B \-n
--Affiche les adresses numériques, au lieu
--d'essayer de déterminer les noms d'hôtes. C'est utile si vous essayer de
-+Affiche les adresses numériques, au lieu
-+d'essayer de déterminer les noms d'hôtes. C'est utile si vous essayer de
- savoir pourquoi la route vers votre serveur de nom a disparu.
-
- .TP
-@@ -80,24 +80,24 @@ utilise
- .BR netstat (8)-format
- pour l'affichage de la table de routage.
- .B \-ee
--Génère une très longue ligne avec tous les paramètres à partir de la table
-+Génère une très longue ligne avec tous les paramètres à partir de la table
- de routage.
-
- .TP
- .B \-net
- la
- .B cible
--est un réseau.
-+est un réseau.
-
- .TP
- .B -host
- la
- .B cible
--est un hôte.
-+est un hôte.
-
- .TP
- .B -F
--affiche la table de routage FIB du noyau. L'organisation peut être changée avec
-+affiche la table de routage FIB du noyau. L'organisation peut être changée avec
- .B \-e
- et
- .B \-ee
-@@ -117,131 +117,131 @@ ajoute une route.
-
- .TP
- .B cible
--L'hôte ou le réseau destination. Vous pouvez fournir une adresse IP en
--notation décimale pointée ou un nom d'hôte ou de réseau.
-+L'hôte ou le réseau destination. Vous pouvez fournir une adresse IP en
-+notation décimale pointée ou un nom d'hôte ou de réseau.
-
- .TP
- .B netmask Nm
--spécifie le masque réseau de la route à ajouter.
-+spécifie le masque réseau de la route à ajouter.
-
- .TP
- .B gw Gw
--signifie que tout paquet IP envoyé à cette adresse sera routé par
--la passerelle spécifiée.
-+signifie que tout paquet IP envoyé à cette adresse sera routé par
-+la passerelle spécifiée.
- .B NOTE:
--La passerelle concernée doit pouvoir être atteinte. Ceci signifie
--qu'une route statique vers cette passerelle doit préalablement exister.
--Si vous spécifiez l'adresse de l'une de vos interfaces locales, elle sera
--utilisée pour décider de l'interface vers laquelle les paquets seront
--envoyés. Ceci est une bidouille permettant d'être compatible BSD.
-+La passerelle concernée doit pouvoir être atteinte. Ceci signifie
-+qu'une route statique vers cette passerelle doit préalablement exister.
-+Si vous spécifiez l'adresse de l'une de vos interfaces locales, elle sera
-+utilisée pour décider de l'interface vers laquelle les paquets seront
-+envoyés. Ceci est une bidouille permettant d'être compatible BSD.
-
- .TP
- .B metric M
--Affecte la valeur M au champ métrique de la table de routage (utilisé par
--les démons de routage).
-+Affecte la valeur M au champ métrique de la table de routage (utilisé par
-+les démons de routage).
-
- .TP
- .B mss M
--Spécifie le MSS (Maximum Segment Size, Taille maximum de segment) de TCP,
--pour les connexions empreintant cette route. Ce n'est normalement utilisé
-+Spécifie le MSS (Maximum Segment Size, Taille maximum de segment) de TCP,
-+pour les connexions empreintant cette route. Ce n'est normalement utilisé
- que pour des optimisations fines des configurations de routage.
-
-
- .TP
- .B window W
--Définit la taille de fenêtre TCP à W octets pour les connexions relatives
--à cette route. C'est en général uniquement utilisé sur les réseaux AX.25 et
--avec les pilotes incapables de manipuler les trames dos à dos.
-+Définit la taille de fenêtre TCP à W octets pour les connexions relatives
-+à cette route. C'est en général uniquement utilisé sur les réseaux AX.25 et
-+avec les pilotes incapables de manipuler les trames dos à dos.
-
- .TP
- .B irtt I
--Définit le iRTT initial (round trip time) pour les connexions TCP sur cette
--route à I millisecondes (1-12000). C'est en général uniquement utilisé sur
--les réseaux AX.25. Si omis, la valeur par défaut (300 ms selon le RFC 1122)
--est utilisée.
-+Définit le iRTT initial (round trip time) pour les connexions TCP sur cette
-+route à I millisecondes (1-12000). C'est en général uniquement utilisé sur
-+les réseaux AX.25. Si omis, la valeur par défaut (300 ms selon le RFC 1122)
-+est utilisée.
-
- .TP
- .B reject
--Installe une route bloquante, qui forcera l'échec d'une recherche.
--C'est par exemple utilisé pour masquer les réseaux avant d'utiliser la
--route par défaut. Ce n'est pas une fonction de pare-feu.
-+Installe une route bloquante, qui forcera l'échec d'une recherche.
-+C'est par exemple utilisé pour masquer les réseaux avant d'utiliser la
-+route par défaut. Ce n'est pas une fonction de pare-feu.
-
- .TP
- .B mod, dyn, reinstate
--Installe une route dynamique ou modifiée. Les deux indicateurs ne sont en
--général positionnés que par le démon de routage. Cela ne sert que pour des
-+Installe une route dynamique ou modifiée. Les deux indicateurs ne sont en
-+général positionnés que par le démon de routage. Cela ne sert que pour des
- besoins de diagnostics.
-
- .TP
- .B dev If
--Force la route à être associée au périphérique spécifié, sinon le noyau
--tentera de le déterminer par lui-même (en consultant les routes existantes
--et les spécifications de périphériques). Dans la plupart des réseaux
-+Force la route à être associée au périphérique spécifié, sinon le noyau
-+tentera de le déterminer par lui-même (en consultant les routes existantes
-+et les spécifications de périphériques). Dans la plupart des réseaux
- normaux, vous n'aurez pas besoin de ceci.
-
- If
- .B dev If
--est la dernière option de la ligne de commande, le mot
-+est la dernière option de la ligne de commande, le mot
- .B dev
--peut être omis, puisque c'est la valeur par défaut. Autrement l'ordre des
-+peut être omis, puisque c'est la valeur par défaut. Autrement l'ordre des
- modificateurs de route (metric - netmask - gw - dev) n'a pas d'importance.
-
- .SH EXEMPLES
- .TP
- .B route add -net 127.0.0.0
--ajoute l'entrée loopback normale, en utilisant le masque 255.0.0.0 (réseau
--de classe A, selon l'adresse de destination) et associée avec l'interface
--"lo" (en supposant que ce périphérique a été correctement configuré avec
-+ajoute l'entrée loopback normale, en utilisant le masque 255.0.0.0 (réseau
-+de classe A, selon l'adresse de destination) et associée avec l'interface
-+"lo" (en supposant que ce périphérique a été correctement configuré avec
- .BR ifconfig (8)).
-
- .TP
- .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
--ajoute une route vers le réseau 192.56.76.x via
--"eth0". Le masque de classe C n'est pas vraiment nécessaire ici car
--192.* est une adresse IP de classe C. Le mot "dev" peut être omis.
-+ajoute une route vers le réseau 192.56.76.x via
-+"eth0". Le masque de classe C n'est pas vraiment nécessaire ici car
-+192.* est une adresse IP de classe C. Le mot "dev" peut être omis.
-
- .TP
- .B route add default gw mango-gw
--ajoute une route par défaut (qui sera utilisée si aucune autre route ne
-+ajoute une route par défaut (qui sera utilisée si aucune autre route ne
- convient). Tous les paquets empreintant cette route passeront par
--"mango-gw". Le périphérique qui sera effectivement utilisé pour cette route
--dépend de la façon dont on atteint "mango-gw" - la route statique vers
--"mango-gw" devra être préalablement configurée.
-+"mango-gw". Le périphérique qui sera effectivement utilisé pour cette route
-+dépend de la façon dont on atteint "mango-gw" - la route statique vers
-+"mango-gw" devra être préalablement configurée.
-
- .TP
- .B route add ipx4 sl0
--ajoute une route vers l'hôte "ipx4" via l'interface SLIP (en supposant que
--"ipx4" est l'hôte SLIP).
-+ajoute une route vers l'hôte "ipx4" via l'interface SLIP (en supposant que
-+"ipx4" est l'hôte SLIP).
-
- .TP
- .B route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
--Cette commande route le réseau "192.57.66.x" par l'ancienne route vers l'interface SLIP.
-+Cette commande route le réseau "192.57.66.x" par l'ancienne route vers l'interface SLIP.
-
- .TP
- .B route add 224.0.0.0 netmask 240.0.0.0 dev eth0
--Ceci est une commande mal documentée et les gens savent ce qu'il faut
--faire? Ceci force toutes les routes IP des classes D (multicast) à
-+Ceci est une commande mal documentée et les gens savent ce qu'il faut
-+faire? Ceci force toutes les routes IP des classes D (multicast) à
- passer par "eth0". C'est la configuration correcte, normale pour un noyau
- supportant le multicast.
-
- .TP
- .B route add 10.0.0.0 netmask 255.0.0.0 reject
--Installe une route 'rejetée' pour le réseau privé "10.x.x.x."
-+Installe une route 'rejetée' pour le réseau privé "10.x.x.x."
-
- .LP
- .SH RESULTATS
--Le contenu des tables de routage du noyaus est affiché en colonnes comme
-+Le contenu des tables de routage du noyaus est affiché en colonnes comme
- suit
- .TP
- .B Destination
--Le réseau ou hôte destination.
-+Le réseau ou hôte destination.
- .TP
- .B Gateway
--L'adresse de la passerelle ou '*' si indéfini.
-+L'adresse de la passerelle ou '*' si indéfini.
- .TP
- .B Genmask
--Le masque de réseau pour le réseau destinataire; '255.255.255.255' pour un hôte
--et '0.0.0.0' pour la route par défaut (
-+Le masque de réseau pour le réseau destinataire; '255.255.255.255' pour un hôte
-+et '0.0.0.0' pour la route par défaut (
- .B default
- ).
- .TP
-@@ -254,63 +254,63 @@ Les indicateurs possibles sont
- .br
- .B H
- (la cible est un
--.BR hôte )
-+.BR hôte )
- .br
- .B G
- (utilise comme
- .BR passerelle )
- .br
- .B R
--.RB ( rétablit
-+.RB ( rétablit
- la route pour le routage dynamique)
- .br
- .B D
- .RB ( dynamiquement
--configurée par le démon ou par redirect)
-+configurée par le démon ou par redirect)
- .br
- .B M
--.RB ( modifiée
--par le démon de routage ou par redirect)
-+.RB ( modifiée
-+par le démon de routage ou par redirect)
- .br
- .B !
--.RB ( rejète
-+.RB ( rejète
- la route)
- .TP
- .B Metric
--La 'distance' à la cible (habituellement comptée en hops). Ce n'est pas
--utilisé par les noyaux récents, mais peut-être requis par certains démons
-+La 'distance' à la cible (habituellement comptée en hops). Ce n'est pas
-+utilisé par les noyaux récents, mais peut-être requis par certains démons
- de routage.
- .TP
- .B Ref
--Nombre de références à cette route. (Pas utilisé dans le noyau Linux.)
-+Nombre de références à cette route. (Pas utilisé dans le noyau Linux.)
- .TP
- .B Use
- Count of lookups for the route. Depending on the use of -F and -C this will
- be either route cache misses (-F) or hits (-C).
- .TP
- .B Iface
--Interface vers laquelle les paquets empruntant cette route seront envoyés.
-+Interface vers laquelle les paquets empruntant cette route seront envoyés.
- .TP
- .B MSS
--Taille de segment maximum par défaut pour les connexions TCP sur cette
-+Taille de segment maximum par défaut pour les connexions TCP sur cette
- route.
- .TP
- .B Window
--Taille de fenêtre par défaut pour les connexions TCP sur cette route.
-+Taille de fenêtre par défaut pour les connexions TCP sur cette route.
- .TP
- .B irtt
- RTT Initial (Round Trip Time). Le noyau utilise ceci pour essayer les
--meilleurs paramètres protocolaires TCP sans attendre de réponse
--(éventuellement tardive).
-+meilleurs paramètres protocolaires TCP sans attendre de réponse
-+(éventuellement tardive).
- .TP
--.B HH (seulement caché)
--Le nombre d'entrées ARP et de routes cachées faisant référence au cache
--d'en-tête matériel pour la route en cache. Ce sera la valeur \-1 si aucune adresse
--matérielle n'est nécessaire pour l'interface de la route cachée (p.ex. lo).
-+.B HH (seulement caché)
-+Le nombre d'entrées ARP et de routes cachées faisant référence au cache
-+d'en-tête matériel pour la route en cache. Ce sera la valeur \-1 si aucune adresse
-+matérielle n'est nécessaire pour l'interface de la route cachée (p.ex. lo).
- .TP
--.B Arp (seulement caché)
--Indique si oui ou non l'adresse matérielle pour la route en cache est encore
--à jour.
-+.B Arp (seulement caché)
-+Indique si oui ou non l'adresse matérielle pour la route en cache est encore
-+à jour.
- .LP
- .SH FICHIERS
- .I /proc/net/ipv6_route
-@@ -324,11 +324,11 @@ Indique si oui ou non l'adresse mat
- .LP
- .SH HISTORIQUE
- .B Route
--pour Linux a été originellement écrit par Fred N. van Kempen,
--<waltje@uwalt.nl.mugnet.org> puis modifié par Johannes Stille et
--Linus Torvalds pour pl15. Alan Cox a ajouté les options concernant
--la gestion des fenêtres et MSS pour Linux 1.1.22. Le support de irtt
--et la fusion avec netstat ont été réalisés par Bernd Eckenfels.
-+pour Linux a été originellement écrit par Fred N. van Kempen,
-+<waltje@uwalt.nl.mugnet.org> puis modifié par Johannes Stille et
-+Linus Torvalds pour pl15. Alan Cox a ajouté les options concernant
-+la gestion des fenêtres et MSS pour Linux 1.1.22. Le support de irtt
-+et la fusion avec netstat ont été réalisés par Bernd Eckenfels.
- .SH AUTEUR
- Maintenu par Phil Blundell <Philip.Blundell@pobox.com>.
- .SH TRADUCTION
-diff --git a/man/fr_FR/slattach.8 b/man/fr_FR/slattach.8
-index 512d514..d21d0d7 100644
---- a/man/fr_FR/slattach.8
-+++ b/man/fr_FR/slattach.8
-@@ -1,87 +1,87 @@
- .TH SLATTACH 8 "12 Feb 1994" "" ""
- .SH NOM
--slattach \- attache une interface réseau à une ligne série
-+slattach \- attache une interface réseau à une ligne série
- .SH SYNOPSIS
- .B "slattach [-dehlLmnqv] [-c commande] [-p proto] [-s vitesse] [tty]"
- .br
- .SH DESCRIPTION
- .B Slattach
--est un minuscule programme qui peut être utilisé pour attacher
--un terminal normal ("série") dans un des différents modes "réseau",
--ceci vous permettant de l'utiliser pour des liaisons point-à-point
--vers d'autres systèmes.
-+est un minuscule programme qui peut être utilisé pour attacher
-+un terminal normal ("série") dans un des différents modes "réseau",
-+ceci vous permettant de l'utiliser pour des liaisons point-à-point
-+vers d'autres systèmes.
- .SH OPTIONS
- .TP
- .B "[-c commande]"
--Exécute
-+Exécute
- .B `commande'
--lorsque la ligne est suspendue. Ceci peut être utilisé pour lancer
--des scripts ou réétablir des connexions quand un lien tombe.
-+lorsque la ligne est suspendue. Ceci peut être utilisé pour lancer
-+des scripts ou réétablir des connexions quand un lien tombe.
- .TP
- .B "[-d]"
--Valide le débogage. Utile pour déterminer pourquoi une configuration
-+Valide le débogage. Utile pour déterminer pourquoi une configuration
- ne fonctionne pas.
- .TP
- .B "[-h]"
--Termine lorsque la porteuse est perdue. Ceci fonctionne à la fois sur
--les périphériques /dev/tty et /dev/cua en contrôlant directement
--l'état de la porteuse toutes les 15 secondes.
-+Termine lorsque la porteuse est perdue. Ceci fonctionne à la fois sur
-+les périphériques /dev/tty et /dev/cua en contrôlant directement
-+l'état de la porteuse toutes les 15 secondes.
- .TP
- .B "[-v]"
- Valide le mode verbeux. Utile pour les shell scripts.
- .TP
- .B "[-q]"
--Opère en mode silencieux - pas de messages du tout.
-+Opère en mode silencieux - pas de messages du tout.
- .TP
- .B "[-l]"
--Crée un fichier de vérouillage pour le périphérique comme
-+Crée un fichier de vérouillage pour le périphérique comme
- pour UUCP dans /var/lock.
- .TP
- .B "[-n]"
--Equivalent à la commande "mesg n".
-+Equivalent à la commande "mesg n".
- .TP
- .B "[-m]"
- \fBn'\fPinitialise \fBpas\fP la ligne en mode raw 8 bits.
- .TP
- .B "[-e]"
--Termine correctement après l'initialisation du périphérique,
-+Termine correctement après l'initialisation du périphérique,
- au lieu d'attendre que la ligne soit suspendue.
- .TP
- .B "[-L]"
--Valide les opérations 3 lignes. Le terminal est mis en mode CLOCAL,
--la surveillance de porteuse est invalidée.
-+Valide les opérations 3 lignes. Le terminal est mis en mode CLOCAL,
-+la surveillance de porteuse est invalidée.
- .TP
- .B "[-p proto]"
--Définit le protocole spécifique à utiliser sur la ligne.
--La valeur par défaut est
-+Définit le protocole spécifique à utiliser sur la ligne.
-+La valeur par défaut est
- .B "cslip"
--, c'est-à-dire SLIP compressé. Les autres valeurs possibles sont :
-+, c'est-à-dire SLIP compressé. Les autres valeurs possibles sont :
- .B "slip"
- (SLIP normal),
- .B "adaptive"
- (CSLIP/SLIP adaptatifs),
- .B "ppp"
--(Protocole Point-à-Point)
-+(Protocole Point-à-Point)
- et
- .B "kiss"
--(un protocole utilisé pour communiquer avec des controleurs AX.25 paquets radios).
--L'argument spécifique
-+(un protocole utilisé pour communiquer avec des controleurs AX.25 paquets radios).
-+L'argument spécifique
- .B "tty"
--peut être utilisé pour refaire passer le périphérique en
--fonctionnement série normal. L'utilisation du mode 'ppp' n'est en
--principe pas utile puisque ppp nécessite le démon additionnel
-+peut être utilisé pour refaire passer le périphérique en
-+fonctionnement série normal. L'utilisation du mode 'ppp' n'est en
-+principe pas utile puisque ppp nécessite le démon additionnel
- .B pppd
--pour être actif sur la ligne. Pour les connexions `kiss', le programme
-+pour être actif sur la ligne. Pour les connexions `kiss', le programme
- .B axattach
--doit être utilisé.
-+doit être utilisé.
- .TP
- .B "[-s vitesse]"
--Définit la vitesse de la ligne, différente de la valeur par défaut.
-+Définit la vitesse de la ligne, différente de la valeur par défaut.
- .PP
--Si aucun argument n'est donné, la ligne courante du terminal
--(habituellement liée au login) est utilisée. Autrement, une tentative
--est effectuée pour obtenir le port du terminal indiqué, puis il est
--vérouillé et ouvert.
-+Si aucun argument n'est donné, la ligne courante du terminal
-+(habituellement liée au login) est utilisée. Autrement, une tentative
-+est effectuée pour obtenir le port du terminal indiqué, puis il est
-+vérouillé et ouvert.
- .SH FICHIERS
- .I /dev/cua* /var/lock/LCK.*
- .SH BUGS
-diff --git a/man/pt_BR/arp.8 b/man/pt_BR/arp.8
-index 41c8fd6..6c1e7f7 100644
---- a/man/pt_BR/arp.8
-+++ b/man/pt_BR/arp.8
-@@ -7,12 +7,12 @@ arp \- manipula o cache ARP do sistema
- .RB [ "\-H tipo" ]
- .RB [ "-i if" ]
- .B -a
--.RB [ máquina ]
-+.RB [ máquina ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-i if" ]
--.B "\-d máquina"
-+.B "\-d máquina"
- .RB [ pub ]
- .RB [ nopub ]
- .PP
-@@ -20,7 +20,7 @@ arp \- manipula o cache ARP do sistema
- .RB [ \-v ]
- .RB [ "\-H tipo" ]
- .RB [ "\-i if" ]
--.B -s máquina endereço_hardware
-+.B -s máquina endereço_hardware
- .RB [ temp ]
- .RB [ nopub ]
- .PP
-@@ -28,7 +28,7 @@ arp \- manipula o cache ARP do sistema
- .RB [ \-v ]
- .RB [ "\-H tipo" ]
- .RB [ "\-i if" ]
--.B -s máquina endereço_hardware
-+.B -s máquina endereço_hardware
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -36,7 +36,7 @@ arp \- manipula o cache ARP do sistema
- .RB [ \-v ]
- .RB [ "\-H tipo" ]
- .RB [ "\-i if" ]
--.B -Ds máquina ifa
-+.B -Ds máquina ifa
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -46,28 +46,28 @@ arp \- manipula o cache ARP do sistema
- .RB [ "-i if" ]
- .B -f arquivo
-
--.SH DESCRIÇÃO
-+.SH DESCRIÇÃO
- .B arp
--manipula o cache ARP do kernel de várias maneiras. As principais opções
--são remoção de uma entrada de mapeamento de endereço e configuração manual
--de um endereço. Para propósitos de depuração, o programa
-+manipula o cache ARP do kernel de várias maneiras. As principais opções
-+são remoção de uma entrada de mapeamento de endereço e configuração manual
-+de um endereço. Para propósitos de depuração, o programa
- .B arp
--também permite um dump completo do cache ARP.
--.SH OPÇÕES
-+também permite um dump completo do cache ARP.
-+.SH OPÇÕES
- .TP
- .B "\-v, \-\-verbose"
--Mostra ao usuário o que está acontecendo, de modo detalhado.
-+Mostra ao usuário o que está acontecendo, de modo detalhado.
- .TP
- .B "\-n, \-\-numeric"
--mostra endereços numéricos, ao invés de tentar determinar os nomes simbólicos da
--máquina, porta e usuário.
-+mostra endereços numéricos, ao invés de tentar determinar os nomes simbólicos da
-+máquina, porta e usuário.
- .TP
- .B "\-H type, \-\-hw-type type"
--Quando configurando ou lendo o cache ARP, este parâmetro opcional informa ao
-+Quando configurando ou lendo o cache ARP, este parâmetro opcional informa ao
- .B arp
--que classe de entradas devem ser verificadas. O valor padrão deste parâmetro é
-+que classe de entradas devem ser verificadas. O valor padrão deste parâmetro é
- .B ether
--(i.e. código de hardware 0x01 para Ethernet IEEE 802.3 10Mbps).
-+(i.e. código de hardware 0x01 para Ethernet IEEE 802.3 10Mbps).
- Outros valores podem incluir tecnologias de rede como
- .RB "ARCnet (" arcnet ")"
- ,
-@@ -77,86 +77,86 @@ Outros valores podem incluir tecnologias de rede como
- e
- .RB "NET/ROM (" netrom ")."
- .TP
--.B "\-a [máquina], \-\-display [máquina]"
--Mostra as entradas das máquinas especificadas. Se o parâmetro
--.B máquina
--não for usado,
-+.B "\-a [máquina], \-\-display [máquina]"
-+Mostra as entradas das máquinas especificadas. Se o parâmetro
-+.B máquina
-+não for usado,
- .B todas
--as entradas serão mostradas.
-+as entradas serão mostradas.
- .TP
--.B "\-d máquina, \-\-delete máquina"
--Remove quaisquer entradas para a máquina especificada. Isto pode ser
--usado se a máquina indicada for desligada, por exemplo. Nos kernels
-+.B "\-d máquina, \-\-delete máquina"
-+Remove quaisquer entradas para a máquina especificada. Isto pode ser
-+usado se a máquina indicada for desligada, por exemplo. Nos kernels
- mais recentes o
- .BR arp (1)
--suporta a especificação de
-+suporta a especificação de
- .B pub
- ou
- .B nopub
--para decidir se uma entrada pública ou privada deve ser removida. Se você
--não informar uma destas flags as duas entradas serão removidas.
-+para decidir se uma entrada pública ou privada deve ser removida. Se você
-+não informar uma destas flags as duas entradas serão removidas.
- .TP
- .B "\-D, \-\-use-device"
--Usa o endereço de hardware da interface
-+Usa o endereço de hardware da interface
- .BR ifa
- .TP
- .B "\-i If, \-\-device If"
- Seleciona uma interface. Quando mostrando o cache ARP somente entradas iguais
--à interface serão mostradas. Configura uma entrada ARP permanente ou
--temporária que será usada no dispositivo especificado. Se nenhum dispositivo for
-+à interface serão mostradas. Configura uma entrada ARP permanente ou
-+temporária que será usada no dispositivo especificado. Se nenhum dispositivo for
- informado, o kernel descobre o dispositivo a partir da tabela de roteamento.
- Para entradas
- .B pub
--a interface especificada é a interface na qual as requisições ARP serão
-+a interface especificada é a interface na qual as requisições ARP serão
- respondidas.
- .br
- .B NOTA:
--Deve ser diferente da interface para a qual os pacotes IP serão roteados.
-+Deve ser diferente da interface para a qual os pacotes IP serão roteados.
- .TP
--.B "\-s máquina endereço_hardware, \-\-set máquina"
--Cria manualmente uma entrada de mapeamento de endereço ARP para a máquina
--.B máquina
--com endereço de hardware configurado para
--.B endereço_hardware.
--O formato do endereço de hardware depende da classe de hardware, mas
--para a maioria das classes pode-se assumir que a apresentação usual pode
--ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados
--por dois pontos (:). Quando adicionando entradas proxy arp (isto é, aquelas
-+.B "\-s máquina endereço_hardware, \-\-set máquina"
-+Cria manualmente uma entrada de mapeamento de endereço ARP para a máquina
-+.B máquina
-+com endereço de hardware configurado para
-+.B endereço_hardware.
-+O formato do endereço de hardware depende da classe de hardware, mas
-+para a maioria das classes pode-se assumir que a apresentação usual pode
-+ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados
-+por dois pontos (:). Quando adicionando entradas proxy arp (isto é, aquelas
- com a flag
--.BR púb lico
-+.BR púb lico
- setadas) uma
- .B netmask
- pode ser especificada para o proxy arp de uma subrede inteira.
--Proxy arp para rotear redes inteiras não é um bom protocolo, mas algumas
--vezes é útil, então é suportado. Se a flag
-+Proxy arp para rotear redes inteiras não é um bom protocolo, mas algumas
-+vezes é útil, então é suportado. Se a flag
- .B temp
--não for fornecida, as entradas serão permanentemente armazenadas no cache ARP.
-+não for fornecida, as entradas serão permanentemente armazenadas no cache ARP.
- .TP
- .B "\-f arquivo, \-\-file arquivo"
--Similar à opção
-+Similar à opção
- .B \-s
--só que desta vez as informações de endereços são obtidas a partir do arquivo
-+só que desta vez as informações de endereços são obtidas a partir do arquivo
- .B arquivo.
--Isto pode ser usado se entradas ARP para muitas máquinas tiverem que ser
--configuradas. O nome do arquivo de dados é freqüentemente
-+Isto pode ser usado se entradas ARP para muitas máquinas tiverem que ser
-+configuradas. O nome do arquivo de dados é freqüentemente
- .IR /etc/ethers ,
--mas isto não é oficial.
-+mas isto não é oficial.
- .sp 1
--O formato deste arquivo é simples; ele somente contém linhas de texto ASCII com
--um nome de máquina e um endereço de hardware separados por um espaço em branco.
-+O formato deste arquivo é simples; ele somente contém linhas de texto ASCII com
-+um nome de máquina e um endereço de hardware separados por um espaço em branco.
- Adicionalmente as flags
- .BR "pub" , " nopub" , " temp" " and" " netmask"
- podem ser usadas.
- .LP
- Em todos os lugares onde uma
--.B máquina
--é esperada, você também pode informar um
--.B "endereço IP"
--em notação decimal separada por pontos.
-+.B máquina
-+é esperada, você também pode informar um
-+.B "endereço IP"
-+em notação decimal separada por pontos.
- .LP
--Cada entrada completa no cache ARP será marcada com uma flag
-+Cada entrada completa no cache ARP será marcada com uma flag
- .BR C .
--Entradas permanentes são marcadas com um
-+Entradas permanentes são marcadas com um
- .B M
- e entradas publicadas tem uma flag
- .BR P .
-@@ -171,7 +171,7 @@ e entradas publicadas tem uma flag
- .SH AUTOR
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> com muitas melhorias
- feitas pelo mantenedor do net-tools, Bernd Eckenfels <net-tools@lina.inka.de>.
--Tradução para a língua portuguesa feita por
-+Tradução para a língua portuguesa feita por
- Arnaldo Carvalho de Melo <acme@conectiva.com.br> em 11/abril/1998.
- Revisado por
- Jorge Luiz Godoy Filho <jorge@bestway.com.br> em 15/abril/1998.
-diff --git a/man/pt_BR/hostname.1 b/man/pt_BR/hostname.1
-index fe00879..5880fc8 100644
---- a/man/pt_BR/hostname.1
-+++ b/man/pt_BR/hostname.1
-@@ -1,15 +1,15 @@
- .TH HOSTNAME 1 "28 de janeiro de 1996" "net-tools" "Manual do Programador Linux"
-
- .SH NOME
--hostname \- mostra ou configura o nome da máquina
-+hostname \- mostra ou configura o nome da máquina
- .BR
--domainname \- mostra ou configura o nome do domínio NIS/YP
-+domainname \- mostra ou configura o nome do domínio NIS/YP
- .BR
--dnsdomainname \- mostra o nome do domínio DNS
-+dnsdomainname \- mostra o nome do domínio DNS
- .BR
--nisdomainname \- mostra ou configura o nome do domínio NIS/YP
-+nisdomainname \- mostra ou configura o nome do domínio NIS/YP
- .BR
--ypdomainname \- mostra ou configura o nome do domínio NIS/YP
-+ypdomainname \- mostra ou configura o nome do domínio NIS/YP
-
- .SH SINOPSE
- .B hostname
-@@ -34,7 +34,7 @@ ypdomainname \- mostra ou configura o nome do dom
- .RB [ \-v ]
- .RB [ \-F\ arquivo ]
- .RB [ \-\-file\ arquivo ]
--.RB [ máquina ]
-+.RB [ máquina ]
-
- .PP
- .B domainname
-@@ -61,11 +61,11 @@ ypdomainname \- mostra ou configura o nome do dom
- .B ypdomainname
- .RB [ \-v ]
-
--.SH DESCRIÇÃO
-+.SH DESCRIÇÃO
- .B hostname
--é o programa usado para configurar ou mostrar o nome corrente da máquina
--ou o domínio do sistema. Este nome é usado por muitos dos programas de
--rede para identificar a máquina. O nome do domínio também é usado pelo
-+é o programa usado para configurar ou mostrar o nome corrente da máquina
-+ou o domínio do sistema. Este nome é usado por muitos dos programas de
-+rede para identificar a máquina. O nome do domínio também é usado pelo
- NIS/YP.
-
- .SS "OBTER NOME"
-@@ -73,119 +73,119 @@ Quando chamado sem argumentos o programa mostra os nomes correntes:
-
- .LP
- .B hostname
--mostrará o nome do sistema conforme retornado pela função
-+mostrará o nome do sistema conforme retornado pela função
- .BR gethostname (2).
-
-
- .LP
- .B "domainname, nisdomainname, ypdomainname"
--mostrará o nome do sistema conforme retornado pela função
-+mostrará o nome do sistema conforme retornado pela função
- .BR getdomainname (2).
--Isto também é conhecido como o nome de domínio YP/NIS do sistema.
-+Isto também é conhecido como o nome de domínio YP/NIS do sistema.
-
- .LP
- .B dnsdomainname
--mostrara a parte do domínio do FQDN (Nome de domínio completamente qualificado).
--O FQDN do sistema é retornado pelo comando
-+mostrara a parte do domínio do FQDN (Nome de domínio completamente qualificado).
-+O FQDN do sistema é retornado pelo comando
- .BR "hostname \-\-fqdn" .
-
- .SS "CONFIGURAR NOME"
--Quando chamado com um argumento ou com a opção
-+Quando chamado com um argumento ou com a opção
- .B \-\-file
--, o comando configura o nome da máquina ou do domínio NIS/YP.
-+, o comando configura o nome da máquina ou do domínio NIS/YP.
-
- .LP
--Note que somente o super usuário pode mudar os nomes.
-+Note que somente o super usuário pode mudar os nomes.
-
- .LP
--Nao é possível configurar o FQDN ou o nome do domínio DNS com o comando
-+Nao é possível configurar o FQDN ou o nome do domínio DNS com o comando
- .B dnsdomainname
- (veja
- .B "O FQDN"
- abaixo).
-
- .LP
--O nome da máquina é normalmente configurado durante a inicialização do sistema,
-+O nome da máquina é normalmente configurado durante a inicialização do sistema,
- em
- .I /etc/rc.d/rc.inet1
- ou
- .I /etc/init.d/boot
--(normalmente lendo o conteúdo de um arquivo que contém o nome da máquina, ex.:
-+(normalmente lendo o conteúdo de um arquivo que contém o nome da máquina, ex.:
- .IR /etc/hostname ).
-
- .SS O FQDN
--Você não pode mudar o FQDN (conforme retornado por
-+Você não pode mudar o FQDN (conforme retornado por
- .BR "hostname \-\-fqdn" )
--ou o nome do domínio DNS (conforme retornado por
-+ou o nome do domínio DNS (conforme retornado por
- .BR "dnsdomainname" )
--com este comando. O FQDN do sistema é o nome que o
-+com este comando. O FQDN do sistema é o nome que o
- .BR resolver (3)
--retorna para o nome da máquina.
-+retorna para o nome da máquina.
-
- .LP
--Tecnicamente: O FQDN é o nome retornado pelo
-+Tecnicamente: O FQDN é o nome retornado pelo
- .BR gethostbyname (2)
- para o nome retornado pelo
- .BR gethostname (2).
--O nome do domínio DNS é a parte após o primeiro ponto.
-+O nome do domínio DNS é a parte após o primeiro ponto.
- .LP
--Portanto isto depende da configuração (normalmente em
-+Portanto isto depende da configuração (normalmente em
- .IR /etc/host.conf )
--para que você possa mudá-lo. Normalmente (se o arquivo hosts for lido antes
--do DNS ou NIS) você pode mudá-lo em
-+para que você possa mudá-lo. Normalmente (se o arquivo hosts for lido antes
-+do DNS ou NIS) você pode mudá-lo em
- .IR /etc/hosts .
-
-
--.SH OPÇÕES
-+.SH OPÇÕES
- .TP
- .I "\-a, \-\-alias"
--Mostra o alias da máquina (se usado).
-+Mostra o alias da máquina (se usado).
- .TP
- .I "\-d, \-\-domain"
--Mostra o nome do domínio DNS. Não use o comando
-+Mostra o nome do domínio DNS. Não use o comando
- .B domainname
--para obter o nome do domínio DNS porque ele mostrará o nome do domínio NIS e
--não o nome do domínio DNS. Use
-+para obter o nome do domínio DNS porque ele mostrará o nome do domínio NIS e
-+não o nome do domínio DNS. Use
- .BR dnsdomainname .
- .TP
- .I "\-F, \-\-file arquivo"
--Leia o nome da máquina a partir do arquivo especificado. Comentários (linhas
--começando com um `#') são ignorados.
-+Leia o nome da máquina a partir do arquivo especificado. Comentários (linhas
-+começando com um `#') são ignorados.
- .TP
- .I "\-f, \-\-fqdn, \-\-long"
--Mostra o FQDN (Nome de Domínio Completamente Qualificado). Um FQDN consiste de
--um nome curto de máquina e do nome do domínio DNS. A menos que você esteja
--usando bind ou NIS para resolução de nomes você pode mudar o FQDN e o nome
--do domínio DNS (que é parte do FQDN) no arquivo \fI/etc/hosts\fR.
-+Mostra o FQDN (Nome de Domínio Completamente Qualificado). Um FQDN consiste de
-+um nome curto de máquina e do nome do domínio DNS. A menos que você esteja
-+usando bind ou NIS para resolução de nomes você pode mudar o FQDN e o nome
-+do domínio DNS (que é parte do FQDN) no arquivo \fI/etc/hosts\fR.
- .TP
- .I "\-h, \-\-help"
- Mostra uma mensagem sobre como utilizar o comando e termina.
- .TP
- .I "\-i, \-\-ip-address"
--Mostra o(s) endereço(s) IP da máquina.
-+Mostra o(s) endereço(s) IP da máquina.
- .TP
- .I "\-s, \-\-short"
--Mostra o nome curto da máquina. É o nome da máquina até o primeiro ponto.
-+Mostra o nome curto da máquina. É o nome da máquina até o primeiro ponto.
- .TP
- .I "\-V, \-\-version"
--Mostra informação de versão na saída padrão e termina com sucesso.
-+Mostra informação de versão na saída padrão e termina com sucesso.
- .TP
- .I "\-v, \-\-verbose"
--Mostra uma saída detalhada do que está acontecendo.
-+Mostra uma saída detalhada do que está acontecendo.
- .TP
- .I "\-y, \-\-yp, \-\-nis"
--Mostra o nome do domínio NIS. Se um parâmetro for especificado (ou
-+Mostra o nome do domínio NIS. Se um parâmetro for especificado (ou
- .B \-\-file arquivo
--) então o root também pode configurar um novo domínio NIS.
-+) então o root também pode configurar um novo domínio NIS.
- .SH ARQUIVOS
- .B /etc/hosts
- .SH AUTOR
- Peter Tobias, <tobias@et-inf.fho-emden.de>
- .BR
--Bernd Eckenfels, <net-tools@lina.inka.de> (NIS e página man).
-+Bernd Eckenfels, <net-tools@lina.inka.de> (NIS e página man).
- .BR
--Arnaldo Carvalho de Melo, <acme@conectiva.com.br> Tradução para a língua
-+Arnaldo Carvalho de Melo, <acme@conectiva.com.br> Tradução para a língua
- portuguesa.
- .BR
--Jorge Luiz Godoy Filho, <jorge@bestway.com.br> Revisão.
-+Jorge Luiz Godoy Filho, <jorge@bestway.com.br> Revisão.
- .BR
-diff --git a/man/pt_BR/ifconfig.8 b/man/pt_BR/ifconfig.8
-index 0a97683..1432dc5 100644
---- a/man/pt_BR/ifconfig.8
-+++ b/man/pt_BR/ifconfig.8
-@@ -4,13 +4,13 @@ ifconfig \- configura uma interface de rede
- .SH SINOPSE
- .B "ifconfig [interface]"
- .br
--.B "ifconfig interface [aftype] opções | endereços ..."
--.SH DESCRIÇÃO
-+.B "ifconfig interface [aftype] opções | endereços ..."
-+.SH DESCRIÇÃO
- .B ifconfig
--é usado para configurar (e posteriormente manter) as interfaces de
--rede. É usado durante o boot para configurar a maioria delas para
--um estado usável. Depois disto, é normalmente somente necessário
--durante depurações ou quando for necessária uma configuração fina
-+é usado para configurar (e posteriormente manter) as interfaces de
-+rede. É usado durante o boot para configurar a maioria delas para
-+um estado usável. Depois disto, é normalmente somente necessário
-+durante depurações ou quando for necessária uma configuração fina
- do sistema.
- .LP
- Se nenhum argumento for informado,
-@@ -19,12 +19,12 @@ somente mostra o estado das interfaces correntemente definidas. Se
- um argumento
- .B interface
- for informado, ele mostra somente o estado da interface informada. De
--outra forma ele assume que os parâmetros devem ser configurados.
--.SH Famílias de Endereçamento
--Se o primeiro argumento após o nome da interface for reconhecido
--como um nome de uma família de endereçamento suportada, esta família
--de endereçamento é usada na decodificação e apresentação de todos
--os endereços de protocolos. Atualmente as famílias de endereçamento
-+outra forma ele assume que os parâmetros devem ser configurados.
-+.SH Famílias de Endereçamento
-+Se o primeiro argumento após o nome da interface for reconhecido
-+como um nome de uma família de endereçamento suportada, esta família
-+de endereçamento é usada na decodificação e apresentação de todos
-+os endereços de protocolos. Atualmente as famílias de endereçamento
- suportadas incluem
- .B inet
- (TCP/IP, default)
-@@ -36,95 +36,91 @@ suportadas incluem
- (Novell IPX) and
- .B netrom
- (AMPR Packet radio).
--.SH OPÇÕES
-+.SH OPÇÕES
- .TP
- .B interface
--O nome da interface de rede. Usualmente é um nome como
-+O nome da interface de rede. Usualmente é um nome como
- .B eth0
- ,
- .B sl3
- ou algo parecido: um nome de driver de dispositivo seguido por um
--número.
-+número.
- .TP
- .B up
--Esta flag causa a ativação da interface. É especificada
--implicitamente se a interface receber um novo endereço (veja
-+Esta flag causa a ativação da interface. É especificada
-+implicitamente se a interface receber um novo endereço (veja
- abaixo).
- .TP
- .B down
--Esta flag desativa o driver desta interface, é útil quando alguma
--coisa começar a ter problemas.
-+Esta flag desativa o driver desta interface, é útil quando alguma
-+coisa começar a ter problemas.
- .TP
- .B "[\-]arp"
- Habilita ou desabilita o uso do protocolo ARP para esta interface. Se
--o sinal de menos (\-) estiver presente a opção é desligada.
-+o sinal de menos (\-) estiver presente a opção é desligada.
- .TP
- .B "[\-]trailers"
--Habilita ou desabilita o uso de trailer em frames Ethernet. Não é
--utilizada na implementação atual do pacote net-tools.
-+Habilita ou desabilita o uso de trailer em frames Ethernet. Não é
-+utilizada na implementação atual do pacote net-tools.
- .TP
- .B "[\-]allmulti"
- Habilita ou desabilita o modo
- .B promiscuous
--da interface. Isto significa que todos os frames passarão pela camada
--de rede do kernel, permitindo monitoração da rede.
--.TP
--.B "metric N"
--Este parâmetro configura a métrica da interface. Não é usado atualmente,
--mas será implementado no futuro.
-+da interface. Isto significa que todos os frames passarão pela camada
-+de rede do kernel, permitindo monitoração da rede.
- .TP
- .B "mtu N"
--Este parâmetro configura a Unidade Máxima de Transferência (MTU) de uma
--interface. Para Ethernet é um número entre 1000-2000 (o padrão é
--1500). Para SLIP, use algo entre 200 e 4096. Note que a implementação
--atual não manipula fragmentação IP ainda, então é melhor configurar
-+Este parâmetro configura a Unidade Máxima de Transferência (MTU) de uma
-+interface. Para Ethernet é um número entre 1000-2000 (o padrão é
-+1500). Para SLIP, use algo entre 200 e 4096. Note que a implementação
-+atual não manipula fragmentação IP ainda, então é melhor configurar
- a MTU com um tamanho adequado!
- .TP
- .B "dstaddr addr"
--Configura o endereço IP do "outro lado" no caso de um link Ponto-A-Ponto,
-+Configura o endereço IP do "outro lado" no caso de um link Ponto-A-Ponto,
- como PPP. Esta palavra-chave tornou-se obsoleta e deve ser usada a nova
- palavra-chave
- .BR pointopoint .
- .TP
- .B "netmask addr"
--Configura a máscara de rede IP para esta interface. Este valor assume o
--padrão usual das classes A, B ou C (deduzindo-o a partir do endereço
-+Configura a máscara de rede IP para esta interface. Este valor assume o
-+padrão usual das classes A, B ou C (deduzindo-o a partir do endereço
- IP da interface), mas pode ser configurado para qualquer valor para o
- uso de sub-redes.
-
- .TP
- .B "irq addr"
--Configura a linha de interrupção (IRQ) usada por este dispositivo. Muitos
--dispositivos não suportam configuração dinâmica de IRQ.
-+Configura a linha de interrupção (IRQ) usada por este dispositivo. Muitos
-+dispositivos não suportam configuração dinâmica de IRQ.
- .TP
--.B "[-]broadcast [endereço]"
--Se o argumento endereço for informado, configura o endereço de protocolo
-+.B "[-]broadcast [endereço]"
-+Se o argumento endereço for informado, configura o endereço de protocolo
- broadcast para esta interface. De outra forma ele somente configura a flag
- .B IFF_BROADCAST
- da interface. Se a palavra-chave for precedida por um sinal de menos
- .B (-)
--, então a flag é removida.
-+, então a flag é removida.
- .TP
--.B "[-]pointopoint [endereço]"
-+.B "[-]pointopoint [endereço]"
- Esta palavra-chave habilita o modo
- .B ponto-a-ponto
--da interface, significando que ela é um link direto entre duas máquinas
--sem ninguém ouvindo (ou, pelo menos nós esperamos que este seja o caso
-+da interface, significando que ela é um link direto entre duas máquinas
-+sem ninguém ouvindo (ou, pelo menos nós esperamos que este seja o caso
- :-)
- .BR
--Se o argumento endereço for informado, configura o endereço de protocolo
-+Se o argumento endereço for informado, configura o endereço de protocolo
- do outro lado do link, exatamente como a palavra-chave obsoleta
- .B dstaddr
- faz. De outra forma, ela somente configura a flag
- .B IFF_POINTOPOINT
- da interface. Se a palavra-chave for precedida por um sinal de menos
- .B (-)
--, então a flag é removida.
-+, então a flag é removida.
- .TP
- .B "hw"
--Configura o endereço de hardware para esta interface, se o driver do
--dispositivo suportar esta operação. A palavra-chave deve ser seguida
--pelo nome da classe do hardware e o equivalente em ASCII do endereço
-+Configura o endereço de hardware para esta interface, se o driver do
-+dispositivo suportar esta operação. A palavra-chave deve ser seguida
-+pelo nome da classe do hardware e o equivalente em ASCII do endereço
- de hardware. As classes de hardware atualmente suportadas incluem
- .B ether
- (Ethernet),
-@@ -136,45 +132,34 @@ e
- (AMPR NET/ROM).
- .TP
- .B multicast
--Inicializa a flag de multicast para a interface. Normalmente, isto não será
--necessário já que os drivers ajustam as flags corretas por si só.
-+Inicializa a flag de multicast para a interface. Normalmente, isto não será
-+necessário já que os drivers ajustam as flags corretas por si só.
- .TP
--.B endereço
--O nome ou endereço IP da máquina (um nome de máquina será traduzido para
--um endereço IP) da interface. Este parâmetro é necessário, apesar
--da sintaxe atualmente não requisitá-lo.
-+.B endereço
-+O nome ou endereço IP da máquina (um nome de máquina será traduzido para
-+um endereço IP) da interface. Este parâmetro é necessário, apesar
-+da sintaxe atualmente não requisitá-lo.
- .SH NOTAS
--
--+Since kernel release 2.2 there are no explicit interface statistics for
--+alias interfaces anymore. The statistics printed for the original address
--+are shared with all alias addresses on the same device. If you want per-address
--+statistics you should add explicit accounting
--+rules for the address using the
--+.BR ipchains(8)
--+command.
--
--Deste o kernel 2.2 não existem mais estatísticas explícitas para os apelidos (aliases)
--de interfaces. As estatísticas mostradas para o endereço original são compartilhadas
--como todos os endereços associados ao mesmo dispositivo. Se desejar estatísticas
--por endereço você deve explicitamente adicionar regras de contabilização para os
--endereços usando o comando
--.BR ipchains(8)
-+Deste o kernel 2.2 não existem mais estatísticas explícitas para os apelidos (aliases)
-+de interfaces. As estatísticas mostradas para o endereço original são compartilhadas
-+como todos os endereços associados ao mesmo dispositivo. Se desejar estatísticas
-+por endereço você deve explicitamente adicionar regras de contabilização para os
-+endereços usando o comando
-+.BR iptables(8)
- .
-
- .SH ARQUIVOS
--.I /proc/net/socket
--.br
- .I /proc/net/dev
- .SH BUGS
--Os endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados
-+Os endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados
- com este comando.
--.SH VEJA TAMBÉM
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
-+.SH VEJA TAMBÉM
-+route(8), netstat(8), arp(8), rarp(8), iptables(8)
- .SH AUTORES
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- Alan Cox, <Alan.Cox@linux.org>
--.SH TRADUÇÃO E REVISÃO PARA A LÍNGUA PORTUGUESA
--Arnaldo Carvalho de Melo <acme@conectiva.com.br> (tradução)
-+.SH TRADUÇÃO E REVISÃO PARA A LÃNGUA PORTUGUESA
-+Arnaldo Carvalho de Melo <acme@conectiva.com.br> (tradução)
- .BR
--Jorge Luiz Godoy Filho <jorge@bestway.com.br> (revisão)
-+Jorge Luiz Godoy Filho <jorge@bestway.com.br> (revisão)
-
-diff --git a/man/pt_BR/netstat.8 b/man/pt_BR/netstat.8
-index b9b359a..1903bbb 100644
---- a/man/pt_BR/netstat.8
-+++ b/man/pt_BR/netstat.8
-@@ -5,13 +5,13 @@
- .\"
- .\" Modificado por: Bernd.Eckenfels@inka.de
- .\" Modificado por: Andi Kleen ak@muc.de
--.\" Traduzido para português por Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-+.\" Traduzido para português por Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- .\" Revisado por Jorge Luiz Godoy Filho <jorge@bestway.com.br>
- .\"
--.TH NETSTAT 8 "19 de maio de 1997" "net-tools" "Manual do Programador Linux"
-+.TH NETSTAT 8 "2007-12-02" "net-tools" "Manual do Programador Linux"
-
- .SH NOME
--netstat \- Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões
-+netstat \- Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões
- mascaradas.
- .SH SINOPSE
-
-@@ -63,90 +63,90 @@ mascaradas.
- .RB { \-h | \-\-help }
-
- .PP
--.SH DESCRIÇÃO
-+.SH DESCRIÇÃO
- .B netstat
--mostra informações do subsistema de rede do Linux.
-+mostra informações do subsistema de rede do Linux.
-
--.SS "(sem opções)"
--Você pode ver o estado das conexões de rede através da listagem dos sockets
--abertos. Esta é a operação padrão: se você não especificar nenhuma
--família de endereços, os sockets ativos de todas as famílias de endereços
--configuradas serão mostrados. Com
-+.SS "(sem opções)"
-+Você pode ver o estado das conexões de rede através da listagem dos sockets
-+abertos. Esta é a operação padrão: se você não especificar nenhuma
-+família de endereços, os sockets ativos de todas as famílias de endereços
-+configuradas serão mostrados. Com
- .B -e
--você obterá informações adicionais (userid). Com a chave
-+você obterá informações adicionais (userid). Com a chave
- .B -v
--você poderá fazer com que o netstat reclame sobre famílias de endereços
--conhecidas que não sejam suportadas pelo kernel. A opção
-+você poderá fazer com que o netstat reclame sobre famílias de endereços
-+conhecidas que não sejam suportadas pelo kernel. A opção
- .B -o
--mostra algumas informações adicionais sobre temporizadores de rede.
-+mostra algumas informações adicionais sobre temporizadores de rede.
- .B -a
--mostra todos os sockets, incluindo sockets de servidores. A família de
--endereços
-+mostra todos os sockets, incluindo sockets de servidores. A família de
-+endereços
- .B inet
--mostrará sockets raw, udp e tcp.
-+mostrará sockets raw, udp e tcp.
-
- .SS "\-r, \-\-route"
--Com a opção
-+Com a opção
- .BR \-r ", " \-\-route
--você obterá as tabelas de roteamento do kernel no mesmo formato usado por
-+você obterá as tabelas de roteamento do kernel no mesmo formato usado por
- .BR "route -e" .
- .B "netstat -er"
--usará o formato de apresentação do comando
-+usará o formato de apresentação do comando
- .BR route .
- Por favor veja
- .BR route (8)
- para maiores detalhes.
-
--.SS "\-i, \-\-interface \fIiface\fI"
--Se você usar a opção
-+.SS "\-i, \-\-interfaces \fIiface\fI"
-+Se você usar a opção
- .BR -i ", " --interfaces
- , uma tabela de todas (ou da
- .IR iface
--especificada) as interfaces de rede será mostrada. A saída usa o formato
-+especificada) as interfaces de rede será mostrada. A saída usa o formato
- .B "ifconfig -e"
--, e é descrita em
-+, e é descrita em
- .BR ifconfig (8).
- .B "netstat -ei"
--mostrará uma tabela ou uma entrada de interface como
-+mostrará uma tabela ou uma entrada de interface como
- .B ifconfig
- mostra. Com a chave
- .B -a
--, você pode incluir interfaces que não estejam configuradas (i.e. não tem
-+, você pode incluir interfaces que não estejam configuradas (i.e. não tem
- a flag
- .BR U = UP
- configurada).
-
- .SS "\-M, \-\-masquerade"
-
--Uma lista de todas as sessões mascaradas também pode ser vista. Com a chave
-+Uma lista de todas as sessões mascaradas também pode ser vista. Com a chave
- .B -e
--você pode incluir mais algumas informações sobre numeração sequencial e deltas
--, causados por reescritas de dados em sessões FTP (comando PORT).
--O suporte a mascaramento é usado para esconder máquinas em endereços de
--rede não oficiais do resto do mundo, como descrito em
--.BR ipfw (4), ipfwadm "(8) e ipfw (8).
-+você pode incluir mais algumas informações sobre numeração sequencial e deltas
-+, causados por reescritas de dados em sessões FTP (comando PORT).
-+O suporte a mascaramento é usado para esconder máquinas em endereços de
-+rede não oficiais do resto do mundo, como descrito em
-+.BR iptables (8).
-
- .SS "\-s, \-\-statistics"
-
--Mostra estatísticas sobre o subsistema de rede do kernel do Linux, que
--são lidas a partir de
-+Mostra estatísticas sobre o subsistema de rede do kernel do Linux, que
-+são lidas a partir de
- .IR /proc/net/snmp .
-
- .PP
--.SH OPÇÕES
-+.SH OPÇÕES
- .SS "\-v, \-\-verbose"
--Informa ao usuário o que está ocorrendo, sendo detalhado. Especialmente
--mostra algumas informações úteis sobre famílias de endereços não
-+Informa ao usuário o que está ocorrendo, sendo detalhado. Especialmente
-+mostra algumas informações úteis sobre famílias de endereços não
- configuradas.
-
- .SS "\-n, \-\-numeric"
--Mostra endereços numéricos, sem tentar resolver os nomes da máquina, porta ou
--usuário.
-+Mostra endereços numéricos, sem tentar resolver os nomes da máquina, porta ou
-+usuário.
-
--.SS "\-A, \-\-af \fIfamília\fI"
--Usa um método diferente para configurar as famílias de endereços.
--.I família
--é uma lista de palavras-chave de famílias de endereços separadas por vírgulas
-+.SS "\-A, \-\-af \fIfamília\fI"
-+Usa um método diferente para configurar as famílias de endereços.
-+.I família
-+é uma lista de palavras-chave de famílias de endereços separadas por vírgulas
- (',') como
- .BR inet ,
- .BR unix ,
-@@ -155,7 +155,7 @@ Usa um m
- .B netrom
- e
- .BR ddp .
--Tem o mesmo efeito de usar as opções longas
-+Tem o mesmo efeito de usar as opções longas
- .BR \-\-inet ,
- .BR \-\-unix ,
- .BR \-\-ipx ,
-@@ -165,99 +165,99 @@ e
- .BR \-\-ddp.
-
- .SS "\-c, \-\-continuous"
--Isto fará com que
-+Isto fará com que
- .B netstat
--mostre a tabela selecionada a cada segundo, continuamente na tela até que
--você o interrompa.
-+mostre a tabela selecionada a cada segundo, continuamente na tela até que
-+você o interrompa.
-
- .PP
--.SH SAÍDA
-+.SH SAÃDA
-
- .PP
--.SS Conexões Internet Ativas \fR(TCP, UDP, RAW)\fR
-+.SS Conexões Internet Ativas \fR(TCP, UDP, RAW)\fR
-
- .SS "Proto"
- O protocolo (tcp, udp, raw) usado pelo socket.
-
- .SS "Recv-Q"
--O contador de bytes não copiados pelo programa conectado a este socket.
-+O contador de bytes não copiados pelo programa conectado a este socket.
-
- .SS "Send-Q"
--O contador de bytes não confirmados pela máquina remota.
-+O contador de bytes não confirmados pela máquina remota.
-
--.SS "Endereço Local"
--O endereço local (nome da máquina local) e o numero da porta do socket. A menos
-+.SS "Endereço Local"
-+O endereço local (nome da máquina local) e o numero da porta do socket. A menos
- que a chave
- .B -n
--seja especificada o endereço do socket será resolvido para seu nome de máquina
--canônico e o número da porta será traduzido para o serviço correspondente.
-+seja especificada o endereço do socket será resolvido para seu nome de máquina
-+canônico e o número da porta será traduzido para o serviço correspondente.
-
--.SS "Endereço Remoto"
--O endereço remoto (nome da máquina remota) e o número da porta do socket. Como
--com o endereço local, a chave
-+.SS "Endereço Remoto"
-+O endereço remoto (nome da máquina remota) e o número da porta do socket. Como
-+com o endereço local, a chave
- .B -n
--desliga a resolução do nome da máquina e do serviço.
-+desliga a resolução do nome da máquina e do serviço.
-
- .SS "Estado"
--O estado do socket. Uma vez que não existem estados no modo RAW e normalmente
--nenhum estado é usado em UDP, esta linha pode ser deixada em branco. Normalmente
--ele pode assumir um de vários valores:
-+O estado do socket. Uma vez que não existem estados no modo RAW e normalmente
-+nenhum estado é usado em UDP, esta linha pode ser deixada em branco. Normalmente
-+ele pode assumir um de vários valores:
- .TP
- .I
- ESTABELECIDO
--O socket tem uma conexão estabelecida.
-+O socket tem uma conexão estabelecida.
- .TP
- .I
- SYN_SENT
--O socket está ativamente tentando estabelecer uma conexão.
-+O socket está ativamente tentando estabelecer uma conexão.
- .TP
- .I
- SYN_RECV
--Uma requisição de conexão foi recebida da rede.
-+Uma requisição de conexão foi recebida da rede.
- .TP
- .I
- FIN_WAIT1
--O socket está fechado e a conexão está terminando.
-+O socket está fechado e a conexão está terminando.
- .TP
- .I
- FIN_WAIT2
--A conexão está fechada e o socket está esperando por uma terminação pela
--máquina remota.
-+A conexão está fechada e o socket está esperando por uma terminação pela
-+máquina remota.
- .TP
- .I
- TIME_WAIT
--O socket está esperando após o fechamento para tratar os pacotes ainda na rede.
-+O socket está esperando após o fechamento para tratar os pacotes ainda na rede.
- .TP
- .I
- FECHADO
--O socket não está sendo usado.
-+O socket não está sendo usado.
- .TP
- .I
- CLOSE_WAIT
- O lado remoto terminou, esperando pelo fechamento do socket.
- .TP
- .I
--ÚLTIMO_ACK
--O lado remoto terminou, e o socket está fechado. Esperando por uma
--confirmação.
-+ÚLTIMO_ACK
-+O lado remoto terminou, e o socket está fechado. Esperando por uma
-+confirmação.
- .TP
- .I
- OUVINDO
--O socket está ouvindo por conexões. Estes socket são somente mostrados se
-+O socket está ouvindo por conexões. Estes socket são somente mostrados se
- a chave
- .BR -a , --listening
- for especificada.
- .TP
- .I
- FECHANDO
--Ambos os sockets estão terminados mas nós ainda não enviamos todos os nossos
-+Ambos os sockets estão terminados mas nós ainda não enviamos todos os nossos
- dados.
- .TP
- .I
- DESCONHECIDO
--O estado do socket é desconhecido.
-+O estado do socket é desconhecido.
-
--.SS "Usuário"
-+.SS "Usuário"
- O nome ou UID do dono do socket.
-
- .SS "Temporizador"
-@@ -272,198 +272,195 @@ O nome ou UID do dono do socket.
- O protocolo (normalmente unix) usado pelo socket.
-
- .SS "CntRef"
--O contador de referências (i.e. processos conectados via este socket).
-+O contador de referências (i.e. processos conectados via este socket).
-
- .SS "Flags"
--As flags mostradas são SO_ACCEPTON (mostrada como
-+As flags mostradas são SO_ACCEPTON (mostrada como
- .BR ACC ),
- SO_WAITDATA
- .RB ( W )
- ou SO_NOSPACE
- .RB ( N ).
- SO_ACCECPTON
--é usada para sockets não-conectados se seus processos correspondentes
--estiverem esperando por uma solicitação de conexão. As demais flags não
--são de interesse comum.
-+é usada para sockets não-conectados se seus processos correspondentes
-+estiverem esperando por uma solicitação de conexão. As demais flags não
-+são de interesse comum.
-
- .SS "Tipos"
--Há diversos tipos de acesso a sockets:
-+Há diversos tipos de acesso a sockets:
- .TP
- .I
- SOCK_DGRAM
--O socket é usado no modo de Datagramas (sem conexão).
-+O socket é usado no modo de Datagramas (sem conexão).
- .TP
- .I
- SOCK_STREAM
--É um socket usado quando há conexões (stream socket).
-+É um socket usado quando há conexões (stream socket).
- .TP
- .I
- SOCK_RAW
--É usado como o socket básico (raw socket).
-+É usado como o socket básico (raw socket).
- .TP
- .I
- SOCK_RDM
--Este é usado para confirmação de entrega de mensagens.
-+Este é usado para confirmação de entrega de mensagens.
- .TP
- .I
- SOCK_SEQPACKET
--É um socket para um pacote sequencial.
-+É um socket para um pacote sequencial.
- .TP
- .I
- SOCK_PACKET
--Socket para acesso da interface BÁSICA.
-+Socket para acesso da interface BÃSICA.
- .TP
- .I
- UNKNOWN
--Quem sabe o que nos trará o futuro? Preencha aqui :-)
-+Quem sabe o que nos trará o futuro? Preencha aqui :-)
-
- .PP
- .SS "Estados"
--Este campo conterá uma das seguintes palavras-chave:
-+Este campo conterá uma das seguintes palavras-chave:
- .TP
- .I
- FREE
--Este socket não está alocado.
-+Este socket não está alocado.
- .TP
- .I
- LISTENING
--O socket está aguardando por uma solicitação de conexão. São mostrados
--apenas se as opções
-+O socket está aguardando por uma solicitação de conexão. São mostrados
-+apenas se as opções
- .BR -a , --listening
- forem selecionadas.
- .TP
- .I
- CONNECTING
--O socket está por estabelecer uma conexão.
-+O socket está por estabelecer uma conexão.
- .TP
- .I
- CONNECTED
--O socket está conectado.
-+O socket está conectado.
- .TP
- .I
- DISCONNECTING
--O socket está desconectado.
-+O socket está desconectado.
- .TP
- .I
- (nada)
--O socket não está conectado a nenhum outro.
-+O socket não está conectado a nenhum outro.
- .TP
- .I
- UNKNOWN
--Isto não deve acontecer nunca.
-+Isto não deve acontecer nunca.
-
- .SS "Path"
--Mostra o caminho (path) do processo do qual está tratando esse socket.
-+Mostra o caminho (path) do processo do qual está tratando esse socket.
-
- .PP
- .SS Sockets IPX ativos
-
--(Isso precisa ser feito por alguém que saiba fazê-lo.)
-+(Isso precisa ser feito por alguém que saiba fazê-lo.)
-
- .PP
- .SS Sockets NET/ROM ativos
-
--(Isso precisa ser feito por alguém que saiba fazê-lo.)
-+(Isso precisa ser feito por alguém que saiba fazê-lo.)
-
- .PP
- .SS Sockets AX.25 ativos
-
--(Isso precisa ser feito por alguém que saiba fazê-lo.)
-+(Isso precisa ser feito por alguém que saiba fazê-lo.)
-
- .PP
- .SH NOTAS
--Desde o kernel 2.2 o netstat -i não mostra estatísticas para apelidos (aliases)
--de interfaces. Para obter contadores por apelido de interface você precisa
--configurar regras explícitas usando o comando
--+.BR ipchains(8)
-+Desde o kernel 2.2 o netstat -i não mostra estatísticas para apelidos (aliases)
-+de interfaces. Para obter contadores por apelido de interface você precisa
-+configurar regras explícitas usando o comando
-++.BR iptables(8)
- .
- .SH FILES
- .ta
- .I /etc/services
---- O arquivo de "tradução" (correspondência) entre socket e serviço.
-+-- O arquivo de "tradução" (correspondência) entre socket e serviço.
-
- .I /proc/net/dev
---- Informações de dispositivos.
-+-- Informações de dispositivos.
-
- .I /proc/net/snmp
---- Estatísticas da rede.
-+-- Estatísticas da rede.
-
- .I /proc/net/raw
---- Informação sobre o socket BÁSICO (RAW).
-+-- Informação sobre o socket BÃSICO (RAW).
-
- .I /proc/net/tcp
---- Informação sobre o socket TCP.
-+-- Informação sobre o socket TCP.
-
- .I /proc/net/udp
---- Informação sobre o socket UDP.
-+-- Informação sobre o socket UDP.
-
- .I /proc/net/unix
---- Informação sobre o socket de domínio Unix.
-+-- Informação sobre o socket de domínio Unix.
-
- .I /proc/net/ipx
---- Informação sobre o socket IPX.
-+-- Informação sobre o socket IPX.
-
- .I /proc/net/ax25
---- Informação sobre o socket AX25.
-+-- Informação sobre o socket AX25.
-
- .I /proc/net/appletalk
---- Informação sobre o socket DDP (Appletalk).
-+-- Informação sobre o socket DDP (Appletalk).
-
- .I /proc/net/nr
---- Informação sobre o socket NET/ROM.
-+-- Informação sobre o socket NET/ROM.
-
- .I /proc/net/route
---- Informação sobre os roteamentos IP realizados pelo kernel
-+-- Informação sobre os roteamentos IP realizados pelo kernel
-
- .I /proc/net/ax25_route
---- Informação sobre os roteamentos AX25 realizados pelo kernel
-+-- Informação sobre os roteamentos AX25 realizados pelo kernel
-
- .I /proc/net/ipx_route
---- Informação sobre os roteamentos IPX realizados pelo kernel
-+-- Informação sobre os roteamentos IPX realizados pelo kernel
-
- .I /proc/net/nr_nodes
---- Lista de nós NET/ROM do kernel
-+-- Lista de nós NET/ROM do kernel
-
- .I /proc/net/nr_neigh
- -- "Vizinhos" NET/ROM do kernel
-
- .I /proc/net/ip_masquerade
---- Conexões mascaradas do kernel
-+-- Conexões mascaradas do kernel
-
- .fi
-
- .PP
--.SH VEJA TAMBÉM
-+.SH VEJA TAMBÉM
- .BR route (8),
- .BR ifconfig (8),
--.BR ipfw (4),
--.BR ipfw (8),
--.BR ipfwadm (8)
--.BR ipchains (8)
-+.BR iptables (8)
-
- .PP
- .SH BUGS
--Ocasionalmente informações estranhas podem surgir se um socket mudar
--enquanto é visualizado. Isso é incomum.
-+Ocasionalmente informações estranhas podem surgir se um socket mudar
-+enquanto é visualizado. Isso é incomum.
- .br
--As opções descritas para
-+As opções descritas para
- .B netstat -i
--foram descritas como deverão funcionar após alguma limpeza da liberação
-+foram descritas como deverão funcionar após alguma limpeza da liberação
- BETA do pacote net-tools.
-
- .PP
- .SH AUTORES
--A interface com o usuário foi escrita por Fred Baumgarten
--<dc6iq@insu1.etec.uni-karlsruhe.de> a página do manual basicamente
-+A interface com o usuário foi escrita por Fred Baumgarten
-+<dc6iq@insu1.etec.uni-karlsruhe.de> a página do manual basicamente
- por Matt Welsh <mdw@tc.cornell.edu>. Foi atualizada por
- Alan Cox <Alan.Cox@linux.org> mas poderia ter sido feita com um pouco
- mais de trabalho.
- .BR
- .LP
--A página do manual e os comandos incluídos no pacote net-tools
-+A página do manual e os comandos incluídos no pacote net-tools
- foram totalmente reescritos desde Bernd Eckenfels
- <ecki@linux.de>.
- .BR
--.SH TRADUÇÃO E REVISÃO PARA PORTUGUÊS
--Traduzido para o português por Arnaldo Carvalho de Melo
-+.SH TRADUÇÃO E REVISÃO PARA PORTUGUÊS
-+Traduzido para o português por Arnaldo Carvalho de Melo
- <acme@conectiva.com.br> e Jorge Luiz Godoy Filho <jorge@bestway.com.br>.
-diff --git a/man/pt_BR/rarp.8 b/man/pt_BR/rarp.8
-index de31931..b19f1b7 100644
---- a/man/pt_BR/rarp.8
-+++ b/man/pt_BR/rarp.8
-@@ -2,30 +2,30 @@
- .SH NOME
- rarp \- manipula a tabela RARP do sistema
- .SH SINOPSE
--.B "rarp [-v] [-t tipo] -a [máquina]"
-+.B "rarp [-v] [-t tipo] -a [máquina]"
- .br
--.B "rarp [-v] -d máquina ..."
-+.B "rarp [-v] -d máquina ..."
- .br
--.B "rarp [-v] [-t tipo] -s máquina endereço_hardware"
--.SH DESCRIÇÃO
-+.B "rarp [-v] [-t tipo] -s máquina endereço_hardware"
-+.SH DESCRIÇÃO
- .B Rarp
--manipula as tabelas RARP do kernel de varias formas. As opções principais
--são limpar uma entrada de mapeamento de endereços e manualmente configurar uma.
--Para propósitos de depuração, o programa
-+manipula as tabelas RARP do kernel de varias formas. As opções principais
-+são limpar uma entrada de mapeamento de endereços e manualmente configurar uma.
-+Para propósitos de depuração, o programa
- .B rarp
--também permite um dump completo da tabela RARP.
--.SH OPÇÕES
-+também permite um dump completo da tabela RARP.
-+.SH OPÇÕES
- .TP
- .B \-v
--Informe o usuário o que esta acontecendo, sendo detalhado.
-+Informe o usuário o que esta acontecendo, sendo detalhado.
- .TP
- .B "\-t tipo"
--quando configurando ou lendo a tabela RARP, este parâmetro opcional informa ao
-+quando configurando ou lendo a tabela RARP, este parâmetro opcional informa ao
- .B rarp
--que classe de entradas devem ser verificadas. O valor default para este parâmetro
--é
-+que classe de entradas devem ser verificadas. O valor default para este parâmetro
-+é
- .B ether
--(i.e. código de hardware
-+(i.e. código de hardware
- .B 0x01
- para
- .B "IEEE 802.3 10Mbps Ethernet".
-@@ -34,31 +34,31 @@ Outros valores podem incluir tecnologias de rede como
- e
- .B NET/ROM (netrom).
- .TP
--.B "\-a [máquina]"
--Mostra as entradas dos máquinas especificadas. Se o
--Mostra as entradas das máquinas especificadas. Se o parâmetro
--.B máquina
--não for usado
-+.B "\-a [máquina]"
-+Mostra as entradas dos máquinas especificadas. Se o
-+Mostra as entradas das máquinas especificadas. Se o parâmetro
-+.B máquina
-+não for usado
- .B todas
--as entradas serão mostradas.
-+as entradas serão mostradas.
- .TP
--.B "\-d máquina"
--Remove a(s) entrada(s) para a máquina especificada. Isto pode ser usado se a
--máquina indicada for desligada, por exemplo.
-+.B "\-d máquina"
-+Remove a(s) entrada(s) para a máquina especificada. Isto pode ser usado se a
-+máquina indicada for desligada, por exemplo.
- .TP
--.B "\-s máquina endereço_hardware"
--Cria um mapeamento de endereços RARP para a máquina
--.B máquina
--com endereço de hardware configurado para
--.B endereço_hardware
--. O formato do endereço de hardware depende da classe do hardware, mas
--para a maioria das classes você pode assumir que a apresentação usual pode
--ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados
-+.B "\-s máquina endereço_hardware"
-+Cria um mapeamento de endereços RARP para a máquina
-+.B máquina
-+com endereço de hardware configurado para
-+.B endereço_hardware.
-+O formato do endereço de hardware depende da classe do hardware, mas
-+para a maioria das classes você pode assumir que a apresentação usual pode
-+ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados
- por dois pontos (:).
--.SH ATENÇÃO
--Alguns arquivos (principalmente Suns velhas) assumem que a máquina respondendo
--ao query ARP também podem oferecer outros serviços de boot remoto. Portanto
--nunca adiciona gratuitamente entradas rarp a menos que deseje encontrar a fúria
-+.SH ATENÇÃO
-+Alguns arquivos (principalmente Suns velhas) assumem que a máquina respondendo
-+ao query ARP também podem oferecer outros serviços de boot remoto. Portanto
-+nunca adiciona gratuitamente entradas rarp a menos que deseje encontrar a fúria
- do administrador da rede.
- .SH ARQUIVOS
- .I /proc/net/rarp,
-@@ -66,5 +66,5 @@ do administrador da rede.
- Ross D. Martin, <martin@trcsun3.eas.asu.edu>
- .br
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
--.SH TRADUÇÃO
-+.SH TRADUÇÃO
- Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998
-diff --git a/man/pt_BR/route.8 b/man/pt_BR/route.8
-index c440974..eb152e2 100644
---- a/man/pt_BR/route.8
-+++ b/man/pt_BR/route.8
-@@ -50,44 +50,44 @@ If]
- .RB [ \--help ]
- .SH DESCRICAO
- .B Route
--manipula a tabela de roteamento IP do kernel. Seu principal uso é
--configurar rotas estáticas para hosts ou redes especificadas através de
--uma interface, após a mesma ter sido configurada com o programa
-+manipula a tabela de roteamento IP do kernel. Seu principal uso é
-+configurar rotas estáticas para hosts ou redes especificadas através de
-+uma interface, após a mesma ter sido configurada com o programa
- .BR ifconfig (8)
- .
-
--.SH OPÇÕES
-+.SH OPÇÕES
- .TP
- .B \-v
--flag para detalhamento (não usada).
-+flag para detalhamento (não usada).
-
- .TP
- .B \-n
--mostra endereços numéricos, sem tentar resolver o nomes simbólicos das
--máquinas. Útil se você esta tentando determinar por que a rota para o seu
-+mostra endereços numéricos, sem tentar resolver o nomes simbólicos das
-+máquinas. Útil se você esta tentando determinar por que a rota para o seu
- servidor de nomes sumiu.
-
- .TP
- .B \-e
- use o formato
- .BR netstat (8)
--na apresentação da tabela de roteamento.
-+na apresentação da tabela de roteamento.
- .B \-ee
--produzira uma linha bem grande com todos os parâmetros da tabela de roteamento.
-+produzira uma linha bem grande com todos os parâmetros da tabela de roteamento.
-
- .TP
- .B \-net
- o
- .B Alvo
--é o endereço de uma rede (encontrado no arquivo
-+é o endereço de uma rede (encontrado no arquivo
- .I /etc/networks
--pela função
-+pela função
- .BR getnetbyname (2)
- ).
-
- .TP
- .B -host
--é o endereço de uma máquina (descoberto com a função
-+é o endereço de uma máquina (descoberto com a função
- .BR gethostbyname (2)
- ).
-
-@@ -110,150 +110,150 @@ adiciona uma rota.
-
- .TP
- .B Alvo
--A máquina ou rede destino. Você pode fornecer endereços IP em formato
--decimal separado por pontos ou nomes de máquinas/redes.
-+A máquina ou rede destino. Você pode fornecer endereços IP em formato
-+decimal separado por pontos ou nomes de máquinas/redes.
-
- .TP
- .B netmask Nm
- modificador para especificar a mascara de rede da rota a ser adicionada.
--Somente faz sentido para uma rota para uma rede e quanto o endereço
-+Somente faz sentido para uma rota para uma rede e quanto o endereço
- .B Alvo
--é valido com relação a mascara especificada. Se nenhuma mascara de rede
-+é valido com relação a mascara especificada. Se nenhuma mascara de rede
- for especificada, o comando
- .B route
--descobre-a, desta forma, para a maioria das configurações normais você não
-+descobre-a, desta forma, para a maioria das configurações normais você não
- precisa especificar uma mascara de rede.
-
- .TP
- .B gw Gw
--Quaisquer pacotes IP para a rede/máquina destino serão roteadas através
-+Quaisquer pacotes IP para a rede/máquina destino serão roteadas através
- do gateway/roteador especificado.
- .B NOTA:
--O gateway especificado deve ser alcançável antes deste comando. Isto
--normalmente significa que você terá que configurar uma rota estática para
--o gateway antes de emitir este comando. Se você especificar o endereço
--de uma de suas interfaces locais, isto será usado para decidir sobre
--qual interface deve ser usada para rotear os pacotes. Isto esta disponível
-+O gateway especificado deve ser alcançável antes deste comando. Isto
-+normalmente significa que você terá que configurar uma rota estática para
-+o gateway antes de emitir este comando. Se você especificar o endereço
-+de uma de suas interfaces locais, isto será usado para decidir sobre
-+qual interface deve ser usada para rotear os pacotes. Isto esta disponível
- para manter compatibilidade com os sistemas baseados em BSD.
-
- .TP
- .B metric M
--Configura o campo de métrica na tabela de roteamento, usado em daemons
--para roteamento dinâmico.
-+Configura o campo de métrica na tabela de roteamento, usado em daemons
-+para roteamento dinâmico.
-
- .TP
- .B mss M
--Especifica o Tamanho Máximo do Segmento TCP em Bytes (MSS) para conexões
--TCP através desta rota. Isto é normalmente usado somente para otimização
--fina de configurações de roteamento.
-+Especifica o Tamanho Máximo do Segmento TCP em Bytes (MSS) para conexões
-+TCP através desta rota. Isto é normalmente usado somente para otimização
-+fina de configurações de roteamento.
-
- .TP
- .B window W
--Especifica o tamanho da janela TCP para conexões TCP através desta rota.
-+Especifica o tamanho da janela TCP para conexões TCP através desta rota.
- Tipicamente somente usado para redes AX.25 e em drivers incapazes de
- de tratar frames back to back.
-
- .TP
- .B irtt I
--Especifica o tempo de ida e volta inicial (irtt) para conexões TCP através
--desta rota. Tipicamente usado somente em redes AX.25. O numero é especificado
--em milisegundos (1-12000). Se omitido o default da RFC 1122 de 300ms é usado.
-+Especifica o tempo de ida e volta inicial (irtt) para conexões TCP através
-+desta rota. Tipicamente usado somente em redes AX.25. O numero é especificado
-+em milisegundos (1-12000). Se omitido o default da RFC 1122 de 300ms é usado.
-
- .TP
- .B reject
--Instala uma rota de bloqueio, que forçará falha na procura por esta rota.
--Exemplo de utilização: bloquear rotas antes do uso da rota default.
--Isto não é firewalling.
-+Instala uma rota de bloqueio, que forçará falha na procura por esta rota.
-+Exemplo de utilização: bloquear rotas antes do uso da rota default.
-+Isto não é firewalling.
-
- .TP
- .B mod, dyn, reinstate
--Instala uma rota modificada ou dinâmica. Ambas as flags são geralmente somente
--configuradas por um daemon de roteamento. Somente para propósitos de diagnostico.
-+Instala uma rota modificada ou dinâmica. Ambas as flags são geralmente somente
-+configuradas por um daemon de roteamento. Somente para propósitos de diagnostico.
-
- .TP
- .B dev If
--Força a associação da rota com o dispositivo especificado, pois o kernel
--de outra forma tentara determinar o dispositivo por conta própria
--(através da checagem de rotas e especificações de dispositivos já existentes
-+Força a associação da rota com o dispositivo especificado, pois o kernel
-+de outra forma tentara determinar o dispositivo por conta própria
-+(através da checagem de rotas e especificações de dispositivos já existentes
- e onde a rota esta adicionada).
-
- If
- .B dev If
--é a última opção na linha de comando, a palavra
-+é a última opção na linha de comando, a palavra
- .B dev
--pode ser omitida, pois é o default. De outra forma a ordem dos outros
--modificadores do route (metric - netmask - gw - dev) não importa.
-+pode ser omitida, pois é o default. De outra forma a ordem dos outros
-+modificadores do route (metric - netmask - gw - dev) não importa.
-
- .SH EXEMPLOS
- .TP
- .B route add -net 127.0.0.0
- Adiciona a entrada para a interface loopback normal, usando mascara igual
--a 255.0.0.0 (rede classe A, determinada a partir do endereço de destino),
-+a 255.0.0.0 (rede classe A, determinada a partir do endereço de destino),
- associada ao dispositivo "lo" (assumindo que este dispositivo tenha sido
- previamente configurado com o
- .BR ifconfig (8)).
-
- .TP
- .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
--Adiciona uma rota para a rede 192.56.76.x através da interface "eth0". O
--modificador de mascara classe C não é realmente necessário aqui por que
--192.* é um endereço IP de classe C. A palavra "dev" pode ser omitida aqui.
-+Adiciona uma rota para a rede 192.56.76.x através da interface "eth0". O
-+modificador de mascara classe C não é realmente necessário aqui por que
-+192.* é um endereço IP de classe C. A palavra "dev" pode ser omitida aqui.
-
- .TP
- .B route add default gw mango-gw
--Adiciona uma rota default (que será usada se nenhuma outra rota for encontrada).
--Todos os pacotes que usarem esta rota serão passados para a máquina "mango-gw".
--O dispositivo que será utilizado para esta rota depende de como é possível
--alcançar "mango-gw" - a rota estática para "mango-gw" terá que ser configurada
-+Adiciona uma rota default (que será usada se nenhuma outra rota for encontrada).
-+Todos os pacotes que usarem esta rota serão passados para a máquina "mango-gw".
-+O dispositivo que será utilizado para esta rota depende de como é possível
-+alcançar "mango-gw" - a rota estática para "mango-gw" terá que ser configurada
- previamente.
-
- .TP
- .B route add ipx4 sl0
--Adiciona uma rota para a máquina "ipx4" através da interface SLIP (assumindo
--que "ipx4" é a máquina SLIP).
-+Adiciona uma rota para a máquina "ipx4" através da interface SLIP (assumindo
-+que "ipx4" é a máquina SLIP).
-
- .TP
- .B route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
--Este comando adiciona a rede "192.57.66.x" para ser alcançada através da
--rota anterior através da interface SLIP.
-+Este comando adiciona a rede "192.57.66.x" para ser alcançada através da
-+rota anterior através da interface SLIP.
-
- .TP
- .B route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
--Isto é bem obscura, documentada para que as pessoas saibam como usá-la.
--Configura para que todas as rotas IP classe D (multicast) vão através da
--interface "eth0". Esta é a linha de configuração normal a ser usada com
-+Isto é bem obscura, documentada para que as pessoas saibam como usá-la.
-+Configura para que todas as rotas IP classe D (multicast) vão através da
-+interface "eth0". Esta é a linha de configuração normal a ser usada com
- um kernel multicast.
-
- .TP
- .B route add 10.0.0.0 netmask 255.0.0.0 reject
--Esta instala uma rota de rejeição para a rede privada "10.x.x.x"
-+Esta instala uma rota de rejeição para a rede privada "10.x.x.x"
-
- .LP
--.SH SAÍDA
--A saída da tabela de roteamento do kernel é organizada nas seguintes colunas
-+.SH SAÃDA
-+A saída da tabela de roteamento do kernel é organizada nas seguintes colunas
- .TP
- .B Destino
--A rede ou máquina de destino.
-+A rede ou máquina de destino.
- .TP
- .B Roteador
--A máquina roteador ou '*' se nenhuma estiver configurada.
-+A máquina roteador ou '*' se nenhuma estiver configurada.
- .TP
--.B Mascara Genérica
--A mascara para a rede destino. '255.255.255.255' para uma máquina de destino,
--'0.0.0.0' para a rota
-+.B Mascara Genérica
-+A mascara para a rede destino. '255.255.255.255' para uma máquina de
-+destino, '0.0.0.0' para a rota
- .B default
- .
- .TP
- .B Flags
--Os flags possíveis são
-+Os flags possíveis são
- .br
- .B U
- (rota esta
- .BR Up )
- .br
- .B H
--(alvo é uma
--.BR máquina )
-+(alvo é uma
-+.BR máquina )
- .br
- .B G
- (use
-@@ -261,7 +261,7 @@ Os flags poss
- .br
- .B R
- .RB ( reinstate
--rota para roteamento dinâmico)
-+rota para roteamento dinâmico)
- .br
- .B D
- Instalada
-@@ -278,29 +278,29 @@ Rota
- )
- .TP
- .B Metric
--A 'distância' até o alvo (geralmente contada em hops). Não é utilizada pelos
-+A 'distância' até o alvo (geralmente contada em hops). Não é utilizada pelos
- kernels recentes, somente daemons de roteamento podem usa-la.
- .TP
- .B Ref
--Numero de referências a esta rota. Não usado no kernel do Linux, sempre 0.
-+Numero de referências a esta rota. Não usado no kernel do Linux, sempre 0.
- .TP
- .B Uso
--Contagem de procuras por esta rota. Nos kernels recentes estes números são
--bem baixos, pois os sockets tem seu próprio cache e não precisam procurar
-+Contagem de procuras por esta rota. Nos kernels recentes estes números são
-+bem baixos, pois os sockets tem seu próprio cache e não precisam procurar
- por rotas.
- .TP
- .B Iface
--Interface através da qual os pacotes IP serão enviados.
-+Interface através da qual os pacotes IP serão enviados.
- .TP
- .B MSS
--Tamanho máximo de segmento default para conexões TCP através desta rota.
-+Tamanho máximo de segmento default para conexões TCP através desta rota.
- .TP
- .B Window
--Tamanho de janela default para conexões TCP através desta rota.
-+Tamanho de janela default para conexões TCP através desta rota.
- .TP
- .B irtt
- RTT (Tempo de Ida e Volta) Inicial. O kernel usa isto para inferir os melhores
--parâmetros do protocolo TCP sem esperar por respostas (possivelmente lentas).
-+parâmetros do protocolo TCP sem esperar por respostas (possivelmente lentas).
- .LP
- .SH ARQUIVOS
- .I /proc/net/route
-@@ -311,17 +311,17 @@ par
- .br
- .I /etc/init.d/network
- .LP
--.SH VEJA TAMBÉM
-+.SH VEJA TAMBÉM
- .I ifconfig(8), netstat(8), arp(8)
- .LP
--.SH HISTÓRICO
-+.SH HISTÓRICO
- .B Route
- para o linux foi originalmente escrito por Fred N. van Kempen,
- <waltje@uwalt.nl.mugnet.org> e depois modificado por Johannes Stille e
--Linus Torvalds para a versão pl15. Alan Cox adicionou as opções para
-+Linus Torvalds para a versão pl15. Alan Cox adicionou as opções para
- mss e window no kernel 1.1.22. O suporte a irtt (compartilhado com o
- netstat) foi feito por Bernd Eckenfels.
--.SH TRADUÇÃO
-+.SH TRADUÇÃO
- Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998
- .SH BUGS
- nenhum :)
-diff --git a/mii-tool.c b/mii-tool.c
-index ef2d48a..1cfecc2 100644
---- a/mii-tool.c
-+++ b/mii-tool.c
-@@ -29,8 +29,6 @@
- http://www.national.com/pf/DP/DP83840.html
- */
-
--static char version[] =
--"mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)\n";
-
- #include <unistd.h>
- #include <stdlib.h>
-@@ -46,16 +44,25 @@ static char version[] =
- #include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <net/if.h>
-+#include <linux/sockios.h>
-+
- #ifndef __GLIBC__
- #include <linux/if_arp.h>
- #include <linux/if_ether.h>
- #endif
--#include "mii.h"
-+#include <linux/mii.h>
-+#include <linux/sockios.h>
-+#include "version.h"
-+#include "net-support.h"
-+#include "util.h"
-+
-+static char *Release = RELEASE, *Signature = "David Hinds based on Donald Becker's mii-diag";
-
- #define MAX_ETH 8 /* Maximum # of interfaces */
-+#define LPA_ABILITY_MASK 0x07e0
-
- /* Table of known MII's */
--static struct {
-+static const struct {
- u_short id1, id2;
- char *name;
- } mii_id[] = {
-@@ -64,16 +71,25 @@ static struct {
- { 0x0000, 0x6b90, "AMD 79C901A HomePNA" },
- { 0x0000, 0x6b70, "AMD 79C901A 10baseT" },
- { 0x0181, 0xb800, "Davicom DM9101" },
-- { 0x0043, 0x7411, "Enable EL40-331" },
-+ { 0x0043, 0x7410, "Enable EL40-331" },
-+ { 0x0243, 0x0c50, "ICPlus IP101A" },
- { 0x0015, 0xf410, "ICS 1889" },
- { 0x0015, 0xf420, "ICS 1890" },
- { 0x0015, 0xf430, "ICS 1892" },
- { 0x02a8, 0x0150, "Intel 82555" },
- { 0x7810, 0x0000, "Level One LXT970/971" },
-+ { 0x0022, 0x1510, "Micrel KSZ8041" },
-+ { 0x0022, 0x1610, "Micrel KSZ9021" },
- { 0x2000, 0x5c00, "National DP83840A" },
-+ { 0x2000, 0x5c70, "National DP83865" },
- { 0x0181, 0x4410, "Quality QS6612" },
- { 0x0282, 0x1c50, "SMSC 83C180" },
-+ { 0x0203, 0x8460, "STMicroelectronics ST802RT" },
-+ { 0x1c04, 0x0010, "STMicroelectronics STE100P" },
- { 0x0300, 0xe540, "TDK 78Q2120" },
-+ { 0x0141, 0x0c20, "Yukon 88E1011" },
-+ { 0x0141, 0x0cc0, "Yukon-EC 88E1111" },
-+ { 0x0141, 0x0c90, "Yukon-2 88E1112" },
- };
- #define NMII (sizeof(mii_id)/sizeof(mii_id[0]))
-
-@@ -81,10 +97,10 @@ static struct {
-
- struct option longopts[] = {
- /* { name has_arg *flag val } */
-- {"advertise", 1, 0, 'A'}, /* Change capabilities advertised. */
-- {"force", 1, 0, 'F'}, /* Change capabilities advertised. */
-+ {"advertise", 1, 0, 'A'}, /* Advertise only specified media. */
-+ {"force", 1, 0, 'F'}, /* Force specified media technology. */
- {"phy", 1, 0, 'p'}, /* Set PHY (MII address) to report. */
-- {"log", 0, 0, 'l'}, /* Set PHY (MII address) to report. */
-+ {"log", 0, 0, 'l'}, /* With --watch, write events to syslog. */
- {"restart", 0, 0, 'r'}, /* Restart link negotiation */
- {"reset", 0, 0, 'R'}, /* Reset the transceiver. */
- {"verbose", 0, 0, 'v'}, /* Report each action taken. */
-@@ -112,7 +128,7 @@ static struct ifreq ifr;
-
- static int mdio_read(int skfd, int location)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
- mii->reg_num = location;
- if (ioctl(skfd, SIOCGMIIREG, &ifr) < 0) {
- fprintf(stderr, "SIOCGMIIREG on %s failed: %s\n", ifr.ifr_name,
-@@ -124,7 +140,7 @@ static int mdio_read(int skfd, int location)
-
- static void mdio_write(int skfd, int location, int value)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
- mii->reg_num = location;
- mii->val_in = value;
- if (ioctl(skfd, SIOCSMIIREG, &ifr) < 0) {
-@@ -137,40 +153,48 @@ static void mdio_write(int skfd, int location, int value)
-
- const struct {
- char *name;
-- u_short value;
-+ u_short value[2];
- } media[] = {
- /* The order through 100baseT4 matches bits in the BMSR */
-- { "10baseT-HD", MII_AN_10BASET_HD },
-- { "10baseT-FD", MII_AN_10BASET_FD },
-- { "100baseTx-HD", MII_AN_100BASETX_HD },
-- { "100baseTx-FD", MII_AN_100BASETX_FD },
-- { "100baseT4", MII_AN_100BASET4 },
-- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD },
-- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD },
-+ { "10baseT-HD", {LPA_10HALF} },
-+ { "10baseT-FD", {LPA_10FULL} },
-+ { "100baseTx-HD", {LPA_100HALF} },
-+ { "100baseTx-FD", {LPA_100FULL} },
-+ { "100baseT4", {LPA_100BASE4} },
-+ { "100baseTx", {LPA_100FULL | LPA_100HALF} },
-+ { "10baseT", {LPA_10FULL | LPA_10HALF} },
-+
-+ { "1000baseT-HD", {0, ADVERTISE_1000HALF} },
-+ { "1000baseT-FD", {0, ADVERTISE_1000FULL} },
-+ { "1000baseT", {0, ADVERTISE_1000HALF|ADVERTISE_1000FULL} },
- };
- #define NMEDIA (sizeof(media)/sizeof(media[0]))
--
-+
- /* Parse an argument list of media types */
--static int parse_media(char *arg)
-+static int parse_media(char *arg, unsigned *bmcr2)
- {
- int mask, i;
- char *s;
- mask = strtoul(arg, &s, 16);
- if ((*arg != '\0') && (*s == '\0')) {
-- if ((mask & MII_AN_ABILITY_MASK) &&
-- !(mask & ~MII_AN_ABILITY_MASK))
-- return mask;
-+ if ((mask & LPA_ABILITY_MASK) &&
-+ !(mask & ~LPA_ABILITY_MASK)) {
-+ *bmcr2 = 0;
-+ return mask;
-+ }
- goto failed;
-- } else {
-- mask = 0;
-- s = strtok(arg, ", ");
-- do {
-+ }
-+ mask = 0;
-+ *bmcr2 = 0;
-+ s = strtok(arg, ", ");
-+ do {
- for (i = 0; i < NMEDIA; i++)
-- if (strcasecmp(media[i].name, s) == 0) break;
-+ if (s && strcasecmp(media[i].name, s) == 0) break;
- if (i == NMEDIA) goto failed;
-- mask |= media[i].value;
-- } while ((s = strtok(NULL, ", ")) != NULL);
-- }
-+ mask |= media[i].value[0];
-+ *bmcr2 |= media[i].value[1];
-+ } while ((s = strtok(NULL, ", ")) != NULL);
-+
- return mask;
- failed:
- fprintf(stderr, "Invalid media specification '%s'.\n", arg);
-@@ -179,11 +203,25 @@ failed:
-
- /*--------------------------------------------------------------------*/
-
--static char *media_list(int mask, int best)
-+static const char *media_list(unsigned mask, unsigned mask2, int best)
- {
- static char buf[100];
- int i;
- *buf = '\0';
-+
-+ if (mask & BMCR_SPEED1000) {
-+ if (mask2 & ADVERTISE_1000HALF) {
-+ strcat(buf, " ");
-+ strcat(buf, "1000baseT-HD");
-+ if (best) goto out;
-+ }
-+ if (mask2 & ADVERTISE_1000FULL) {
-+ strcat(buf, " ");
-+ strcat(buf, "1000baseT-FD");
-+ if (best) goto out;
-+ }
-+ }
-+
- mask >>= 5;
- for (i = 4; i >= 0; i--) {
- if (mask & (1<<i)) {
-@@ -192,6 +230,7 @@ static char *media_list(int mask, int best)
- if (best) break;
- }
- }
-+ out:
- if (mask & (1<<5))
- strcat(buf, " flow-control");
- return buf;
-@@ -199,49 +238,82 @@ static char *media_list(int mask, int best)
-
- int show_basic_mii(int sock, int phy_id)
- {
-- char buf[100];
-+ char buf[200];
- int i, mii_val[32];
-- int bmcr, bmsr, advert, lkpar;
-+ unsigned bmcr, bmsr, advert, lkpar, bmcr2, lpa2;
-
- /* Some bits in the BMSR are latched, but we can't rely on being
- the only reader, so only the current values are meaningful */
- mdio_read(sock, MII_BMSR);
-- for (i = 0; i < ((verbose > 1) ? 32 : 8); i++)
-- mii_val[i] = mdio_read(sock, i);
-+ for (i = 0; i < ((verbose > 1) ? 32 : (MII_STAT1000+1)); i++)
-+ switch (i & 0x1F) {
-+ case MII_BMCR:
-+ case MII_BMSR:
-+ case MII_PHYSID1:
-+ case MII_PHYSID2:
-+ case MII_ADVERTISE:
-+ case MII_LPA:
-+ case MII_EXPANSION:
-+ case MII_CTRL1000:
-+ case MII_STAT1000:
-+ case MII_ESTATUS:
-+ case MII_DCOUNTER:
-+ case MII_FCSCOUNTER:
-+ case MII_NWAYTEST:
-+ case MII_RERRCOUNTER:
-+ case MII_SREVISION:
-+ case MII_RESV1:
-+ case MII_LBRERROR:
-+ case MII_PHYADDR:
-+ case MII_RESV2:
-+ case MII_TPISTATUS:
-+ case MII_NCONFIG:
-+ mii_val[i] = mdio_read(sock, i);
-+ break;
-+ default:
-+ if (verbose > 2)
-+ mii_val[i] = mdio_read(sock, i);
-+ else
-+ mii_val[i] = 0;
-+ break;
-+ }
-
-- if (mii_val[MII_BMCR] == 0xffff) {
-+ if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) {
- fprintf(stderr, " No MII transceiver present!.\n");
- return -1;
- }
-
- /* Descriptive rename. */
- bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR];
-- advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR];
-+ advert = mii_val[MII_ADVERTISE]; lkpar = mii_val[MII_LPA];
-+ bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000];
-
- sprintf(buf, "%s: ", ifr.ifr_name);
-- if (bmcr & MII_BMCR_AN_ENA) {
-- if (bmsr & MII_BMSR_AN_COMPLETE) {
-+ if (bmcr & BMCR_ANENABLE) {
-+ if (bmsr & BMSR_ANEGCOMPLETE) {
- if (advert & lkpar) {
-- strcat(buf, (lkpar & MII_AN_ACK) ?
-+ strcat(buf, (lkpar & LPA_LPACK) ?
- "negotiated" : "no autonegotiation,");
-- strcat(buf, media_list(advert & lkpar, 1));
-+ strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1));
- strcat(buf, ", ");
- } else {
- strcat(buf, "autonegotiation failed, ");
- }
-- } else if (bmcr & MII_BMCR_RESTART) {
-+ } else if (bmcr & BMCR_ANRESTART) {
- strcat(buf, "autonegotiation restarted, ");
- }
- } else {
- sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ",
-- (bmcr & MII_BMCR_100MBIT) ? "100" : "10",
-- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half");
-+ ((bmcr2 & (ADVERTISE_1000HALF | ADVERTISE_1000FULL)) & lpa2 >> 2)
-+ ? "1000"
-+ : (bmcr & BMCR_SPEED100) ? "100" : "10",
-+ (bmcr & BMCR_FULLDPLX) ? "full" : "half");
- }
-- strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link");
-+ strcat(buf, (bmsr & BMSR_LSTATUS) ? "link ok" : "no link");
-
- if (opt_watch) {
- if (opt_log) {
-- syslog(LOG_INFO, buf);
-+ syslog(LOG_INFO, "%s", buf);
- } else {
- char s[20];
- time_t t = time(NULL);
-@@ -273,35 +345,36 @@ int show_basic_mii(int sock, int phy_id)
- ((mii_val[2]<<6)|(mii_val[3]>>10))&0xff,
- (mii_val[3]>>4)&0x3f, mii_val[3]&0x0f);
- printf(" basic mode: ");
-- if (bmcr & MII_BMCR_RESET)
-+ if (bmcr & BMCR_RESET)
- printf("software reset, ");
-- if (bmcr & MII_BMCR_LOOPBACK)
-+ if (bmcr & BMCR_LOOPBACK)
- printf("loopback, ");
-- if (bmcr & MII_BMCR_ISOLATE)
-+ if (bmcr & BMCR_ISOLATE)
- printf("isolate, ");
-- if (bmcr & MII_BMCR_COLTEST)
-+ if (bmcr & BMCR_CTST)
- printf("collision test, ");
-- if (bmcr & MII_BMCR_AN_ENA) {
-+ if (bmcr & BMCR_ANENABLE) {
- printf("autonegotiation enabled\n");
- } else {
- printf("%s Mbit, %s duplex\n",
-- (bmcr & MII_BMCR_100MBIT) ? "100" : "10",
-- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half");
-+ (bmcr & BMCR_SPEED100) ? "100" : "10",
-+ (bmcr & BMCR_FULLDPLX) ? "full" : "half");
- }
- printf(" basic status: ");
-- if (bmsr & MII_BMSR_AN_COMPLETE)
-+ if (bmsr & BMSR_ANEGCOMPLETE)
- printf("autonegotiation complete, ");
-- else if (bmcr & MII_BMCR_RESTART)
-+ else if (bmcr & BMCR_ANRESTART)
- printf("autonegotiation restarted, ");
-- if (bmsr & MII_BMSR_REMOTE_FAULT)
-+ if (bmsr & BMSR_RFAULT)
- printf("remote fault, ");
-- printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link");
-- printf("\n capabilities:%s", media_list(bmsr >> 6, 0));
-- printf("\n advertising: %s", media_list(advert, 0));
-- if (lkpar & MII_AN_ABILITY_MASK)
-- printf("\n link partner:%s", media_list(lkpar, 0));
-+ printf((bmsr & BMSR_LSTATUS) ? "link ok" : "no link");
-+ printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0));
-+ printf("\n advertising: %s", media_list(advert, bmcr2, 0));
-+ if (lkpar & LPA_ABILITY_MASK)
-+ printf("\n link partner:%s", media_list(lkpar, lpa2 >> 2, 0));
- printf("\n");
- }
-+ fflush(stdout);
- return 0;
- }
-
-@@ -309,10 +382,10 @@ int show_basic_mii(int sock, int phy_id)
-
- static int do_one_xcvr(int skfd, char *ifname, int maybe)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
-
- /* Get the vitals from the interface. */
-- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(skfd, SIOCGMIIPHY, &ifr) < 0) {
- if (!maybe || (errno != ENODEV))
- fprintf(stderr, "SIOCGMIIPHY on '%s' failed: %s\n",
-@@ -327,23 +400,23 @@ static int do_one_xcvr(int skfd, char *ifname, int maybe)
-
- if (opt_reset) {
- printf("resetting the transceiver...\n");
-- mdio_write(skfd, MII_BMCR, MII_BMCR_RESET);
-+ mdio_write(skfd, MII_BMCR, BMCR_RESET);
- }
-- if (nway_advertise) {
-- mdio_write(skfd, MII_ANAR, nway_advertise | 1);
-+ if (nway_advertise > 0) {
-+ mdio_write(skfd, MII_ADVERTISE, nway_advertise | 1);
- opt_restart = 1;
- }
- if (opt_restart) {
- printf("restarting autonegotiation...\n");
- mdio_write(skfd, MII_BMCR, 0x0000);
-- mdio_write(skfd, MII_BMCR, MII_BMCR_AN_ENA|MII_BMCR_RESTART);
-+ mdio_write(skfd, MII_BMCR, BMCR_ANENABLE|BMCR_ANRESTART);
- }
- if (fixed_speed) {
- int bmcr = 0;
-- if (fixed_speed & (MII_AN_100BASETX_FD|MII_AN_100BASETX_HD))
-- bmcr |= MII_BMCR_100MBIT;
-- if (fixed_speed & (MII_AN_100BASETX_FD|MII_AN_10BASET_FD))
-- bmcr |= MII_BMCR_DUPLEX;
-+ if (fixed_speed & (LPA_100FULL|LPA_100HALF))
-+ bmcr |= BMCR_SPEED100;
-+ if (fixed_speed & (LPA_100FULL|LPA_10FULL))
-+ bmcr |= BMCR_FULLDPLX;
- mdio_write(skfd, MII_BMCR, bmcr);
- }
-
-@@ -357,12 +430,12 @@ static int do_one_xcvr(int skfd, char *ifname, int maybe)
-
- static void watch_one_xcvr(int skfd, char *ifname, int index)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
- static int status[MAX_ETH] = { 0, /* ... */ };
- int now;
-
- /* Get the vitals from the interface. */
-- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(skfd, SIOCGMIIPHY, &ifr) < 0) {
- if (errno != ENODEV)
- fprintf(stderr, "SIOCGMIIPHY on '%s' failed: %s\n",
-@@ -379,27 +452,38 @@ static void watch_one_xcvr(int skfd, char *ifname, int index)
- /*--------------------------------------------------------------------*/
-
- const char *usage =
--"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
-- -V, --version display version information
-- -v, --verbose more verbose output
-- -R, --reset reset MII to poweron state
-- -r, --restart restart autonegotiation
-- -w, --watch monitor for link status changes
-- -l, --log with -w, write events to syslog
-- -A, --advertise=media,... advertise only specified media
-- -F, --force=media force specified media technology
--media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
-- (to advertise both HD and FD) 100baseTx, 10baseT\n";
-+"usage: %s [-VvRrwl] [-A media,... | -F media] [-p addr] <interface ...>\n"
-+" -V, --version display version information\n"
-+" -v, --verbose more verbose output\n"
-+" -R, --reset reset MII to poweron state\n"
-+" -r, --restart restart autonegotiation\n"
-+" -w, --watch monitor for link status changes\n"
-+" -l, --log with -w, write events to syslog\n"
-+" -A, --advertise=media,... advertise only specified media\n"
-+" -F, --force=media force specified media technology\n"
-+" -p, --phy=addr set PHY (MII address) to report\n"
-+"media: 1000baseTx-HD, 1000baseTx-FD,\n"
-+" 100baseT4, 100baseTx-FD, 100baseTx-HD,\n"
-+" 10baseT-FD, 10baseT-HD,\n"
-+" (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT\n";
-+
-+
-+static void version(void)
-+{
-+ fprintf(stderr, "%s\n%s\n", Release, Signature);
-+ exit(E_VERSION);
-+}
-+
-
- int main(int argc, char **argv)
- {
- int i, c, ret, errflag = 0;
-- char s[6];
--
-+ unsigned ctrl1000 = 0;
-+
- while ((c = getopt_long(argc, argv, "A:F:p:lrRvVw?", longopts, 0)) != EOF)
- switch (c) {
-- case 'A': nway_advertise = parse_media(optarg); break;
-- case 'F': fixed_speed = parse_media(optarg); break;
-+ case 'A': nway_advertise = parse_media(optarg, &ctrl1000); break;
-+ case 'F': fixed_speed = parse_media(optarg, &ctrl1000); break;
- case 'p': override_phy = atoi(optarg); break;
- case 'r': opt_restart++; break;
- case 'R': opt_reset++; break;
-@@ -411,6 +495,10 @@ int main(int argc, char **argv)
- }
- /* Check for a few inappropriate option combinations */
- if (opt_watch) verbose = 0;
-+
-+ if ((nway_advertise < 0) || (fixed_speed < 0))
-+ return 2;
-+
- if (errflag || (fixed_speed & (fixed_speed-1)) ||
- (fixed_speed && (opt_restart || nway_advertise))) {
- fprintf(stderr, usage, argv[0]);
-@@ -418,7 +506,7 @@ int main(int argc, char **argv)
- }
-
- if (opt_version)
-- printf(version);
-+ version();
-
- /* Open a basic socket. */
- if ((skfd = socket(AF_INET, SOCK_DGRAM,0)) < 0) {
-@@ -426,15 +514,15 @@ int main(int argc, char **argv)
- exit(-1);
- }
-
-+ if (verbose > 1)
-+ printf("Using SIOCGMIIPHY=0x%x\n", SIOCGMIIPHY);
-+
- /* No remaining args means show all interfaces. */
- if (optind == argc) {
-- ret = 1;
-- for (i = 0; i < MAX_ETH; i++) {
-- sprintf(s, "eth%d", i);
-- ret &= do_one_xcvr(skfd, s, 1);
-- }
-- if (ret)
-- fprintf(stderr, "no MII interfaces found\n");
-+ fprintf(stderr, "No interface specified\n");
-+ fprintf(stderr, usage, argv[0]);
-+ close(skfd);
-+ return 2;
- } else {
- ret = 0;
- for (i = optind; i < argc; i++) {
-@@ -445,15 +533,8 @@ int main(int argc, char **argv)
- if (opt_watch && (ret == 0)) {
- while (1) {
- sleep(1);
-- if (optind == argc) {
-- for (i = 0; i < MAX_ETH; i++) {
-- sprintf(s, "eth%d", i);
-- watch_one_xcvr(skfd, s, i);
-- }
-- } else {
-- for (i = optind; i < argc; i++)
-+ for (i = optind; i < argc; i++)
- watch_one_xcvr(skfd, argv[i], i-optind);
-- }
- }
- }
-
-diff --git a/nameif.c b/nameif.c
-index 8d79b50..b280e59 100644
---- a/nameif.c
-+++ b/nameif.c
-@@ -1,11 +1,11 @@
--/*
-+/*
- * Name Interfaces based on MAC address.
- * Writen 2000 by Andi Kleen.
-- * Subject to the Gnu Public License, version 2.
-+ * Subject to the Gnu Public License, version 2.
- * TODO: make it support token ring etc.
-- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $
-- */
--#ifndef _GNU_SOURCE
-+ * $Id: nameif.c,v 1.4 2003/09/11 03:46:49 ak Exp $
-+ */
-+#ifndef _GNU_SOURCE
- #define _GNU_SOURCE
- #endif
- #include <stdio.h>
-@@ -21,73 +21,68 @@
- #include <net/if.h>
- #include <linux/sockios.h>
- #include <errno.h>
--#include "intl.h"
--
--const char default_conf[] = "/etc/mactab";
--const char *fname = default_conf;
--int use_syslog;
--int ctl_sk = -1;
--
--void err(char *msg)
--{
-- if (use_syslog) {
-- syslog(LOG_ERR,"%s: %m", msg);
-- } else {
-- perror(msg);
-- }
-- exit(1);
-+#include "intl.h"
-+#include "net-support.h"
-+#include "util.h"
-+
-+const char default_conf[] = "/etc/mactab";
-+const char *fname = default_conf;
-+int use_syslog;
-+int ctl_sk = -1;
-+
-+void err(char *msg)
-+{
-+ if (use_syslog) {
-+ syslog(LOG_ERR,"%s: %m", msg);
-+ } else {
-+ perror(msg);
-+ }
-+ exit(1);
- }
-
--void complain(char *fmt, ...)
--{
-+void complain(char *fmt, ...)
-+{
- va_list ap;
- va_start(ap,fmt);
-- if (use_syslog) {
-+ if (use_syslog) {
- vsyslog(LOG_ERR,fmt,ap);
- } else {
- vfprintf(stderr,fmt,ap);
-- fputc('\n',stderr);
-+ fputc('\n',stderr);
- }
-- va_end(ap);
-+ va_end(ap);
- exit(1);
--}
-+}
-
--void warning(char *fmt, ...)
--{
-+void warning(char *fmt, ...)
-+{
- va_list ap;
- va_start(ap,fmt);
-- if (use_syslog) {
-+ if (use_syslog) {
- vsyslog(LOG_ERR,fmt,ap);
- } else {
- vfprintf(stderr,fmt,ap);
-- fputc('\n',stderr);
-+ fputc('\n',stderr);
- }
-- va_end(ap);
--}
-+ va_end(ap);
-+}
-
- int parsemac(char *str, unsigned char *mac)
--{
-- char *s;
-- while ((s = strsep(&str, ":")) != NULL) {
-+{
-+ char *s;
-+ while ((s = strsep(&str, ":")) != NULL) {
- unsigned byte;
-- if (sscanf(s,"%x", &byte)!=1 || byte > 0xff)
-+ if (sscanf(s,"%x", &byte)!=1 || byte > 0xff)
- return -1;
-- *mac++ = byte;
-- }
-+ *mac++ = byte;
-+ }
- return 0;
--}
--
--void *xmalloc(unsigned sz)
--{
-- void *p = calloc(sz,1);
-- if (!p) errno=ENOMEM, err("xmalloc");
-- return p;
--}
-+}
-
- void opensock(void)
- {
-- if (ctl_sk < 0)
-- ctl_sk = socket(PF_INET,SOCK_DGRAM,0);
-+ if (ctl_sk < 0)
-+ ctl_sk = socket(PF_INET,SOCK_DGRAM,0);
- }
-
- #ifndef ifr_newname
-@@ -97,10 +92,10 @@ void opensock(void)
- int setname(char *oldname, char *newname)
- {
- struct ifreq ifr;
-- opensock();
-+ opensock();
- memset(&ifr,0,sizeof(struct ifreq));
-- strcpy(ifr.ifr_name, oldname);
-- strcpy(ifr.ifr_newname, newname);
-+ safe_strncpy(ifr.ifr_name, oldname, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_newname, newname, IFNAMSIZ);
- return ioctl(ctl_sk, SIOCSIFNAME, &ifr);
- }
-
-@@ -108,118 +103,118 @@ int getmac(char *name, unsigned char *mac)
- {
- int r;
- struct ifreq ifr;
-- opensock();
-+ opensock();
- memset(&ifr,0,sizeof(struct ifreq));
-- strcpy(ifr.ifr_name, name);
-+ safe_strncpy(ifr.ifr_name, name, IFNAMSIZ);
- r = ioctl(ctl_sk, SIOCGIFHWADDR, &ifr);
-- memcpy(mac, ifr.ifr_hwaddr.sa_data, 6);
-- return r;
-+ memcpy(mac, ifr.ifr_hwaddr.sa_data, 6);
-+ return r;
- }
-
--struct change {
-- struct change *next,**pprev;
-+struct change {
-+ struct change *next;
-+ int found;
- char ifname[IFNAMSIZ+1];
- unsigned char mac[6];
--};
-+};
- struct change *clist;
-
--struct change *lookupmac(unsigned char *mac)
--{
-+struct change *lookupmac(unsigned char *mac)
-+{
- struct change *ch;
-- for (ch = clist;ch;ch = ch->next)
-+ for (ch = clist;ch;ch = ch->next)
- if (!memcmp(ch->mac, mac, 6))
- return ch;
-- return NULL;
--}
-+ return NULL;
-+}
-
- int addchange(char *p, struct change *ch, char *pos)
- {
- if (strchr(ch->ifname, ':'))
-- warning(_("alias device %s at %s probably has no mac"),
-- ch->ifname, pos);
-- if (parsemac(p,ch->mac) < 0)
-- complain(_("cannot parse MAC `%s' at %s"), p, pos);
-- if (clist)
-- clist->pprev = &ch->next;
-+ warning(_("alias device %s at %s probably has no mac"),
-+ ch->ifname, pos);
-+ if (parsemac(p,ch->mac) < 0)
-+ complain(_("cannot parse MAC `%s' at %s"), p, pos);
- ch->next = clist;
-- ch->pprev = &clist;
- clist = ch;
-- return 0;
-+ return 0;
- }
-
- void readconf(void)
- {
-- char *line;
-- size_t linel;
-- int linenum;
-+ char *line;
-+ size_t linel;
-+ int linenum;
- FILE *ifh;
- char *p;
- int n;
-+ struct change *ch = NULL;
-
- ifh = fopen(fname, "r");
-- if (!ifh)
-- complain(_("opening configuration file %s: %s"),fname,strerror(errno));
-+ if (!ifh)
-+ complain(_("opening configuration file %s: %s"),fname,strerror(errno));
-
-- line = NULL;
-+ line = NULL;
- linel = 0;
-- linenum = 1;
-+ linenum = 1;
- while (getdelim(&line, &linel, '\n', ifh) > 0) {
-- struct change *ch = xmalloc(sizeof(struct change));
-- char pos[20];
-+ char pos[20];
-
-- sprintf(pos, _("line %d"), linenum);
-+ sprintf(pos, _("line %d"), linenum);
-
- if ((p = strchr(line,'#')) != NULL)
- *p = '\0';
-- p = line;
-+ p = line;
- while (isspace(*p))
-- ++p;
-+ ++p;
- if (*p == '\0')
-- continue;
-- n = strcspn(p, " \t");
-- if (n > IFNAMSIZ)
-- complain(_("interface name too long at line %d"), line);
-- memcpy(ch->ifname, p, n);
-- ch->ifname[n] = 0;
-- p += n;
-- p += strspn(p, " \t");
-- n = strspn(p, "0123456789ABCDEFabcdef:");
-- p[n] = 0;
-+ continue;
-+ n = strcspn(p, " \t");
-+ if (n > IFNAMSIZ-1)
-+ complain(_("interface name too long at line %d"), line);
-+ ch = xmalloc(sizeof(struct change));
-+ memcpy(ch->ifname, p, n);
-+ ch->ifname[n] = 0;
-+ p += n;
-+ p += strspn(p, " \t");
-+ n = strspn(p, "0123456789ABCDEFabcdef:");
-+ p[n] = 0;
- addchange(p, ch, pos);
- linenum++;
-- }
-- fclose(ifh);
-+ }
-+ fclose(ifh);
- }
-
--struct option lopt[] = {
-+struct option lopt[] = {
- {"syslog", 0, NULL, 's' },
- {"config-file", 1, NULL, 'c' },
-- {"help", 0, NULL, '?' },
-- {NULL},
--};
-+ {"help", 0, NULL, '?' },
-+ {NULL},
-+};
-
- void usage(void)
- {
-- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
-- exit(1);
-+ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
-+ exit(E_USAGE);
- }
-
--int main(int ac, char **av)
--{
-- FILE *ifh;
-+int main(int ac, char **av)
-+{
-+ FILE *ifh;
- char *p;
- int n;
-- int linenum;
-+ int linenum;
- char *line = NULL;
- size_t linel = 0;
-+ int ret = 0;
-
- for (;;) {
- int c = getopt_long(ac,av,"c:s",lopt,NULL);
- if (c == -1) break;
-- switch (c) {
-+ switch (c) {
- default:
- case '?':
-- usage();
-+ usage();
- case 'c':
- fname = optarg;
- break;
-@@ -229,74 +224,76 @@ int main(int ac, char **av)
- }
- }
-
-- if (use_syslog)
-+ if (use_syslog)
- openlog("nameif",0,LOG_LOCAL0);
--
-- while (optind < ac) {
-- struct change *ch = xmalloc(sizeof(struct change));
-+
-+ while (optind < ac) {
-+ struct change *ch = xmalloc(sizeof(struct change));
- char pos[30];
-
-- if ((ac-optind) & 1)
-+ if ((ac-optind) & 1)
- usage();
-- if (strlen(av[optind])+1>IFNAMSIZ)
-+ if (strlen(av[optind])+1>IFNAMSIZ)
- complain(_("interface name `%s' too long"), av[optind]);
-- strcpy(ch->ifname, av[optind]);
-- optind++;
-- sprintf(pos,_("argument %d"),optind);
-- addchange(av[optind], ch, pos);
-- optind++;
-- }
-+ safe_strncpy(ch->ifname, av[optind], sizeof(ch->ifname));
-+ optind++;
-+ sprintf(pos,_("argument %d"),optind);
-+ addchange(av[optind], ch, pos);
-+ optind++;
-+ }
-
-- if (!clist || fname != default_conf)
-- readconf();
-+ if (!clist || fname != default_conf)
-+ readconf();
-
-- ifh = fopen("/proc/net/dev", "r");
-- if (!ifh) complain(_("open of /proc/net/dev: %s"), strerror(errno));
-+ ifh = fopen("/proc/net/dev", "r");
-+ if (!ifh) complain(_("open of /proc/net/dev: %s"), strerror(errno));
-
-
- linenum = 0;
- while (getdelim(&line, &linel, '\n', ifh) > 0) {
-- struct change *ch;
-+ struct change *ch;
- unsigned char mac[6];
-
-- if (linenum++ < 2)
-+ if (linenum++ < 2)
- continue;
--
-- p = line;
-- while (isspace(*p))
-+
-+ p = line;
-+ while (isspace(*p))
- ++p;
-- n = strcspn(p, ": \t");
-- p[n] = 0;
--
-- if (n > IFNAMSIZ-1)
-- complain(_("interface name `%s' too long"), p);
--
-- if (getmac(p, mac) < 0)
-+ n = strcspn(p, ": \t");
-+ p[n] = 0;
-+
-+ if (n > IFNAMSIZ-1)
-+ complain(_("interface name `%s' too long"), p);
-+
-+ if (getmac(p, mac) < 0)
- continue;
--
-- ch = lookupmac(mac);
-- if (!ch)
-+
-+ ch = lookupmac(mac);
-+ if (!ch)
- continue;
--
-- *ch->pprev = ch->next;
-- if (strcmp(p, ch->ifname)) {
-- if (setname(p, ch->ifname) < 0)
-+
-+ ch->found = 1;
-+ if (strcmp(p, ch->ifname)) {
-+ if (setname(p, ch->ifname) < 0)
- complain(_("cannot change name of %s to %s: %s"),
-- p, ch->ifname, strerror(errno));
-- }
-- free(ch);
-- }
-- fclose(ifh);
--
-- while (clist) {
-+ p, ch->ifname, strerror(errno));
-+ }
-+ }
-+ fclose(ifh);
-+
-+ while (clist) {
- struct change *ch = clist;
- clist = clist->next;
-- warning(_("interface '%s' not found"), ch->ifname);
-- free(ch);
-+ if (!ch->found){
-+ warning(_("interface '%s' not found"), ch->ifname);
-+ ret = 1;
-+ }
-+ free(ch);
- }
-
- if (use_syslog)
- closelog();
-- return 0;
--}
-+ return ret;
-+}
-
-diff --git a/netstat.c b/netstat.c
-index 1ef790e..4f62e87 100644
---- a/netstat.c
-+++ b/netstat.c
-@@ -6,7 +6,7 @@
- * NET-3 Networking Distribution for the LINUX operating
- * system.
- *
-- * Version: $Id: netstat.c,v 1.43 2001/04/15 14:41:17 pb Exp $
-+ * Version: $Id: netstat.c,v 1.73 2011-04-20 01:35:22 ecki Exp $
- *
- * Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de>
- * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
-@@ -23,24 +23,24 @@
- * Modified:
- *
- *960116 {1.01} Bernd Eckenfels: verbose, cleanups
-- *960204 {1.10} Bernd Eckenfels: aftrans, usage, new route_info,
-+ *960204 {1.10} Bernd Eckenfels: aftrans, usage, new route_info,
- * DLFT_AF
- *960204 {1.11} Bernd Eckenfels: netlink support
- *960204 {1.12} Bernd Eckenfels: route_init()
- *960215 {1.13} Bernd Eckenfels: netlink_print honors HAVE_
-- *960217 {1.14} Bernd Eckenfels: masq_info from Jos Vos and
-+ *960217 {1.14} Bernd Eckenfels: masq_info from Jos Vos and
- * ax25_info from Jonathan Naylor.
- *960218 {1.15} Bernd Eckenfels: ipx_info rewritten, -e for tcp/ipx
- *960220 {1.16} Bernd Eckenfels: minor output reformats, -a for -x
- *960221 {1.17} Bernd Eckenfels: route_init->getroute_init
- *960426 {1.18} Bernd Eckenfels: new RTACTION, SYM/NUM, FIB/CACHE
-- *960517 {1.19} Bernd Eckenfels: usage() spelling fix and --unix inode,
-+ *960517 {1.19} Bernd Eckenfels: usage() spelling fix and --unix inode,
- * ':' is part of sock_addr for --inet
- *960822 {x.xx} Frank Strauss: INET6 support
- *
- *970406 {1.33} Philip Copeland Added snmp reporting support module -s
- * code provided by Andi Kleen
-- * (relly needs to be kernel hooked but
-+ * (relly needs to be kernel hooked but
- * this will do in the meantime)
- * minor header file misplacement tidy up.
- *980815 {1.xx} Stephane Fillod: X.25 support
-@@ -58,6 +58,8 @@
- *
- *990420 {1.38} Tuan Hoang removed a useless assignment from igmp_do_one()
- *20010404 {1.39} Arnaldo Carvalho de Melo - use setlocale
-+ *20081201 {1.42} Brian Micek added -L|--udplite options for RFC 3828
-+ *20020722 {1.51} Thomas Preusser added SCTP over IPv4 support
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -83,6 +85,7 @@
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <sys/ioctl.h>
-+#include <sys/stat.h>
- #include <net/if.h>
- #include <dirent.h>
-
-@@ -94,8 +97,18 @@
- #include "sockets.h"
- #include "interface.h"
- #include "util.h"
-+#include "proc.h"
-+
-+#if HAVE_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-+
-+#if HAVE_AFBLUETOOTH
-+#include <bluetooth/bluetooth.h>
-+#endif
-
- #define PROGNAME_WIDTH 20
-+#define SELINUX_WIDTH 50
-
- #if !defined(s6_addr32) && defined(in6a_words)
- #define s6_addr32 in6a_words /* libinet6 */
-@@ -104,6 +117,8 @@
- /* prototypes for statistics.c */
- void parsesnmp(int, int, int);
- void inittab(void);
-+void parsesnmp6(int, int, int);
-+void inittab6(void);
-
- typedef enum {
- SS_FREE = 0, /* not allocated */
-@@ -122,7 +137,7 @@ typedef enum {
- #define FEATURE_NETSTAT
- #include "lib/net-features.h"
-
--char *Release = RELEASE, *Version = "netstat 1.42 (2001-04-15)", *Signature = "Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang and others";
-+static char *Release = RELEASE, *Signature = "Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang, Brian Micek and others";
-
-
- #define E_READ -1
-@@ -142,18 +157,24 @@ int flag_cf = 0;
- int flag_opt = 0;
- int flag_raw = 0;
- int flag_tcp = 0;
-+int flag_sctp= 0;
- int flag_udp = 0;
-+int flag_udplite = 0;
- int flag_igmp= 0;
- int flag_rom = 0;
- int flag_exp = 1;
-+int flag_wide= 0;
- int flag_prg = 0;
- int flag_arg = 0;
- int flag_ver = 0;
-+int flag_l2cap = 0;
-+int flag_rfcomm = 0;
-+int flag_selinux = 0;
-
- FILE *procinfo;
-
--#define INFO_GUTS1(file,name,proc) \
-- procinfo = fopen((file), "r"); \
-+#define INFO_GUTS1(file,name,proc,prot) \
-+ procinfo = proc_fopen((file)); \
- if (procinfo == NULL) { \
- if (errno != ENOENT) { \
- perror((file)); \
-@@ -166,58 +187,63 @@ FILE *procinfo;
- } else { \
- do { \
- if (fgets(buffer, sizeof(buffer), procinfo)) \
-- (proc)(lnr++, buffer); \
-+ (proc)(lnr++, buffer,prot); \
- } while (!feof(procinfo)); \
- fclose(procinfo); \
- }
-
- #if HAVE_AFINET6
--#define INFO_GUTS2(file,proc) \
-+#define INFO_GUTS2(file,proc,prot) \
- lnr = 0; \
-- procinfo = fopen((file), "r"); \
-+ procinfo = proc_fopen((file)); \
- if (procinfo != NULL) { \
- do { \
- if (fgets(buffer, sizeof(buffer), procinfo)) \
-- (proc)(lnr++, buffer); \
-+ (proc)(lnr++, buffer,prot); \
- } while (!feof(procinfo)); \
- fclose(procinfo); \
- }
- #else
--#define INFO_GUTS2(file,proc)
-+#define INFO_GUTS2(file,proc,prot)
- #endif
-
- #define INFO_GUTS3 \
- return rc;
-
--#define INFO_GUTS6(file,file6,name,proc) \
-+#define INFO_GUTS6(file,file6,name,proc,prot4,prot6) \
- char buffer[8192]; \
- int rc = 0; \
- int lnr = 0; \
- if (!flag_arg || flag_inet) { \
-- INFO_GUTS1(file,name,proc) \
-+ INFO_GUTS1(file,name,proc,prot4) \
- } \
- if (!flag_arg || flag_inet6) { \
-- INFO_GUTS2(file6,proc) \
-+ INFO_GUTS2(file6,proc,prot6) \
- } \
- INFO_GUTS3
-
--#define INFO_GUTS(file,name,proc) \
-+#define INFO_GUTS(file,name,proc,prot) \
- char buffer[8192]; \
- int rc = 0; \
- int lnr = 0; \
-- INFO_GUTS1(file,name,proc) \
-+ INFO_GUTS1(file,name,proc,prot) \
- INFO_GUTS3
-
- #define PROGNAME_WIDTHs PROGNAME_WIDTH1(PROGNAME_WIDTH)
- #define PROGNAME_WIDTH1(s) PROGNAME_WIDTH2(s)
- #define PROGNAME_WIDTH2(s) #s
-
-+#define SELINUX_WIDTHs SELINUX_WIDTH1(SELINUX_WIDTH)
-+#define SELINUX_WIDTH1(s) SELINUX_WIDTH2(s)
-+#define SELINUX_WIDTH2(s) #s
-+
- #define PRG_HASH_SIZE 211
-
- static struct prg_node {
- struct prg_node *next;
-- int inode;
-+ unsigned long inode;
- char name[PROGNAME_WIDTH];
-+ char scon[SELINUX_WIDTH];
- } *prg_hash[PRG_HASH_SIZE];
-
- static char prg_cache_loaded = 0;
-@@ -225,8 +251,11 @@ static char prg_cache_loaded = 0;
- #define PRG_HASHIT(x) ((x) % PRG_HASH_SIZE)
-
- #define PROGNAME_BANNER "PID/Program name"
-+#define SELINUX_BANNER "Security Context"
-+
-+#define print_progname_banner() do { if (flag_prg) printf(" %-" PROGNAME_WIDTHs "s",PROGNAME_BANNER); } while (0)
-
--#define print_progname_banner() do { if (flag_prg) printf("%-" PROGNAME_WIDTHs "s"," " PROGNAME_BANNER); } while (0)
-+#define print_selinux_banner() do { if (flag_selinux) printf("%-" SELINUX_WIDTHs "s"," " SELINUX_BANNER); } while (0)
-
- #define PRG_LOCAL_ADDRESS "local_address"
- #define PRG_INODE "inode"
-@@ -246,40 +275,57 @@ static char prg_cache_loaded = 0;
- #define PATH_PROC_X_FD PATH_PROC "/%s/" PATH_FD_SUFF
- #define PATH_CMDLINE "cmdline"
- #define PATH_CMDLINEl strlen(PATH_CMDLINE)
--/* NOT working as of glibc-2.0.7: */
--#undef DIRENT_HAVE_D_TYPE_WORKS
-
--static void prg_cache_add(int inode, char *name)
-+static void prg_cache_add(unsigned long inode, char *name, const char *scon)
- {
- unsigned hi = PRG_HASHIT(inode);
- struct prg_node **pnp,*pn;
-
-- prg_cache_loaded=2;
-- for (pnp=prg_hash+hi;(pn=*pnp);pnp=&pn->next) {
-- if (pn->inode==inode) {
-+ prg_cache_loaded = 2;
-+ for (pnp = prg_hash + hi; (pn = *pnp); pnp = &pn->next) {
-+ if (pn->inode == inode) {
- /* Some warning should be appropriate here
- as we got multiple processes for one i-node */
- return;
- }
- }
-- if (!(*pnp=malloc(sizeof(**pnp))))
-+ if (!(*pnp = malloc(sizeof(**pnp))))
- return;
-- pn=*pnp;
-- pn->next=NULL;
-- pn->inode=inode;
-- if (strlen(name)>sizeof(pn->name)-1)
-- name[sizeof(pn->name)-1]='\0';
-- strcpy(pn->name,name);
-+ pn = *pnp;
-+ pn->next = NULL;
-+ pn->inode = inode;
-+ safe_strncpy(pn->name, name, sizeof(pn->name));
-+
-+ {
-+ int len = (strlen(scon) - sizeof(pn->scon)) + 1;
-+ if (len > 0)
-+ safe_strncpy(pn->scon, &scon[len + 1], sizeof(pn->scon));
-+ else
-+ safe_strncpy(pn->scon, scon, sizeof(pn->scon));
-+ }
-+
-+}
-+
-+static const char *prg_cache_get(unsigned long inode)
-+{
-+ unsigned hi = PRG_HASHIT(inode);
-+ struct prg_node *pn;
-+
-+ for (pn = prg_hash[hi]; pn; pn = pn->next)
-+ if (pn->inode == inode)
-+ return (pn->name);
-+ return ("-");
- }
-
--static const char *prg_cache_get(int inode)
-+static const char *prg_cache_get_con(unsigned long inode)
- {
-- unsigned hi=PRG_HASHIT(inode);
-+ unsigned hi = PRG_HASHIT(inode);
- struct prg_node *pn;
-
-- for (pn=prg_hash[hi];pn;pn=pn->next)
-- if (pn->inode==inode) return(pn->name);
-- return("-");
-+ for (pn = prg_hash[hi]; pn; pn = pn->next)
-+ if (pn->inode == inode)
-+ return (pn->scon);
-+ return ("-");
- }
-
- static void prg_cache_clear(void)
-@@ -287,143 +333,164 @@ static void prg_cache_clear(void)
- struct prg_node **pnp,*pn;
-
- if (prg_cache_loaded == 2)
-- for (pnp=prg_hash;pnp<prg_hash+PRG_HASH_SIZE;pnp++)
-- while ((pn=*pnp)) {
-- *pnp=pn->next;
-+ for (pnp = prg_hash; pnp < prg_hash + PRG_HASH_SIZE; pnp++)
-+ while ((pn = *pnp)) {
-+ *pnp = pn->next;
- free(pn);
- }
-- prg_cache_loaded=0;
-+ prg_cache_loaded = 0;
-+}
-+
-+static void wait_continous(void)
-+{
-+ fflush(stdout);
-+ sleep(1);
- }
-
--static void extract_type_1_socket_inode(const char lname[], long * inode_p) {
-+static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) {
-
- /* If lname is of the form "socket:[12345]", extract the "12345"
- as *inode_p. Otherwise, return -1 as *inode_p.
- */
-
-- if (strlen(lname) < PRG_SOCKET_PFXl+3) *inode_p = -1;
-- else if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) *inode_p = -1;
-- else if (lname[strlen(lname)-1] != ']') *inode_p = -1;
-- else {
-+ if (strlen(lname) < PRG_SOCKET_PFXl+3) return(-1);
-+
-+ if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) return(-1);
-+ if (lname[strlen(lname)-1] != ']') return(-1);
-+
-+ {
- char inode_str[strlen(lname + 1)]; /* e.g. "12345" */
- const int inode_str_len = strlen(lname) - PRG_SOCKET_PFXl - 1;
- char *serr;
-
- strncpy(inode_str, lname+PRG_SOCKET_PFXl, inode_str_len);
- inode_str[inode_str_len] = '\0';
-- *inode_p = strtol(inode_str,&serr,0);
-- if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX)
-- *inode_p = -1;
-+ *inode_p = strtoul(inode_str, &serr, 0);
-+ if (!serr || *serr || *inode_p == ~0)
-+ return(-1);
- }
-+ return(0);
- }
-
-
-
--static void extract_type_2_socket_inode(const char lname[], long * inode_p) {
-+static int extract_type_2_socket_inode(const char lname[], unsigned long * inode_p) {
-
- /* If lname is of the form "[0000]:12345", extract the "12345"
- as *inode_p. Otherwise, return -1 as *inode_p.
- */
-
-- if (strlen(lname) < PRG_SOCKET_PFX2l+1) *inode_p = -1;
-- else if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) *inode_p = -1;
-- else {
-+ if (strlen(lname) < PRG_SOCKET_PFX2l+1) return(-1);
-+ if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) return(-1);
-+
-+ {
- char *serr;
-
-- *inode_p=strtol(lname + PRG_SOCKET_PFX2l,&serr,0);
-- if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX)
-- *inode_p = -1;
-+ *inode_p = strtoul(lname + PRG_SOCKET_PFX2l, &serr, 0);
-+ if (!serr || *serr || *inode_p == ~0)
-+ return(-1);
- }
-+ return(0);
- }
-
-
-
-+
- static void prg_cache_load(void)
- {
-- char line[LINE_MAX],eacces=0;
-- int procfdlen,fd,cmdllen,lnamelen;
-- char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH];
-- long inode;
-- const char *cs,*cmdlp;
-- DIR *dirproc=NULL,*dirfd=NULL;
-- struct dirent *direproc,*direfd;
-+ char line[LINE_MAX], eacces=0;
-+ int procfdlen, fd, cmdllen, lnamelen;
-+ char lname[30], cmdlbuf[512], finbuf[PROGNAME_WIDTH];
-+ unsigned long inode;
-+ const char *cs, *cmdlp;
-+ DIR *dirproc = NULL, *dirfd = NULL;
-+ struct dirent *direproc, *direfd;
-+#if HAVE_SELINUX
-+ security_context_t scon = NULL;
-+#endif
-
- if (prg_cache_loaded || !flag_prg) return;
-- prg_cache_loaded=1;
-- cmdlbuf[sizeof(cmdlbuf)-1]='\0';
-+ prg_cache_loaded = 1;
-+ cmdlbuf[sizeof(cmdlbuf) - 1] = '\0';
- if (!(dirproc=opendir(PATH_PROC))) goto fail;
-- while (errno=0,direproc=readdir(dirproc)) {
--#ifdef DIRENT_HAVE_D_TYPE_WORKS
-- if (direproc->d_type!=DT_DIR) continue;
--#endif
-- for (cs=direproc->d_name;*cs;cs++)
-- if (!isdigit(*cs))
-+ while (errno = 0, direproc = readdir(dirproc)) {
-+ for (cs = direproc->d_name; *cs; cs++)
-+ if (!isdigit(*cs))
- break;
-- if (*cs)
-+ if (*cs)
- continue;
-- procfdlen=snprintf(line,sizeof(line),PATH_PROC_X_FD,direproc->d_name);
-- if (procfdlen<=0 || procfdlen>=sizeof(line)-5)
-+ procfdlen = snprintf(line,sizeof(line),PATH_PROC_X_FD,direproc->d_name);
-+ if (procfdlen <= 0 || procfdlen >= sizeof(line) - 5)
- continue;
-- errno=0;
-- dirfd=opendir(line);
-+ errno = 0;
-+ dirfd = opendir(line);
- if (! dirfd) {
-- if (errno==EACCES)
-- eacces=1;
-+ if (errno == EACCES)
-+ eacces = 1;
- continue;
- }
- line[procfdlen] = '/';
- cmdlp = NULL;
- while ((direfd = readdir(dirfd))) {
--#ifdef DIRENT_HAVE_D_TYPE_WORKS
-- if (direfd->d_type!=DT_LNK)
-- continue;
--#endif
-- if (procfdlen+1+strlen(direfd->d_name)+1>sizeof(line))
-+ /* Skip . and .. */
-+ if (!isdigit(direfd->d_name[0]))
-+ continue;
-+ if (procfdlen + 1 + strlen(direfd->d_name) + 1 > sizeof(line))
- continue;
- memcpy(line + procfdlen - PATH_FD_SUFFl, PATH_FD_SUFF "/",
-- PATH_FD_SUFFl+1);
-- strcpy(line + procfdlen + 1, direfd->d_name);
-- lnamelen=readlink(line,lname,sizeof(lname)-1);
-+ PATH_FD_SUFFl + 1);
-+ safe_strncpy(line + procfdlen + 1, direfd->d_name,
-+ sizeof(line) - procfdlen - 1);
-+ lnamelen = readlink(line, lname, sizeof(lname) - 1);
-+ if (lnamelen == -1)
-+ continue;
- lname[lnamelen] = '\0'; /*make it a null-terminated string*/
-
-- extract_type_1_socket_inode(lname, &inode);
--
-- if (inode < 0) extract_type_2_socket_inode(lname, &inode);
--
-- if (inode < 0) continue;
-+ if (extract_type_1_socket_inode(lname, &inode) < 0)
-+ if (extract_type_2_socket_inode(lname, &inode) < 0)
-+ continue;
-
- if (!cmdlp) {
-- if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >=
-- sizeof(line) - 5)
-+ if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >=
-+ sizeof(line) - 5)
- continue;
-- strcpy(line + procfdlen-PATH_FD_SUFFl, PATH_CMDLINE);
-+ safe_strncpy(line + procfdlen - PATH_FD_SUFFl, PATH_CMDLINE,
-+ sizeof(line) - procfdlen + PATH_FD_SUFFl);
- fd = open(line, O_RDONLY);
-- if (fd < 0)
-+ if (fd < 0)
- continue;
- cmdllen = read(fd, cmdlbuf, sizeof(cmdlbuf) - 1);
-- if (close(fd))
-+ if (close(fd))
- continue;
-- if (cmdllen == -1)
-+ if (cmdllen == -1)
- continue;
-- if (cmdllen < sizeof(cmdlbuf) - 1)
-+ if (cmdllen < sizeof(cmdlbuf) - 1)
- cmdlbuf[cmdllen]='\0';
-- if ((cmdlp = strrchr(cmdlbuf, '/')))
-+ if (cmdlbuf[0] == '/' && (cmdlp = strrchr(cmdlbuf, '/')))
- cmdlp++;
-- else
-+ else
- cmdlp = cmdlbuf;
- }
-
- snprintf(finbuf, sizeof(finbuf), "%s/%s", direproc->d_name, cmdlp);
-- prg_cache_add(inode, finbuf);
-+#if HAVE_SELINUX
-+ if (getpidcon(atoi(direproc->d_name), &scon) == -1) {
-+ scon=strdup("-");
-+ }
-+ prg_cache_add(inode, finbuf, scon);
-+ freecon(scon);
-+#else
-+ prg_cache_add(inode, finbuf, "-");
-+#endif
- }
-- closedir(dirfd);
-+ closedir(dirfd);
- dirfd = NULL;
- }
-- if (dirproc)
-+ if (dirproc)
- closedir(dirproc);
-- if (dirfd)
-+ if (dirfd)
- closedir(dirfd);
-- if (!eacces)
-+ if (!eacces)
- return;
- if (prg_cache_loaded == 1) {
- fail:
-@@ -450,7 +517,7 @@ static int netrom_info(void)
- char buffer[256], dev[16];
- int st, vs, vr, sendq, recvq, ret;
-
-- f = fopen(_PATH_PROCNET_NR, "r");
-+ f = proc_fopen(_PATH_PROCNET_NR);
- if (f == NULL) {
- if (errno != ENOENT) {
- perror(_PATH_PROCNET_NR);
-@@ -465,7 +532,8 @@ static int netrom_info(void)
- }
- printf(_("Active NET/ROM sockets\n"));
- printf(_("User Dest Source Device State Vr/Vs Send-Q Recv-Q\n"));
-- fgets(buffer, 256, f);
-+ if (fgets(buffer, 256, f))
-+ /* eat line */;
-
- while (fgets(buffer, 256, f)) {
- buffer[9] = 0;
-@@ -527,19 +595,22 @@ static void finish_this_one(int uid, unsigned long inode, const char *timers)
-
- if (flag_exp > 1) {
- if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL))
-- printf("%-10s ", pw->pw_name);
-+ printf(" %-10s ", pw->pw_name);
- else
-- printf("%-10d ", uid);
-- printf("%-10ld ",inode);
-+ printf(" %-10d ", uid);
-+ printf("%-10lu",inode);
- }
- if (flag_prg)
-- printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode));
-+ printf(" %-" PROGNAME_WIDTHs "s",prg_cache_get(inode));
-+ if (flag_selinux)
-+ printf(" %-" SELINUX_WIDTHs "s",prg_cache_get_con(inode));
-+
- if (flag_opt)
-- printf("%s", timers);
-+ printf(" %s", timers);
- putchar('\n');
- }
-
--static void igmp_do_one(int lnr, const char *line)
-+static void igmp_do_one(int lnr, const char *line,const char *prot)
- {
- char mcast_addr[128];
- #if HAVE_AFINET6
-@@ -598,8 +669,8 @@ static void igmp_do_one(int lnr, const char *line)
- ((struct sockaddr *) &mcastaddr)->sa_family);
- return;
- }
-- safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-- flag_not), sizeof(mcast_addr));
-+ safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-+ flag_not & FLAG_NUM_HOST), sizeof(mcast_addr));
- printf("%-15s %-6d %s\n", device, refcnt, mcast_addr);
- #endif
- } else { /* IPV4 */
-@@ -630,14 +701,14 @@ static void igmp_do_one(int lnr, const char *line)
- fprintf(stderr, _("warning, got bogus igmp line %d.\n"), lnr);
- return;
- }
--
-+
- if ((ap = get_afntype(((struct sockaddr *) &mcastaddr)->sa_family)) == NULL) {
- fprintf(stderr, _("netstat: unsupported address family %d !\n"),
- ((struct sockaddr *) &mcastaddr)->sa_family);
- return;
- }
-- safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-- flag_not), sizeof(mcast_addr));
-+ safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-+ flag_not & FLAG_NUM_HOST), sizeof(mcast_addr));
- printf("%-15s %-6d %s\n", device, refcnt, mcast_addr );
- #endif
- } /* IPV4 */
-@@ -646,7 +717,7 @@ static void igmp_do_one(int lnr, const char *line)
- #if HAVE_AFX25
- static int x25_info(void)
- {
-- FILE *f=fopen(_PATH_PROCNET_X25, "r");
-+ FILE *f=proc_fopen(_PATH_PROCNET_X25);
- char buffer[256],dev[16];
- int st,vs,vr,sendq,recvq,lci;
- static char *x25_state[5]=
-@@ -657,7 +728,7 @@ static int x25_info(void)
- "ESTABLISHED",
- "RECOVERY"
- };
-- if(!(f=fopen(_PATH_PROCNET_X25, "r")))
-+ if(!f)
- {
- if (errno != ENOENT) {
- perror(_PATH_PROCNET_X25);
-@@ -673,7 +744,8 @@ static int x25_info(void)
- printf( _("Active X.25 sockets\n"));
- /* IMHO, Vr/Vs is not very usefull --SF */
- printf( _("Dest Source Device LCI State Vr/Vs Send-Q Recv-Q\n"));
-- fgets(buffer,256,f);
-+ if (fgets(buffer,256,f))
-+ /* eat line */;
- while(fgets(buffer,256,f))
- {
- buffer[10]=0;
-@@ -690,21 +762,206 @@ static int x25_info(void)
- vr,vs,sendq,recvq);
- }
- fclose(f);
-- return 0;
-+ return 0;
- }
- #endif
-
- static int igmp_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_IGMP, _PATH_PROCNET_IGMP6, "AF INET (igmp)",
-- igmp_do_one);
-+ igmp_do_one, "igmp", "igmp6");
-+}
-+
-+static int ip_parse_dots(uint32_t *addr, char const *src) {
-+ unsigned a, b, c, d;
-+ unsigned ret = 4-sscanf(src, "%u.%u.%u.%u", &a, &b, &c, &d);
-+ *addr = htonl((a << 24)|(b << 16)|(c << 8)|d);
-+ return ret;
-+}
-+
-+static void print_ip_service(struct sockaddr_in *addr, char const *protname,
-+ char *buf, unsigned size) {
-+ struct aftype *ap;
-+
-+ if(size == 0) return;
-+
-+ /* print host */
-+ if((ap = get_afntype(addr->sin_family)) == NULL) {
-+ fprintf(stderr, _("netstat: unsupported address family %d !\n"),
-+ addr->sin_family);
-+ return;
-+ }
-+ safe_strncpy(buf, ap->sprint((struct sockaddr*)addr, flag_not), size);
-+
-+ /* print service */
-+ if(flag_all || (flag_lst && !addr->sin_port) || (!flag_lst && addr->sin_port)) {
-+ char bfs[32];
-+
-+ snprintf(bfs, sizeof(bfs), "%s",
-+ get_sname(addr->sin_port, (char*)protname, flag_not & FLAG_NUM_PORT));
-+
-+ /* check if we must cut on host and/or service name */
-+ {
-+ unsigned const bufl = strlen(buf);
-+ unsigned const bfsl = strlen(bfs);
-+
-+ if(bufl+bfsl+2 > size) {
-+ unsigned const half = (size-2)>>1;
-+ if(bufl > half) {
-+ if(bfsl > half) {
-+ buf[size-2-half] = '\0';
-+ bfs[half+1] = '\0';
-+ }
-+ else buf[size-2-bfsl] = '\0';
-+ }
-+ else bfs[size-2-bufl] = '\0';
-+ }
-+ }
-+ strcat(buf, ":");
-+ strcat(buf, bfs);
-+ }
-+}
-+
-+/* process single SCTP endpoint */
-+static void sctp_do_ept(int lnr, char const *line, const char *prot)
-+{
-+ struct sockaddr_in laddr, raddr;
-+ unsigned uid, inode;
-+
-+ char l_addr[23], r_addr[23];
-+
-+ /* fill sockaddr_in structures */
-+ {
-+ unsigned lport;
-+ unsigned ate;
-+
-+ if(lnr == 0) return;
-+ if(sscanf(line, "%*X %*X %*u %*u %*u %u %u %u %n",
-+ &lport, &uid, &inode, &ate) < 3) goto err;
-+
-+ /* decode IP address */
-+ if(ip_parse_dots(&laddr.sin_addr.s_addr, line+ate)) goto err;
-+ raddr.sin_addr.s_addr = htonl(0);
-+ laddr.sin_family = raddr.sin_family = AF_INET;
-+ laddr.sin_port = htons(lport);
-+ raddr.sin_port = htons(0);
-+ }
-+
-+ /* print IP:service to l_addr and r_addr */
-+ print_ip_service(&laddr, prot, l_addr, sizeof(l_addr));
-+ print_ip_service(&raddr, prot, r_addr, sizeof(r_addr));
-+
-+ /* Print line */
-+ printf("%-4s %6d %6d %-*s %-*s %-11s",
-+ prot, 0, 0,
-+ (int)netmax(23,strlen(l_addr)), l_addr,
-+ (int)netmax(23,strlen(r_addr)), r_addr,
-+ _(tcp_state[TCP_LISTEN]));
-+ finish_this_one(uid, inode, "");
-+ return;
-+ err:
-+ fprintf(stderr, "SCTP error in line: %d\n", lnr);
-+}
-+
-+/* process single SCTP association */
-+static void sctp_do_assoc(int lnr, char const *line, const char *prot)
-+{
-+ struct sockaddr_in laddr, raddr;
-+ unsigned long rxq, txq;
-+ unsigned uid, inode;
-+
-+ char l_addr[23], r_addr[23];
-+
-+ /* fill sockaddr_in structures */
-+ {
-+ unsigned lport, rport;
-+ unsigned ate;
-+ char const *addr;
-+
-+ if(lnr == 0) return;
-+ if(sscanf(line, "%*X %*X %*u %*u %*u %*u %*u %lu %lu %u %u %u %u %n",
-+ &txq, &rxq, &uid, &inode, &lport, &rport, &ate) < 6) goto err;
-+
-+ /* decode IP addresses */
-+ addr = strchr(line+ate, '*');
-+ if(addr == 0) goto err;
-+ if(ip_parse_dots(&laddr.sin_addr.s_addr, ++addr)) goto err;
-+ addr = strchr(addr, '*');
-+ if(addr == 0) goto err;
-+ if(ip_parse_dots(&raddr.sin_addr.s_addr, ++addr)) goto err;
-+
-+ /* complete sockaddr_in structures */
-+ laddr.sin_family = raddr.sin_family = AF_INET;
-+ laddr.sin_port = htons(lport);
-+ raddr.sin_port = htons(rport);
-+ }
-+
-+ /* print IP:service to l_addr and r_addr */
-+ print_ip_service(&laddr, prot, l_addr, sizeof(l_addr));
-+ print_ip_service(&raddr, prot, r_addr, sizeof(r_addr));
-+
-+ /* Print line */
-+ printf("%-4s %6ld %6ld %-*s %-*s %-11s",
-+ prot, rxq, txq,
-+ (int)netmax(23,strlen(l_addr)), l_addr,
-+ (int)netmax(23,strlen(r_addr)), r_addr,
-+ _(tcp_state[TCP_ESTABLISHED]));
-+ finish_this_one(uid, inode, "");
-+ return;
-+ err:
-+ fprintf(stderr, "SCTP error in line: %d\n", lnr);
-+}
-+
-+static int sctp_info_epts(void) {
-+ INFO_GUTS6(_PATH_PROCNET_SCTPEPTS, _PATH_PROCNET_SCTP6EPTS, "AF INET (sctp)",
-+ sctp_do_ept, "sctp", "sctp6");
-+}
-+
-+static int sctp_info_assocs(void) {
-+ INFO_GUTS6(_PATH_PROCNET_SCTPASSOCS, _PATH_PROCNET_SCTP6ASSOCS, "AF INET (sctp)",
-+ sctp_do_assoc, "sctp", "sctp6");
-+}
-+
-+static int sctp_info(void) {
-+ int res;
-+ res = sctp_info_epts();
-+ if(res) return res;
-+ return sctp_info_assocs();
-+}
-+
-+static void addr_do_one(char *buf, size_t buf_len, size_t short_len, struct aftype *ap,
-+#if HAVE_AFINET6
-+ struct sockaddr_in6 *addr,
-+#else
-+ struct sockaddr_in *addr,
-+#endif
-+ int port, const char *proto
-+)
-+{
-+ const char *sport, *saddr;
-+ size_t port_len, addr_len;
-+
-+ saddr = ap->sprint((struct sockaddr *)addr, flag_not & FLAG_NUM_HOST);
-+ sport = get_sname(htons(port), proto, flag_not & FLAG_NUM_PORT);
-+ addr_len = strlen(saddr);
-+ port_len = strlen(sport);
-+ if (!flag_wide && (addr_len + port_len > short_len)) {
-+ /* Assume port name is short */
-+ port_len = netmin(port_len, short_len - 4);
-+ addr_len = short_len - port_len;
-+ strncpy(buf, saddr, addr_len);
-+ buf[addr_len] = '\0';
-+ strcat(buf, ":");
-+ strncat(buf, sport, port_len);
-+ } else
-+ snprintf(buf, buf_len, "%s:%s", saddr, sport);
- }
-
--static void tcp_do_one(int lnr, const char *line)
-+static void tcp_do_one(int lnr, const char *line, const char *prot)
- {
- unsigned long rxq, txq, time_len, retr, inode;
- int num, local_port, rem_port, d, state, uid, timer_run, timeout;
-- char rem_addr[128], local_addr[128], timers[64], buffer[1024], more[512];
-+ char rem_addr[128], local_addr[128], timers[64];
- struct aftype *ap;
- #if HAVE_AFINET6
- struct sockaddr_in6 localaddr, remaddr;
-@@ -719,9 +976,17 @@ static void tcp_do_one(int lnr, const char *line)
- return;
-
- num = sscanf(line,
-- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
-+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %*s\n",
- &d, local_addr, &local_port, rem_addr, &rem_port, &state,
-- &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
-+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode);
-+
-+ if (num < 11) {
-+ fprintf(stderr, _("warning, got bogus tcp line.\n"));
-+ return;
-+ }
-+
-+ if (!flag_all && ((flag_lst && rem_port) || (!flag_lst && !rem_port)))
-+ return;
-
- if (strlen(local_addr) > 8) {
- #if HAVE_AFINET6
-@@ -748,45 +1013,16 @@ static void tcp_do_one(int lnr, const char *line)
- ((struct sockaddr *) &remaddr)->sa_family = AF_INET;
- }
-
-- if (num < 11) {
-- fprintf(stderr, _("warning, got bogus tcp line.\n"));
-- return;
-- }
- if ((ap = get_afntype(((struct sockaddr *) &localaddr)->sa_family)) == NULL) {
- fprintf(stderr, _("netstat: unsupported address family %d !\n"),
- ((struct sockaddr *) &localaddr)->sa_family);
- return;
- }
-- if (state == TCP_LISTEN) {
-- time_len = 0;
-- retr = 0L;
-- rxq = 0L;
-- txq = 0L;
-- }
-- safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
-- flag_not), sizeof(local_addr));
-- safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not),
-- sizeof(rem_addr));
-- if (flag_all || (flag_lst && !rem_port) || (!flag_lst && rem_port)) {
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(local_port), "tcp",
-- flag_not & FLAG_NUM_PORT));
--
-- if ((strlen(local_addr) + strlen(buffer)) > 22)
-- local_addr[22 - strlen(buffer)] = '\0';
--
-- strcat(local_addr, ":");
-- strcat(local_addr, buffer);
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
--
-- if ((strlen(rem_addr) + strlen(buffer)) > 22)
-- rem_addr[22 - strlen(buffer)] = '\0';
--
-- strcat(rem_addr, ":");
-- strcat(rem_addr, buffer);
-- timers[0] = '\0';
-
-+ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "tcp");
-+ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "tcp");
-+
-+ timers[0] = '\0';
- if (flag_opt)
- switch (timer_run) {
- case 0:
-@@ -813,23 +1049,23 @@ static void tcp_do_one(int lnr, const char *line)
- timer_run, (double) time_len / HZ, retr, timeout);
- break;
- }
-- printf("tcp %6ld %6ld %-23s %-23s %-12s",
-- rxq, txq, local_addr, rem_addr, _(tcp_state[state]));
-+
-+ printf("%-4s %6ld %6ld %-*s %-*s %-11s",
-+ prot, rxq, txq, (int)netmax(23,strlen(local_addr)), local_addr, (int)netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state]));
-
- finish_this_one(uid,inode,timers);
-- }
- }
-
- static int tcp_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_TCP, _PATH_PROCNET_TCP6, "AF INET (tcp)",
-- tcp_do_one);
-+ tcp_do_one, "tcp", "tcp6");
- }
-
--static void udp_do_one(int lnr, const char *line)
-+static void udp_do_one(int lnr, const char *line,const char *prot)
- {
-- char buffer[8192], local_addr[64], rem_addr[64];
-- char *udp_state, timers[64], more[512];
-+ char local_addr[64], rem_addr[64];
-+ char *udp_state, timers[64];
- int num, local_port, rem_port, d, state, timer_run, uid, timeout;
- #if HAVE_AFINET6
- struct sockaddr_in6 localaddr, remaddr;
-@@ -845,12 +1081,16 @@ static void udp_do_one(int lnr, const char *line)
- if (lnr == 0)
- return;
-
-- more[0] = '\0';
- num = sscanf(line,
-- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
-+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %*s\n",
- &d, local_addr, &local_port,
- rem_addr, &rem_port, &state,
-- &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
-+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode);
-+
-+ if (num < 10) {
-+ fprintf(stderr, _("warning, got bogus udp line.\n"));
-+ return;
-+ }
-
- if (strlen(local_addr) > 8) {
- #if HAVE_AFINET6
-@@ -877,13 +1117,7 @@ static void udp_do_one(int lnr, const char *line)
- }
-
- retr = 0L;
-- if (!flag_opt)
-- more[0] = '\0';
-
-- if (num < 10) {
-- fprintf(stderr, _("warning, got bogus udp line.\n"));
-- return;
-- }
- if ((ap = get_afntype(((struct sockaddr *) &localaddr)->sa_family)) == NULL) {
- fprintf(stderr, _("netstat: unsupported address family %d !\n"),
- ((struct sockaddr *) &localaddr)->sa_family);
-@@ -917,24 +1151,8 @@ static void udp_do_one(int lnr, const char *line)
-
- if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst))
- {
-- safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
-- flag_not), sizeof(local_addr));
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(local_port), "udp",
-- flag_not & FLAG_NUM_PORT));
-- if ((strlen(local_addr) + strlen(buffer)) > 22)
-- local_addr[22 - strlen(buffer)] = '\0';
-- strcat(local_addr, ":");
-- strcat(local_addr, buffer);
--
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
-- safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr,
-- flag_not), sizeof(rem_addr));
-- if ((strlen(rem_addr) + strlen(buffer)) > 22)
-- rem_addr[22 - strlen(buffer)] = '\0';
-- strcat(rem_addr, ":");
-- strcat(rem_addr, buffer);
-+ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "udp");
-+ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "udp");
-
- timers[0] = '\0';
- if (flag_opt)
-@@ -953,8 +1171,8 @@ static void udp_do_one(int lnr, const char *line)
- retr, timeout);
- break;
- }
-- printf("udp %6ld %6ld %-23s %-23s %-12s",
-- rxq, txq, local_addr, rem_addr, udp_state);
-+ printf("%-5s %6ld %6ld %-23s %-23s %-11s",
-+ prot, rxq, txq, local_addr, rem_addr, udp_state);
-
- finish_this_one(uid,inode,timers);
- }
-@@ -963,13 +1181,19 @@ static void udp_do_one(int lnr, const char *line)
- static int udp_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_UDP, _PATH_PROCNET_UDP6, "AF INET (udp)",
-- udp_do_one);
-+ udp_do_one, "udp", "udp6");
- }
-
--static void raw_do_one(int lnr, const char *line)
-+static int udplite_info(void)
- {
-- char buffer[8192], local_addr[64], rem_addr[64];
-- char timers[64], more[512];
-+ INFO_GUTS6(_PATH_PROCNET_UDPLITE, _PATH_PROCNET_UDPLITE6,
-+ "AF INET (udplite)", udp_do_one, "udpl", "udpl6" );
-+}
-+
-+static void raw_do_one(int lnr, const char *line,const char *prot)
-+{
-+ char local_addr[64], rem_addr[64];
-+ char timers[64];
- int num, local_port, rem_port, d, state, timer_run, uid, timeout;
- #if HAVE_AFINET6
- struct sockaddr_in6 localaddr, remaddr;
-@@ -985,11 +1209,15 @@ static void raw_do_one(int lnr, const char *line)
- if (lnr == 0)
- return;
-
-- more[0] = '\0';
- num = sscanf(line,
-- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
-+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %*s\n",
- &d, local_addr, &local_port, rem_addr, &rem_port, &state,
-- &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
-+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode);
-+
-+ if (num < 10) {
-+ fprintf(stderr, _("warning, got bogus raw line.\n"));
-+ return;
-+ }
-
- if (strlen(local_addr) > 8) {
- #if HAVE_AFINET6
-@@ -1026,34 +1254,10 @@ static void raw_do_one(int lnr, const char *line)
- }
- #endif
-
-- if (!flag_opt)
-- more[0] = '\0';
--
-- if (num < 10) {
-- fprintf(stderr, _("warning, got bogus raw line.\n"));
-- return;
-- }
--
- if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst))
- {
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(local_port), "raw",
-- flag_not & FLAG_NUM_PORT));
-- safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
-- flag_not), sizeof(local_addr));
-- if ((strlen(local_addr) + strlen(buffer)) > 22)
-- local_addr[22 - strlen(buffer)] = '\0';
-- strcat(local_addr, ":");
-- strcat(local_addr, buffer);
--
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
-- safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr,
-- flag_not), sizeof(rem_addr));
-- if ((strlen(rem_addr) + strlen(buffer)) > 22)
-- rem_addr[22 - strlen(buffer)] = '\0';
-- strcat(rem_addr, ":");
-- strcat(rem_addr, buffer);
-+ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "raw");
-+ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "raw");
-
- timers[0] = '\0';
- if (flag_opt)
-@@ -1074,8 +1278,8 @@ static void raw_do_one(int lnr, const char *line)
- retr, timeout);
- break;
- }
-- printf("raw %6ld %6ld %-23s %-23s %-12d",
-- rxq, txq, local_addr, rem_addr, state);
-+ printf("%-4s %6ld %6ld %-23s %-23s %-11d",
-+ prot, rxq, txq, local_addr, rem_addr, state);
-
- finish_this_one(uid,inode,timers);
- }
-@@ -1084,7 +1288,7 @@ static void raw_do_one(int lnr, const char *line)
- static int raw_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_RAW, _PATH_PROCNET_RAW6, "AF INET (raw)",
-- raw_do_one);
-+ raw_do_one, "raw", "raw6");
- }
-
- #endif
-@@ -1094,14 +1298,14 @@ static int raw_info(void)
-
- #define HAS_INODE 1
-
--static void unix_do_one(int nr, const char *line)
-+static void unix_do_one(int nr, const char *line, const char *prot)
- {
- static int has = 0;
- char path[MAXPATHLEN], ss_flags[32];
- char *ss_proto, *ss_state, *ss_type;
-- int num, state, type, inode;
-+ int num, state, type;
- void *d;
-- unsigned long refcnt, proto, flags;
-+ unsigned long refcnt, proto, flags, inode;
-
- if (nr == 0) {
- if (strstr(line, "Inode"))
-@@ -1109,14 +1313,14 @@ static void unix_do_one(int nr, const char *line)
- return;
- }
- path[0] = '\0';
-- num = sscanf(line, "%p: %lX %lX %lX %X %X %d %s",
-+ num = sscanf(line, "%p: %lX %lX %lX %X %X %lu %s",
- &d, &refcnt, &proto, &flags, &type, &state, &inode, path);
- if (num < 6) {
- fprintf(stderr, _("warning, got bogus unix line.\n"));
- return;
- }
- if (!(has & HAS_INODE))
-- snprintf(path,sizeof(path),"%d",inode);
-+ snprintf(path,sizeof(path),"%lu",inode);
-
- if (!flag_all) {
- if ((state == SS_UNCONNECTED) && (flags & SO_ACCEPTCON)) {
-@@ -1195,7 +1399,7 @@ static void unix_do_one(int nr, const char *line)
- ss_state = _("UNKNOWN");
- }
-
-- strcpy(ss_flags, "[ ");
-+ safe_strncpy(ss_flags, "[ ", sizeof(ss_flags));
- if (flags & SO_ACCEPTCON)
- strcat(ss_flags, "ACC ");
- if (flags & SO_WAITDATA)
-@@ -1208,12 +1412,15 @@ static void unix_do_one(int nr, const char *line)
- printf("%-5s %-6ld %-11s %-10s %-13s ",
- ss_proto, refcnt, ss_flags, ss_type, ss_state);
- if (has & HAS_INODE)
-- printf("%-6d ",inode);
-+ printf("%-8lu",inode);
- else
-- printf("- ");
-+ printf("- ");
- if (flag_prg)
-- printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-"));
-- puts(path);
-+ printf(" %-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-"));
-+ if (flag_selinux)
-+ printf(" %-" SELINUX_WIDTHs "s",(has & HAS_INODE?prg_cache_get_con(inode):"-"));
-+
-+ printf(" %s\n", path);
- }
-
- static int unix_info(void)
-@@ -1229,12 +1436,13 @@ static int unix_info(void)
- printf(_("(w/o servers)"));
- }
-
-- printf(_("\nProto RefCnt Flags Type State I-Node"));
-+ printf(_("\nProto RefCnt Flags Type State I-Node "));
- print_progname_banner();
-+ print_selinux_banner();
- printf(_(" Path\n")); /* xxx */
-
- {
-- INFO_GUTS(_PATH_PROCNET_UNIX, "AF UNIX", unix_do_one);
-+ INFO_GUTS(_PATH_PROCNET_UNIX, "AF UNIX", unix_do_one, "unix");
- }
- }
- #endif
-@@ -1256,7 +1464,7 @@ static int ax25_info(void)
- N_("ESTABLISHED"),
- N_("RECOVERY")
- };
-- if (!(f = fopen(_PATH_PROCNET_AX25, "r"))) {
-+ if (!(f = proc_fopen(_PATH_PROCNET_AX25))) {
- if (errno != ENOENT) {
- perror(_PATH_PROCNET_AX25);
- return (-1);
-@@ -1350,18 +1558,37 @@ static int ipx_info(void)
- char sad[50], dad[50];
- struct sockaddr sa;
- unsigned sport = 0, dport = 0;
--
-- if (!(f = fopen(_PATH_PROCNET_IPX, "r"))) {
-- if (errno != ENOENT) {
-- perror(_PATH_PROCNET_IPX);
-- return (-1);
-- }
-- if (flag_arg || flag_ver)
-- ESYSNOT("netstat", "AF IPX");
-- if (flag_arg)
-- return (1);
-- else
-- return (0);
-+ struct stat s;
-+
-+ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET1);
-+ if (!f) {
-+ if (errno != ENOENT) {
-+ perror(_PATH_PROCNET_IPX_SOCKET1);
-+ return (-1);
-+ }
-+ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET2);
-+
-+ /* We need to check for directory */
-+ if (f) {
-+ if (fstat (fileno(f), &s) == -1 ||
-+ !S_ISREG(s.st_mode)) {
-+ fclose(f);
-+ f=NULL;
-+ }
-+ }
-+
-+ if (!f) {
-+ if (errno != ENOENT) {
-+ perror(_PATH_PROCNET_IPX_SOCKET2);
-+ return (-1);
-+ }
-+ if (flag_arg || flag_ver)
-+ ESYSNOT("netstat", "AF IPX");
-+ if (flag_arg)
-+ return (1);
-+ else
-+ return (0);
-+ }
- }
- printf(_("Active IPX sockets\nProto Recv-Q Send-Q Local Address Foreign Address State")); /* xxx */
- if (flag_exp > 1)
-@@ -1369,9 +1596,11 @@ static int ipx_info(void)
- printf("\n");
- if ((ap = get_afntype(AF_IPX)) == NULL) {
- EINTERN("netstat.c", "AF_IPX missing");
-+ fclose(f);
- return (-1);
- }
-- fgets(buf, 255, f);
-+ if (fgets(buf, 255, f))
-+ /* eat line */;
-
- while (fgets(buf, 255, f) != NULL) {
- sscanf(buf, "%s %s %lX %lX %d %d",
-@@ -1381,7 +1610,8 @@ static int ipx_info(void)
- sscanf(st, "%X", &sport); /* net byt order */
- sport = ntohs(sport);
- } else {
-- EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error");
-+ EINTERN("netstat.c", "ipx socket format error in source port");
-+ fclose(f);
- return (-1);
- }
- nc = 0;
-@@ -1391,7 +1621,8 @@ static int ipx_info(void)
- sscanf(st, "%X", &dport); /* net byt order */
- dport = ntohs(dport);
- } else {
-- EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error");
-+ EINTERN("netstat.c", "ipx soket format error in destination port");
-+ fclose(f);
- return (-1);
- }
- } else
-@@ -1413,16 +1644,16 @@ static int ipx_info(void)
-
- /* Fetch and resolve the Source */
- (void) ap->input(4, sad, &sa);
-- safe_strncpy(buf, ap->sprint(&sa, flag_not), sizeof(buf));
-+ safe_strncpy(buf, ap->sprint(&sa, flag_not & FLAG_NUM_HOST), sizeof(buf));
- snprintf(sad, sizeof(sad), "%s:%04X", buf, sport);
-
- if (!nc) {
- /* Fetch and resolve the Destination */
- (void) ap->input(4, dad, &sa);
-- safe_strncpy(buf, ap->sprint(&sa, flag_not), sizeof(buf));
-+ safe_strncpy(buf, ap->sprint(&sa, flag_not & FLAG_NUM_HOST), sizeof(buf));
- snprintf(dad, sizeof(dad), "%s:%04X", buf, dport);
- } else
-- strcpy(dad, "-");
-+ safe_strncpy(dad, "-", sizeof(dad));
-
- printf("IPX %6ld %6ld %-26s %-26s %-5s", txq, rxq, sad, dad, st);
- if (flag_exp > 1) {
-@@ -1438,6 +1669,116 @@ static int ipx_info(void)
- }
- #endif
-
-+#if HAVE_AFBLUETOOTH
-+const char *bluetooth_state(int state)
-+{
-+ switch (state) {
-+ case BT_CONNECTED:
-+ return _("CONNECTED");
-+ case BT_OPEN:
-+ return _("OPEN");
-+ case BT_BOUND:
-+ return _("BOUND");
-+ case BT_LISTEN:
-+ return _("LISTEN");
-+ case BT_CONNECT:
-+ return _("CONNECT");
-+ case BT_CONNECT2:
-+ return _("CONNECT2");
-+ case BT_CONFIG:
-+ return _("CONFIG");
-+ case BT_DISCONN:
-+ return _("DISCONN");
-+ case BT_CLOSED:
-+ return _("CLOSED");
-+ default:
-+ return _("UNKNOWN");
-+ }
-+}
-+
-+static void l2cap_do_one(int nr, const char *line, const char *prot)
-+{
-+ char daddr[18], saddr[18];
-+ unsigned state, psm, dcid, scid, imtu, omtu, sec_level;
-+ int num;
-+ const char *bt_state, *bt_sec_level;
-+
-+ num = sscanf(line, "%17s %17s %d %d 0x%04x 0x%04x %d %d %d",
-+ daddr, saddr, &state, &psm, &dcid, &scid, &imtu, &omtu, &sec_level);
-+
-+ if (num < 9) {
-+ fprintf(stderr, _("warning, got bogus l2cap line.\n"));
-+ return;
-+ }
-+
-+ if (flag_lst && !(state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+ if (!(flag_all || flag_lst) && (state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+
-+ bt_state = bluetooth_state(state);
-+ switch (sec_level) {
-+ case BT_SECURITY_SDP:
-+ bt_sec_level = _("SDP");
-+ break;
-+ case BT_SECURITY_LOW:
-+ bt_sec_level = _("LOW");
-+ break;
-+ case BT_SECURITY_MEDIUM:
-+ bt_sec_level = _("MEDIUM");
-+ break;
-+ case BT_SECURITY_HIGH:
-+ bt_sec_level = _("HIGH");
-+ break;
-+ default:
-+ bt_sec_level = _("UNKNOWN");
-+ }
-+
-+ printf("l2cap %-17s %-17s %-9s %7d 0x%04x 0x%04x %7d %7d %-7s\n",
-+ (strcmp (daddr, "00:00:00:00:00:00") == 0 ? "*" : daddr),
-+ (strcmp (saddr, "00:00:00:00:00:00") == 0 ? "*" : saddr),
-+ bt_state, psm, dcid, scid, imtu, omtu, bt_sec_level);
-+}
-+
-+static int l2cap_info(void)
-+{
-+ printf("%-6s %-17s %-17s %-9s %7s %-6s %-6s %7s %7s %-7s\n",
-+ "Proto", "Destination", "Source", "State", "PSM", "DCID", "SCID", "IMTU", "OMTU", "Security");
-+ INFO_GUTS(_PATH_SYS_BLUETOOTH_L2CAP, "AF BLUETOOTH", l2cap_do_one, "l2cap");
-+}
-+
-+static void rfcomm_do_one(int nr, const char *line, const char *prot)
-+{
-+ char daddr[18], saddr[18];
-+ unsigned state, channel;
-+ int num;
-+ const char *bt_state;
-+
-+ num = sscanf(line, "%17s %17s %d %d", daddr, saddr, &state, &channel);
-+ if (num < 4) {
-+ fprintf(stderr, _("warning, got bogus rfcomm line.\n"));
-+ return;
-+ }
-+
-+ if (flag_lst && !(state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+ if (!(flag_all || flag_lst) && (state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+
-+ bt_state = bluetooth_state(state);
-+ printf("rfcomm %-17s %-17s %-9s %7d\n",
-+ (strcmp (daddr, "00:00:00:00:00:00") == 0 ? "*" : daddr),
-+ (strcmp (saddr, "00:00:00:00:00:00") == 0 ? "*" : saddr),
-+ bt_state, channel);
-+}
-+
-+static int rfcomm_info(void)
-+{
-+ printf("%-6s %-17s %-17s %-9s %7s\n", "Proto", "Destination", "Source", "State", "Channel");
-+ INFO_GUTS(_PATH_SYS_BLUETOOTH_RFCOMM, "AF BLUETOOTH", rfcomm_do_one, "rfcomm");
-+}
-+#endif
-+
- static int iface_info(void)
- {
- if (skfd < 0) {
-@@ -1449,7 +1790,7 @@ static int iface_info(void)
- }
- if (flag_exp < 2) {
- ife_short = 1;
-- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
-+ printf(_("Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
- }
-
- if (for_all_interfaces(do_if_print, &flag_all) < 0) {
-@@ -1457,7 +1798,7 @@ static int iface_info(void)
- exit(1);
- }
- if (flag_cnt)
-- free_interface_list();
-+ if_cache_free();
- else {
- close(skfd);
- skfd = -1;
-@@ -1469,16 +1810,16 @@ static int iface_info(void)
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n%s\n", Release, Version, Signature, Features);
-+ printf("%s\n%s\n%s\n", Release, Signature, Features);
- exit(E_VERSION);
- }
-
-
- static void usage(void)
- {
-- fprintf(stderr, _("usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n"));
-- fprintf(stderr, _(" netstat [-vnNcaeol] [<Socket> ...]\n"));
-- fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n"));
-+ fprintf(stderr, _("usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n"));
-+ fprintf(stderr, _(" netstat [-vWnNcaeol] [<Socket> ...]\n"));
-+ fprintf(stderr, _(" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n\n"));
-
- fprintf(stderr, _(" -r, --route display routing table\n"));
- fprintf(stderr, _(" -i, --interfaces display interface table\n"));
-@@ -1487,7 +1828,9 @@ static void usage(void)
- #if HAVE_FW_MASQUERADE
- fprintf(stderr, _(" -M, --masquerade display masqueraded connections\n\n"));
- #endif
-+
- fprintf(stderr, _(" -v, --verbose be verbose\n"));
-+ fprintf(stderr, _(" -W, --wide don't truncate IP addresses\n"));
- fprintf(stderr, _(" -n, --numeric don't resolve names\n"));
- fprintf(stderr, _(" --numeric-hosts don't resolve host names\n"));
- fprintf(stderr, _(" --numeric-ports don't resolve port names\n"));
-@@ -1495,15 +1838,19 @@ static void usage(void)
- 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"));
-+ fprintf(stderr, _(" -o, --timers display timers\n"));
- fprintf(stderr, _(" -c, --continuous continuous listing\n\n"));
- fprintf(stderr, _(" -l, --listening display listening server sockets\n"));
-- fprintf(stderr, _(" -a, --all, --listening display all sockets (default: connected)\n"));
-- fprintf(stderr, _(" -o, --timers display timers\n"));
-+ fprintf(stderr, _(" -a, --all display all sockets (default: connected)\n"));
- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n"));
-- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
-+ fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n"));
-+#if HAVE_SELINUX
-+ fprintf(stderr, _(" -Z, --context display SELinux security context for sockets\n"));
-+#endif
-
-- fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n"));
-- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
-+ fprintf(stderr, _("\n <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix}\n"));
-+ fprintf(stderr, _(" --ax25 --ipx --netrom\n"));
-+ fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
- fprintf(stderr, _(" List of possible address families (which support routing):\n"));
- print_aflist(1); /* 1 = routeable */
- exit(E_USAGE);
-@@ -1514,7 +1861,7 @@ int main
- (int argc, char *argv[]) {
- int i;
- int lop;
-- struct option longopts[] =
-+ static struct option longopts[] =
- {
- AFTRANS_OPTS,
- {"version", 0, 0, 'V'},
-@@ -1526,9 +1873,13 @@ int main
- #endif
- {"protocol", 1, 0, 'A'},
- {"tcp", 0, 0, 't'},
-+ {"sctp", 0, 0, 'S'},
- {"udp", 0, 0, 'u'},
-+ {"udplite", 0, 0, 'U'},
- {"raw", 0, 0, 'w'},
- {"unix", 0, 0, 'x'},
-+ {"l2cap", 0, 0, '2'},
-+ {"rfcomm", 0, 0, 'f'},
- {"listening", 0, 0, 'l'},
- {"all", 0, 0, 'a'},
- {"timers", 0, 0, 'o'},
-@@ -1537,6 +1888,7 @@ int main
- {"programs", 0, 0, 'p'},
- {"verbose", 0, 0, 'v'},
- {"statistics", 0, 0, 's'},
-+ {"wide", 0, 0, 'W'},
- {"numeric", 0, 0, 'n'},
- {"numeric-hosts", 0, 0, '!'},
- {"numeric-ports", 0, 0, '@'},
-@@ -1545,6 +1897,7 @@ int main
- {"cache", 0, 0, 'C'},
- {"fib", 0, 0, 'F'},
- {"groups", 0, 0, 'g'},
-+ {"context", 0, 0, 'Z'},
- {NULL, 0, 0, 0}
- };
-
-@@ -1556,7 +1909,7 @@ int main
- getroute_init(); /* Set up AF routing support */
-
- afname[0] = '\0';
-- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF)
-+ while ((i = getopt_long(argc, argv, "A:CFMacdeghilnNoprsStuUvVWwx64?Z", longopts, &lop)) != EOF)
- switch (i) {
- case -1:
- break;
-@@ -1600,6 +1953,9 @@ int main
- case 'i':
- flag_int++;
- break;
-+ case 'W':
-+ flag_wide++;
-+ break;
- case 'n':
- flag_not |= FLAG_NUM;
- break;
-@@ -1624,6 +1980,14 @@ int main
- case 'o':
- flag_opt++;
- break;
-+ case '6':
-+ if (aftrans_opt("inet6"))
-+ exit(1);
-+ break;
-+ case '4':
-+ if (aftrans_opt("inet"))
-+ exit(1);
-+ break;
- case 'V':
- version();
- /*NOTREACHED */
-@@ -1633,21 +1997,45 @@ int main
- case 'r':
- flag_rou++;
- break;
--
- case 't':
- flag_tcp++;
- break;
--
-+ case 'S':
-+ flag_sctp++;
-+ break;
- case 'u':
- flag_udp++;
- break;
-+ case 'U':
-+ flag_udplite++;
-+ break;
- case 'w':
- flag_raw++;
- break;
-+ case '2':
-+ flag_l2cap++;
-+ break;
-+ case 'f':
-+ flag_rfcomm++;
-+ break;
- case 'x':
- if (aftrans_opt("unix"))
- exit(1);
- break;
-+ case 'Z':
-+#if HAVE_SELINUX
-+ if (is_selinux_enabled() <= 0) {
-+ fprintf(stderr, _("SELinux is not enabled on this machine.\n"));
-+ exit(1);
-+ }
-+ flag_prg++;
-+ flag_selinux++;
-+#else
-+ fprintf(stderr, _("SELinux is not enabled for this application.\n"));
-+ exit(1);
-+#endif
-+
-+ break;
- case '?':
- case 'h':
- usage();
-@@ -1658,46 +2046,71 @@ int main
- if (flag_int + flag_rou + flag_mas + flag_sta > 1)
- usage();
-
-- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_raw))
-- flag_tcp = flag_udp = flag_raw = 1;
-+ if ((flag_inet || flag_inet6 || flag_sta) &&
-+ !(flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw))
-+ flag_tcp = flag_sctp = flag_udp = flag_udplite = flag_raw = 1;
-
-- if ((flag_tcp || flag_udp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6))
-+ if ((flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw || flag_igmp) &&
-+ !(flag_inet || flag_inet6))
- flag_inet = flag_inet6 = 1;
-
-- flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx
-- + flag_ax25 + flag_netrom + flag_igmp + flag_x25;
-+ if (flag_bluetooth && !(flag_l2cap || flag_rfcomm))
-+ flag_l2cap = flag_rfcomm = 1;
-+
-+ flag_arg = flag_tcp + flag_sctp + flag_udplite + flag_udp + flag_raw + flag_unx
-+ + flag_ipx + flag_ax25 + flag_netrom + flag_igmp + flag_x25 + flag_rose
-+ + flag_l2cap + flag_rfcomm;
-
- if (flag_mas) {
- #if HAVE_FW_MASQUERADE && HAVE_AFINET
- #if MORE_THAN_ONE_MASQ_AF
- if (!afname[0])
-- strcpy(afname, DFLT_AF);
-+ safe_strncpy(afname, DFLT_AF, sizeof(afname));
- #endif
- for (;;) {
- i = ip_masq_info(flag_not & FLAG_NUM_HOST,
- flag_not & FLAG_NUM_PORT, flag_exp);
- if (i || !flag_cnt)
- break;
-- sleep(1);
-+ wait_continous();
- }
- #else
-- ENOSUPP("netstat.c", "FW_MASQUERADE");
-+ ENOSUPP("netstat", "FW_MASQUERADE");
- i = -1;
- #endif
- return (i);
- }
-
- if (flag_sta) {
-- inittab();
-- parsesnmp(flag_raw, flag_tcp, flag_udp);
-- exit(0);
-+ if (!afname[0])
-+ safe_strncpy(afname, DFLT_AF, sizeof(afname));
-+
-+ if (!strcmp(afname, "inet")) {
-+#if HAVE_AFINET
-+ inittab();
-+ parsesnmp(flag_raw, flag_tcp, flag_udp);
-+#else
-+ ENOSUPP("netstat", "AF INET");
-+#endif
-+ } else if(!strcmp(afname, "inet6")) {
-+#if HAVE_AFINET6
-+ inittab6();
-+ parsesnmp6(flag_raw, flag_tcp, flag_udp);
-+#else
-+ ENOSUPP("netstat", "AF INET6");
-+#endif
-+ } else {
-+ printf(_("netstat: No statistics support for specified address family: %s\n"), afname);
-+ exit(1);
-+ }
-+ exit(0);
- }
--
-+
- if (flag_rou) {
- int options = 0;
-
- if (!afname[0])
-- strcpy(afname, DFLT_AF);
-+ safe_strncpy(afname, DFLT_AF, sizeof(afname));
-
- if (flag_exp == 2)
- flag_exp = 1;
-@@ -1712,7 +2125,7 @@ int main
- i = route_info(afname, options);
- if (i || !flag_cnt)
- break;
-- sleep(1);
-+ wait_continous();
- }
- return (i);
- }
-@@ -1721,12 +2134,12 @@ int main
- i = iface_info();
- if (!flag_cnt || i)
- break;
-- sleep(1);
-+ wait_continous();
- }
- return (i);
- }
- for (;;) {
-- if (!flag_arg || flag_tcp || flag_udp || flag_raw) {
-+ if (!flag_arg || flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw) {
- #if HAVE_AFINET
- prg_cache_load();
- printf(_("Active Internet connections ")); /* xxx */
-@@ -1743,6 +2156,7 @@ int main
- if (flag_exp > 1)
- printf(_(" User Inode "));
- print_progname_banner();
-+ print_selinux_banner();
- if (flag_opt)
- printf(_(" Timer")); /* xxx */
- printf("\n");
-@@ -1759,11 +2173,25 @@ int main
- if (i)
- return (i);
- }
-+
-+ if (!flag_arg || flag_sctp) {
-+ i = sctp_info();
-+ if (i)
-+ return (i);
-+ }
-+
- if (!flag_arg || flag_udp) {
- i = udp_info();
- if (i)
- return (i);
- }
-+
-+ if (!flag_arg || flag_udplite) {
-+ i = udplite_info();
-+ if (i)
-+ return (i);
-+ }
-+
- if (!flag_arg || flag_raw) {
- i = raw_info();
- if (i)
-@@ -1845,9 +2273,55 @@ int main
- }
- #endif
- }
-+ if (!flag_arg || flag_rose) {
-+#if 0 && HAVE_AFROSE
-+ i = rose_info();
-+ if (i)
-+ return (i);
-+#else
-+ if (flag_arg) {
-+ i = 1;
-+ ENOSUPP("netstat", "AF ROSE");
-+ }
-+#endif
-+ }
-+
-+ if (!flag_arg || flag_l2cap || flag_rfcomm) {
-+#if HAVE_AFBLUETOOTH
-+ printf(_("Active Bluetooth connections ")); /* xxx */
-+
-+ if (flag_all)
-+ printf(_("(servers and established)"));
-+ else {
-+ if (flag_lst)
-+ printf(_("(only servers)"));
-+ else
-+ printf(_("(w/o servers)"));
-+ }
-+ printf("\n");
-+#else
-+ if (flag_arg) {
-+ i = 1;
-+ ENOSUPP("netstat", "AF BLUETOOTH");
-+ }
-+#endif
-+ }
-+#if HAVE_AFBLUETOOTH
-+ if (!flag_arg || flag_l2cap) {
-+ i = l2cap_info();
-+ if (i)
-+ return (i);
-+ }
-+ if (!flag_arg || flag_rfcomm) {
-+ i = rfcomm_info();
-+ if (i)
-+ return (i);
-+ }
-+#endif
-+
- if (!flag_cnt || i)
- break;
-- sleep(1);
-+ wait_continous();
- prg_cache_clear();
- }
- return (i);
-diff --git a/plipconfig.c b/plipconfig.c
-index 1f972a7..86fa890 100644
---- a/plipconfig.c
-+++ b/plipconfig.c
-@@ -4,7 +4,7 @@
- Copyright (c) 1994 John Paul Morrison (VE7JPM).
-
- version 0.2
--
-+
- Changed by Alan Cox, to reflect the way SIOCDEVPRIVATE is meant to work
- and for the extra parameter added by Niibe.
-
-@@ -42,31 +42,27 @@
- #include "intl.h"
- #include "net-support.h"
- #include "version.h"
-+#include "util.h"
-
--int opt_a = 0;
--int opt_i = 0;
--int opt_v = 0;
- int skfd = -1;
-
- struct ifreq ifr;
- struct plipconf *plip;
-
--char *Release = RELEASE,
-- *Version = "plipconfig 0.2",
-- *Signature = "John Paul Morrison, Alan Cox et al.";
-+static char *Release = RELEASE, *Signature = "John Paul Morrison, Alan Cox et al.";
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
- void usage(void)
- {
-- fprintf(stderr, _("Usage: plipconfig [-a] [-i] [-v] interface\n"));
-- fprintf(stderr, _(" [nibble NN] [trigger NN]\n"));
-+ fprintf(stderr, _("Usage: plipconfig interface [nibble NN] [trigger NN]\n"));
- fprintf(stderr, _(" plipconfig -V | --version\n"));
-- exit(-1);
-+ fprintf(stderr, _(" plipconfig -h | --help\n"));
-+ exit(E_USAGE);
- }
-
- void print_plip(void)
-@@ -93,12 +89,10 @@ int main(int argc, char **argv)
- argc--;
- argv++;
- while (argv[0] && *argv[0] == '-') {
-- if (!strcmp(*argv, "-a"))
-- opt_a = 1;
-- if (!strcmp(*argv, "-v"))
-- opt_v = 1;
- if (!strcmp(*argv, "-V") || !strcmp(*argv, "--version"))
- version();
-+ else
-+ usage();
- argv++;
- argc--;
- }
-@@ -107,7 +101,7 @@ int main(int argc, char **argv)
- usage();
-
- spp = argv;
-- strncpy(ifr.ifr_name, *spp++, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_name, *spp++, IFNAMSIZ);
- plip=(struct plipconf *)&ifr.ifr_data;
-
- plip->pcmd = PLIP_GET_TIMEOUT; /* get current settings for device */
-diff --git a/po/Makefile b/po/Makefile
-index 0fdf82d..c7f27fb 100644
---- a/po/Makefile
-+++ b/po/Makefile
-@@ -3,16 +3,24 @@ INSTALL_PROGRAM= ${INSTALL}
- INSTALL_DATA= ${INSTALL} -m 644
- INSTALLNLSDIR=${BASEDIR}/usr/share/locale
-
--TUPDATE = tupdate
-+TUPDATE = msgmerge
-
- NLSPACKAGE = net-tools
-
- -include ../config.make
-+ALL_POS = $(wildcard *.po)
-+ALL_LANGS = $(ALL_POS:%.po=%)
-+ALL_CATALOGS = $(ALL_LANGS:%=%.mo)
- ifeq ($(I18N),1)
--CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo
-+ifeq ($(LINGUAS),)
-+LANGS = $(ALL_LANGS)
- else
--CATALOGS =
-+LANGS = $(filter $(LINGUAS),$(ALL_LANGS))
- endif
-+else
-+LANGS =
-+endif
-+CATALOGS = $(LANGS:%=%.mo)
-
- POTFILES=../arp.c ../hostname.c ../ifconfig.c ../netstat.c ../rarp.c \
- ../route.c ../plipconfig.c ../iptunnel.c ../statistics.c \
-@@ -44,12 +52,12 @@ $(NLSPACKAGE).pot: $(POTFILES)
-
- update-po: Makefile
- $(MAKE) $(NLSPACKAGE).pot
-- catalogs='$(CATALOGS)'; \
-- for cat in $$catalogs; do \
-- lang=`echo $$cat | sed 's/.mo//'`; \
-+ langs='$(ALL_LANGS)'; \
-+ for lang in $$langs; do \
-+ cat=$$lang.mo; \
- mv $$lang.po $$lang.old.po; \
- echo "$$lang:"; \
-- if $(TUPDATE) $(NLSPACKAGE).pot $$lang.old.po > $$lang.po; then \
-+ if $(TUPDATE) $$lang.old.po $(NLSPACKAGE).pot > $$lang.po; then \
- rm -f $$lang.old.po; \
- else \
- echo "tupdate for $$cat failed!"; \
-@@ -61,18 +69,19 @@ update-po: Makefile
- clean:
- rm -f *mo
-
-+dist: $(ALL_CATALOGS)
-+
- distclean: clean
- rm -f .depend Makefile
-
- depend:
-
- install: $(CATALOGS)
-- catalogs='$(CATALOGS)'; \
-- for n in $$catalogs; do \
-- l=`basename $$n .mo`; \
-+ langs='$(LANGS)'; \
-+ for l in $$langs; do \
- $(INSTALL) -m 755 -d $(INSTALLNLSDIR)/$$l; \
- $(INSTALL) -m 755 -d $(INSTALLNLSDIR)/$$l/LC_MESSAGES; \
-- $(INSTALL) -m 644 $$n $(INSTALLNLSDIR)/$$l/LC_MESSAGES/net-tools.mo; \
-+ $(INSTALL) -m 644 $$l.mo $(INSTALLNLSDIR)/$$l/LC_MESSAGES/net-tools.mo; \
- done
-
- %.mo: %.po
-diff --git a/po/cs.po b/po/cs.po
-index b4b66a1..c1d6a8a 100644
---- a/po/cs.po
-+++ b/po/cs.po
-@@ -1,359 +1,385 @@
- # Czech translation of net-tools
- # Copyright (C) 1999 Free Software Foundation, Inc.
--# Jiøí Pavlovský <pavlovsk@ffcuni.cz>, 1999.
-+# Jiří Pavlovský <pavlovsk@ffcuni.cz>, 1999.
-+# Petr Pisar <petr.pisar@atlas.cz>, 2009.
- #
- msgid ""
- msgstr ""
--"Project-Id-Version: net-tools-1.51\n"
--"POT-Creation-Date: 2000-02-14 02:31+0100\n"
--"PO-Revision-Date: 1999-08-29 23:20+0200\n"
--"Last-Translator: Jiøí Pavlovský <pavlovsk@ff.cuni.cz>\n"
--"Language-Team: Czech <cs@li.org>\n"
-+"Project-Id-Version: net-tools cvs-20090825\n"
-+"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2009-08-25 18:34+0200\n"
-+"PO-Revision-Date: 2009-08-26 22:18+0200\n"
-+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
-+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=iso-8859-2\n"
-+"Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
-
--#: ../arp.c:110 ../arp.c:269
-+#: ../arp.c:112 ../arp.c:279
-+#, c-format
- msgid "arp: need host name\n"
--msgstr "arp: je tøeba jméno poèítaèe\n"
-+msgstr "arp: je tÅ™eba jméno poÄítaÄe\n"
-
--#: ../arp.c:207 ../arp.c:221
-+#: ../arp.c:215 ../arp.c:230
- #, c-format
- msgid "No ARP entry for %s\n"
--msgstr "Pro %s neexistuje ARP polo¾ka\n"
-+msgstr "Pro %s neexistuje ARP položka\n"
-
--#: ../arp.c:239
-+#: ../arp.c:248
- #, c-format
- msgid "arp: cant get HW-Address for `%s': %s.\n"
- msgstr "arp: HW adresu `%s' nelze zjistit: %s\n"
-
--#: ../arp.c:243
-+#: ../arp.c:252
-+#, c-format
- msgid "arp: protocol type mismatch.\n"
--msgstr "arp: chybnì zadaný typ protokolu\n"
-+msgstr "arp: chybně zadaný typ protokolu\n"
-
--#: ../arp.c:252
-+#: ../arp.c:261
- #, c-format
- msgid "arp: device `%s' has HW address %s `%s'.\n"
--msgstr "arp: zaøízení `%s' má Hw adresu %s `%s'.\n"
-+msgstr "arp: zařízení `%s' má Hw adresu %s `%s'.\n"
-
--#: ../arp.c:282
-+#: ../arp.c:293
-+#, c-format
- msgid "arp: need hardware address\n"
--msgstr "arp: je tøeba hardwarová adresa\n"
-+msgstr "arp: je třeba hardwarová adresa\n"
-
--#: ../arp.c:290
-+#: ../arp.c:301
-+#, c-format
- msgid "arp: invalid hardware address\n"
--msgstr "arp: nesprávná hardwarová adresa\n"
-+msgstr "arp: nesprávná hardwarová adresa\n"
-
--#: ../arp.c:387
-+#: ../arp.c:398
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
--msgstr "arp: databázi ethernetových adres %s nelze otevøít!\n"
-+msgstr "arp: databázi ethernetových adres %s nelze otevřít!\n"
-
--#: ../arp.c:403
-+#: ../arp.c:414
- #, c-format
- msgid "arp: format error on line %u of etherfile %s !\n"
--msgstr "arp: syntaktická chyba na øádku %u databáze ethernetových adres %s!\n"
-+msgstr "arp: syntaktická chyba na řádku %u databáze ethernetových adres %s!\n"
-
--#: ../arp.c:416
-+#: ../arp.c:427
- #, c-format
- msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr ""
--"arp: polo¾ku na øádku %u databáze ethernetových adres %s nelze nastavit!\n"
-+"arp: položku na řádku %u databáze ethernetových adres %s nelze nastavit!\n"
-+
-+#: ../arp.c:448
-+#, c-format
-+msgid ""
-+"Address HWtype HWaddress Flags Mask "
-+"Iface\n"
-+msgstr ""
-+"Adresa HWtyp HWadresa Příz. Maska "
-+"Rozhr\n"
-
--#: ../arp.c:437
--msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
--msgstr "Adresa\t\t\t HWtyp\t HWadresa\t Pøíz Maska\t\t Rozhraní\n"
-+#: ../arp.c:476
-+msgid "<from_interface>"
-+msgstr "<z_rozhraní>"
-
--#: ../arp.c:467
-+#: ../arp.c:478
- msgid "(incomplete)"
--msgstr "(nekompletní)"
-+msgstr "(nekompletní)"
-
--#: ../arp.c:484
-+#: ../arp.c:495
- #, c-format
- msgid "%s (%s) at "
- msgstr "%s (%s) na "
-
--#: ../arp.c:490
-+#: ../arp.c:501
-+#, c-format
- msgid "<incomplete> "
--msgstr "<nekompletní>"
-+msgstr "<nekompletní>"
-
--#: ../arp.c:496
-+#: ../arp.c:507
- #, c-format
- msgid "netmask %s "
--msgstr "sí»ová maska %s "
-+msgstr "síťová maska %s "
-
--#: ../arp.c:513
-+#: ../arp.c:524
- #, c-format
- msgid "on %s\n"
- msgstr "na %s\n"
-
--#: ../arp.c:592
-+#: ../arp.c:605
- #, c-format
- msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
--msgstr "Polo¾ky: %d\tVynecháno: %d\tNalezeno: %d\n"
-+msgstr "Položky: %d\tVynecháno: %d\tNalezeno: %d\n"
-
--#: ../arp.c:596
-+#: ../arp.c:609
- #, c-format
- msgid "%s (%s) -- no entry\n"
--msgstr "%s (%s) -- ¾ádná polo¾ka\n"
-+msgstr "%s (%s) -- žádná položka\n"
-
--#: ../arp.c:598
-+#: ../arp.c:611
- #, c-format
- msgid "arp: in %d entries no match found.\n"
--msgstr "arp: ¾ádná z polo¾ek (%d) nevyhovuje.\n"
-+msgstr "arp: žádná z položek (%d) nevyhovuje.\n"
-
--#: ../arp.c:613
-+#: ../arp.c:626
-+#, c-format
- msgid ""
- "Usage:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
- "cache\n"
- msgstr ""
--"Pou¾ití:\n"
--" arp [-vn] [<HW>] [-i <if> [-a] [<poèítaè>] <-Zobrazí ARP "
-+"Použití:\n"
-+" arp [-vn] [<HW>] [-i <rozhraní>] [-a] [<poÄítaÄ>] <-Zobrazí ARP "
- "cache\n"
-
--#: ../arp.c:614
-+#: ../arp.c:627
-+#, c-format
- msgid ""
--" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
-+" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
- "entry\n"
- msgstr ""
--" arp [-v] [-i <if>] -d <poèítaè> [pub][nopub] <-Sma¾e polo¾ku "
-+" arp [-v] [-i <rozhraní>] -d <poÄítaÄ> [pub] <-Smaže položku "
- "ARP\n"
-
--#: ../arp.c:615
--#, fuzzy
-+#: ../arp.c:628
-+#, c-format
- msgid ""
--" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
-+" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
- "file\n"
- msgstr ""
--" arp [-vnD] [<HW>] [-i <if>] -f <soubor> <-Pøidá polo¾ku "
--"ze\n"
--" souboru\n"
-+" arp [-vnD] [<HW>] [-i <rozhraní>] -f [<soubor>] <-Přidá položku ze "
-+"souboru\n"
-
--#: ../arp.c:616
-+#: ../arp.c:629
-+#, c-format
- msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
-+" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
- "entry\n"
- msgstr ""
--" arp [-v] [<HW> [-i <if> -s <poèítaè> <hwadr> [temp][nopub] <-Pøidá "
--"polo¾ku\n"
--
--#: ../arp.c:617
--msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
--"<-''-\n"
--msgstr ""
--" arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [sí»mask <èís>] <-''-\n"
-+" arp [-v] [<HW>] [-i <rozhraní>] -s <poÄítaÄ> <hwadr> [temp] <-PÅ™idá "
-+"položku\n"
-
--#: ../arp.c:618
-+#: ../arp.c:630
-+#, c-format
- msgid ""
--" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
-+" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
- "<-''-\n"
- "\n"
- msgstr ""
--" arp [-v] [<HW> [-i <if> -Ds <poèítaè> <if> [sí»mask <èís>] pub "
--"<-''-\n"
-+" arp [-v] [<HW>] [-i <rozhraní>] -Ds <poÄítaÄ> <rozhraní> [síťmask <Äís>] "
-+"pub\n"
-+" <-Totéž\n"
-
--#: ../arp.c:620
-+#: ../arp.c:632
-+#, c-format
- msgid ""
- " -a display (all) hosts in alternative (BSD) "
- "style\n"
- msgstr ""
--" -a zobrazí jmna v¹ech poèítaèù alternativním\n"
--" (BSD) zpùsobem\n"
-+" -a zobrazí jména vÅ¡ech poÄítaÄů alternativním\n"
-+" (BSD) způsobem\n"
-
--#: ../arp.c:621
-+#: ../arp.c:633
-+#, c-format
- msgid " -s, --set set a new ARP entry\n"
--msgstr " -s, --set nastaví novou ARP polo¾ku\n"
-+msgstr " -s, --set nastaví novou ARP položku\n"
-
--#: ../arp.c:622
-+#: ../arp.c:634
-+#, c-format
- msgid " -d, --delete delete a specified entry\n"
--msgstr " -d, --delete sma¾e zadanou ARP polo¾ku\n"
-+msgstr " -d, --delete smaže zadanou ARP položku\n"
-
--#: ../arp.c:623 ../netstat.c:1436 ../route.c:85
-+#: ../arp.c:635 ../netstat.c:1520 ../route.c:86
-+#, c-format
- msgid " -v, --verbose be verbose\n"
- msgstr ""
--" -v, --verbose bude vypisovat podrobné zprávy\n"
--" o èinnosti\n"
-+" -v, --verbose bude vypisovat podrobné zprávy o Äinnosti\n"
-
--#: ../arp.c:624 ../netstat.c:1437 ../route.c:86
--msgid " -n, --numeric dont resolve names\n"
--msgstr ""
--" -n, --numeric nebude pøevádìt èíselné adresy\n"
--" na kanonická jména\n"
-+#: ../arp.c:636 ../netstat.c:1522 ../route.c:87
-+#, c-format
-+msgid " -n, --numeric don't resolve names\n"
-+msgstr " -n, --numeric nebude převádět jména\n"
-
--#: ../arp.c:625
-+#: ../arp.c:637
-+#, c-format
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
--msgstr " -i, --device zadává sí»ové rozhraní (napø. eth0)\n"
-+msgstr " -i, --device zadává síťové rozhraní (např. eth0)\n"
-
--#: ../arp.c:626
-+#: ../arp.c:638
-+#, c-format
- msgid " -D, --use-device read <hwaddr> from given device\n"
--msgstr " -D, --use-device ète <hwadr> ze zadaného zaøízení\n"
-+msgstr " -D, --use-device Äte <hwadr> ze zadaného zařízení\n"
-
--#: ../arp.c:627
--#, fuzzy
-+#: ../arp.c:639
-+#, c-format
- msgid " -A, -p, --protocol specify protocol family\n"
--msgstr " -r, --route vypí¹e smìrovací tabulku\n"
-+msgstr " -A, -p, --protocol urÄuje rodinu protokolů\n"
-
--#: ../arp.c:628
--#, fuzzy
-+#: ../arp.c:640
-+#, c-format
- msgid ""
--" -f, --file read new entries from file or from "
--"/etc/ethers\n"
-+" -f, --file read new entries from file or from /etc/"
-+"ethers\n"
- "\n"
- msgstr ""
--" -f, --file ète nové polo¾ky ze souboru\n"
--"\n"
-+" -f, --file Äte nové položky ze souboru nebo z /etc/"
-+"ethers\n"
-
--#: ../arp.c:630 ../rarp.c:181
-+#: ../arp.c:642 ../rarp.c:183
- #, c-format
- msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
- msgstr ""
--" <HW>=Pou¾ijte '-H <hw> pro zadání hardwarového typu adresy.\n"
--" Implicitnì: %s\n"
-+" <HW>=Použijte '-H <hw> pro zadání hardwarového typu adresy.\n"
-+" ImplicitnÄ›: %s\n"
-
--#: ../arp.c:631 ../rarp.c:182
-+#: ../arp.c:643 ../rarp.c:184
-+#, c-format
- msgid " List of possible hardware types (which support ARP):\n"
--msgstr " Seznam mo¾ných hardwarových typù (podporujících ARP):\n"
-+msgstr " Seznam možných hardwarových typů (podporujících ARP):\n"
-
--#: ../arp.c:664
-+#: ../arp.c:677 ../arp.c:762
- #, c-format
- msgid "%s: hardware type not supported!\n"
--msgstr "hardwarový typ %s není podporován!\n"
-+msgstr "hardwarový typ %s není podporován!\n"
-
--#: ../arp.c:668
-+#: ../arp.c:681
- #, c-format
- msgid "%s: address family not supported!\n"
--msgstr "tøída adres %s není podporována!\n"
-+msgstr "třída adres %s není podporována!\n"
-
--#: ../arp.c:703
-+#: ../arp.c:716
-+#, c-format
- msgid "arp: -N not yet supported.\n"
--msgstr "arp: pøepínaè -N není zatím podporován\n"
-+msgstr "arp: pÅ™epínaÄ -N není zatím podporován\n"
-
--#: ../arp.c:713
-+#: ../arp.c:726
- #, c-format
- msgid "arp: %s: unknown address family.\n"
--msgstr "arp: neznámá tøída adres %s.\n"
-+msgstr "arp: neznámá třída adres %s.\n"
-
--#: ../arp.c:722
-+#: ../arp.c:735
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
--msgstr "arp: neznámý hardwarový typ %s.\n"
-+msgstr "arp: neznámý hardwarový typ %s.\n"
-
--#: ../arp.c:741
-+#: ../arp.c:754
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
--msgstr "arp: %s: jádro podporuje pouze 'inet'.\n"
-+msgstr "arp: %s: jádro podporuje pouze 'inet'.\n"
-
--#: ../arp.c:746
-+#: ../arp.c:767
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
--msgstr "arp: hardwarový typ %s nepodporuje ARP.\n"
-+msgstr "arp: hardwarový typ %s nepodporuje ARP.\n"
-
--#: ../hostname.c:69
-+#: ../hostname.c:71
- #, c-format
- msgid "Setting nodename to `%s'\n"
--msgstr "Nastavuji jméno uzlu na `%s'\n"
-+msgstr "Nastavuji jméno uzlu na `%s'\n"
-
--#: ../hostname.c:74
-+#: ../hostname.c:76
- #, c-format
- msgid "%s: you must be root to change the node name\n"
--msgstr "%s: jméno uzlu mù¾e zmìnit pouze superu¾ivatel\n"
-+msgstr "%s: jméno uzlu může změnit pouze superuživatel\n"
-
--#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
-+#: ../hostname.c:79 ../hostname.c:100 ../hostname.c:118
- #, c-format
- msgid "%s: name too long\n"
--msgstr "jméno %s je pøíli¹ dlouhé\n"
-+msgstr "jméno %s je příliš dlouhé\n"
-
--#: ../hostname.c:89
-+#: ../hostname.c:92
- #, c-format
- msgid "Setting hostname to `%s'\n"
--msgstr "Nastavuji jméno poèítaèe na `%s'\n"
-+msgstr "Nastavuji jméno poÄítaÄe na `%s'\n"
-
--#: ../hostname.c:94
-+#: ../hostname.c:97
- #, c-format
- msgid "%s: you must be root to change the host name\n"
--msgstr "%s: jméno poèítaèe mù¾e zmìnit pouze superu¾ivatel\n"
-+msgstr "%s: jméno poÄítaÄe může zmÄ›nit pouze superuživatel\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:110
- #, c-format
- msgid "Setting domainname to `%s'\n"
--msgstr "Nastavuji jméno domény na `%s'\n"
-+msgstr "Nastavuji jméno domény na `%s'\n"
-
--#: ../hostname.c:113
-+#: ../hostname.c:115
- #, c-format
- msgid "%s: you must be root to change the domain name\n"
--msgstr "%s: jméno domény mù¾e zmìnit pouze superu¾ivatel\n"
-+msgstr "%s: jméno domény může změnit pouze superuživatel\n"
-
--#: ../hostname.c:131
-+#: ../hostname.c:132
- #, c-format
- msgid "Resolving `%s' ...\n"
--msgstr "Vyhledávám `%s' ...\n"
-+msgstr "Vyhledávám `%s' ...\n"
-
--#: ../hostname.c:137
-+#: ../hostname.c:138
- #, c-format
- msgid "Result: h_name=`%s'\n"
--msgstr "Výsledek: h_name=`%s'\n"
-+msgstr "Výsledek: h_name=`%s'\n"
-
--#: ../hostname.c:142
-+#: ../hostname.c:143
- #, c-format
- msgid "Result: h_aliases=`%s'\n"
--msgstr "Výsledek: h_aliases=`%s'\n"
-+msgstr "Výsledek: h_aliases=`%s'\n"
-
--#: ../hostname.c:147
-+#: ../hostname.c:148
- #, c-format
- msgid "Result: h_addr_list=`%s'\n"
--msgstr "Výsledek: h_addr_list=`%s'\n"
-+msgstr "Výsledek: h_addr_list=`%s'\n"
-
- #: ../hostname.c:209
- #, c-format
- msgid "%s: can't open `%s'\n"
--msgstr "%s: `%s' nelze otevøít\n"
-+msgstr "%s: `%s' nelze otevřít\n"
-
- #: ../hostname.c:223
-+#, c-format
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
--"Pou¾ití:\n"
--" hostname [-v] {jméno|-F soubor} nastaví jméno poèítaèe (ze "
-+"Použití:\n"
-+" hostname [-v] {jméno|-F soubor} nastaví jméno poÄítaÄe (ze "
- "souboru)\n"
-
- #: ../hostname.c:224
-+#, c-format
- msgid ""
- " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
- msgstr ""
--" domainname [-v] {jméno|-F soubor} nastaví jméno NIS domény (ze\n"
-+" domainname [-v] {jméno|-F soubor} nastaví jméno NIS domény (ze\n"
- " souboru)\n"
-
- #: ../hostname.c:226
-+#, c-format
- msgid ""
- " nodename [-v] {nodename|-F file} set DECnet node name (from "
- "file)\n"
- msgstr ""
--" nodename [-v] {jméno|-F soubor} nastaví jméno DECnet uzlu (ze\n"
-+" nodename [-v] {jméno|-F soubor} nastaví jméno DECnet uzlu (ze\n"
- " souboru)\n"
-
- #: ../hostname.c:228
-+#, c-format
- msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
--msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vypí¹e formátované jméno\n"
-+msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vypíše formátované jméno\n"
-
- #: ../hostname.c:229
-+#, c-format
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr ""
--" hostname [-v] vypí¹e jméno poèítaèe\n"
-+" hostname [-v] vypíše jméno poÄítaÄe\n"
- "\n"
-
- #: ../hostname.c:230
-+#, c-format
- msgid ""
- " hostname -V|--version|-h|--help print info and exit\n"
- "\n"
- msgstr ""
--" hostname -V|--version|-h|--help vypí¹e informace a skonèí\n"
-+" hostname -V|--version|-h|--help vypíše informace a skonÄí\n"
- "\n"
-
- #: ../hostname.c:231
-+#, c-format
- msgid ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
-@@ -362,42 +388,51 @@ msgstr ""
- "\n"
-
- #: ../hostname.c:232
-+#, c-format
- msgid " -s, --short short host name\n"
--msgstr " -s, --short krátké jméno poèítaèe\n"
-+msgstr " -s, --short krátké jméno poÄítaÄe\n"
-
- #: ../hostname.c:233
-+#, c-format
- msgid " -a, --alias alias names\n"
--msgstr " -a, --alias pøezdívky\n"
-+msgstr " -a, --alias přezdívky\n"
-
- #: ../hostname.c:234
-+#, c-format
- msgid " -i, --ip-address addresses for the hostname\n"
--msgstr " -i, --ip-address adresy odpovídající jménu poèítaèe\n"
-+msgstr " -i, --ip-address adresy odpovídající jménu poÄítaÄe\n"
-
- #: ../hostname.c:235
-+#, c-format
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
--msgstr " -f, --fqdn, --long dlouhé jméno poèítaèe (kanonické)\n"
-+msgstr " -f, --fqdn, --long dlouhé jméno poÄítaÄe (kanonické)\n"
-
- #: ../hostname.c:236
-+#, c-format
- msgid " -d, --domain DNS domain name\n"
--msgstr " -d, --domain jméno DNS domény\n"
-+msgstr " -d, --domain jméno DNS domény\n"
-
- #: ../hostname.c:237
-+#, c-format
- msgid " -y, --yp, --nis NIS/YP domainname\n"
--msgstr " -y, --yp, --nis jméno NIS/YP domény\n"
-+msgstr " -y, --yp, --nis jméno NIS/YP domény\n"
-
- #: ../hostname.c:239
-+#, c-format
- msgid " -n, --node DECnet node name\n"
--msgstr " -n, --node jméno DECnet uzlu\n"
-+msgstr " -n, --node jméno DECnet uzlu\n"
-
- #: ../hostname.c:241
-+#, c-format
- msgid ""
- " -F, --file read hostname or NIS domainname from given file\n"
- "\n"
- msgstr ""
--" -F, --file ète jméno poèítaèe èi nis domény ze souboru\n"
-+" -F, --file Äte jméno poÄítaÄe Äi nis domény ze souboru\n"
- "\n"
-
- #: ../hostname.c:243
-+#, c-format
- msgid ""
- " This command can read or set the hostname or the NIS domainname. You can\n"
- " also read the DNS domain or the FQDN (fully qualified domain name).\n"
-@@ -405,931 +440,929 @@ msgid ""
- " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
- " part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
-+" Tento příkaz může pÅ™eÄíst nebo nastavit název stroje nebo doménové jméno\n"
-+" NIS. NaÄíst lze rovněž DNS doménu nebo FQDN (plnÄ› kvalifikované doménové\n"
-+" jméno). Pokud pro vyhledávání strojů nepoužíváte bind nebo NIS, můžete\n"
-+" změnit FQDN (Fully Qualified Domain Name) a doménové jméno DNS (což je\n"
-+" Äást FQDN) v souboru /etc/hosts.\n"
-
--#: ../hostname.c:338
-+#: ../hostname.c:340
- #, c-format
- msgid "%s: You can't change the DNS domain name with this command\n"
--msgstr "%s: Tímto pøíkazem nelze DNS jméno domény zmìnit\n"
-+msgstr "%s: Tímto příkazem nelze DNS jméno domény změnit\n"
-
--#: ../hostname.c:339
-+#: ../hostname.c:341
-+#, c-format
- msgid ""
- "\n"
- "Unless you are using bind or NIS for host lookups you can change the DNS\n"
- msgstr ""
- "\n"
--"Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak mù¾ete "
--"zmìnit\n"
-+"Pokud nepoužíváte bind Äi NIS pro vyhledávání jmen poÄítaÄů, pak můžete "
-+"změnit\n"
-
--#: ../hostname.c:340
-+#: ../hostname.c:342
-+#, c-format
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
--"DNS jméno domény (je souèástí kanonického jména poèítaèe) v souboru\n"
-+"DNS jméno domény (je souÄástí kanonického jména poÄítaÄe) v souboru\n"
- "/etc/hosts\n"
-
--#: ../hostname.c:357
-+#: ../hostname.c:359
- #, c-format
- msgid "gethostname()=`%s'\n"
- msgstr "gethostname()=`%s'\n"
-
--#: ../hostname.c:374
-+#: ../hostname.c:376
- #, c-format
- msgid "getdomainname()=`%s'\n"
- msgstr "getdomainname()=`%s'\n"
-
--#: ../hostname.c:389
-+#: ../hostname.c:391
- #, c-format
- msgid "getnodename()=`%s'\n"
- msgstr "getnodename()=`%s'\n"
-
--#: ../ifconfig.c:159
--#, c-format
--msgid "%-9.9s Link encap:%s "
--msgstr "%-9.9s Zapouzdøení:%s "
--
--#: ../ifconfig.c:164
-+#: ../ifconfig.c:107 ../netstat.c:1482
- #, c-format
--msgid "HWaddr %s "
--msgstr "HWadr %s "
-+msgid ""
-+"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
-+"Flg\n"
-+msgstr ""
-+"Rozhr MTU Met PŘ-OK PŘ-CHYB PŘ-ZAH PŘ-PŘT OD-OK OD-CHYB OD-ZAH OD-PŘT "
-+"Přízn\n"
-
--#: ../ifconfig.c:167
-+#: ../ifconfig.c:132 ../ifconfig.c:164
- #, c-format
--msgid "Media:%s"
--msgstr "Médium:%s"
-+msgid "%s: ERROR while getting interface flags: %s\n"
-+msgstr "%s: CHYBA při získávání příznaků rozhraní: %s\n"
-
--#: ../ifconfig.c:169
--msgid "(auto)"
--msgstr "(auto)"
--
--#: ../ifconfig.c:176
-+#: ../ifconfig.c:156 ../ifconfig.c:188 ../ifconfig.c:794 ../ifconfig.c:887
-+#: ../ifconfig.c:1000
- #, c-format
--msgid " %s addr:%s "
--msgstr " %s adr:%s "
-+msgid "No support for INET on this system.\n"
-+msgstr "Tento systém nepodporuje INET.\n"
-
--#: ../ifconfig.c:179
-+#: ../ifconfig.c:196
- #, c-format
--msgid " P-t-P:%s "
--msgstr " P-t-P:%s "
-+msgid "%s: ERROR while testing interface flags: %s\n"
-+msgstr "%s: CHYBA při zkoušení příznaků rozhraní: %s\n"
-
--# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání.
--# Tudi¾ bcast -> V¹esmìr :)
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:205
- #, c-format
--msgid " Bcast:%s "
--msgstr " V¹esmìr:%s "
-+msgid ""
-+"Usage:\n"
-+" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
-+msgstr ""
-+"Použití:\n"
-+" ifconfig [-a] [-v] [-s] <rozhraní> [[<AF>] <adresa>]\n"
-
--#: ../ifconfig.c:184
-+#: ../ifconfig.c:207
- #, c-format
--msgid " Mask:%s\n"
--msgstr "Maska:%s\n"
-+msgid " [add <address>[/<prefixlen>]]\n"
-+msgstr " [add <adresa>[/<délka prefixu>]]\n"
-
--#: ../ifconfig.c:201
-+#: ../ifconfig.c:208
- #, c-format
--msgid " inet6 addr: %s/%d"
--msgstr " inet6-adr: %s/%d"
--
--#: ../ifconfig.c:203
--msgid " Scope:"
--msgstr " Rozsah:"
--
--#: ../ifconfig.c:206
--msgid "Global"
--msgstr "Globál"
-+msgid " [del <address>[/<prefixlen>]]\n"
-+msgstr " [del <adresa>[/<délka prefixu>]]\n"
-
- #: ../ifconfig.c:209
--msgid "Link"
--msgstr "Linka"
--
--#: ../ifconfig.c:212
--msgid "Site"
--msgstr "Stanovi¹tì"
--
--#: ../ifconfig.c:215
--msgid "Compat"
--msgstr "Kompatibilita"
--
--#: ../ifconfig.c:218
--msgid "Host"
--msgstr "Poèítaè"
--
--#: ../ifconfig.c:221
--msgid "Unknown"
--msgstr "Neznám."
--
--#: ../ifconfig.c:236
--#, c-format
--msgid " IPX/Ethernet II addr:%s\n"
--msgstr " IPX/Ethernet II adr: %s\n"
--
--#: ../ifconfig.c:239
- #, c-format
--msgid " IPX/Ethernet SNAP addr:%s\n"
--msgstr " IPX/Ethernet SNAP adr:%s\n"
--
--#: ../ifconfig.c:242
--#, c-format
--msgid " IPX/Ethernet 802.2 addr:%s\n"
--msgstr " IPX/Ethernet 802.2 adr:%s\n"
-+msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
-+msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n"
-
--#: ../ifconfig.c:245
-+#: ../ifconfig.c:210
- #, c-format
--msgid " IPX/Ethernet 802.3 addr:%s\n"
--msgstr " IPX/Ethernet 802.3 adr:%s\n"
-+msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
-+msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n"
-
--#: ../ifconfig.c:255
-+#: ../ifconfig.c:213
- #, c-format
--msgid " EtherTalk Phase 2 addr:%s\n"
--msgstr " EtherTalk Phase 2 adr:%s\n"
-+msgid " [outfill <NN>] [keepalive <NN>]\n"
-+msgstr " [outfill <NN>] [keepalive <NN>]\n"
-
--#: ../ifconfig.c:264
-+#: ../ifconfig.c:215
- #, c-format
--msgid " econet addr:%s\n"
--msgstr " econet adr:%s\n"
--
--# Hic sunt leones ...
--#: ../ifconfig.c:270
--msgid "[NO FLAGS] "
--msgstr "[®ÁDNÉ PØÍZNAKY]"
--
--#: ../ifconfig.c:272
--msgid "UP "
--msgstr "AKTIVOVÁNO "
--
--#: ../ifconfig.c:274
--msgid "BROADCAST "
--msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ "
--
--#: ../ifconfig.c:276
--msgid "DEBUG "
--msgstr "DEBUG "
--
--#: ../ifconfig.c:278
--msgid "LOOPBACK "
--msgstr "SMYÈKA "
--
--#: ../ifconfig.c:280
--msgid "POINTOPOINT "
--msgstr "POINTOPOINT "
--
--# ??
--#: ../ifconfig.c:282
--msgid "NOTRAILERS "
--msgstr "NOTRAILERS "
--
--#: ../ifconfig.c:284
--msgid "RUNNING "
--msgstr "BÌ®Í "
--
--#: ../ifconfig.c:286
--msgid "NOARP "
--msgstr "NEARP "
--
--#: ../ifconfig.c:288
--msgid "PROMISC "
--msgstr "PROMISK "
--
--#: ../ifconfig.c:290
--msgid "ALLMULTI "
--msgstr "ALLMULTI "
--
--#: ../ifconfig.c:292
--msgid "SLAVE "
--msgstr "SLAVE "
--
--#: ../ifconfig.c:294
--msgid "MASTER "
--msgstr "MASTER "
--
--#: ../ifconfig.c:296
--msgid "MULTICAST "
--msgstr "MULTICAST "
--
--#: ../ifconfig.c:299
--msgid "DYNAMIC "
--msgstr "DYNAMIC "
-+msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
-+msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n"
-
--#: ../ifconfig.c:302
-+#: ../ifconfig.c:216
- #, c-format
--msgid " MTU:%d Metric:%d"
--msgstr " MTU:%d Metrika:%d"
-+msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-+msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-
--#: ../ifconfig.c:306
-+#: ../ifconfig.c:217
- #, c-format
--msgid " Outfill:%d Keepalive:%d"
--msgstr " Outfill:%d Keepalive:%d"
-+msgid " [multicast] [[-]promisc]\n"
-+msgstr " [multicast] [[-]promisc]\n"
-
--#: ../ifconfig.c:320
-+#: ../ifconfig.c:218
- #, c-format
--msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
--msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n"
-+msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
-+msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n"
-
--#: ../ifconfig.c:325
-+#: ../ifconfig.c:220
- #, c-format
--msgid " compressed:%lu\n"
--msgstr " komprimováno:%lu\n"
-+msgid " [txqueuelen <NN>]\n"
-+msgstr " [txqueuelen délka]\n"
-
--# carrier?
--#: ../ifconfig.c:329
-+#: ../ifconfig.c:223
- #, c-format
--msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
--msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n"
-+msgid " [[-]dynamic]\n"
-+msgstr " [[-]dynamic]\n"
-
--#: ../ifconfig.c:333
-+#: ../ifconfig.c:225
- #, c-format
--msgid " collisions:%lu "
--msgstr " kolizí:%lu "
-+msgid ""
-+" [up|down] ...\n"
-+"\n"
-+msgstr ""
-+" [up|down] ...\n"
-+"\n"
-
--#: ../ifconfig.c:335
-+#: ../ifconfig.c:227
- #, c-format
--msgid "compressed:%lu "
--msgstr "komprimováno:%lu "
-+msgid " <HW>=Hardware Type.\n"
-+msgstr " <HW> = Hardwarový Typ.\n"
-
--#: ../ifconfig.c:337
-+#: ../ifconfig.c:228
- #, c-format
--msgid "txqueuelen:%d "
--msgstr "délka odchozí fronty:%d "
-+msgid " List of possible hardware types:\n"
-+msgstr " Seznam možných hardwarových typů:\n"
-
--#: ../ifconfig.c:345
-+#. 1 = ARPable
-+#: ../ifconfig.c:230
- #, c-format
--msgid "Interrupt:%d "
--msgstr "Pøeru¹ení:%d "
-+msgid " <AF>=Address family. Default: %s\n"
-+msgstr " <AF> = Třída adres. Implicitní: %s\n"
-
--#. Only print devices using it for
--#. I/O maps
--#: ../ifconfig.c:348
-+#: ../ifconfig.c:231
- #, c-format
--msgid "Base address:0x%x "
--msgstr "Vstupnì/Výstupní port:0x%x "
-+msgid " List of possible address families:\n"
-+msgstr " Seznam možných tříd adres:\n"
-
--#: ../ifconfig.c:350
-+#: ../ifconfig.c:307
- #, c-format
--msgid "Memory:%lx-%lx "
--msgstr "Pamì»:%lx-%lx "
-+msgid "ifconfig: option `%s' not recognised.\n"
-+msgstr "ifconfig: pÅ™epínaÄ â€ž%s“ nebyl rozpoznán.\n"
-
--#: ../ifconfig.c:353
-+#: ../ifconfig.c:309 ../ifconfig.c:990
- #, c-format
--msgid "DMA chan:%x "
--msgstr "Kanál DMA:%x "
-+msgid "ifconfig: `--help' gives usage information.\n"
-+msgstr "ifconfig: návod na použití lze získat pomocí „--help“\n"
-
--#: ../ifconfig.c:384 ../ifconfig.c:405
-+#: ../ifconfig.c:384
- #, c-format
--msgid "%s: unknown interface: %s\n"
--msgstr "%s: rozhraní %s není známo\n"
-+msgid "Unknown media type.\n"
-+msgstr "Neznámý typ média.\n"
-
- #: ../ifconfig.c:421
-+#, c-format
- msgid ""
--"Usage:\n"
--" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
-+"Warning: Interface %s still in promisc mode... maybe other application is "
-+"running?\n"
- msgstr ""
--"Pou¾ití:\n"
--" ifconfig [-a] [-i] [-v] <rozhraní> [[<AF>] <adresa>]\n"
--
--#: ../ifconfig.c:425
--msgid " [add <address>[/<prefixlen>]]\n"
--msgstr " [add <adresa>[/<délka prefixu>]]\n"
--
--#: ../ifconfig.c:427
--msgid " [del <address>[/<prefixlen>]]\n"
--msgstr " [del <adresa>[/<délka prefixu>]]\n"
--
--#: ../ifconfig.c:432
--msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
--msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n"
-+"Pozor: Rozhraní %s je stále v promiskuitním režimu. Neběží jiná aplikace?\n"
-
- #: ../ifconfig.c:433
--msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
--msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n"
--
--#: ../ifconfig.c:436
--msgid " [outfill <NN>] [keepalive <NN>]\n"
--msgstr " [outfill <NN>] [keepalive <NN>]\n"
-+#, c-format
-+msgid "Warning: Interface %s still in MULTICAST mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu MULTICAST.\n"
-
--#: ../ifconfig.c:438
--msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
--msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n"
-+#: ../ifconfig.c:445
-+#, c-format
-+msgid "Warning: Interface %s still in ALLMULTI mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu ALLMULTI.\n"
-
--#: ../ifconfig.c:439
--msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
--msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-+#: ../ifconfig.c:469
-+#, c-format
-+msgid "Warning: Interface %s still in DYNAMIC mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu DYNAMIC.\n"
-
--#: ../ifconfig.c:440
--msgid " [multicast] [[-]promisc]\n"
--msgstr " [multicast] [[-]promisc]\n"
-+#: ../ifconfig.c:527
-+#, c-format
-+msgid "Warning: Interface %s still in BROADCAST mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu VŠESMĚR.\n"
-
--#: ../ifconfig.c:441
--msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
--msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n"
-+#: ../ifconfig.c:538
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for broadcast\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro všesměr\n"
-
--#: ../ifconfig.c:443
--msgid " [txqueuelen <NN>]\n"
--msgstr " [txqueuelen délka]\n"
-+#: ../ifconfig.c:563
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for dstaddr\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro adresu cíle\n"
-
--#: ../ifconfig.c:446
--msgid " [[-]dynamic]\n"
--msgstr " [[-]dynamic]\n"
-+#: ../ifconfig.c:586
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for netmask\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro masku sítě\n"
-
--#: ../ifconfig.c:448
--msgid ""
--" [up|down] ...\n"
--"\n"
--msgstr ""
--" [up|down] ...\n"
--"\n"
-+#: ../ifconfig.c:665
-+#, c-format
-+msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v DVOUBODOVÉM režimu.\n"
-
--#: ../ifconfig.c:450
--msgid " <HW>=Hardware Type.\n"
--msgstr " <HW>=Hardwarový Typ.\n"
-+#: ../ifconfig.c:676
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for pointopoint\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro dvoubodové nastavení\n"
-
--#: ../ifconfig.c:451
--msgid " List of possible hardware types:\n"
--msgstr " Seznam mo¾ných hardwarových typù:\n"
-+#: ../ifconfig.c:700
-+#, c-format
-+msgid "hw address type `%s' has no handler to set address. failed.\n"
-+msgstr ""
-+"Pro typ hardwarové adresy „%s“ neexistuje obsluha na nastavování adresy.\n"
-+"Operace selhala.\n"
-
--#. 1 = ARPable
--#: ../ifconfig.c:453
-+#: ../ifconfig.c:709
- #, c-format
--msgid " <AF>=Address family. Default: %s\n"
--msgstr " <AF>=tøída adres. Implicitní: %s\n"
-+msgid "%s: invalid %s address.\n"
-+msgstr "%s: adresa %s je nesprávná.\n"
-
--#: ../ifconfig.c:454
--msgid " List of possible address families:\n"
--msgstr " Seznam mo¾ných tøíd adres:\n"
-+#: ../ifconfig.c:749
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for add\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro adresu\n"
-
--#: ../ifconfig.c:593
--msgid "Unknown media type.\n"
--msgstr "Neznámý typ média.\n"
-+#: ../ifconfig.c:760 ../ifconfig.c:850 ../ifconfig.c:938
-+#, c-format
-+msgid "No support for INET6 on this system.\n"
-+msgstr "Tento systém nepodporuje INET6.\n"
-
--#: ../ifconfig.c:881
-+#: ../ifconfig.c:803 ../ifconfig.c:896
- #, c-format
--msgid "%s: invalid %s address.\n"
--msgstr "%s: adresa %s je nesprávná.\n"
-+msgid "Interface %s not initialized\n"
-+msgstr "Rozhraní %s není inicializováno\n"
-
--#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
--msgid "No support for INET6 on this system.\n"
--msgstr "Tento systém nepodporuje INET6.\n"
-+#: ../ifconfig.c:815 ../ifconfig.c:907
-+#, c-format
-+msgid "Bad address.\n"
-+msgstr "Chybná adresa.\n"
-
--#: ../ifconfig.c:983
-+#: ../ifconfig.c:910
-+#, c-format
- msgid "Address deletion not supported on this system.\n"
--msgstr "Tento systém nepodporuje mazání adres.\n"
-+msgstr "Tento systém nepodporuje mazání adres.\n"
-
--#: ../ifconfig.c:1066
--msgid "No support for INET on this system.\n"
--msgstr "Tento systém nepodporuje INET.\n"
-+#: ../ifconfig.c:982
-+#, c-format
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "ifconfig: Pro tuto rodinu protokolů nelze nastavit adresu.\n"
-+
-+#: ../ifconfig.c:989
-+#, c-format
-+msgid "ifconfig: error resolving '%s' to set address for af=%s\n"
-+msgstr "ifconfig: chyba pÅ™i pÅ™ekládání „%s“ za úÄelem nastavení adresy AF=%s\n"
-
--#: ../ifconfig.c:1076
-+#: ../ifconfig.c:1010
-+#, c-format
- msgid "No support for ECONET on this system.\n"
--msgstr "Tento systém nepodporuje ECONET.\n"
-+msgstr "Tento systém nepodporuje ECONET.\n"
-
--#: ../ifconfig.c:1084
-+#: ../ifconfig.c:1018
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
--msgstr "Nevím, jak nastavit adresu tøídy %d.\n"
-+msgstr "Nevím, jak nastavit adresu třídy %d.\n"
-+
-+#: ../ifconfig.c:1053
-+#, c-format
-+msgid "WARNING: at least one error occured. (%d)\n"
-+msgstr "POZOR: Vyskytla se alespoň jedna chyba. (%d)\n"
-
--#: ../netstat.c:383
-+#: ../netstat.c:434
- #, c-format
- msgid ""
- "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
- msgstr ""
--"(Pro \"-p\" nelze získat ¾ádné informace: geteuid()=%d, ale je tøeba, aby "
-+"(Pro \"-p\" nelze získat žádné informace: geteuid()=%d, ale je třeba, aby "
- "jste\n"
--"byl superu¾ivatelem)\n"
-+"byl superuživatelem)\n"
-
--#: ../netstat.c:387
-+#: ../netstat.c:438
-+#, c-format
- msgid ""
- "(Not all processes could be identified, non-owned process info\n"
- " will not be shown, you would have to be root to see it all.)\n"
- msgstr ""
--"(V¹echny procesy nemohly být identifikovány. Budou vypsaány informace\n"
--"pouze o procesech, jich¾ jste vlastníkem. Aby jste mohl vidìt v¹e, musel\n"
--"byste být superu¾ivatelem.)\n"
-+"(Všechny procesy nemohly být identifikovány. Budou vypsány informace\n"
-+"pouze o procesech, jichž jste vlastníkem. Aby jste mohl vidět vše, musel\n"
-+"byste být superuživatelem.)\n"
-
--#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166
-+#: ../netstat.c:445 ../netstat.c:1186 ../netstat.c:1264
- msgid "LISTENING"
--msgstr "NASLOUCHÁ"
-+msgstr "NASLOUCHÃ"
-
--#: ../netstat.c:395
-+#: ../netstat.c:446
- msgid "CONN SENT"
--msgstr "CONN ODESLÁN"
-+msgstr "CONN ODESLÃN"
-
--#: ../netstat.c:396 ../netstat.c:1168
-+#: ../netstat.c:447 ../netstat.c:1266
- msgid "DISC SENT"
--msgstr "DISC ODESLÁN"
-+msgstr "DISC ODESLÃN"
-
--#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169
-+#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:898 ../netstat.c:1267
- msgid "ESTABLISHED"
- msgstr "SPOJENO"
-
--#: ../netstat.c:419
-+#: ../netstat.c:470
-+#, c-format
- msgid "Active NET/ROM sockets\n"
--msgstr "Aktivní NET/ROM sokety\n"
-+msgstr "Aktivní NET/ROM sokety\n"
-
--#: ../netstat.c:420
-+#: ../netstat.c:471
-+#, c-format
- msgid ""
--"User Dest Source Device State Vr/Vs Send-Q "
--"Recv-Q\n"
-+"User Dest Source Device State Vr/Vs Send-Q Recv-"
-+"Q\n"
- msgstr ""
--"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F "
--"Pøích-F\n"
-+"Uživatel Cíl Zdroj Zařízení Stav Vr/Vs Odch-F Přích-"
-+"F\n"
-
--#: ../netstat.c:430 ../netstat.c:1208
-+#: ../netstat.c:481 ../netstat.c:1306
- #, c-format
- msgid "Problem reading data from %s\n"
--msgstr "Chyba pøi ètení dat z %s\n"
-+msgstr "Chyba pÅ™i Ätení dat z %s\n"
-
--# následující radìji ponechat v originále ?!
--#: ../netstat.c:465
-+# následující raději ponechat v originále ?!
-+#: ../netstat.c:516
- msgid "SYN_SENT"
- msgstr "SYN_SENT"
-
--#: ../netstat.c:466
-+#: ../netstat.c:517
- msgid "SYN_RECV"
- msgstr "SYN_RECV"
-
--#: ../netstat.c:467
-+#: ../netstat.c:518
- msgid "FIN_WAIT1"
- msgstr "FIN_WAIT1"
-
--#: ../netstat.c:468
-+#: ../netstat.c:519
- msgid "FIN_WAIT2"
- msgstr "FIN_WAIT2"
-
--#: ../netstat.c:469
-+#: ../netstat.c:520
- msgid "TIME_WAIT"
- msgstr "TIME_WAIT"
-
--#: ../netstat.c:470
-+#: ../netstat.c:521
- msgid "CLOSE"
--msgstr "ZAVØEN"
-+msgstr "ZAVŘEN"
-
--#: ../netstat.c:471
-+#: ../netstat.c:522
- msgid "CLOSE_WAIT"
- msgstr "CLOSE_WAIT"
-
--#: ../netstat.c:472
-+#: ../netstat.c:523
- msgid "LAST_ACK"
--msgstr "POSLEDNÍ ACK"
-+msgstr "POSLEDNÃ ACK"
-
--#: ../netstat.c:473
-+#: ../netstat.c:524
- msgid "LISTEN"
--msgstr "LISTEN"
-+msgstr "NASLOUCHÃ"
-
--#: ../netstat.c:474
-+#: ../netstat.c:525
- msgid "CLOSING"
--msgstr "ZAVíRÁ"
-+msgstr "ZAVíRÃ"
-
--#: ../netstat.c:544
-+#: ../netstat.c:596
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
--msgstr "varování, nesmyslný igmp6 øádek %d.\n"
-+msgstr "varování, nesmyslný igmp6 řádek %d.\n"
-
--#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803
--#: ../netstat.c:935 ../netstat.c:940
-+#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:892
-+#: ../netstat.c:1029 ../netstat.c:1034
- #, c-format
- msgid "netstat: unsupported address family %d !\n"
--msgstr "netstat: tøída adres %d není podporována !\n"
-+msgstr "netstat: třída adres %d není podporována !\n"
-
--#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582
-+#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
- #, c-format
- msgid "warning, got bogus igmp line %d.\n"
--msgstr "varování, nesmyslný igmp øádek %d.\n"
-+msgstr "varování, nesmyslný igmp řádek %d.\n"
-+
-+#: ../netstat.c:677
-+#, c-format
-+msgid "Active X.25 sockets\n"
-+msgstr "Aktivní X.25 sokety\n"
-+
-+#. IMHO, Vr/Vs is not very usefull --SF
-+#: ../netstat.c:679
-+#, c-format
-+msgid ""
-+"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
-+"Q\n"
-+msgstr ""
-+"Cíl Zdroj Zaříz LCI Stav Vr/Vs Odhod-F Přích-"
-+"F\n"
-
--#: ../netstat.c:666
-+#: ../netstat.c:759
-+#, c-format
- msgid "warning, got bogus tcp line.\n"
--msgstr "varování, nesmyslný tcp øádek.\n"
-+msgstr "varování, nesmyslný tcp řádek.\n"
-
--#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975
-+#: ../netstat.c:798 ../netstat.c:947 ../netstat.c:1072
- #, c-format
- msgid "off (0.00/%ld/%d)"
- msgstr "vyp (0.00/%ld/%d)"
-
--#: ../netstat.c:708
--#, fuzzy, c-format
-+#: ../netstat.c:802
-+#, c-format
- msgid "on (%2.2f/%ld/%d)"
--msgstr "zap%d (%2.2f/%ld/%d)"
-+msgstr "zapnut (%2.2f/%ld/%d)"
-
--#: ../netstat.c:713
--#, fuzzy, c-format
-+#: ../netstat.c:807
-+#, c-format
- msgid "keepalive (%2.2f/%ld/%d)"
--msgstr "zap%d (%2.2f/%ld/%d)"
-+msgstr "keepalive (%2.2f/%ld/%d)"
-
--#: ../netstat.c:718
--#, fuzzy, c-format
-+#: ../netstat.c:812
-+#, c-format
- msgid "timewait (%2.2f/%ld/%d)"
--msgstr "zap%d (%2.2f/%ld/%d)"
-+msgstr "timewait (%2.2f/%ld/%d)"
-
--#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985
-+#: ../netstat.c:817 ../netstat.c:956 ../netstat.c:1082
- #, c-format
- msgid "unkn-%d (%2.2f/%ld/%d)"
- msgstr "nezn-%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:799
-+#: ../netstat.c:888
-+#, c-format
- msgid "warning, got bogus udp line.\n"
--msgstr "varování, nesmyslný udp øádek.\n"
-+msgstr "varování, nesmyslný udp řádek.\n"
-
--#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108
-+#: ../netstat.c:906 ../netstat.c:1172 ../netstat.c:1205
- msgid "UNKNOWN"
--msgstr "NEZNÁM"
-+msgstr "NEZNÃM"
-
--#: ../netstat.c:860 ../netstat.c:980
-+#: ../netstat.c:952 ../netstat.c:1077
- #, c-format
- msgid "on%d (%2.2f/%ld/%d)"
- msgstr "zap%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:949
-+#: ../netstat.c:1043
-+#, c-format
- msgid "warning, got bogus raw line.\n"
--msgstr "varování, nesmyslný 'raw' øádek.\n"
-+msgstr "varování, nesmyslný 'raw' řádek.\n"
-
--#: ../netstat.c:1028
-+#: ../netstat.c:1125
-+#, c-format
- msgid "warning, got bogus unix line.\n"
--msgstr "varování, netstat 'unix' øádek.\n"
-+msgstr "varování, netstat 'unix' řádek.\n"
-
--#: ../netstat.c:1055
-+#: ../netstat.c:1152
- msgid "STREAM"
- msgstr "STREAM"
-
--#: ../netstat.c:1059
-+#: ../netstat.c:1156
- msgid "DGRAM"
- msgstr "DGRAM"
-
--#: ../netstat.c:1063
-+#: ../netstat.c:1160
- msgid "RAW"
- msgstr "RAW"
-
--#: ../netstat.c:1067
-+#: ../netstat.c:1164
- msgid "RDM"
- msgstr "RDM"
-
--#: ../netstat.c:1071
-+#: ../netstat.c:1168
- msgid "SEQPACKET"
- msgstr "SEQPACKET"
-
--#: ../netstat.c:1080
-+#: ../netstat.c:1177
- msgid "FREE"
--msgstr "NEALOKOVÁN"
-+msgstr "NEALOKOVÃN"
-
--#: ../netstat.c:1096
-+#: ../netstat.c:1193
- msgid "CONNECTING"
- msgstr "SPOJUJE"
-
--#: ../netstat.c:1100
-+#: ../netstat.c:1197
- msgid "CONNECTED"
- msgstr "SPOJEN"
-
--#: ../netstat.c:1104
-+#: ../netstat.c:1201
- msgid "DISCONNECTING"
- msgstr "ODPOJUJE"
-
--#: ../netstat.c:1135
-+#: ../netstat.c:1233
-+#, c-format
- msgid "Active UNIX domain sockets "
--msgstr "Aktivní sokety domény UNIX "
-+msgstr "Aktivní sokety domény UNIX "
-
--#: ../netstat.c:1137 ../netstat.c:1666
-+#: ../netstat.c:1235 ../netstat.c:1801
-+#, c-format
- msgid "(servers and established)"
--msgstr "(servery a navázaná spojení)"
-+msgstr "(servery a navázaná spojení)"
-
--#: ../netstat.c:1140 ../netstat.c:1669
-+#: ../netstat.c:1238 ../netstat.c:1804
-+#, c-format
- msgid "(only servers)"
- msgstr "(pouze servery)"
-
--#: ../netstat.c:1142 ../netstat.c:1671
-+#: ../netstat.c:1240 ../netstat.c:1806
-+#, c-format
- msgid "(w/o servers)"
- msgstr "(w/o servery)"
-
--#: ../netstat.c:1145
-+#: ../netstat.c:1243
-+#, c-format
- msgid ""
- "\n"
--"Proto RefCnt Flags Type State I-Node"
-+"Proto RefCnt Flags Type State I-Node "
- msgstr ""
- "\n"
--"Proto Èítaè Pøíznaky Typ Stav I-Uzel"
-+"Proto ČítaÄ Příznaky Typ Stav I-Uzel "
-
--#: ../netstat.c:1147
-+#: ../netstat.c:1245
-+#, c-format
- msgid " Path\n"
- msgstr " Cesta\n"
-
--#: ../netstat.c:1167
-+#: ../netstat.c:1265
- msgid "SABM SENT"
--msgstr "SABM ODESLÁN"
-+msgstr "SABM ODESLÃN"
-
--#: ../netstat.c:1170
-+#: ../netstat.c:1268
- msgid "RECOVERY"
- msgstr "OBNOVA"
-
--#: ../netstat.c:1184
-+#: ../netstat.c:1282
-+#, c-format
- msgid "Active AX.25 sockets\n"
--msgstr "Aktivní AX.25 sokety\n"
-+msgstr "Aktivní AX.25 sokety\n"
-
--#: ../netstat.c:1185
-+#: ../netstat.c:1283
-+#, c-format
- msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
--msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n"
-+msgstr "Cíl Zdroj Zaříz Stav Vr/Vs Odhod-F Přích-F\n"
-
--#: ../netstat.c:1228
-+#: ../netstat.c:1326
- #, c-format
- msgid "problem reading data from %s\n"
--msgstr "chyba pøi ètení dat z %s\n"
-+msgstr "chyba pÅ™i Ätení dat z %s\n"
-
--#: ../netstat.c:1279
-+#: ../netstat.c:1396
-+#, c-format
- msgid ""
- "Active IPX sockets\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address "
- "State"
- msgstr ""
--"Aktivní IPX sokety\n"
--"Proto Pøích-F Odch-F Lokál adresa Vzdálená adresa "
--" Stav"
-+"Aktivní IPX sokety\n"
-+"Proto Přích-F Odch-F Lokál adresa Vzdálená "
-+"adresa Stav"
-
--#: ../netstat.c:1281
-+#: ../netstat.c:1398
-+#, c-format
- msgid " User"
--msgstr " U¾ivatel"
-+msgstr " Uživatel"
-
--#: ../netstat.c:1315
-+#: ../netstat.c:1432
- msgid "ESTAB"
- msgstr "SPOJEN"
-
--#: ../netstat.c:1323
-+#: ../netstat.c:1440
- msgid "UNK."
- msgstr "NEZ."
-
--#: ../netstat.c:1367
--msgid " - no statistics available -"
--msgstr " - statistická data nejsou dostupná -"
--
--#: ../netstat.c:1370
--msgid "[NO FLAGS]"
--msgstr "[®ÁDNÉ PØÍZNAKY]"
--
--#: ../netstat.c:1400
-+#: ../netstat.c:1478
-+#, c-format
- msgid "Kernel Interface table\n"
--msgstr "Tabulka rozhraní v jádru\n"
-+msgstr "Tabulka rozhraní v jádru\n"
-
--#: ../netstat.c:1401
--msgid ""
--"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
--"Flg\n"
--msgstr ""
--"Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT "
--"PØZ\n"
--
--#: ../netstat.c:1404
-+#: ../netstat.c:1486
- msgid "missing interface information"
--msgstr "chybí informace o rozhraní"
-+msgstr "chybí informace o rozhraní"
-
--#: ../netstat.c:1425
-+#: ../netstat.c:1509
-+#, c-format
- msgid ""
--"usage: netstat [-veenNcCF] [<Af>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
-+"help}\n"
- msgstr ""
--"Pou¾ití: netstat [--veenNcCF] [<TA>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"Použití: netstat [-vWeenNcCF] [<AF>] -r netstat {-V|--version|-h|--"
-+"help}\n"
-
--#: ../netstat.c:1426
--msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
--msgstr " netstat [-vnNcaeol] [<Soket> ...]\n"
-+#: ../netstat.c:1510
-+#, c-format
-+msgid " netstat [-vWnNcaeol] [<Socket> ...]\n"
-+msgstr " netstat [-vWnNcaeol] [<Socket>…]\n"
-
--#: ../netstat.c:1427
-+#: ../netstat.c:1511
-+#, c-format
- msgid ""
--" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
-+" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n"
- "\n"
- msgstr ""
--" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
-+" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n"
- "\n"
-
--#: ../netstat.c:1429
-+#: ../netstat.c:1513
-+#, c-format
- msgid " -r, --route display routing table\n"
--msgstr " -r, --route vypí¹e smìrovací tabulku\n"
-+msgstr " -r, --route vypíše směrovací tabulku\n"
-
--#: ../netstat.c:1430
-+#: ../netstat.c:1514
-+#, c-format
- msgid " -i, --interfaces display interface table\n"
--msgstr " -i, --interfaces vypí¹e tabulku rozhraní\n"
-+msgstr " -i, --interfaces vypíše tabulku rozhraní\n"
-
--#: ../netstat.c:1431
-+#: ../netstat.c:1515
-+#, c-format
- msgid " -g, --groups display multicast group memberships\n"
- msgstr ""
--" -g, --groups vypí¹e èlenství v multicast skupinách\n"
-+" -g, --groups vypíše Älenství v multicast skupinách\n"
-
--#: ../netstat.c:1432
-+#: ../netstat.c:1516
-+#, c-format
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
--" -s, --statistics vypí¹e statistiku sí»ové aktivity (jako "
-+" -s, --statistics vypíše statistiku síťové aktivity (jako "
- "SNMP)\n"
-
--#: ../netstat.c:1434
-+#: ../netstat.c:1518
-+#, c-format
- msgid ""
- " -M, --masquerade display masqueraded connections\n"
- "\n"
- msgstr ""
--" -M, --masquerade vypí¹e maskovaná spojení\n"
-+" -M, --masquerade vypíše maskovaná spojení\n"
- "\n"
-
--#: ../netstat.c:1438 ../route.c:87
-+#: ../netstat.c:1521
-+#, c-format
-+msgid " -W, --wide don't truncate IP addresses\n"
-+msgstr " -W, --wide nezkracuje IP adresy\n"
-+
-+#: ../netstat.c:1523
-+#, c-format
-+msgid " --numeric-hosts don't resolve host names\n"
-+msgstr " --numeric-hosts nepřekládá názvy strojů\n"
-+
-+#: ../netstat.c:1524
-+#, c-format
-+msgid " --numeric-ports don't resolve port names\n"
-+msgstr " --numeric-ports nepřekládá názvy portů\n"
-+
-+#: ../netstat.c:1525
-+#, c-format
-+msgid " --numeric-users don't resolve user names\n"
-+msgstr " --numeric-users nepřekládá uživatelské jména\n"
-+
-+#: ../netstat.c:1526
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
--msgstr " -N, --symbolic pøevede hw jména\n"
-+msgstr " -N, --symbolic převede hw jména\n"
-
--#: ../netstat.c:1439 ../route.c:88
-+#: ../netstat.c:1527 ../route.c:88
-+#, c-format
- msgid " -e, --extend display other/more information\n"
--msgstr " -e, --extend vypí¹e podrobnìj¹í informace\n"
-+msgstr " -e, --extend vypíše podrobnější informace\n"
-
--#: ../netstat.c:1440
-+#: ../netstat.c:1528
-+#, c-format
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
--" -p, --programs vypí¹e PID/jméno programu pro sokety\n"
-+" -p, --programs vypíše PID/jméno programu pro sokety\n"
-
--#: ../netstat.c:1441
-+#: ../netstat.c:1529
-+#, c-format
- msgid ""
- " -c, --continuous continuous listing\n"
- "\n"
- msgstr ""
--" -c, --continuous nepøeru¹ovaný výpis\n"
-+" -c, --continuous nepřerušovaný výpis\n"
- "\n"
-
--#: ../netstat.c:1442
-+#: ../netstat.c:1530
-+#, c-format
- msgid " -l, --listening display listening server sockets\n"
- msgstr ""
--" -l, --listening vypí¹e sokety, na nich¾ je nasloucháno\n"
-+" -l, --listening vypíše sokety, na nichž je nasloucháno\n"
-
--#: ../netstat.c:1443
-+#: ../netstat.c:1531
-+#, c-format
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
--" -a, --all, --listening vypí¹e v¹echny sokety (implicitnì: "
--"spojené)\n"
-+" -a, --all, --listening vypíše všechny sokety (implicitně: "
-+"spojené)\n"
-
--#: ../netstat.c:1444
-+#: ../netstat.c:1532
-+#, c-format
- msgid " -o, --timers display timers\n"
--msgstr " -o, --timers zobrazí èasovaèe\n"
-+msgstr " -o, --timers zobrazí ÄasovaÄe\n"
-
--#: ../netstat.c:1445 ../route.c:89
-+#: ../netstat.c:1533 ../route.c:89
-+#, c-format
- msgid ""
- " -F, --fib display Forwarding Information Base "
- "(default)\n"
- msgstr ""
--" -F, --fib zobrazí Forwarding Infomation Base\n"
--" (implicitní)\n"
-+" -F, --fib zobrazí Forwarding Information Base\n"
-+" (implicitní)\n"
-
--#: ../netstat.c:1446 ../route.c:90
-+#: ../netstat.c:1534 ../route.c:90
-+#, c-format
- msgid ""
- " -C, --cache display routing cache instead of FIB\n"
- "\n"
--msgstr " -C, --cache místo FIB zobrazí smìrovací cache\n"
-+msgstr " -C, --cache místo FIB zobrazí směrovací cache\n"
-
--#: ../netstat.c:1448
-+#: ../netstat.c:1536
-+#, c-format
- msgid ""
--" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
--"--netrom\n"
-+" <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix} --"
-+"ax25 --ipx --netrom\n"
- msgstr ""
--" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
--"--netrom\n"
-+" <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix} --"
-+"ax25 --ipx --netrom\n"
-
--#: ../netstat.c:1449 ../route.c:92
-+#: ../netstat.c:1537
- #, c-format
--msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
--msgstr " <AF>=Pou¾ijte '-A <af>' or '--<af>' Implicitní: %s\n"
-+msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=Použijte „-6|-4“ nebo „-A <af>“ nebo „--<af>“. Implicitní: %s\n"
-
--#: ../netstat.c:1450 ../route.c:93
-+#: ../netstat.c:1538 ../route.c:93
-+#, c-format
- msgid " List of possible address families (which support routing):\n"
--msgstr " Seznam mo¾ných tøíd adres (podporujících smìrování):\n"
-+msgstr " Seznam možných tříd adres (podporujících směrování):\n"
-+
-+#: ../netstat.c:1756
-+#, c-format
-+msgid "netstat: No statistics support for specified address family: %s\n"
-+msgstr "netstat: Pro zadanou rodinu adres není podporována statistika: %s\n"
-
--#: ../netstat.c:1663
-+#: ../netstat.c:1798
-+#, c-format
- msgid "Active Internet connections "
--msgstr "Aktivní Internetová spojení "
-+msgstr "Aktivní Internetová spojení "
-
--#: ../netstat.c:1673
-+#: ../netstat.c:1808
-+#, c-format
- msgid ""
- "\n"
--"Proto Recv-Q Send-Q Local Address Foreign Address State "
--" "
-+"Proto Recv-Q Send-Q Local Address Foreign Address "
-+"State "
- msgstr ""
- "\n"
--"Proto Pøích-F Odch-F Místní Adresa Vzdálená Adresa Stav "
-+"Proto Přích-F Odch-F Místní Adresa Vzdálená Adresa Stav "
-
--#: ../netstat.c:1675
-+#: ../netstat.c:1810
-+#, c-format
- msgid " User Inode "
--msgstr " U¾ivatel I-uzel "
-+msgstr " Uživatel I-uzel "
-
--#: ../netstat.c:1678
-+#: ../netstat.c:1813
-+#, c-format
- msgid " Timer"
--msgstr " Èasovaè"
-+msgstr " ÄŒasovaÄ"
-
--#: ../netstat.c:1708
-+#: ../netstat.c:1851
-+#, c-format
- msgid "IPv4 Group Memberships\n"
--msgstr "Èlenství v IPv4 skupinách\n"
-+msgstr "Členství v IPv4 skupinách\n"
-
--#: ../netstat.c:1709
-+#: ../netstat.c:1852
-+#, c-format
- msgid "Interface RefCnt Group\n"
--msgstr "Rozhraní Èítaè Skupina\n"
-+msgstr "Rozhraní ČítaÄ Skupina\n"
-
--#: ../rarp.c:43
-+#: ../rarp.c:45
- msgid "This kernel does not support RARP.\n"
--msgstr "Toto jádro nepodporuje RARP.\n"
-+msgstr "Toto jádro nepodporuje RARP.\n"
-
--#: ../rarp.c:82
-+#: ../rarp.c:84
- #, c-format
- msgid "no RARP entry for %s.\n"
--msgstr "pro %s neexistuje RARP polo¾ka.\n"
-+msgstr "pro %s neexistuje RARP položka.\n"
-
--#: ../rarp.c:95
-+#: ../rarp.c:97
- #, c-format
- msgid "%s: bad hardware address\n"
--msgstr "hardwarová adresa %s je nesprávná\n"
-+msgstr "hardwarová adresa %s je nesprávná\n"
-
--#: ../rarp.c:127
-+#: ../rarp.c:129
- #, c-format
- msgid "rarp: cannot open file %s:%s.\n"
--msgstr "rarp: soubor %s:%s nelze otevøít.\n"
-+msgstr "rarp: soubor %s:%s nelze otevřít.\n"
-
--#: ../rarp.c:139
-+#: ../rarp.c:141
- #, c-format
- msgid "rarp: format error at %s:%u\n"
--msgstr "rarp: syntaktická chyba na øádku %2$u souboru %1$s\n"
-+msgstr "rarp: syntaktická chyba na řádku %2$u souboru %1$s\n"
-
--#: ../rarp.c:143 ../rarp.c:287
-+#: ../rarp.c:145 ../rarp.c:290
- #, c-format
- msgid "rarp: %s: unknown host\n"
--msgstr "rarp: poèítaè %s není znám\n"
-+msgstr "rarp: poÄítaÄ %s není znám\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:148
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
--msgstr "rarp: nelze nastavit polo¾ku z øádku %2$u souboru %1$s\n"
-+msgstr "rarp: nelze nastavit položku z řádku %2$u souboru %1$s\n"
-
--#: ../rarp.c:175
-+#: ../rarp.c:177
-+#, c-format
- msgid "Usage: rarp -a list entries in cache.\n"
--msgstr "Pou¾ití: rarp -a vypí¹e polo¾ky z cache.\n"
-+msgstr "Použití: rarp -a vypíše položky z cache.\n"
-
--#: ../rarp.c:176
-+#: ../rarp.c:178
-+#, c-format
- msgid " rarp -d <hostname> delete entry from cache.\n"
--msgstr " rarp -d <jméno> sma¾e polo¾ku z cache.\n"
-+msgstr " rarp -d <jméno> smaže položku z cache.\n"
-
--#: ../rarp.c:177
-+#: ../rarp.c:179
-+#, c-format
- msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
- msgstr ""
--" rarp [<HW>] -s <jméno> <hwadr> pøidá polo¾ku do cache.\n"
-+" rarp [<HW>] -s <jméno> <hwadr> přidá položku do cache.\n"
-
--#: ../rarp.c:178
-+#: ../rarp.c:180
-+#, c-format
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
--" rarp -f pøidá polo¾ky z /etc/ethers.\n"
-+" rarp -f přidá položky z /etc/ethers.\n"
-
--#: ../rarp.c:179
-+#: ../rarp.c:181
-+#, c-format
- msgid ""
- " rarp -V display program version.\n"
- "\n"
- msgstr ""
--" rarp -V vypí¹e oznaèení verze "
-+" rarp -V vypíše oznaÄení verze "
- "programu.\n"
- "\n"
-
--#: ../rarp.c:236
-+#: ../rarp.c:239
- #, c-format
- msgid "%s: illegal option mix.\n"
--msgstr "Kombinace pøepínaèù %s je nesprávná.\n"
-+msgstr "Kombinace pÅ™epínaÄů %s je nesprávná.\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:270
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
--msgstr "rarp: hardwarový typ %s není znám.\n"
-+msgstr "rarp: hardwarový typ %s není znám.\n"
-
--#: ../route.c:79
-+#: ../route.c:80
-+#, c-format
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
--"Pou¾ití: route [-nNvee] [-FC] [<AF>] Zobrazí smìrovací tabulky v "
--"jádru\n"
-+"Použití: route [-nNvee] [-FC] [<AF>] Zobrazí směrovací tabulky v "
-+"jádru\n"
-
--#: ../route.c:80
-+#: ../route.c:81
-+#, c-format
- msgid ""
- " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
- "\n"
- msgstr ""
--" route [-v] [-FC] {add|del|flush} ... Zmìní smìrovací tabulku pro "
-+" route [-v] [-FC] {add|del|flush} ... Změní směrovací tabulku pro "
- "AF.\n"
- "\n"
-
--#: ../route.c:82
-+#: ../route.c:83
-+#, c-format
- msgid ""
- " route {-h|--help} [<AF>] Detailed usage syntax for "
- "specified AF.\n"
- msgstr ""
--" route {-h|--help [<AF>] Nápovìda pro pou¾ití s AF.\n"
-+" route {-h|--help [<AF>] Nápověda pro použití s AF.\n"
-
--#: ../route.c:83
-+#: ../route.c:84
-+#, c-format
- msgid ""
- " route {-V|--version} Display version/author and "
- "exit.\n"
- "\n"
- msgstr ""
--" route {-V|--version} Vypí¹e oznaèení verze a autora\n"
-+" route {-V|--version} Vypíše oznaÄení verze a autora\n"
- " programu.\n"
-
-+#: ../route.c:92
-+#, c-format
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=Použijte „-A <af>“ nebo „--<af>“. Implicitní: %s\n"
-+
- #: ../plipconfig.c:66
-+#, c-format
- msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
--msgstr "Pou¾ití: plipconfig [-a] [-i] [-v] rozhraní\n"
-+msgstr "Použití: plipconfig [-a] [-i] [-v] rozhraní\n"
-
- #: ../plipconfig.c:67
-+#, c-format
- msgid " [nibble NN] [trigger NN]\n"
- msgstr " [nibble NN] [trigger NN]\n"
-
- #: ../plipconfig.c:68
-+#, c-format
- msgid " plipconfig -V | --version\n"
- msgstr " plipconfig -V | --version\n"
-
-@@ -1338,25 +1371,30 @@ msgstr " plipconfig -V | --version\n"
- msgid "%s\tnibble %lu trigger %lu\n"
- msgstr "%s\tnibble %lu trigger %lu\n"
-
--#: ../iptunnel.c:79
-+#: ../iptunnel.c:85
-+#, c-format
- msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
--msgstr "Pou¾ití: iptunnel { add | change | del | show } [ JMÉNO ]\n"
-+msgstr "Použití: iptunnel { add | change | del | show } [ JMÉNO ]\n"
-
--#: ../iptunnel.c:80
-+#: ../iptunnel.c:86
-+#, c-format
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
--" [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní ADR ]\n"
-+" [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní ADR ]\n"
-
--#: ../iptunnel.c:81
-+#: ../iptunnel.c:87
-+#, c-format
- msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
--msgstr " [ [i|o]seq ] [ [i|o]key KLÍÈ ] [ [i|o]csum ]\n"
-+msgstr " [ [i|o]seq ] [ [i|o]key KLÃÄŒ ] [ [i|o]csum ]\n"
-
--#: ../iptunnel.c:82
-+#: ../iptunnel.c:88
-+#, c-format
- msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
--msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAØÍZENÍ ]\n"
-+msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAŘÃZENà ]\n"
-
--#: ../iptunnel.c:83
-+#: ../iptunnel.c:89
-+#, c-format
- msgid ""
- " iptunnel -V | --version\n"
- "\n"
-@@ -1364,1068 +1402,1781 @@ msgstr ""
- " iptunnel -V | --version\n"
- "\n"
-
--#: ../iptunnel.c:84
-+#: ../iptunnel.c:90
-+#, c-format
- msgid "Where: NAME := STRING\n"
--msgstr "Kde: JMÉNO := ØETÌZEC\n"
-+msgstr "Kde: JMÉNO := ŘETĚZEC\n"
-
--#: ../iptunnel.c:85
-+#: ../iptunnel.c:91
-+#, c-format
- msgid " ADDR := { IP_ADDRESS | any }\n"
- msgstr " ADR := { IP-ADRESA | any }\n"
-
--#: ../iptunnel.c:86
-+#: ../iptunnel.c:92
-+#, c-format
- msgid " TOS := { NUMBER | inherit }\n"
--msgstr " TOS := { ÈÍSLO | inherit }\n"
-+msgstr " TOS := { ÄŒÃSLO | inherit }\n"
-
--#: ../iptunnel.c:87
-+#: ../iptunnel.c:93
-+#, c-format
- msgid " TTL := { 1..255 | inherit }\n"
- msgstr " TTL := { 1..255 | inherit }\n"
-
--#: ../iptunnel.c:88
-+#: ../iptunnel.c:94
-+#, c-format
- msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
--msgstr " KLÍÈ := { DOTTED_QUAD | ÈÍSLO }\n"
-+msgstr " KLÃÄŒ := { DOTTED_QUAD | ÄŒÃSLO }\n"
-
--#: ../iptunnel.c:326
-+#: ../iptunnel.c:332
-+#, c-format
- msgid "Keys are not allowed with ipip and sit.\n"
--msgstr "S ipip a sit nejsou klíèe povoleny.\n"
-+msgstr "S ipip a sit nejsou klíÄe povoleny.\n"
-
--#: ../iptunnel.c:346
-+#: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
--msgstr "Tunel se v¹esmìrovým vysíláním vy¾aduje zdrojovou adresu.\n"
-+msgstr "Tunel se všesměrovým vysíláním vyžaduje zdrojovou adresu.\n"
-
--#: ../iptunnel.c:361
-+#: ../iptunnel.c:367
-+#, c-format
- msgid "ttl != 0 and noptmudisc are incompatible\n"
--msgstr "ttl != 0 a noptmudisc se navzájem vyluèují\n"
-+msgstr "ttl != 0 a noptmudisc se navzájem vyluÄují\n"
-
--#: ../iptunnel.c:373
-+#: ../iptunnel.c:379
-+#, c-format
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
--msgstr "re¾im tunelu (ipip, gre èi sit) nelze zjistit\n"
-+msgstr "režim tunelu (ipip, gre Äi sit) nelze zjistit\n"
-
--#: ../iptunnel.c:411
-+#: ../iptunnel.c:417
- #, c-format
- msgid "%s: %s/ip remote %s local %s "
--msgstr "%s: %s/ip vzdálený %s místní %s "
-+msgstr "%s: %s/ip vzdálený %s místní %s "
-
--#: ../iptunnel.c:415
-+#: ../iptunnel.c:421
- msgid "unknown"
--msgstr "Neznám."
-+msgstr "Neznám."
-
--#: ../iptunnel.c:447
-+#: ../iptunnel.c:453
-+#, c-format
- msgid " Drop packets out of sequence.\n"
--msgstr " Zahazuje pakety mimo poøadí.\n"
-+msgstr " Zahazuje pakety mimo pořadí.\n"
-
--#: ../iptunnel.c:449
-+#: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
--msgstr " Pøijímané pakety musí mít kontrolní souèet.\n"
-+msgstr " PÅ™ijímané pakety musí mít kontrolní souÄet.\n"
-
- # ???
--#: ../iptunnel.c:451
-+#: ../iptunnel.c:457
-+#, c-format
- msgid " Sequence packets on output.\n"
--msgstr " Øadí odchozí pakety.\n"
-+msgstr " Řadí odchozí pakety.\n"
-
--#: ../iptunnel.c:453
-+#: ../iptunnel.c:459
-+#, c-format
- msgid " Checksum output packets.\n"
--msgstr " Odchozí pakety budou mít kontrolní souèet.\n"
-+msgstr " Odchozí pakety budou mít kontrolní souÄet.\n"
-
--#: ../iptunnel.c:481
-+#: ../iptunnel.c:487
-+#, c-format
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
--msgstr "Lituji, formát /proc/net/dev je chybný.\n"
-+msgstr "Lituji, formát /proc/net/dev je chybný.\n"
-
--#: ../iptunnel.c:494
-+#: ../iptunnel.c:500
- #, c-format
- msgid "Failed to get type of [%s]\n"
--msgstr "Typ [%s] se nepodaøilo zjistit.\n"
-+msgstr "Typ [%s] se nepodařilo zjistit.\n"
-
--#: ../iptunnel.c:510
-+#: ../iptunnel.c:516
-+#, c-format
- msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
--msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPoø Mcasts\n"
-+msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPoÅ™ Mcasts\n"
-
--#: ../iptunnel.c:513
-+#: ../iptunnel.c:519
-+#, c-format
- msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
- msgstr "TX: Pakety Bajty Chyby DeadLoop NoRoute NoBufs\n"
-
--#: ../statistics.c:45
-+#: ../statistics.c:48
- msgid "ICMP input histogram:"
--msgstr "histogram ICMP vstupu:"
-+msgstr "Histogram ICMP vstupu:"
-
--#: ../statistics.c:46
-+#: ../statistics.c:49
- msgid "ICMP output histogram:"
--msgstr "histogram ICMP výstupu:"
-+msgstr "Histogram ICMP výstupu:"
-+
-+#: ../statistics.c:66
-+#, c-format
-+msgid "Forwarding is %s"
-+msgstr "Předávání je %s"
-+
-+#: ../statistics.c:67
-+#, c-format
-+msgid "Default TTL is %u"
-+msgstr "Implicitní TTL je %u"
-+
-+#: ../statistics.c:68 ../statistics.c:89
-+#, c-format
-+msgid "%u total packets received"
-+msgstr "Celkem přijatých paketů: %u"
-+
-+#: ../statistics.c:69 ../statistics.c:90
-+#, c-format
-+msgid "%u with invalid headers"
-+msgstr "S nesprávnými hlaviÄkami: %u"
-+
-+#: ../statistics.c:70 ../statistics.c:93
-+#, c-format
-+msgid "%u with invalid addresses"
-+msgstr "S nesprávnými adresami: %u"
-+
-+#: ../statistics.c:71 ../statistics.c:98
-+#, c-format
-+msgid "%u forwarded"
-+msgstr "Přeposláno: %u"
-+
-+#: ../statistics.c:72 ../statistics.c:94
-+#, c-format
-+msgid "%u with unknown protocol"
-+msgstr "S neznámým protokolem: %u"
-+
-+#: ../statistics.c:73 ../statistics.c:96
-+#, c-format
-+msgid "%u incoming packets discarded"
-+msgstr "PoÄet zahozených příchozích paketů: %u"
-+
-+#: ../statistics.c:74 ../statistics.c:97
-+#, c-format
-+msgid "%u incoming packets delivered"
-+msgstr "PoÄet doruÄených příchozích paketů: %u"
-+
-+#: ../statistics.c:75 ../statistics.c:99
-+#, c-format
-+msgid "%u requests sent out"
-+msgstr "PoÄet požadavků na odeslání: %u"
-+
-+#. ?
-+#: ../statistics.c:76 ../statistics.c:100
-+#, c-format
-+msgid "%u outgoing packets dropped"
-+msgstr "PoÄet zahozených odchozích paketů: %u"
-+
-+#: ../statistics.c:77 ../statistics.c:101
-+#, c-format
-+msgid "%u dropped because of missing route"
-+msgstr "Zahozeno kvůli chybějící cestě: %u"
-+
-+#: ../statistics.c:78 ../statistics.c:102
-+#, c-format
-+msgid "%u fragments dropped after timeout"
-+msgstr "PoÄet fragmentů zahozených po vyprÅ¡ení Äasu: %u"
-+
-+#: ../statistics.c:79 ../statistics.c:103
-+#, c-format
-+msgid "%u reassemblies required"
-+msgstr "PoÄet nutných znovusestavení: %u"
-+
-+#. ?
-+#: ../statistics.c:80 ../statistics.c:104
-+#, c-format
-+msgid "%u packets reassembled ok"
-+msgstr "PoÄet v pořádku znovu sestavených paketů: %u"
-+
-+#: ../statistics.c:81 ../statistics.c:105
-+#, c-format
-+msgid "%u packet reassembles failed"
-+msgstr "PoÄet paketů, jež se nepodaÅ™ilo znovu sestavit: %u"
-+
-+#: ../statistics.c:82 ../statistics.c:106
-+#, c-format
-+msgid "%u fragments received ok"
-+msgstr "PoÄet v pořádku pÅ™ijatých fragmentů: %u"
-+
-+#: ../statistics.c:83 ../statistics.c:107
-+#, c-format
-+msgid "%u fragments failed"
-+msgstr "PoÄet chybných fragmentů: %u"
-+
-+#: ../statistics.c:84 ../statistics.c:108
-+#, c-format
-+msgid "%u fragments created"
-+msgstr "PoÄet vytvoÅ™ených fragmentů: %u"
-+
-+#: ../statistics.c:91
-+#, c-format
-+msgid "%u with packets too big"
-+msgstr "PoÄet příliÅ¡ velkých packetů: %u"
-+
-+#: ../statistics.c:92
-+#, c-format
-+msgid "%u incoming packets with no route"
-+msgstr "PoÄet příchozích paketů bez odpovídající cesty: %u"
-+
-+#: ../statistics.c:95
-+#, c-format
-+msgid "%u with truncated packets"
-+msgstr "PoÄet zkrácených packetů: %u"
-+
-+#: ../statistics.c:109
-+#, c-format
-+msgid "%u incoming multicast packets"
-+msgstr "PoÄet příchozích multicastových paketů: %u"
-+
-+#: ../statistics.c:110
-+#, c-format
-+msgid "%u outgoing multicast packets"
-+msgstr "PoÄet odchozích multicastových paketů: %u"
-+
-+#: ../statistics.c:115 ../statistics.c:145
-+#, c-format
-+msgid "%u ICMP messages received"
-+msgstr "PoÄet pÅ™ijatých ICMP zpráv: %u"
-+
-+#: ../statistics.c:116 ../statistics.c:146
-+#, c-format
-+msgid "%u input ICMP message failed."
-+msgstr "PoÄet chybných příchozích ICMP zpráv: %u"
-+
-+#: ../statistics.c:117 ../statistics.c:130 ../statistics.c:147
-+#: ../statistics.c:162
-+#, c-format
-+msgid "destination unreachable: %u"
-+msgstr "Adresát nedostupný: %u"
-+
-+#: ../statistics.c:118
-+#, c-format
-+msgid "timeout in transit: %u"
-+msgstr "VyprÅ¡el Äas pÅ™i pÅ™enosu: %u"
-+
-+#: ../statistics.c:119 ../statistics.c:132
-+#, c-format
-+msgid "wrong parameters: %u"
-+msgstr "Chybné parametry: %u"
-+
-+#. ?
-+#: ../statistics.c:120
-+#, c-format
-+msgid "source quenches: %u"
-+msgstr "Zahlcení zdroje: %u"
-+
-+#: ../statistics.c:121 ../statistics.c:160 ../statistics.c:175
-+#, c-format
-+msgid "redirects: %u"
-+msgstr "PoÄet pÅ™esmÄ›rování: %u"
-+
-+#: ../statistics.c:122 ../statistics.c:151 ../statistics.c:166
-+#, c-format
-+msgid "echo requests: %u"
-+msgstr "Žádost o echo: %u"
-+
-+#: ../statistics.c:123 ../statistics.c:136 ../statistics.c:152
-+#: ../statistics.c:167
-+#, c-format
-+msgid "echo replies: %u"
-+msgstr "OdpovÄ›Ä na žádost o echo: %u"
-+
-+#: ../statistics.c:124
-+#, c-format
-+msgid "timestamp request: %u"
-+msgstr "Žádost o Äas: %u"
-+
-+#: ../statistics.c:125
-+#, c-format
-+msgid "timestamp reply: %u"
-+msgstr "OdpovÄ›Ä na žádost o Äas: %u"
-+
-+#: ../statistics.c:126
-+#, c-format
-+msgid "address mask request: %u"
-+msgstr "Žádost o masku podsítě: %u"
-+
-+#. ?
-+#: ../statistics.c:127 ../statistics.c:140
-+#, c-format
-+msgid "address mask replies: %u"
-+msgstr "OdpovÄ›Ä na žádost o masku podsítÄ›: %u"
-+
-+#. ?
-+#: ../statistics.c:128 ../statistics.c:161
-+#, c-format
-+msgid "%u ICMP messages sent"
-+msgstr "PoÄet odeslaných ICMP zpráv: %u"
-+
-+#: ../statistics.c:129
-+#, c-format
-+msgid "%u ICMP messages failed"
-+msgstr "PoÄet chybných ICMP zpráv: %u"
-+
-+#: ../statistics.c:131
-+#, c-format
-+msgid "time exceeded: %u"
-+msgstr "Vypršení životnosti: %u"
-+
-+#. ?
-+#: ../statistics.c:133
-+#, c-format
-+msgid "source quench: %u"
-+msgstr "Zahlcení zdroje: %u"
-+
-+#: ../statistics.c:134
-+#, c-format
-+msgid "redirect: %u"
-+msgstr "PoÄet pÅ™esmÄ›rování: %u"
-+
-+#: ../statistics.c:135
-+#, c-format
-+msgid "echo request: %u"
-+msgstr "Žádost o echo: %u"
-+
-+#: ../statistics.c:137
-+#, c-format
-+msgid "timestamp requests: %u"
-+msgstr "žádost o Äas: %u"
-+
-+#: ../statistics.c:138
-+#, c-format
-+msgid "timestamp replies: %u"
-+msgstr "OdpovÄ›Ä na žádost o Äas: %u"
-+
-+#: ../statistics.c:139
-+#, c-format
-+msgid "address mask requests: %u"
-+msgstr "Žádost o masku podsítě: %u"
-+
-+#: ../statistics.c:148 ../statistics.c:163
-+#, c-format
-+msgid "packets too big: %u"
-+msgstr "Příliš velkých packetů: %u"
-+
-+#: ../statistics.c:149
-+#, c-format
-+msgid "received ICMPv6 time exceeded: %u"
-+msgstr "Přijato ICMPv6 vypršení životnosti: %u"
-+
-+#: ../statistics.c:150 ../statistics.c:165
-+#, c-format
-+msgid "parameter problem: %u"
-+msgstr "Problém s parametrem: %u"
-+
-+#: ../statistics.c:153 ../statistics.c:168
-+#, c-format
-+msgid "group member queries: %u"
-+msgstr "Dotazů na Älenství ve skupinÄ›: %u"
-+
-+#: ../statistics.c:154 ../statistics.c:169
-+#, c-format
-+msgid "group member responses: %u"
-+msgstr "OdpovÄ›dí na Älenství ve skupinÄ›: %u"
-+
-+#: ../statistics.c:155 ../statistics.c:170
-+#, c-format
-+msgid "group member reductions: %u"
-+msgstr "PoÄet snížení Älenů skupiny: %u"
-+
-+#: ../statistics.c:156 ../statistics.c:171
-+#, c-format
-+msgid "router solicits: %u"
-+msgstr "PoÄet výzev smÄ›rovaÄi: %u"
-+
-+#: ../statistics.c:157 ../statistics.c:172
-+#, c-format
-+msgid "router advertisement: %u"
-+msgstr "PoÄet oznámení smÄ›rovaÄe: %u"
-+
-+#: ../statistics.c:158
-+#, c-format
-+msgid "neighbour solicits: %u"
-+msgstr "PoÄet výzev sousedovi: %u"
-+
-+#: ../statistics.c:159
-+#, c-format
-+msgid "neighbour advertisement: %u"
-+msgstr "PoÄet oznámení souseda: %u"
-+
-+#: ../statistics.c:164
-+#, c-format
-+msgid "sent ICMPv6 time exceeded: %u"
-+msgstr "PoÄet odeslaných ICMPv6 vyprÅ¡ení životnosti: %u"
-+
-+#: ../statistics.c:173
-+#, c-format
-+msgid "neighbor solicits: %u"
-+msgstr "PoÄet výzev sousedovi: %u"
-+
-+#: ../statistics.c:174
-+#, c-format
-+msgid "neighbor advertisements: %u"
-+msgstr "PoÄet oznámení souseda: %u"
-+
-+#: ../statistics.c:180
-+#, c-format
-+msgid "RTO algorithm is %s"
-+msgstr "RTO algoritmus je %s"
-+
-+#: ../statistics.c:184
-+#, c-format
-+msgid "%u active connections openings"
-+msgstr "PoÄet aktivnÄ› navázaných spojení: %u"
-+
-+#: ../statistics.c:185
-+#, c-format
-+msgid "%u passive connection openings"
-+msgstr "PoÄet pasivnÄ› navázaných spojení: %u"
-+
-+#: ../statistics.c:186
-+#, c-format
-+msgid "%u failed connection attempts"
-+msgstr "PoÄet neúspěšných pokusů o spojení: %u"
-+
-+#: ../statistics.c:187
-+#, c-format
-+msgid "%u connection resets received"
-+msgstr "PoÄet pÅ™ijatých resetů spojení: %u"
-+
-+#: ../statistics.c:188
-+#, c-format
-+msgid "%u connections established"
-+msgstr "PoÄet navázaných spojení: %u"
-+
-+#: ../statistics.c:189
-+#, c-format
-+msgid "%u segments received"
-+msgstr "PoÄet pÅ™ijatých segmentů: %u"
-+
-+#: ../statistics.c:190
-+#, c-format
-+msgid "%u segments send out"
-+msgstr "PoÄet odeslaných segmentů: %u"
-+
-+#: ../statistics.c:191
-+#, c-format
-+msgid "%u segments retransmited"
-+msgstr "PoÄet pÅ™enesených segmentů: %u"
-+
-+#: ../statistics.c:192
-+#, c-format
-+msgid "%u bad segments received."
-+msgstr "PoÄet chybných příchozích segmentů: %u"
-+
-+#: ../statistics.c:193
-+#, c-format
-+msgid "%u resets sent"
-+msgstr "PoÄet odeslaných resetů: %u"
-+
-+#: ../statistics.c:198 ../statistics.c:206
-+#, c-format
-+msgid "%u packets received"
-+msgstr "PoÄet pÅ™ijatých paketů: %u"
-+
-+#: ../statistics.c:199 ../statistics.c:207
-+#, c-format
-+msgid "%u packets to unknown port received."
-+msgstr "PoÄet paketů pÅ™ijatých pro neznámý port: %u"
-+
-+#: ../statistics.c:200 ../statistics.c:208
-+#, c-format
-+msgid "%u packet receive errors"
-+msgstr "PoÄet chyb pÅ™i příjmu paketů: %u"
-+
-+#: ../statistics.c:201 ../statistics.c:209
-+#, c-format
-+msgid "%u packets sent"
-+msgstr "PoÄet odeslaných paketů: %u"
-+
-+#: ../statistics.c:214
-+#, c-format
-+msgid "%u SYN cookies sent"
-+msgstr "PoÄet odeslaných SYN cookies: %u"
-
--#: ../statistics.c:63
-+#: ../statistics.c:215
- #, c-format
--msgid "Forwarding is %s"
--msgstr "Pøedávání je %s"
-+msgid "%u SYN cookies received"
-+msgstr "PoÄet pÅ™ijatých SYN cookies: %u"
-
--#: ../statistics.c:64
-+#: ../statistics.c:216
- #, c-format
--msgid "Default TTL is %d"
--msgstr "Implicitní TTL je %d"
-+msgid "%u invalid SYN cookies received"
-+msgstr "PoÄet chybných příchozích SYN cookies: %u"
-
--#: ../statistics.c:65
-+#: ../statistics.c:218
- #, c-format
--msgid "%d total packets received"
--msgstr "celkem pøijmutých paketù: %d"
-+msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgstr "PoÄet resetů pÅ™ijatých pro sokety v zárodeÄném stavu SYN_PŘÃCH: %u"
-
--#: ../statistics.c:66
-+#: ../statistics.c:220
- #, c-format
--msgid "%d with invalid headers"
--msgstr "s nesprávnými hlavièkami: %d"
-+msgid "%u packets pruned from receive queue because of socket buffer overrun"
-+msgstr ""
-+"PoÄet packetů odstranÄ›ných z pÅ™ijímací fronty kvůli pÅ™eteÄení bufferu "
-+"socketu: %u"
-
--#: ../statistics.c:67
-+#. obsolete: 2.2.0 doesn't do that anymore
-+#: ../statistics.c:223
- #, c-format
--msgid "%d with invalid addresses"
--msgstr "s nesprávnými adresami: %d"
-+msgid "%u packets pruned from receive queue"
-+msgstr "PoÄet packetů odstranÄ›ných z pÅ™ijímací fronty: %u"
-
--#: ../statistics.c:68
-+#: ../statistics.c:224
- #, c-format
--msgid "%d forwarded"
--msgstr "pøedáno: %d"
-+msgid ""
-+"%u packets dropped from out-of-order queue because of socket buffer overrun"
-+msgstr ""
-+"PoÄet packetů zahozených z fronty mimo-poÅ™adí kvůli pÅ™eteÄení bufferu "
-+"socketu: %u"
-
--#: ../statistics.c:69
-+#: ../statistics.c:226
- #, c-format
--msgid "%d with unknown protocol"
--msgstr "s neznámým protokolem: %d"
-+msgid "%u ICMP packets dropped because they were out-of-window"
-+msgstr "PoÄet ICMP packetů zahozených, protože byly mimo okno: %u"
-
--#: ../statistics.c:70
-+#: ../statistics.c:228
- #, c-format
--msgid "%d incoming packets discarded"
--msgstr "poèet zahozených pøíchozích paketù: %d"
-+msgid "%u ICMP packets dropped because socket was locked"
-+msgstr "PoÄet ICMP packetů zahozených kvůli zamÄenému socketu: %u"
-
--#: ../statistics.c:71
-+#: ../statistics.c:230
- #, c-format
--msgid "%d incoming packets delivered"
--msgstr "poèet doruèených pøíchozích paketù: %d"
-+msgid "%u TCP sockets finished time wait in fast timer"
-+msgstr ""
-+"PoÄet TCP socketů, které ukonÄily fázi time-wait uvnitÅ™ rychlého ÄasovaÄe: %u"
-
--#: ../statistics.c:72
-+#: ../statistics.c:231
- #, c-format
--msgid "%d requests sent out"
--msgstr "poèet odeslaných po¾adavkù: %d"
-+msgid "%u time wait sockets recycled by time stamp"
-+msgstr ""
-+"PoÄet socketů ve fázi time-wait, které byly znovu použity díky Äasovému "
-+"razítku: %u"
-
--#. ?
--#: ../statistics.c:73
-+#: ../statistics.c:232
- #, c-format
--msgid "%d outgoing packets dropped"
--msgstr "poèet zahozených odchozích paketù: %d"
-+msgid "%u TCP sockets finished time wait in slow timer"
-+msgstr ""
-+"PoÄet TCP socketů, které ukonÄily fázi time-wait uvnitÅ™ pomalého ÄasovaÄe: %u"
-
--#: ../statistics.c:74
-+#: ../statistics.c:233
- #, c-format
--msgid "%d dropped because of missing route"
--msgstr "zahozeno kvùli chybìjící cestì: %d"
-+msgid "%u passive connections rejected because of time stamp"
-+msgstr "PoÄet odmítnutých pasivních spojení kvůli Äasovému razítku: %u"
-
--#: ../statistics.c:75
-+#: ../statistics.c:235
- #, c-format
--msgid "%d fragments dropped after timeout"
--msgstr "poèet fragmentù zahozených po vypr¹ení èasu: %d"
-+msgid "%u active connections rejected because of time stamp"
-+msgstr "PoÄet odmítnutých aktivních spojení kvůli Äasovému razítku: %u"
-
--#: ../statistics.c:76
-+#: ../statistics.c:237
- #, c-format
--msgid "%d reassemblies required"
--msgstr "poèet nutných znovusestavení: %d"
-+msgid "%u packets rejects in established connections because of timestamp"
-+msgstr ""
-+"PoÄet odmítnutých packetů uvnitÅ™ navázaného spojení kvůli Äasovému razítku: %"
-+"u"
-
--#. ?
--#: ../statistics.c:77
-+#: ../statistics.c:239
- #, c-format
--msgid "%d packets reassembled ok"
--msgstr "poèet v poøádku znovu sestavených paketù: %d"
-+msgid "%u delayed acks sent"
-+msgstr "PoÄet odeslaných zpoždÄ›ných potvrzení: %u"
-
--#: ../statistics.c:78
-+#: ../statistics.c:240
- #, c-format
--msgid "%d packet reassembles failed"
--msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d"
-+msgid "%u delayed acks further delayed because of locked socket"
-+msgstr ""
-+"PoÄet zpoždÄ›ných potvrzení dále pozdržených kvůli zamÄenému socketu: %u"
-
--#: ../statistics.c:79
-+#: ../statistics.c:242
- #, c-format
--msgid "%d fragments received ok"
--msgstr "poèet v poøádku pøijmutých fragmentù: %d"
-+msgid "Quick ack mode was activated %u times"
-+msgstr "PoÄet aktivovaní rychlého potvrzovacího režimu: %u"
-
--#: ../statistics.c:80
-+#: ../statistics.c:243
- #, c-format
--msgid "%d fragments failed"
--msgstr "poèet chybných fragmentù: %d"
-+msgid "%u times the listen queue of a socket overflowed"
-+msgstr "PoÄet pÅ™eteÄení naslouchací fronty socketu: %u"
-
--#: ../statistics.c:81
-+#: ../statistics.c:245
- #, c-format
--msgid "%d fragments created"
--msgstr "poèet vytvoøených fragmentù: %d"
-+msgid "%u SYNs to LISTEN sockets dropped"
-+msgstr "PoÄet zahozených SYN packetů urÄených naslouchajícímu socketu: %u"
-
--#: ../statistics.c:86
-+#: ../statistics.c:246
- #, c-format
--msgid "%d ICMP messages received"
--msgstr "poèet pøijmutých ICMP zpráv: %d"
-+msgid "%u packets directly queued to recvmsg prequeue."
-+msgstr "PoÄet packetů přímo zaÅ™azených do pÅ™edfronty recvmsg: %u"
-
--#: ../statistics.c:87
-+#: ../statistics.c:248
- #, c-format
--msgid "%d input ICMP message failed."
--msgstr "poèet chybných pøíchozích ICMP zpráv: %d"
-+msgid "%u bytes directly in process context from backlog"
-+msgstr "PoÄet bajtů pÅ™edaných přímo z backlogu do kontextu procesu: %u"
-
--#: ../statistics.c:88 ../statistics.c:101
-+#: ../statistics.c:249
- #, c-format
--msgid "destination unreachable: %d"
--msgstr "adresát nedostupný: %d"
-+msgid "%u bytes directly received in process context from prequeue"
-+msgstr "PoÄet bajtů přímo pÅ™ijatých do kontextu procesu z pÅ™edfronty: %u"
-
--#: ../statistics.c:89
-+#: ../statistics.c:251
- #, c-format
--msgid "timeout in transit: %d"
--msgstr "vypr¹el èas pøi pøenosu: %d"
-+msgid "%u packets dropped from prequeue"
-+msgstr "PoÄet paketů odstranÄ›ných z pÅ™edfronty: %u"
-
--#: ../statistics.c:90 ../statistics.c:103
-+#: ../statistics.c:252
- #, c-format
--msgid "wrong parameters: %d"
--msgstr "chybné parametry: %d"
-+msgid "%u packet headers predicted"
-+msgstr "PoÄet pÅ™edpovÄ›zených hlaviÄek packetů: %u"
-
--#. ?
--#: ../statistics.c:91
-+#: ../statistics.c:253
- #, c-format
--msgid "source quenchs: %d"
--msgstr "øízení toku dat: %d"
-+msgid "%u packets header predicted and directly queued to user"
-+msgstr "PoÄet hlaviÄek packetů pÅ™edpovÄ›zených a přímo pÅ™edaných uživateli: %u"
-
--#: ../statistics.c:92
-+#: ../statistics.c:255
- #, c-format
--msgid "redirects: %d"
--msgstr "zmìna cesty: %d"
-+msgid "Ran %u times out of system memory during packet sending"
-+msgstr "Kolikrát systému došla paměť při odesílání packetu: %u"
-
--#: ../statistics.c:93
-+#: ../statistics.c:257
- #, c-format
--msgid "echo requests: %d"
--msgstr "¾ádost o echo: %d"
-+msgid "%u acknowledgments not containing data payload received"
-+msgstr "PoÄet pÅ™ijatých potvrzení neobsahující data: %u"
-
--#: ../statistics.c:94 ../statistics.c:107
-+#: ../statistics.c:258
- #, c-format
--msgid "echo replies: %d"
--msgstr "odpovìï na ¾ádost o echo: %d"
-+msgid "%u predicted acknowledgments"
-+msgstr "PoÄet pÅ™edpovÄ›zených potvrzení: %u"
-
--#: ../statistics.c:95
-+#: ../statistics.c:259
- #, c-format
--msgid "timestamp request: %d"
--msgstr "¾ádost o èas: %d"
-+msgid "%u times recovered from packet loss due to fast retransmit"
-+msgstr "PoÄet zotavení ze ztráty packetu kvůli rychle opakovanému odeslání: %u"
-
--#: ../statistics.c:96
-+#: ../statistics.c:260
- #, c-format
--msgid "timestamp reply: %d"
--msgstr "odpovìï na ¾ádost o èas: %d"
-+msgid "%u times recovered from packet loss by selective acknowledgements"
-+msgstr "PoÄet zotavení ze ztráty packetu pomocí vybÄ›rových potvrzení: %u"
-
--#: ../statistics.c:97
-+#: ../statistics.c:261
- #, c-format
--msgid "address mask request: %d"
--msgstr "¾ádost o masku podsítì: %d"
-+msgid "%u bad SACK blocks received"
-+msgstr "PoÄet pÅ™ijatých chybných SACK bloků: %u"
-
--#. ?
--#: ../statistics.c:98
--msgid "address mask replies"
--msgstr "odpovìdi na ¾ádost o masku podsítì"
-+#: ../statistics.c:262
-+#, c-format
-+msgid "Detected reordering %u times using FACK"
-+msgstr "Kolikrát byla nalezena změna pořadí pomocí FACK: %u"
-
--#. ?
--#: ../statistics.c:99
-+#: ../statistics.c:263
- #, c-format
--msgid "%d ICMP messages sent"
--msgstr "poèet odeslaných ICMP zpráv: %d"
-+msgid "Detected reordering %u times using SACK"
-+msgstr "Kolikrát byla nalezena změna pořadí pomocí SACK: %u"
-
--#: ../statistics.c:100
-+#: ../statistics.c:264
- #, c-format
--msgid "%d ICMP messages failed"
--msgstr "poèet chybných ICMP zpráv: %d"
-+msgid "Detected reordering %u times using time stamp"
-+msgstr "Kolikrát byla nalezena zmÄ›na poÅ™adí pomocí Äasového razítka: %u"
-
--#: ../statistics.c:102
-+#: ../statistics.c:265
- #, c-format
--msgid "time exceeded: %d"
--msgstr "vypr¹ení ¾ivotnosti: %d"
-+msgid "Detected reordering %u times using reno fast retransmit"
-+msgstr ""
-+"Kolikrát byla nalezena změna pořadí kvůli rychlému znovuodeslání Reno: %u"
-
--#. ?
--#: ../statistics.c:104
-+#: ../statistics.c:266
- #, c-format
--msgid "source quench: %d"
--msgstr "øízení toku dat: %d"
-+msgid "%u congestion windows fully recovered without slow start"
-+msgstr "PoÄet plných zotavení ze zahlcení okna bez pomalého startu: %u"
-
--#: ../statistics.c:105
-+#: ../statistics.c:267
- #, c-format
--msgid "redirect: %d"
--msgstr "zmìna cesty: %d"
-+msgid "%u congestion windows partially recovered using Hoe heuristic"
-+msgstr "PoÄet ÄásteÄných zotavení ze zahlcení okna pomocí heuristiky Hoe: %u"
-
--#: ../statistics.c:106
-+#: ../statistics.c:268
- #, c-format
--msgid "echo request: %d"
--msgstr "¾ádost o echo: %d"
-+msgid "%u congestion window recovered without slow start using DSACK"
-+msgstr "PoÄet zotavení ze zahlceného okna bez pomalého startu pomocí DSACK: %u"
-
--#: ../statistics.c:108
-+#: ../statistics.c:269
- #, c-format
--msgid "timestamp requests: %d"
--msgstr "¾ádost o èas: %d"
-+msgid "%u congestion windows recovered without slow start after partial ack"
-+msgstr ""
-+"PoÄet zotavení ze zahlcení okna bez pomalého startu po ÄásteÄném potvrzení: %"
-+"u"
-
--#: ../statistics.c:109
-+#: ../statistics.c:270
- #, c-format
--msgid "timestamp replies: %d"
--msgstr "odpovìï na ¾ádost o èas: %d"
-+msgid "%u retransmits lost"
-+msgstr "PoÄet ztracených opakovaných odeslání: %u"
-
--#: ../statistics.c:110
-+#: ../statistics.c:271
- #, c-format
--msgid "address mask requests: %d"
--msgstr "¾ádost o masku podsítì: %d"
-+msgid "%u timeouts after reno fast retransmit"
-+msgstr "PoÄet vyprÅ¡ení Äasu po rychlém opakovaném odeslání Reno: %u"
-
--#: ../statistics.c:111
-+#: ../statistics.c:272
- #, c-format
--msgid "address mask replies: %d"
--msgstr "odpovìï na ¾ádost o masku podsítì: %d"
-+msgid "%u timeouts after SACK recovery"
-+msgstr "PoÄet vyprÅ¡ení Äasu po zotavení pomocí SACK: %u"
-
--#: ../statistics.c:116
-+#: ../statistics.c:273
- #, c-format
--msgid "RTO algorithm is %s"
--msgstr "RTO algoritmus je %s"
-+msgid "%u timeouts in loss state"
-+msgstr "PoÄet vyprÅ¡ení Äasu ve stavu ztráty: %u"
-
--#: ../statistics.c:120
-+#: ../statistics.c:274
- #, c-format
--msgid "%d active connections openings"
--msgstr "poèet aktivnì navázaných spojení: %d"
-+msgid "%u fast retransmits"
-+msgstr "PoÄet rychlých opakování odeslání: %u"
-
--#: ../statistics.c:121
-+#: ../statistics.c:275
- #, c-format
--msgid "%d passive connection openings"
--msgstr "poèet pasivnì navázaných spojení: %d"
-+msgid "%u forward retransmits"
-+msgstr "PoÄet dopÅ™edných opakovaných odeslání: %u"
-
--#: ../statistics.c:122
-+#: ../statistics.c:276
- #, c-format
--msgid "%d failed connection attempts"
--msgstr "poèet neúspì¹ných pokusù o spojení: %d"
-+msgid "%u retransmits in slow start"
-+msgstr "PoÄet opakovaných odeslání v pomalém startu: %u"
-
--#: ../statistics.c:123
-+#: ../statistics.c:277
- #, c-format
--msgid "%d connection resets received"
--msgstr "poèet pøijmutých resetù: %d"
-+msgid "%u other TCP timeouts"
-+msgstr "PoÄet jiných vyprÅ¡ení ÄasovaÄe TCP: %u"
-
--#: ../statistics.c:124
-+#: ../statistics.c:278
- #, c-format
--msgid "%d connections established"
--msgstr "poèet navázaných spojení: %d"
-+msgid "%u reno fast retransmits failed"
-+msgstr "PoÄet selhání rychlých opakovaných odeslání Reno: %u"
-
--#: ../statistics.c:125
-+#: ../statistics.c:279
- #, c-format
--msgid "%d segments received"
--msgstr "poèet pøijmutých segmentù: %d"
-+msgid "%u SACK retransmits failed"
-+msgstr "PoÄet selhání opakovaných odeslání SACK: %u"
-
--#: ../statistics.c:126
-+#: ../statistics.c:280
- #, c-format
--msgid "%d segments send out"
--msgstr "poèet odeslaných segmentù: %d"
-+msgid "%u times receiver scheduled too late for direct processing"
-+msgstr "Kolikrát byl pÅ™ijímaÄ naplánován příliÅ¡ pozdÄ› na přímé zpracovaní: %u"
-
--#: ../statistics.c:127
-+#: ../statistics.c:281
- #, c-format
--msgid "%d segments retransmited"
--msgstr "poèet pøenesených segmentù: %d"
-+msgid "%u packets collapsed in receive queue due to low socket buffer"
-+msgstr ""
-+"PoÄet packetů slouÄených v pÅ™ijímací frontÄ› kvůli malému bufferu socketu: %u"
-
--#: ../statistics.c:128
-+#: ../statistics.c:282
- #, c-format
--msgid "%d bad segments received."
--msgstr "poèet chybných pøíchozích segmentù: %d."
-+msgid "%u DSACKs sent for old packets"
-+msgstr "PoÄet packetů DSACK odeslaných kvůli starým packetům: %u"
-
--#: ../statistics.c:129
-+#: ../statistics.c:283
- #, c-format
--msgid "%d resets sent"
--msgstr "poèet odeslaných resetù: %d"
-+msgid "%u DSACKs sent for out of order packets"
-+msgstr "PoÄet packetů DSCACK odeslaných kvůli packetům mimo poÅ™adí: %u"
-
--#: ../statistics.c:134
-+#: ../statistics.c:284
- #, c-format
--msgid "%d packets received"
--msgstr "poèet pøijmutých paketù: %d"
-+msgid "%u DSACKs received"
-+msgstr "PoÄet pÅ™ijatých paketů DSACK: %u"
-
--#: ../statistics.c:135
-+#: ../statistics.c:285
- #, c-format
--msgid "%d packets to unknown port received."
--msgstr "poèet paketù pøijmutých pro neznámý port: %d."
-+msgid "%u DSACKs for out of order packets received"
-+msgstr "PoÄet packetů DSACK pÅ™ijatých kvůli packetům mimo poÅ™adí: %u"
-
--#: ../statistics.c:136
-+#: ../statistics.c:286
- #, c-format
--msgid "%d packet receive errors"
--msgstr "poèet chyb pøi pøíjmu paketù: %d"
-+msgid "%u connections reset due to unexpected SYN"
-+msgstr "PoÄet resetů spojení kvůli neoÄekávanému SYN: %u"
-
--#: ../statistics.c:137
-+#: ../statistics.c:287
- #, c-format
--msgid "%d packets sent"
--msgstr "poèet odeslaných paketù: %d"
-+msgid "%u connections reset due to unexpected data"
-+msgstr "PoÄet resetů spojení kvůli neoÄekávaným datům: %u"
-
--#: ../statistics.c:142
-+#: ../statistics.c:288
- #, c-format
--msgid "%d SYN cookies sent"
--msgstr "poèet odeslaných SYN cookies: %d"
-+msgid "%u connections reset due to early user close"
-+msgstr "PoÄet resetů spojení kvůli Äasnému uzavÅ™ení uživatelem: %u"
-
--#: ../statistics.c:143
-+#: ../statistics.c:289
- #, c-format
--msgid "%d SYN cookies received"
--msgstr "poèet pøijmutých SYN cookies: %d"
-+msgid "%u connections aborted due to memory pressure"
-+msgstr "PoÄet zruÅ¡ených spojení kvůli paměťové tísni: %u"
-
--#: ../statistics.c:144
-+#: ../statistics.c:290
- #, c-format
--msgid "%d invalid SYN cookies received"
--msgstr "poèet chybných pøíchozích SYN cookies: %d"
-+msgid "%u connections aborted due to timeout"
-+msgstr "PoÄet zruÅ¡ených spojení kvůli vyprÅ¡ení ÄasovaÄe: %u"
-
--#: ../statistics.c:146
-+#: ../statistics.c:291
- #, c-format
--msgid "%d resets received for embryonic SYN_RECV sockets"
--msgstr "poèet resetù pøijmutých pro sokety ve stavu SYN_PØÍCH: %d"
-+msgid "%u connections aborted after user close in linger timeout"
-+msgstr ""
-+"PoÄet zruÅ¡ených spojení po té, co je uživatel uzavÅ™el ve fázi dožití: %u"
-
--#: ../statistics.c:148
-+#: ../statistics.c:292
- #, c-format
--msgid "%d packets pruned from receive queue because of socket buffer overrun"
--msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d"
-+msgid "%u times unabled to send RST due to no memory"
-+msgstr "Kolikrát nebylo možné odeslat RST kvůli nedostatku paměti: %u"
-
--#. obsolete: 2.2.0 doesn't do that anymore
--#: ../statistics.c:151
-+#: ../statistics.c:293
- #, c-format
--msgid "%d packets pruned from out-of-order queue"
--msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d"
-+msgid "TCP ran low on memory %u times"
-+msgstr "Kolikrát TCP zpomalilo kvůli paměti: %u"
-
--#: ../statistics.c:152
-+#: ../statistics.c:294
- #, c-format
--msgid ""
--"%d packets dropped from out-of-order queue because of socket buffer overrun"
--msgstr ""
--"poèet paketù zahozených z fronty mimo-poøadí kvùli pøeteèení bufferu soketu: "
--"%d"
-+msgid "%u TCP data loss events"
-+msgstr "PoÄet ztrát dat TCP: %u"
-
--#: ../statistics.c:154
-+#: ../statistics.c:295
- #, c-format
--msgid "%d ICMP packets dropped because they were out-of-window"
--msgstr "poèet ICMP paketù zahozených, proto¾e byly mimo-okno: %d"
-+msgid "%u congestion windows recovered without slow start by DSACK"
-+msgstr "PoÄet zotavení ze zahlcení okna bez pomalého startu pomocí DSACK: %u"
-
--#: ../statistics.c:156
-+#: ../statistics.c:297
- #, c-format
--msgid "%d ICMP packets dropped because socket was locked"
--msgstr "poèet ICMP paketù zahozených kvùli zamèenému soketu: %d"
-+msgid "%u classic Reno fast retransmits failed"
-+msgstr "PoÄet selhání klasického rychlého opakovaného odeslání Reno: %u"
-
--#: ../statistics.c:222
-+#: ../statistics.c:373
- msgid "enabled"
- msgstr "zapnuto"
-
--#: ../statistics.c:222
-+#: ../statistics.c:373
- msgid "disabled"
- msgstr "vypnuto"
-
--#: ../statistics.c:272
-+#: ../statistics.c:511 ../statistics.c:555
-+msgid "cannot open /proc/net/snmp"
-+msgstr "/proc/net/snmp nelze otevřít"
-+
-+#: ../statistics.c:516
- #, c-format
--msgid "unknown title %s\n"
--msgstr "titulek %s je neznámý\n"
-+msgid "Problem while parsing /proc/net/snmp\n"
-+msgstr "Potíže při při zpracování /proc/net/snmp\n"
-
--#: ../statistics.c:298
--msgid "error parsing /proc/net/snmp"
--msgstr "chyba pøi zpracování /proc/net/snmp"
-+#: ../statistics.c:527
-+#, c-format
-+msgid "Problem while parsing /proc/net/netstat\n"
-+msgstr "Potíže při při zpracování /proc/net/netstat\n"
-
--#: ../statistics.c:311
--msgid "cannot open /proc/net/snmp"
--msgstr "/proc/net/snmp nelze otevøít"
-+#: ../statistics.c:545
-+msgid "cannot open /proc/net/snmp6"
-+msgstr "/proc/net/snmp6 nelze otevřít"
-
- #: ../lib/activate.c:69
- #, c-format
- msgid "Hardware type `%s' not supported.\n"
--msgstr "Hardwarový typ `%s' není podporován.\n"
-+msgstr "Hardwarový typ „%s“ není podporován.\n"
-
- #: ../lib/activate.c:73
- #, c-format
- msgid "Cannot change line discipline to `%s'.\n"
--msgstr "Linkovou disciplínu nelze na `%s' zmìnit.\n"
-+msgstr "Linkovou disciplínu nelze na „%s“ změnit.\n"
-
--#: ../lib/af.c:145 ../lib/hw.c:148
-+#: ../lib/af.c:157 ../lib/hw.c:166
- msgid "UNSPEC"
--msgstr "NEZNÁM"
-+msgstr "NEZNÃM"
-
--#: ../lib/af.c:147
-+#: ../lib/af.c:159
- msgid "UNIX Domain"
--msgstr "Doména UNIX"
-+msgstr "Doména UNIX"
-
--#: ../lib/af.c:150
-+#: ../lib/af.c:162
- msgid "DARPA Internet"
- msgstr "DARPA Internet"
-
--#: ../lib/af.c:153
-+#: ../lib/af.c:165
- msgid "IPv6"
- msgstr "IPv6"
-
--#: ../lib/af.c:156 ../lib/hw.c:169
-+#: ../lib/af.c:168 ../lib/hw.c:187
- msgid "AMPR AX.25"
- msgstr "AMPR AX.25"
-
--#: ../lib/af.c:159 ../lib/hw.c:175
-+#: ../lib/af.c:171 ../lib/hw.c:193
- msgid "AMPR NET/ROM"
- msgstr "AMPR NET/ROM"
-
--#: ../lib/af.c:162
-+#: ../lib/af.c:174
- msgid "Novell IPX"
- msgstr "Novell IPX"
-
--#: ../lib/af.c:165
-+#: ../lib/af.c:177
- msgid "Appletalk DDP"
- msgstr "Appletalk DDP"
-
--#: ../lib/af.c:168 ../lib/hw.c:207
-+#: ../lib/af.c:180 ../lib/hw.c:228
- msgid "Econet"
- msgstr "Econet"
-
--#: ../lib/af.c:171 ../lib/hw.c:172
-+#: ../lib/af.c:183
-+msgid "CCITT X.25"
-+msgstr "CCITT X.25"
-+
-+#: ../lib/af.c:186 ../lib/hw.c:190
- msgid "AMPR ROSE"
- msgstr "AMPR ROSE"
-
--#: ../lib/af.c:174 ../lib/hw.c:160
-+#: ../lib/af.c:189 ../lib/hw.c:178
- msgid "Ash"
- msgstr "Ash"
-
--#: ../lib/af.c:232
-+#: ../lib/af.c:247
-+#, c-format
- msgid "Please don't supply more than one address family.\n"
--msgstr "Nezadávejte více ne¾ jednu tøídu adres.\n"
-+msgstr "Nezadávejte více než jednu třídu adres.\n"
-
--#: ../lib/af.c:293
-+#: ../lib/af.c:308
-+#, c-format
- msgid "Too much address family arguments.\n"
--msgstr "Bylo zadáno pøíli¹ mnoho tøíd adres.\n"
-+msgstr "Bylo zadáno příliš mnoho tříd adres.\n"
-
--#: ../lib/af.c:304
-+#: ../lib/af.c:319
- #, c-format
- msgid "Unknown address family `%s'.\n"
--msgstr "Tøída adres `%s' není známa.\n"
--
--#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52
--#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259
--#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71
--#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76
--msgid "[NONE SET]"
--msgstr "[NENASTAVENO]"
-+msgstr "Třída adres `%s' není známa.\n"
-
--#: ../lib/arcnet.c:81 ../lib/arcnet.c:96
-+#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
- #, c-format
- msgid "in_arcnet(%s): invalid arcnet address!\n"
--msgstr "in_arcnet(%s): chybná arcnet adresa!\n"
-+msgstr "in_arcnet(%s): chybná arcnet adresa!\n"
-
--#: ../lib/arcnet.c:108
-+#: ../lib/arcnet.c:97
- #, c-format
- msgid "in_arcnet(%s): trailing : ignored!\n"
--msgstr "in_arcnet(%s): nadbyteèné : ignorováno!\n"
-+msgstr "in_arcnet(%s): nadbyteÄné : ignorováno!\n"
-
--#: ../lib/arcnet.c:120
-+#: ../lib/arcnet.c:109
- #, c-format
- msgid "in_arcnet(%s): trailing junk!\n"
--msgstr "in_arcnet(%s): nadbyteèné znaky!\n"
-+msgstr "in_arcnet(%s): nadbyteÄné znaky!\n"
-
- #: ../lib/ash.c:81
-+#, c-format
- msgid "Malformed Ash address"
--msgstr "Chybná Ash adresa"
-+msgstr "Chybná Ash adresa"
-+
-+#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
-+#: ../lib/inet.c:259 ../lib/inet6.c:145 ../lib/ipx.c:81 ../lib/netrom.c:78
-+#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
-+msgid "[NONE SET]"
-+msgstr "[NENASTAVENO]"
-
- #: ../lib/ax25.c:97 ../lib/netrom.c:100
- msgid "Invalid callsign"
--msgstr "Nesprávný volací znak"
-+msgstr "Nesprávný volací znak"
-
- #: ../lib/ax25.c:110 ../lib/netrom.c:113
- msgid "Callsign too long"
--msgstr "Volací znak je pøíli¹ dlouhý."
-+msgstr "Volací znak je příliš dlouhý."
-
- #: ../lib/ax25_gr.c:47
-+#, c-format
- msgid "AX.25 not configured in this system.\n"
--msgstr "AX.25 není na tomto systému nakonfigurováno.\n"
-+msgstr "AX.25 není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/ax25_gr.c:50
-+#, c-format
- msgid "Kernel AX.25 routing table\n"
--msgstr "Smìrovací tabulka v jádru pro AX.25\n"
-+msgstr "Směrovací tabulka v jádru pro AX.25\n"
-
- #. xxx
- #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
-+#, c-format
- msgid "Destination Iface Use\n"
--msgstr "Adresát Rozhraní U¾ití\n"
--
--#: ../lib/ddp_gr.c:21
--msgid "Routing table for `ddp' not yet supported.\n"
--msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n"
-+msgstr "Adresát Rozhraní Užití\n"
-
- #: ../lib/ether.c:74 ../lib/ether.c:91
- #, c-format
- msgid "in_ether(%s): invalid ether address!\n"
--msgstr "in_ether(%s): chybná ethernetová adresa!\n"
-+msgstr "in_ether(%s): chybná ethernetová adresa!\n"
-
- #: ../lib/ether.c:105
- #, c-format
- msgid "in_ether(%s): trailing : ignored!\n"
--msgstr "in_ether(%s): nadbyteèné : ignorováno!\n"
-+msgstr "in_ether(%s): nadbyteÄné : ignorováno!\n"
-
- #: ../lib/ether.c:117
- #, c-format
- msgid "in_ether(%s): trailing junk!\n"
--msgstr "in_ether(%s): nadbyteèné znaky!\n"
-+msgstr "in_ether(%s): nadbyteÄné znaky!\n"
-
--#: ../lib/fddi.c:95 ../lib/fddi.c:110
-+#: ../lib/fddi.c:84 ../lib/fddi.c:99
- #, c-format
- msgid "in_fddi(%s): invalid fddi address!\n"
--msgstr "in_fddi(%s): chybná fddi adresa!\n"
-+msgstr "in_fddi(%s): chybná fddi adresa!\n"
-
--#: ../lib/fddi.c:122
-+#: ../lib/fddi.c:111
- #, c-format
- msgid "in_fddi(%s): trailing : ignored!\n"
--msgstr "in_fddi(%s): nadbyteèné : ignorováno!\n"
-+msgstr "in_fddi(%s): nadbyteÄné : ignorováno!\n"
-
--#: ../lib/fddi.c:134
-+#: ../lib/fddi.c:123
- #, c-format
- msgid "in_fddi(%s): trailing junk!\n"
--msgstr "in_fddi(%s): nadbyteèné znaky!\n"
-+msgstr "in_fddi(%s): nadbyteÄné znaky!\n"
-
--#: ../lib/getroute.c:97 ../lib/setroute.c:76
-+#: ../lib/getroute.c:101 ../lib/setroute.c:80
- #, c-format
- msgid "Address family `%s' not supported.\n"
--msgstr "Tøída adres `%s' není podporována.\n"
-+msgstr "Třída adres `%s' není podporována.\n"
-
--#: ../lib/getroute.c:103 ../lib/setroute.c:80
-+#: ../lib/getroute.c:107 ../lib/setroute.c:84
- #, c-format
- msgid "No routing for address family `%s'.\n"
--msgstr "Pro tøídu adres `%s' není ¾ádné smìrování.\n"
-+msgstr "Pro třídu adres `%s' není žádné směrování.\n"
-
--#: ../lib/hippi.c:96 ../lib/hippi.c:111
-+#: ../lib/hippi.c:84 ../lib/hippi.c:99
- #, c-format
- msgid "in_hippi(%s): invalid hippi address!\n"
--msgstr "in_hippi(%s): chybná hippi adresa!\n"
-+msgstr "in_hippi(%s): chybná hippi adresa!\n"
-
--#: ../lib/hippi.c:123
-+#: ../lib/hippi.c:111
- #, c-format
- msgid "in_hippi(%s): trailing : ignored!\n"
--msgstr "in_hippi(%s): nadbyteèné : ignorováno!\n"
-+msgstr "in_hippi(%s): nadbyteÄné : ignorováno!\n"
-
--#: ../lib/hippi.c:134
-+#: ../lib/hippi.c:122
- #, c-format
- msgid "in_hippi(%s): trailing junk!\n"
--msgstr "in_hippi(%s): nadbyteèné znaky!\n"
-+msgstr "in_hippi(%s): nadbyteÄné znaky!\n"
-
--#: ../lib/hw.c:147
-+#: ../lib/hw.c:165
- msgid "Local Loopback"
--msgstr "Místní smyèka"
-+msgstr "Místní smyÄka"
-
--#: ../lib/hw.c:150
-+#: ../lib/hw.c:168
- msgid "Serial Line IP"
--msgstr "IP po sériové lince"
-+msgstr "IP po sériové lince"
-
--#: ../lib/hw.c:151
-+#: ../lib/hw.c:169
- msgid "VJ Serial Line IP"
--msgstr "Vj IP po sériové lince"
-+msgstr "VJ IP po sériové lince"
-
--#: ../lib/hw.c:152
-+#: ../lib/hw.c:170
- msgid "6-bit Serial Line IP"
--msgstr "6bitový IP po sériové lince"
-+msgstr "6bitový IP po sériové lince"
-
--#: ../lib/hw.c:153
-+#: ../lib/hw.c:171
- msgid "VJ 6-bit Serial Line IP"
--msgstr "6bitový VJ IP po sériové lince"
-+msgstr "6bitový VJ IP po sériové lince"
-
--#: ../lib/hw.c:154
-+#: ../lib/hw.c:172
- msgid "Adaptive Serial Line IP"
--msgstr "Adaptivní IP po sériové lince"
-+msgstr "Adaptivní IP po sériové lince"
-
--#: ../lib/hw.c:157
-+#: ../lib/hw.c:175
- msgid "Ethernet"
- msgstr "Ethernet"
-
--#: ../lib/hw.c:163
-+#: ../lib/hw.c:181
- msgid "Fiber Distributed Data Interface"
- msgstr "Fiber Distributed Data Interface"
-
--#: ../lib/hw.c:166
-+#: ../lib/hw.c:184
- msgid "HIPPI"
- msgstr "HIPPI"
-
--#: ../lib/hw.c:178
-+#: ../lib/hw.c:196
-+msgid "generic X.25"
-+msgstr "obecné X.25"
-+
-+#: ../lib/hw.c:199
- msgid "IPIP Tunnel"
- msgstr "IPIP Tunnel"
-
--#: ../lib/hw.c:181
-+#: ../lib/hw.c:202
- msgid "Point-to-Point Protocol"
--msgstr "Point-to-Point Protokol"
-+msgstr "Dvoubodový protokol"
-
--#: ../lib/hw.c:184
-+#: ../lib/hw.c:205
- msgid "(Cisco)-HDLC"
- msgstr "(Cisco)-HDLC"
-
--#: ../lib/hw.c:185
-+#: ../lib/hw.c:206
- msgid "LAPB"
- msgstr "LAPB"
-
--#: ../lib/hw.c:188
-+#: ../lib/hw.c:209
- msgid "ARCnet"
- msgstr "ARCnet"
-
--#: ../lib/hw.c:191
-+#: ../lib/hw.c:212
- msgid "Frame Relay DLCI"
- msgstr "Frame Relay DLCI"
-
--#: ../lib/hw.c:192
-+#: ../lib/hw.c:213
- msgid "Frame Relay Access Device"
--msgstr "Pøístupové zaøízení Frame Relay"
-+msgstr "Přístupové zařízení Frame Relay"
-
--#: ../lib/hw.c:195
-+#: ../lib/hw.c:216
- msgid "IPv6-in-IPv4"
- msgstr "IPv6-in-IPv4"
-
--#: ../lib/hw.c:198
-+#: ../lib/hw.c:219
- msgid "IrLAP"
- msgstr "IrLAP"
-
--#: ../lib/hw.c:201
-+#: ../lib/hw.c:222
- msgid "16/4 Mbps Token Ring"
- msgstr "Token Ring 16/4 Mb/s"
-
--#: ../lib/hw.c:203
--#, fuzzy
-+#: ../lib/hw.c:224
- msgid "16/4 Mbps Token Ring (New)"
--msgstr "Token Ring 16/4 Mb/s"
-+msgstr "Token Ring 16/4 Mb/s (Nový)"
-
--#: ../lib/inet.c:153 ../lib/inet6.c:79
-+#: ../lib/hw.c:231
-+msgid "InfiniBand"
-+msgstr "InfiniBand"
-+
-+#: ../lib/hw.c:234
-+msgid "Generic EUI-64"
-+msgstr "Obecné EUI-64"
-+
-+#: ../lib/inet.c:153 ../lib/inet6.c:94
- #, c-format
- msgid "rresolve: unsupport address family %d !\n"
--msgstr "rresolve: tøída adres %d není podporována!\n"
-+msgstr "rresolve: třída adres %d není podporována!\n"
-
--#: ../lib/inet6_gr.c:79
-+#: ../lib/inet6.c:147
-+msgid "[UNKNOWN]"
-+msgstr "[NEZNÃMÃ]"
-+
-+#: ../lib/inet6_gr.c:71
-+#, c-format
- msgid "INET6 (IPv6) not configured in this system.\n"
--msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n"
-+msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n"
-
--#: ../lib/inet6_gr.c:82
-+#: ../lib/inet6_gr.c:76
-+#, c-format
-+msgid "Kernel IPv6 routing cache\n"
-+msgstr "Směrovací cache v jádru pro IPv6\n"
-+
-+#: ../lib/inet6_gr.c:78
-+#, c-format
- msgid "Kernel IPv6 routing table\n"
--msgstr "Smìrovací tabulka v jádru pro IPv6\n"
-+msgstr "Směrovací tabulka v jádru pro IPv6\n"
-
--#: ../lib/inet6_gr.c:84
-+#: ../lib/inet6_gr.c:80
-+#, c-format
- msgid ""
--"Destination Next Hop "
--" Flags Metric Ref Use Iface\n"
-+"Destination Next Hop Flag Met Ref Use "
-+"If\n"
- msgstr ""
--"Adresát Dal¹í Smìrovaè "
--" Pøízn Metrika Odkaz U¾it Rozhraní\n"
-+"Adresát Další smÄ›rovaÄ Příz Met Odk Užt "
-+"Rozhr\n"
-
--#: ../lib/inet6_gr.c:158
-+#: ../lib/inet6_gr.c:174
-+#, c-format
- msgid "Kernel IPv6 Neighbour Cache\n"
--msgstr "Cache sousedù v jádru pro IPv6\n"
-+msgstr "Cache sousedů v jádru pro IPv6\n"
-
--#: ../lib/inet6_gr.c:161
-+#: ../lib/inet6_gr.c:177
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State\n"
- msgstr ""
--"Soused HW Adresa Rozhraní Pøízn "
-+"Soused HW Adresa Rozhraní Přízn "
- "Odkazy Stav\n"
-
--#: ../lib/inet6_gr.c:165
-+#: ../lib/inet6_gr.c:181
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State Stale(sec) Delete(sec)\n"
- msgstr ""
--"Soused HW Adresa Rozhraní "
--"Pøíznaky Odkazy Stav Pro¹lý(sec) Smazat(sec)\n"
-+"Soused HW Adresa Rozhraní "
-+"Příznaky Odkazy Stav Prošlý(sec) Smazat(sec)\n"
-
- #: ../lib/inet6_sr.c:46
-+#, c-format
- msgid "Usage: inet6_route [-vF] del Target\n"
--msgstr "Pou¾ití: inet6_route [-vF] del Cíl\n"
-+msgstr "Použití: inet6_route [-vF] del Cíl\n"
-
- #: ../lib/inet6_sr.c:47
-+#, c-format
- msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
--msgstr " inet6_route [-vF] add Cíl [gw Gw] [metrika M] [[dev] If]\n"
-+msgstr " inet6_route [-vF] add Cíl [gw Gw] [metrika M] [[dev] If]\n"
-
- #: ../lib/inet6_sr.c:48
-+#, c-format
- msgid " inet6_route [-FC] flush NOT supported\n"
--msgstr " inet6_route [-FC] flush NENÍ podporováno\n"
-+msgstr " inet6_route [-FC] flush NENà podporováno\n"
-
--#: ../lib/inet6_sr.c:182
-+#: ../lib/inet6_sr.c:188
-+#, c-format
- msgid "Flushing `inet6' routing table not supported\n"
--msgstr "Smìrovací tabulku `inet6' nelze vyprazdòovat\n"
-+msgstr "Směrovací tabulku `inet6' nelze vyprazdňovat\n"
-
- #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
-+#, c-format
- msgid "INET (IPv4) not configured in this system.\n"
--msgstr "INET (IPv4) není na tomto systému nakonfigurováno.\n"
-+msgstr "INET (IPv4) není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/inet_gr.c:53
-+#, c-format
- msgid "Kernel IP routing table\n"
--msgstr "Smìrovací tabulka v jádru pro IP\n"
-+msgstr "Směrovací tabulka v jádru pro IP\n"
-
- #: ../lib/inet_gr.c:56
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
--"Adresát Brána Maska Pøízn Metrik Odkaz U¾t "
--"Rozhraní\n"
-+"Adresát Brána Maska Přízn Metrik Odkazů Užt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:59
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
--"Adresát Brána Maska Pøízn MSS Okno irtt "
--"Rozhraní\n"
-+"Adresát Brána Maska Přízn MSS Okno irtt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:62
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface MSS Window irtt\n"
- msgstr ""
--"Adresát Brána Maska Pøízn Metrik Odkazy U¾t "
--"Rozhraní MSS Okno irtt\n"
-+"Adresát Brána Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní MSS Okno irtt\n"
-
- #: ../lib/inet_gr.c:237
-+#, c-format
- msgid "Kernel IP routing cache\n"
--msgstr "Smìrovací cache v jádru pro IP\n"
-+msgstr "Směrovací cache v jádru pro IP\n"
-
- #: ../lib/inet_gr.c:258
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
--"Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t "
--"Rozhraní\n"
-+"Odesílatel Adresát Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:261
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
--"Odesílatel Adresát Maska Pøízn MSS Okno irtt "
--"Rozhraní\n"
-+"Odesílatel Adresát Maska Přízn MSS Okno irtt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:266
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt HH Arp\n"
- msgstr ""
--"Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t "
--"Rozhraní MSS Okno irtt HH Arp\n"
-+"Odesílatel Adresát Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní MSS Okno irtt HH Arp\n"
-
- #: ../lib/inet_gr.c:290
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
- msgstr ""
--"Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t "
--"Rozhraní MSS Okno irtt TOS HHOdk HHAktuál Zvlá¹tCíl\n"
-+"Odesílatel Adresát Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní MSS Okno irtt TOS HHOdk HHAktuál ZvláštCíl\n"
-
--#: ../lib/inet_sr.c:50
-+#: ../lib/inet_sr.c:51
-+#, c-format
- msgid ""
- "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
- "[[dev] If]\n"
- msgstr ""
--"Pou¾ití: inet_route [-vF] del {-host|-net} Cíl[/prefix] [gw Gw] [metrika M] "
-+"Použití: inet_route [-vF] del {-host|-net} Cíl[/prefix] [gw Gw] [metrika M] "
- "[[dev] If]\n"
-
--#: ../lib/inet_sr.c:51
-+#: ../lib/inet_sr.c:52
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
- msgstr ""
--" inet_route [-vF] add {-host|-net} Cíl[/prefix] [gw Gw] [metrika M]\n"
-+" inet_route [-vF] add {-host|-net} Cíl[/prefix] [gw Gw] [metrika M]\n"
-
--#: ../lib/inet_sr.c:52
-+#: ../lib/inet_sr.c:53
-+#, c-format
- msgid ""
- " [netmask N] [mss Mss] [window W] [irtt I]\n"
- msgstr ""
- " [netmask N] [mss Mss] [window W] [irtt I]\n"
-
--#: ../lib/inet_sr.c:53
-+#: ../lib/inet_sr.c:54
-+#, c-format
- msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
- msgstr " [mod] [dyn] [reinstate] [[dev] If]\n"
-
--#: ../lib/inet_sr.c:54
-+#: ../lib/inet_sr.c:55
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
- msgstr ""
--" inet_route [-vF] add {-host|-net} Cíl/[prefix] [metrika M] reject\n"
-+" inet_route [-vF] add {-host|-net} Cíl/[prefix] [metrika M] reject\n"
-
--#: ../lib/inet_sr.c:55
-+#: ../lib/inet_sr.c:56
-+#, c-format
- msgid " inet_route [-FC] flush NOT supported\n"
--msgstr " inet_route [-FC] flush NENÍ podporováno\n"
-+msgstr " inet_route [-FC] flush NENà podporováno\n"
-
- #: ../lib/inet_sr.c:158
- #, c-format
- msgid "route: %s: cannot use a NETWORK as gateway!\n"
--msgstr "route: %s: sí» nelze pou¾ít jako bránu!\n"
-+msgstr "route: %s: síť nelze použít jako bránu!\n"
-
- #: ../lib/inet_sr.c:174
--#, fuzzy
-+#, c-format
- msgid "route: Invalid MSS/MTU.\n"
--msgstr "route: Nesprávné NSS.\n"
-+msgstr "route: Neplatné MSS/MTU.\n"
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
--msgstr "route: Nesprávné okno.\n"
-+msgstr "route: Nesprávné okno.\n"
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
--msgstr "route: Nesprávné zahajovací rtt.\n"
-+msgstr "route: Nesprávné zahajovací rtt.\n"
-
- #: ../lib/inet_sr.c:261
- #, c-format
- msgid "route: netmask %.8x doesn't make sense with host route\n"
--msgstr "route: sí»ová maska %.8x nedává smysl, kdy¾ cílem je cesty poèítaè\n"
-+msgstr "route: síťová maska %.8x nedává smysl, když cílem je cesty poÄítaÄ\n"
-
- #: ../lib/inet_sr.c:265
- #, c-format
- msgid "route: bogus netmask %s\n"
--msgstr "route: sí»ová maska %s je nesprávná\n"
-+msgstr "route: síťová maska %s je nesprávná\n"
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
--msgstr "route: sí»ová maska nevyhovuje adrese cesty\n"
-+msgstr "route: síťová maska nevyhovuje adrese cesty\n"
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
--msgstr "Smìrovací cache `inet' nelze vyprazdòovat\n"
-+msgstr "Směrovací cache `inet' nelze vyprazdňovat\n"
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
--msgstr "Smìrovací cache `inet' nelze mìnit\n"
-+msgstr "Směrovací cache `inet' nelze měnit\n"
-
--#: ../lib/ipx_gr.c:52
--msgid "IPX not configured in this system.\n"
--msgstr "IPX není na tomto systému nakonfigurováno.\n"
-+#: ../lib/ipx_gr.c:53
-+#, c-format
-+msgid "IPX routing not in file %s or %s found.\n"
-+msgstr "Směrování IPX nenalezeno v souboru %s nebo %s.\n"
-
--#: ../lib/ipx_gr.c:56
-+#: ../lib/ipx_gr.c:62
-+#, c-format
- msgid "Kernel IPX routing table\n"
--msgstr "Smìrovací tabulka v jádru pro IPX\n"
-+msgstr "Směrovací tabulka v jádru pro IPX\n"
-
- #. xxx
--#: ../lib/ipx_gr.c:57
-+#: ../lib/ipx_gr.c:63
-+#, c-format
- msgid "Destination Router Net Router Node\n"
--msgstr "Cíl Smìrovaè Sí» Smìrovaè Uzel\n"
-+msgstr "Cíl SmÄ›rovaÄ Síť SmÄ›rovaÄ Uzel\n"
-
- #: ../lib/ipx_sr.c:33
-+#, c-format
- msgid "IPX: this needs to be written\n"
--msgstr "IPX: toto je tøeba ulo¾it\n"
-+msgstr "IPX: toto je třeba uložit\n"
-
--#: ../lib/masq_info.c:197
-+#: ../lib/masq_info.c:198
-+#, c-format
- msgid "IP masquerading entries\n"
--msgstr "IP maskovací polo¾ky\n"
-+msgstr "IP maskovací položky\n"
-
--#: ../lib/masq_info.c:200
-+#: ../lib/masq_info.c:201
-+#, c-format
- msgid "prot expire source destination ports\n"
--msgstr "prot ¾ivot zdroj cíl porty\n"
-+msgstr "prot život zdroj cíl porty\n"
-
--#: ../lib/masq_info.c:203
-+#: ../lib/masq_info.c:204
-+#, c-format
- msgid ""
--"prot expire initseq delta prevd source destination "
--" ports\n"
-+"prot expire initseq delta prevd source "
-+"destination ports\n"
- msgstr ""
--"prot ¾ivot zahajsek delta pøedchd zdroj cíl "
--" porty\n"
-+"prot život zahajsek delta předchd zdroj "
-+"cíl porty\n"
-
- #: ../lib/netrom_gr.c:48
-+#, c-format
- msgid "NET/ROM not configured in this system.\n"
--msgstr "NET/ROM není na tomto systému nakonfigurováno.\n"
-+msgstr "NET/ROM není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/netrom_gr.c:51
-+#, c-format
- msgid "Kernel NET/ROM routing table\n"
--msgstr "Smìrovací tabulka v jádru pro NET/ROM\n"
-+msgstr "Směrovací tabulka v jádru pro NET/ROM\n"
-
- #: ../lib/netrom_gr.c:52
-+#, c-format
- msgid "Destination Mnemonic Quality Neighbour Iface\n"
--msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n"
-+msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n"
-
- #: ../lib/netrom_sr.c:34
-+#, c-format
- msgid "netrom usage\n"
--msgstr "pou¾ití netrom\n"
-+msgstr "použití netrom\n"
-
- #: ../lib/netrom_sr.c:44
-+#, c-format
- msgid "NET/ROM: this needs to be written\n"
--msgstr "NET/ROM: toto je potøeba ulo¾it\n"
-+msgstr "NET/ROM: toto je potřeba uložit\n"
-
- #: ../lib/ppp.c:44
-+#, c-format
- msgid "You cannot start PPP with this program.\n"
--msgstr "Tímto programem nelze PPP spustit.\n"
-+msgstr "Tímto programem nelze PPP spustit.\n"
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
--msgstr "Lituji, pou¾ijte pppd!\n"
-+msgstr "Lituji, použijte pppd!\n"
-
- #: ../lib/rose.c:87
- msgid "Node address must be ten digits"
--msgstr "Adresa uzlu musí mít 10 èíslic"
-+msgstr "Adresa uzlu musí mít 10 Äíslic"
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
--msgstr "ROSE není na tomto systému nakonfigurováno.\n"
-+msgstr "ROSE není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/rose_gr.c:54
-+#, c-format
- msgid "Kernel ROSE routing table\n"
--msgstr "Smìrovací tabulka v jádru pro ROSE\n"
-+msgstr "Směrovací tabulka v jádru pro ROSE\n"
-
--#: ../lib/tr.c:70 ../lib/tr.c:85
-+#: ../lib/tr.c:86 ../lib/tr.c:101
- #, c-format
- msgid "in_tr(%s): invalid token ring address!\n"
--msgstr "in_tr(%s): nesprávná token ring adresa!\n"
-+msgstr "in_tr(%s): nesprávná token ring adresa!\n"
-
--#: ../lib/tr.c:97
-+#: ../lib/tr.c:113
- #, c-format
- msgid "in_tr(%s): trailing : ignored!\n"
--msgstr "in_tr(%s): nadbyteèné: ignorováno!\n"
-+msgstr "in_tr(%s): nadbyteÄné: ignorováno!\n"
-
--#: ../lib/tr.c:109
-+#: ../lib/tr.c:125
- #, c-format
- msgid "in_tr(%s): trailing junk!\n"
--msgstr "in_tr(%s): nadbyteèné znaky!\n"
-+msgstr "in_tr(%s): nadbyteÄné znaky!\n"
-
--#: ../lib/interface.c:124
-+#: ../lib/interface.c:176
- #, c-format
- msgid "warning: no inet socket available: %s\n"
--msgstr "varování: není dostupný ¾ádný inet soket: %s\n"
-+msgstr "varování: není dostupný žádný inet soket: %s\n"
-
--#: ../lib/interface.c:270
-+#: ../lib/interface.c:325
- #, c-format
- msgid "Warning: cannot open %s (%s). Limited output.\n"
--msgstr ""
-+msgstr "Pozor: %s nelze otevřít (%s). Výstup omezen.\n"
-
- #. Give better error message for this case.
--#: ../lib/interface.c:504
-+#: ../lib/interface.c:571
- msgid "Device not found"
--msgstr "Zaøízení nebylo nalezeno"
-+msgstr "Zařízení nebylo nalezeno"
-
--#: ../lib/interface.c:508
-+#: ../lib/interface.c:575
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
--msgstr "%s: chyba pøi získávání informací o rozhraní %s\n"
-+msgstr "%s: chyba při získávání informací o rozhraní %s\n"
-+
-+#: ../lib/interface.c:608
-+msgid " - no statistics available -"
-+msgstr " - statistická data nejsou dostupná -"
-+
-+#: ../lib/interface.c:612
-+#, c-format
-+msgid "[NO FLAGS]"
-+msgstr "[ŽÃDNÉ PŘÃZNAKY]"
-+
-+#: ../lib/interface.c:694
-+msgid "UP,"
-+msgstr "AKTIVOVÃNO,"
-+
-+#: ../lib/interface.c:696
-+msgid "BROADCAST,"
-+msgstr "VÅ ESMÄšR,"
-+
-+#: ../lib/interface.c:698
-+msgid "DEBUG,"
-+msgstr "LADÄšNÃ,"
-+
-+#: ../lib/interface.c:700
-+msgid "LOOPBACK,"
-+msgstr "SMYÄŒKA,"
-+
-+#: ../lib/interface.c:702
-+msgid "POINTOPOINT,"
-+msgstr "DVOUBODOVÉ,"
-+
-+# ??
-+#: ../lib/interface.c:704
-+msgid "NOTRAILERS,"
-+msgstr "ŽÃDNÉ_TRAILERS"
-+
-+#: ../lib/interface.c:706
-+msgid "RUNNING,"
-+msgstr "BĚŽÃ,"
-+
-+#: ../lib/interface.c:708
-+msgid "NOARP,"
-+msgstr "NEARP,"
-+
-+#: ../lib/interface.c:710
-+msgid "PROMISC,"
-+msgstr "PROMISK,"
-+
-+#: ../lib/interface.c:712
-+msgid "ALLMULTI,"
-+msgstr "ALLMULTI,"
-+
-+#: ../lib/interface.c:714
-+msgid "SLAVE,"
-+msgstr "PODŘÃZENÃ,"
-+
-+#: ../lib/interface.c:716
-+msgid "MASTER,"
-+msgstr "NADŘÃZENÃ,"
-+
-+#: ../lib/interface.c:718
-+msgid "MULTICAST,"
-+msgstr "MULTICAST,"
-+
-+#: ../lib/interface.c:721
-+msgid "DYNAMIC,"
-+msgstr "DYNAMIC,"
-+
-+#: ../lib/interface.c:730
-+#, c-format
-+msgid "%s: %s mtu %d metric %d"
-+msgstr "%s: %s mtu %d metrika %d"
-+
-+#: ../lib/interface.c:734
-+#, c-format
-+msgid " outfill %d keepalive %d"
-+msgstr " outfill %d keepalive %d"
-+
-+#: ../lib/interface.c:743 ../lib/interface.c:841
-+#, c-format
-+msgid " %s %s"
-+msgstr " %s %s"
-+
-+#: ../lib/interface.c:745
-+#, c-format
-+msgid " netmask %s"
-+msgstr " síťová_maska %s"
-+
-+#: ../lib/interface.c:747
-+#, c-format
-+msgid " broadcast %s"
-+msgstr " všesměr %s"
-+
-+#: ../lib/interface.c:750
-+#, c-format
-+msgid " destination %s"
-+msgstr " cíl %s"
-+
-+#: ../lib/interface.c:769
-+#, c-format
-+msgid " %s %s prefixlen %d"
-+msgstr " %s %s délka_prefixu %d"
-+
-+#: ../lib/interface.c:773
-+#, c-format
-+msgid " scopeid 0x%x"
-+msgstr " scopeid 0x%x"
-+
-+#: ../lib/interface.c:777
-+msgid "compat,"
-+msgstr "kompat,"
-+
-+#: ../lib/interface.c:781
-+msgid "global,"
-+msgstr "globální,"
-+
-+#: ../lib/interface.c:783
-+msgid "link,"
-+msgstr "linka,"
-+
-+#: ../lib/interface.c:785
-+msgid "site,"
-+msgstr "oblast,"
-+
-+#: ../lib/interface.c:787
-+msgid "host,"
-+msgstr "stroj,"
-+
-+#: ../lib/interface.c:805
-+#, c-format
-+msgid " %s Ethernet-II %s\n"
-+msgstr " %s Ethernet-II %s\n"
-+
-+#: ../lib/interface.c:808
-+#, c-format
-+msgid " %s Ethernet-SNAP %s\n"
-+msgstr " %s Ethernet-SNAP %s\n"
-+
-+#: ../lib/interface.c:811
-+#, c-format
-+msgid " %s Ethernet802.2 %s\n"
-+msgstr " %s Ethernet802.2 %s\n"
-+
-+#: ../lib/interface.c:814
-+#, c-format
-+msgid " %s Ethernet802.3 %s\n"
-+msgstr " %s Ethernet802.3 %s\n"
-+
-+#: ../lib/interface.c:824 ../lib/interface.c:833
-+#, c-format
-+msgid " %s %s\n"
-+msgstr " %s %s\n"
-+
-+#: ../lib/interface.c:843
-+#, c-format
-+msgid " %s"
-+msgstr " %s"
-+
-+#: ../lib/interface.c:845
-+#, c-format
-+msgid " txqueuelen %d"
-+msgstr " délka_odchozí_fronty %d"
-+
-+#: ../lib/interface.c:850
-+#, c-format
-+msgid " media %s"
-+msgstr " médium %s"
-+
-+#: ../lib/interface.c:852
-+#, c-format
-+msgid "autoselect"
-+msgstr "automatika"
-+
-+#: ../lib/interface.c:903
-+#, c-format
-+msgid "RX packets %llu bytes %llu (%lu.%lu %s)\n"
-+msgstr "RX packetů %llu bajtů %llu (%lu,%lu %s)\n"
-+
-+#: ../lib/interface.c:909
-+#, c-format
-+msgid "RX compressed:%lu\n"
-+msgstr "RX komprimováno %lu\n"
-+
-+#: ../lib/interface.c:912
-+#, c-format
-+msgid "RX errors %lu dropped %lu overruns %lu frame %lu\n"
-+msgstr "RX chyb %lu zahozeno %lu pÅ™eteÄení %lu rámců %lu\n"
-+
-+#: ../lib/interface.c:918
-+#, c-format
-+msgid "TX packets %llu bytes %llu (%lu.%lu %s)\n"
-+msgstr "TX packetů %llu bajtů %llu (%lu,%lu %s)\n"
-+
-+#: ../lib/interface.c:924
-+#, c-format
-+msgid "TX compressed %lu\n"
-+msgstr "TX komprimováno %lu\n"
-+
-+# carrier?
-+#: ../lib/interface.c:927
-+#, c-format
-+msgid "TX errors %lu dropped %lu overruns %lu carrier %lu collisions %lu\n"
-+msgstr "TX chyb %lu zahozeno %lu pÅ™eteÄení %lu pÅ™enos %lu kolizí %lu\n"
-
--#: ../lib/sockets.c:59
-+#: ../lib/interface.c:937
-+#, c-format
-+msgid "interrupt %d "
-+msgstr "přerušení %d "
-+
-+#. Only print devices using it for
-+#. I/O maps
-+#: ../lib/interface.c:940
-+#, c-format
-+msgid "base 0x%x "
-+msgstr "základ 0x%x "
-+
-+#: ../lib/interface.c:942
-+#, c-format
-+msgid "memory 0x%lx-%lx "
-+msgstr "paměť 0x%lx–%lx "
-+
-+#: ../lib/interface.c:945
-+#, c-format
-+msgid " dma 0x%x"
-+msgstr " DMA 0x%x"
-+
-+#: ../lib/sockets.c:63
-+#, c-format
- msgid "No usable address families found.\n"
--msgstr "Nebyla nalezena ¾ádná pou¾itelná tøída adres.\n"
-+msgstr "Nebyla nalezena žádná použitelná třída adres.\n"
-
- #: ../lib/util-ank.c:229
- #, c-format
- msgid "ip: %s is invalid inet address\n"
--msgstr "ip: %s není platnou inet adresou\n"
-+msgstr "ip: %s není platnou inet adresou\n"
-
- #: ../lib/util-ank.c:238
- #, c-format
- msgid "ip: %s is invalid inet prefix\n"
--msgstr "ip: %s není platným inet prefixem\n"
-+msgstr "ip: %s není platným inet prefixem\n"
-
- #: ../lib/util-ank.c:248
- #, c-format
- msgid "ip: %s is invalid IPv4 address\n"
--msgstr "ip: %s není platnou IPv4 adresou\n"
-+msgstr "ip: %s není platnou IPv4 adresou\n"
-
- #: ../lib/util-ank.c:256
- #, c-format
- msgid "ip: argument is wrong: %s\n"
--msgstr "ip: argument %s je nesprávný\n"
-+msgstr "ip: argument %s je nesprávný\n"
-
--#: ../ipmaddr.c:56
-+#: ../ipmaddr.c:61
-+#, c-format
- msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
--msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ØETÌZEC\n"
-+msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ŘETĚZEC\n"
-
--#: ../ipmaddr.c:57
-+#: ../ipmaddr.c:62
-+#, c-format
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
--msgstr " ipmaddr show [ dev ØETÌZEC ] [ ipv4 | ipv6 | link | all ]\n"
-+msgstr " ipmaddr show [ dev ŘETĚZEC ] [ ipv4 | ipv6 | link | all ]\n"
-
--#: ../ipmaddr.c:58
-+#: ../ipmaddr.c:63
-+#, c-format
- msgid " ipmaddr -V | -version\n"
- msgstr " ipmaddr -V | -version\n"
-
--#: ../ipmaddr.c:258
-+#: ../ipmaddr.c:263
- #, c-format
- msgid "family %d "
--msgstr "tøída %d "
-+msgstr "třída %d "
-
--#: ../ipmaddr.c:267
-+#: ../ipmaddr.c:272
- #, c-format
- msgid " users %d"
--msgstr " u¾ivatelé %d"
-+msgstr " uživatelé %d"
-
--#: ../ipmaddr.c:353
-+#: ../ipmaddr.c:361
- msgid "Cannot create socket"
--msgstr "Soket nelze vytvoøit"
-+msgstr "Soket nelze vytvořit"
-
- #: ../slattach.c:180
- #, c-format
- msgid "slattach: /dev/%s already locked!\n"
--msgstr "slattach: zaøízení /dev/%s je ji¾ zamèeno!\n"
-+msgstr "slattach: zařízení /dev/%s je již zamÄeno!\n"
-
- #: ../slattach.c:186
- #, c-format
-@@ -2433,80 +3184,169 @@ msgid "slattach: tty_lock: (%s): %s\n"
- msgstr "slattach: tty_lock: (%s): %s\n"
-
- #: ../slattach.c:192
-+#, c-format
- msgid "slattach: cannot write PID file\n"
- msgstr "slattach: do PID souboru nelze zapisovat\n"
-
- #: ../slattach.c:202
- #, c-format
- msgid "slattach: tty_lock: UUCP user %s unknown!\n"
--msgstr "slattach: tty_lock: u¾ivatel UUCP %s není znám!\n"
-+msgstr "slattach: tty_lock: uživatel UUCP %s není znám!\n"
-
--#: ../slattach.c:430
-+#: ../slattach.c:432
- #, c-format
- msgid "slattach: tty_hangup(DROP): %s\n"
- msgstr "slattach: tty_hangup(DROP): %s\n"
-
--#: ../slattach.c:437
-+#: ../slattach.c:439
- #, c-format
- msgid "slattach: tty_hangup(RAISE): %s\n"
- msgstr "slattach: tty_hangup(RAISE): %s\n"
-
--#: ../slattach.c:486
-+#: ../slattach.c:470
-+#, c-format
-+msgid "slattach: tty name too long\n"
-+msgstr "slattach: název TTY je příliš dlouhý\n"
-+
-+#: ../slattach.c:500
-+#, c-format
- msgid "slattach: tty_open: cannot get current state!\n"
--msgstr "slattach: tty_open: aktuální stav nelze zjistit!\n"
-+msgstr "slattach: tty_open: aktuální stav nelze zjistit!\n"
-
--#: ../slattach.c:493
-+#: ../slattach.c:507
-+#, c-format
- msgid "slattach: tty_open: cannot get current line disc!\n"
--msgstr "slattach: tty_open: aktuální linkovou disciplínu nelze zjistit!\n"
-+msgstr "slattach: tty_open: aktuální linkovou disciplínu nelze zjistit!\n"
-
--#: ../slattach.c:501
-+#: ../slattach.c:515
-+#, c-format
- msgid "slattach: tty_open: cannot set RAW mode!\n"
--msgstr "slattach: tty_open: re¾im RAW nelze nastavit!\n"
-+msgstr "slattach: tty_open: režim RAW nelze nastavit!\n"
-
--#: ../slattach.c:508
-+#: ../slattach.c:522
- #, c-format
- msgid "slattach: tty_open: cannot set %s bps!\n"
- msgstr "slattach: tty_open: %s bps nelze nastavit!\n"
-
--#: ../slattach.c:518
-+#: ../slattach.c:532
-+#, c-format
- msgid "slattach: tty_open: cannot set 8N1 mode!\n"
--msgstr "slattach: tty_open: re¾im 8N1 nelze nastavit!\n"
-+msgstr "slattach: tty_open: režim 8N1 nelze nastavit!\n"
-+
-+#: ../slattach.c:674
-+#, c-format
-+msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
-+msgstr "slattach: setvbuf(stdout, 0, _IOLBF, 0): %s\n"
-
--#: ../slattach.c:686
-+#: ../slattach.c:706
- #, c-format
- msgid "%s started"
--msgstr "protokol %s spu¹tìn"
-+msgstr "protokol %s spuštěn"
-
--#: ../slattach.c:687
-+#: ../slattach.c:707
- #, c-format
- msgid " on %s"
- msgstr " na %s"
-
--#: ../slattach.c:688
-+#: ../slattach.c:708
- #, c-format
- msgid " interface %s\n"
--msgstr " rozhraní %s\n"
-+msgstr " rozhraní %s\n"
-+
-+#~ msgid ""
-+#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
-+#~ "<-''-\n"
-+#~ msgstr ""
-+#~ " arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [síťmask <Äís>] <-''-\n"
-+
-+#~ msgid "%-9.9s Link encap:%s "
-+#~ msgstr "%-9.9s Zapouzdření:%s "
-+
-+#~ msgid "HWaddr %s "
-+#~ msgstr "HWadr %s "
-+
-+#~ msgid "Media:%s"
-+#~ msgstr "Médium:%s"
-+
-+#~ msgid "(auto)"
-+#~ msgstr "(auto)"
-+
-+#~ msgid " P-t-P:%s "
-+#~ msgstr " P-t-P:%s "
-+
-+# V ostatních katalozích se překládá Broadcast -> všesměrové vysílání.
-+# Tudiž bcast -> Všesměr :)
-+#~ msgid " Bcast:%s "
-+#~ msgstr " Všesměr:%s "
-+
-+#~ msgid " Mask:%s\n"
-+#~ msgstr "Maska:%s\n"
-+
-+#~ msgid " Scope:"
-+#~ msgstr " Rozsah:"
-+
-+#~ msgid "Unknown"
-+#~ msgstr "Neznám."
-+
-+#~ msgid " EtherTalk Phase 2 addr:%s\n"
-+#~ msgstr " EtherTalk Phase 2 adr:%s\n"
-+
-+#~ msgid " econet addr:%s\n"
-+#~ msgstr " econet adr:%s\n"
-+
-+# Hic sunt leones ...
-+#~ msgid "[NO FLAGS] "
-+#~ msgstr "[ŽÃDNÉ PŘÃZNAKY]"
-+
-+#~ msgid " MTU:%d Metric:%d"
-+#~ msgstr " MTU:%d Metrika:%d"
-+
-+#~ msgid " compressed:%lu\n"
-+#~ msgstr " komprimováno:%lu\n"
-+
-+#~ msgid " collisions:%lu "
-+#~ msgstr " kolizí:%lu "
-+
-+#~ msgid "DMA chan:%x "
-+#~ msgstr "Kanál DMA:%x "
-+
-+#~ msgid "%s: unknown interface: %s\n"
-+#~ msgstr "%s: rozhraní %s není známo\n"
-+
-+#~ msgid "address mask replies"
-+#~ msgstr "odpovědi na žádost o masku podsítě"
-+
-+#~ msgid "unknown title %s\n"
-+#~ msgstr "titulek %s je neznámý\n"
-+
-+#~ msgid "Routing table for `ddp' not yet supported.\n"
-+#~ msgstr "Směrovací tabulka pro `ddp' není zatím podporována.\n"
-+
-+#~ msgid "IPX not configured in this system.\n"
-+#~ msgstr "IPX není na tomto systému nakonfigurováno.\n"
-
- #~ msgid ""
--#~ " This comand can read or set the hostname or the NIS domainname. You can\n"
-+#~ " This comand can read or set the hostname or the NIS domainname. You "
-+#~ "can\n"
- #~ msgstr ""
--#~ " Tento program zji¹»uje a nastavuje jméno poèítaèe èi NIS domény. Mù¾e "
--#~ "také\n"
-+#~ " Tento program zjiÅ¡Å¥uje a nastavuje jméno poÄítaÄe Äi NIS domény. Může "
-+#~ "také\n"
-
- #~ msgid ""
- #~ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
--#~ msgstr " zjistit DNS doménu èi kanonické jméno poèítaèe.\n"
-+#~ msgstr " zjistit DNS doménu Äi kanonické jméno poÄítaÄe.\n"
-
- #~ msgid ""
- #~ " Unless you are using bind or NIS for host lookups you can change the\n"
- #~ msgstr ""
--#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak mù¾ete\n"
-+#~ " Pokud nepoužíváte bind Äi NIS pro vyhledávání jmen poÄítaÄů, pak "
-+#~ "můžete\n"
-
- #~ msgid ""
- #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
- #~ msgstr ""
--#~ " zmìnit kanonické jméno poèítaèe a jméno DNS domény (je souèástí "
--#~ "kanonického\n"
-+#~ " zmÄ›nit kanonické jméno poÄítaÄe a jméno DNS domény (je souÄástí "
-+#~ "kanonického\n"
-
- #~ msgid " part of the FQDN) in the /etc/hosts file.\n"
--#~ msgstr " jména poèítaèe) v souboru /etc/hosts.\n"
-+#~ msgstr " jména poÄítaÄe) v souboru /etc/hosts.\n"
-diff --git a/po/de.po b/po/de.po
-index f884dd9..309829a 100644
---- a/po/de.po
-+++ b/po/de.po
-@@ -1,4 +1,4 @@
--# $Id: de.po,v 1.10 2000/08/01 03:19:48 ecki Exp $
-+# $Id: de.po,v 1.11 2003/10/25 21:15:09 ecki Exp $
- # German translation for net-tools 1.51
- # Copyright (C) 1999 Ralf Bächle <ralf@gnu.org>
- msgid ""
-@@ -9,7 +9,7 @@ msgstr ""
- "Last-Translator: Ralf Bächle <ralf@gnu.org>\n"
- "Language-Team:\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=iso8859-1\n"
-+"Content-Type: text/plain; charset=iso-8859-1\n"
- "Content-Transfer-Encoding: 8bit\n"
-
- #: ../arp.c:110 ../arp.c:269
-@@ -64,7 +64,7 @@ msgstr "Adresse\t\t\tHWTyp\tHWAdresse\t Flags Maske\t\t Iface\n"
-
- #: ../arp.c:467
- msgid "(incomplete)"
--msgstr "(unvollsändig)"
-+msgstr "(unvollständig)"
-
- #: ../arp.c:484
- #, c-format
-diff --git a/po/et_EE.po b/po/et_EE.po
-index d748410..827406d 100644
---- a/po/et_EE.po
-+++ b/po/et_EE.po
-@@ -1,66 +1,65 @@
- # Estonian translations for net-tools
--# Copyright (C) 1999 Free Software Foundation, Inc.
--# Meelis Roos <Meelis.Roos@mail.ee>, 1999.
-+# Copyright (C) 1999-2001 Free Software Foundation, Inc.
-+# Meelis Roos <mroos@linux.ee>, 1999-2001.
- #
--#, fuzzy
- msgid ""
- msgstr ""
--"Project-Id-Version: net-tools 1.58\n"
--"POT-Creation-Date: 2001-02-15 21:28+0200\n"
--"PO-Revision-Date: 2001-02-15 18:00+0300\n"
-+"Project-Id-Version: net-tools 1.60\n"
-+"POT-Creation-Date: 2001-04-16 20:24+0200\n"
-+"PO-Revision-Date: 2001-04-16 20:30+0200\n"
- "Last-Translator: Meelis Roos <mroos@linux.ee>\n"
- "Language-Team: Estonian <linux-ee@eenet.ee>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=iso-8859-15\n"
- "Content-Transfer-Encoding: 8bit\n"
-
--#: ../arp.c:110 ../arp.c:269
-+#: ../arp.c:111 ../arp.c:270
- msgid "arp: need host name\n"
- msgstr "arp: puudub hosti nimi\n"
-
--#: ../arp.c:207 ../arp.c:221
-+#: ../arp.c:208 ../arp.c:222
- #, c-format
- msgid "No ARP entry for %s\n"
- msgstr "%s jaoks pole ARP kirjet\n"
-
--#: ../arp.c:239
-+#: ../arp.c:240
- #, c-format
- msgid "arp: cant get HW-Address for `%s': %s.\n"
- msgstr "arp: ei saa riistvaralist aadressi `%s' jaoks: %s\n"
-
--#: ../arp.c:243
-+#: ../arp.c:244
- msgid "arp: protocol type mismatch.\n"
- msgstr "arp: vale protokolli tüüp\n"
-
--#: ../arp.c:252
-+#: ../arp.c:253
- #, c-format
- msgid "arp: device `%s' has HW address %s `%s'.\n"
- msgstr "arp: seadmel `%s' on riistvaraline aadress %s `%s'\n"
-
--#: ../arp.c:282
-+#: ../arp.c:283
- msgid "arp: need hardware address\n"
- msgstr "arp: puudub riistvaraline aadress\n"
-
--#: ../arp.c:290
-+#: ../arp.c:291
- msgid "arp: invalid hardware address\n"
- msgstr "arp: vigane riistvaraline aadress\n"
-
--#: ../arp.c:387
-+#: ../arp.c:388
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
- msgstr "arp: ei saa avada faili %s\n"
-
--#: ../arp.c:403
-+#: ../arp.c:404
- #, c-format
- msgid "arp: format error on line %u of etherfile %s !\n"
- msgstr "arp: formaadiviga real %u failis %s\n"
-
--#: ../arp.c:416
-+#: ../arp.c:417
- #, c-format
- msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr "arp: ei saa kehtestada ARP kirjet real %u failis %s\n"
-
--#: ../arp.c:437
-+#: ../arp.c:438
- msgid ""
- "Address HWtype HWaddress Flags Mask "
- "Iface\n"
-@@ -68,45 +67,45 @@ msgstr ""
- "Aadress HWtüüp HWaadress Lipud Mask "
- "Liides\n"
-
--#: ../arp.c:467
-+#: ../arp.c:468
- msgid "(incomplete)"
- msgstr "(mittetäielik)"
-
--#: ../arp.c:484
-+#: ../arp.c:485
- #, c-format
- msgid "%s (%s) at "
- msgstr "%s (%s) aadressil "
-
--#: ../arp.c:490
-+#: ../arp.c:491
- msgid "<incomplete> "
- msgstr "<mittetäielik>"
-
--#: ../arp.c:496
-+#: ../arp.c:497
- #, c-format
- msgid "netmask %s "
- msgstr "võrgumask %s "
-
--#: ../arp.c:513
-+#: ../arp.c:514
- #, c-format
- msgid "on %s\n"
- msgstr "liides %s\n"
-
--#: ../arp.c:592
-+#: ../arp.c:593
- #, c-format
- msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
- msgstr "ARP kirjeid kokku: %s\tignoreerisin: %d\tleidsin: %d\n"
-
--#: ../arp.c:596
-+#: ../arp.c:597
- #, c-format
- msgid "%s (%s) -- no entry\n"
- msgstr "%s (%s) -- pole kirjet\n"
-
--#: ../arp.c:598
-+#: ../arp.c:599
- #, c-format
- msgid "arp: in %d entries no match found.\n"
- msgstr "arp: ei leidnud %d kirje hulgast sobivat\n"
-
--#: ../arp.c:613
-+#: ../arp.c:614
- msgid ""
- "Usage:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
-@@ -116,7 +115,7 @@ msgstr ""
- "ARP cache vaatamine:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hosti nimi>]\n"
-
--#: ../arp.c:614
-+#: ../arp.c:615
- msgid ""
- " arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
- "entry\n"
-@@ -124,7 +123,7 @@ msgstr ""
- "ARP kirje kustutamine:\n"
- " arp [-v] [-i <if>] -d <hosti nimi> [pub] [nopub]\n"
-
--#: ../arp.c:615
-+#: ../arp.c:616
- msgid ""
- " arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
- "file\n"
-@@ -132,7 +131,7 @@ msgstr ""
- "ARP kirjete lisamine failist:\n"
- " arp [-vnD] [<HW>] [-i <if>] -f [<failinimi>]\n"
-
--#: ../arp.c:616
-+#: ../arp.c:617
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
- "entry\n"
-@@ -140,14 +139,14 @@ msgstr ""
- "ARP kirje lisamine:\n"
- " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [temp] [nopub]\n"
-
--#: ../arp.c:617
-+#: ../arp.c:618
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
- "<-''-\n"
- msgstr ""
- " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] pub\n"
-
--#: ../arp.c:618
-+#: ../arp.c:619
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
- "<-''-\n"
-@@ -156,7 +155,7 @@ msgstr ""
- " arp [-v] [<HW>] [-i <if>] -Ds <hosti nimi> <if> [netmask <nm>] pub\n"
- "\n"
-
--#: ../arp.c:620
-+#: ../arp.c:621
- msgid ""
- " -a display (all) hosts in alternative (BSD) "
- "style\n"
-@@ -164,37 +163,37 @@ msgstr ""
- " -a näita kõiki hoste alternatiivsel (BSD) "
- "kujul\n"
-
--#: ../arp.c:621
-+#: ../arp.c:622
- msgid " -s, --set set a new ARP entry\n"
- msgstr " -s, --set uue ARP kirje seadmine\n"
-
--#: ../arp.c:622
-+#: ../arp.c:623
- msgid " -d, --delete delete a specified entry\n"
- msgstr " -d, --delete määratud kirje kustutamine\n"
-
--#: ../arp.c:623 ../netstat.c:1485 ../route.c:85
-+#: ../arp.c:624 ../netstat.c:1490 ../route.c:86
- msgid " -v, --verbose be verbose\n"
- msgstr " -v, --verbose jutukas väljund\n"
-
--#: ../arp.c:624
-+#: ../arp.c:625 ../netstat.c:1491 ../route.c:87
- msgid " -n, --numeric don't resolve names\n"
- msgstr " -n, --numeric mitte lahendada nimesid\n"
-
--#: ../arp.c:625
-+#: ../arp.c:626
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
- msgstr ""
- " -i, --device võrguliidese täpsustamine (näiteks eth0)\n"
-
--#: ../arp.c:626
-+#: ../arp.c:627
- msgid " -D, --use-device read <hwaddr> from given device\n"
- msgstr " -D, --use-device lugeda <hwaddr> vastavalt liideselt\n"
-
--#: ../arp.c:627
-+#: ../arp.c:628
- msgid " -A, -p, --protocol specify protocol family\n"
- msgstr " -A, -p, --protocol protokollipere määramine\n"
-
--#: ../arp.c:628
-+#: ../arp.c:629
- msgid ""
- " -f, --file read new entries from file or from "
- "/etc/ethers\n"
-@@ -204,125 +203,125 @@ msgstr ""
- "/etc/ethers'st\n"
- "\n"
-
--#: ../arp.c:630 ../rarp.c:181
-+#: ../arp.c:631 ../rarp.c:182
- #, c-format
- msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
- msgstr ""
- " <HW>=kasutage '-H <hw>' riistvaralise aadressi määramiseks.\n"
- " Vaikimisi: %s\n"
-
--#: ../arp.c:631 ../rarp.c:182
-+#: ../arp.c:632 ../rarp.c:183
- msgid " List of possible hardware types (which support ARP):\n"
- msgstr " Võimalike ARP-i toetavate riistvara tüüpide nimekiri:\n"
-
--#: ../arp.c:664 ../arp.c:749
-+#: ../arp.c:666 ../arp.c:751
- #, c-format
- msgid "%s: hardware type not supported!\n"
- msgstr "arp: riistvara tüüpi %s ei toetata\n"
-
--#: ../arp.c:668
-+#: ../arp.c:670
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr "arp: aadressiperekonda %s ei toetata\n"
-
--#: ../arp.c:703
-+#: ../arp.c:705
- msgid "arp: -N not yet supported.\n"
- msgstr "arp: -N toetust pole veel\n"
-
--#: ../arp.c:713
-+#: ../arp.c:715
- #, c-format
- msgid "arp: %s: unknown address family.\n"
- msgstr "arp: tundmatu aadressiperekond %s\n"
-
--#: ../arp.c:722
-+#: ../arp.c:724
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
- msgstr "arp: tundmatu riistvara tüüp %s\n"
-
--#: ../arp.c:741
-+#: ../arp.c:743
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
- msgstr "arp: tuumas on ainult 'inet' aadressiperekonna toetus\n"
-
--#: ../arp.c:754
-+#: ../arp.c:756
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
- msgstr "arp: riistvara tüübil %s pole ARP toetust\n"
-
--#: ../hostname.c:69
-+#: ../hostname.c:70
- #, c-format
- msgid "Setting nodename to `%s'\n"
- msgstr "Sean sõlme nimeks `%s'\n"
-
--#: ../hostname.c:74
-+#: ../hostname.c:75
- #, c-format
- msgid "%s: you must be root to change the node name\n"
- msgstr "%s: ainult root saab sõlme nime muuta\n"
-
--#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
-+#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117
- #, c-format
- msgid "%s: name too long\n"
- msgstr "%s: nimi on liiga pikk\n"
-
--#: ../hostname.c:89
-+#: ../hostname.c:90
- #, c-format
- msgid "Setting hostname to `%s'\n"
- msgstr "Sean hosti nimeks `%s'\n"
-
--#: ../hostname.c:94
-+#: ../hostname.c:95
- #, c-format
- msgid "%s: you must be root to change the host name\n"
- msgstr "%s: ainult root saab hosti nime muuta\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:109
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr "Sean domeeni nimeks `%s'\n"
-
--#: ../hostname.c:113
-+#: ../hostname.c:114
- #, c-format
- msgid "%s: you must be root to change the domain name\n"
- msgstr "%s: ainult root saab domeeni nime muuta\n"
-
--#: ../hostname.c:131
-+#: ../hostname.c:132
- #, c-format
- msgid "Resolving `%s' ...\n"
- msgstr "Lahendan `%s' ...\n"
-
--#: ../hostname.c:137
-+#: ../hostname.c:138
- #, c-format
- msgid "Result: h_name=`%s'\n"
- msgstr "Tulemus: h_name=`%s'\n"
-
--#: ../hostname.c:142
-+#: ../hostname.c:143
- #, c-format
- msgid "Result: h_aliases=`%s'\n"
- msgstr "Tulemus: h_aliases=`%s'\n"
-
--#: ../hostname.c:147
-+#: ../hostname.c:148
- #, c-format
- msgid "Result: h_addr_list=`%s'\n"
- msgstr "Tulemus: h_addr_list=`%s'\n"
-
--#: ../hostname.c:209
-+#: ../hostname.c:210
- #, c-format
- msgid "%s: can't open `%s'\n"
- msgstr "%s: ei saa avada faili `%s'\n"
-
--#: ../hostname.c:223
-+#: ../hostname.c:224
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
- "Kasutamine:\n"
- " hostname [-v] {hosti nimi|-F fail} hosti nime seadmine (ka "
- "failist)\n"
-
--#: ../hostname.c:224
-+#: ../hostname.c:225
- msgid ""
- " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
- msgstr ""
- " domainname [-v] {nisdomeen|-F fail} NIS domeeni nime seadmine\n"
-
--#: ../hostname.c:226
-+#: ../hostname.c:227
- msgid ""
- " nodename [-v] {nodename|-F file} set DECnet node name (from "
- "file)\n"
-@@ -330,18 +329,18 @@ msgstr ""
- " nodename [-v] {nodename|-F fail} DECneti võrgusõlme nime "
- "seadmine\n"
-
--#: ../hostname.c:228
-+#: ../hostname.c:229
- msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
- msgstr ""
- " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] nime näitamine antud formaadis\n"
-
--#: ../hostname.c:229
-+#: ../hostname.c:230
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr " hostname [-v] hosti nime näitamine\n"
-
--#: ../hostname.c:230
-+#: ../hostname.c:231
- msgid ""
- " hostname -V|--version|-h|--help print info and exit\n"
- "\n"
-@@ -350,7 +349,7 @@ msgstr ""
- " hostname -h|--help seesama abiinfo\n"
- "\n"
-
--#: ../hostname.c:231
-+#: ../hostname.c:232
- msgid ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
-@@ -358,36 +357,36 @@ msgstr ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
-
--#: ../hostname.c:232
-+#: ../hostname.c:233
- msgid " -s, --short short host name\n"
- msgstr " -s, --short lühike hosti nimi\n"
-
--#: ../hostname.c:233
-+#: ../hostname.c:234
- msgid " -a, --alias alias names\n"
- msgstr " -a, --alias alias-nimed\n"
-
--#: ../hostname.c:234
-+#: ../hostname.c:235
- msgid " -i, --ip-address addresses for the hostname\n"
- msgstr " -i, --ip-address hosti IP aadressid\n"
-
--#: ../hostname.c:235
-+#: ../hostname.c:236
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
- msgstr ""
- " -f, --fqdn, --long pikk hosti nimi (FQDN - täielik süsteeminimi)\n"
-
--#: ../hostname.c:236
-+#: ../hostname.c:237
- msgid " -d, --domain DNS domain name\n"
- msgstr " -d, --domain DNS domeeni nimi\n"
-
--#: ../hostname.c:237
-+#: ../hostname.c:238
- msgid " -y, --yp, --nis NIS/YP domainname\n"
- msgstr " -y, --yp, --nis NIS/YP domeeni nimi\n"
-
--#: ../hostname.c:239
-+#: ../hostname.c:240
- msgid " -n, --node DECnet node name\n"
- msgstr " -n, --node DECneti võrgusõlme nimi\n"
-
--#: ../hostname.c:241
-+#: ../hostname.c:242
- msgid ""
- " -F, --file read hostname or NIS domainname from given file\n"
- "\n"
-@@ -395,7 +394,7 @@ msgstr ""
- " -F, --file lugeda hosti või NIS domeeni nimi failist\n"
- "\n"
-
--#: ../hostname.c:243
-+#: ../hostname.c:244
- msgid ""
- " This command can read or set the hostname or the NIS domainname. You can\n"
- " also read the DNS domain or the FQDN (fully qualified domain name).\n"
-@@ -409,12 +408,12 @@ msgstr ""
- " täielikku süsteeminime (FQDN) ja DNS domeeni nime (mis on täieliku nime\n"
- " osa) muuta failist /etc/hosts.\n"
-
--#: ../hostname.c:338
-+#: ../hostname.c:340
- #, c-format
- msgid "%s: You can't change the DNS domain name with this command\n"
- msgstr "%s: selle käsuga ei saa muuta DNS domeeni nime\n"
-
--#: ../hostname.c:339
-+#: ../hostname.c:341
- msgid ""
- "\n"
- "Unless you are using bind or NIS for host lookups you can change the DNS\n"
-@@ -422,26 +421,26 @@ msgstr ""
- "\n"
- "Kui Te EI kasuta bind'i ega NIS'i nimede lahendamiseks, saate DNS domeeni\n"
-
--#: ../hostname.c:340
-+#: ../hostname.c:342
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr "(mis on täieliku nime osa) nime muuta failist /etc/hosts.\n"
-
--#: ../hostname.c:357
-+#: ../hostname.c:359
- #, c-format
- msgid "gethostname()=`%s'\n"
- msgstr "gethostname()=`%s'\n"
-
--#: ../hostname.c:374
-+#: ../hostname.c:376
- #, c-format
- msgid "getdomainname()=`%s'\n"
- msgstr "getdomainname()=`%s'\n"
-
--#: ../hostname.c:389
-+#: ../hostname.c:391
- #, c-format
- msgid "getnodename()=`%s'\n"
- msgstr "getnodename()=`%s'\n"
-
--#: ../ifconfig.c:110
-+#: ../ifconfig.c:108
- msgid ""
- "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Flg\n"
-@@ -449,16 +448,16 @@ msgstr ""
- "Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Lip\n"
-
--#: ../ifconfig.c:132 ../ifconfig.c:164
-+#: ../ifconfig.c:130 ../ifconfig.c:162
- #, c-format
- msgid "%s: unknown interface: %s\n"
- msgstr "ifconfig: tundmatu liides %s: %s\n"
-
--#: ../ifconfig.c:156 ../ifconfig.c:740 ../ifconfig.c:831 ../ifconfig.c:937
-+#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936
- msgid "No support for INET on this system.\n"
- msgstr "Antud süsteem ei toeta INET aadressiperekonda\n"
-
--#: ../ifconfig.c:179
-+#: ../ifconfig.c:177
- msgid ""
- "Usage:\n"
- " ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"
-@@ -466,51 +465,51 @@ msgstr ""
- "Kasutamine:\n"
- " ifconfig [-a] [-i] [-v] [-s] <liides> [[<AF>] <aadress>]\n"
-
--#: ../ifconfig.c:181
-+#: ../ifconfig.c:179
- msgid " [add <address>[/<prefixlen>]]\n"
- msgstr " [add <aadress>[/<prefiksi pikkus>]]\n"
-
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:180
- msgid " [del <address>[/<prefixlen>]]\n"
- msgstr " [del <aadress>[/<prefiksi pikkus>]]\n"
-
--#: ../ifconfig.c:183
-+#: ../ifconfig.c:181
- msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
- msgstr " [[-]broadcast [<aadress>]] [[-]pointopoint [<aadress>]]\n"
-
--#: ../ifconfig.c:184
-+#: ../ifconfig.c:182
- msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
- msgstr " [netmask <aadress>] [dstaddr <aadress>] [tunnel <aadress>]\n"
-
--#: ../ifconfig.c:187
-+#: ../ifconfig.c:185
- msgid " [outfill <NN>] [keepalive <NN>]\n"
- msgstr " [outfill <NN>] [keepalive <NN>]\n"
-
--#: ../ifconfig.c:189
-+#: ../ifconfig.c:187
- msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
- msgstr " [hw <HW> <aadress>] [metric <NN>] [mtu <NN>]\n"
-
--#: ../ifconfig.c:190
-+#: ../ifconfig.c:188
- msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
- msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-
--#: ../ifconfig.c:191
-+#: ../ifconfig.c:189
- msgid " [multicast] [[-]promisc]\n"
- msgstr " [multicast] [[-]promisc]\n"
-
--#: ../ifconfig.c:192
-+#: ../ifconfig.c:190
- msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
- msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tüüp>]\n"
-
--#: ../ifconfig.c:194
-+#: ../ifconfig.c:192
- msgid " [txqueuelen <NN>]\n"
- msgstr " [txqueuelen <NN>]\n"
-
--#: ../ifconfig.c:197
-+#: ../ifconfig.c:195
- msgid " [[-]dynamic]\n"
- msgstr " [[-]dynamic]\n"
-
--#: ../ifconfig.c:199
-+#: ../ifconfig.c:197
- msgid ""
- " [up|down] ...\n"
- "\n"
-@@ -518,73 +517,86 @@ msgstr ""
- " [up|down] ...\n"
- "\n"
-
--#: ../ifconfig.c:201
-+#: ../ifconfig.c:199
- msgid " <HW>=Hardware Type.\n"
- msgstr " <HW>=riistvara tüüp\n"
-
--#: ../ifconfig.c:202
-+#: ../ifconfig.c:200
- msgid " List of possible hardware types:\n"
- msgstr " Võimalike riistvara tüüpide nimekiri:\n"
-
- #. 1 = ARPable
--#: ../ifconfig.c:204
-+#: ../ifconfig.c:202
- #, c-format
- msgid " <AF>=Address family. Default: %s\n"
- msgstr " <AF>=aadressiperekond, vaikimisi %s\n"
-
--#: ../ifconfig.c:205
-+#: ../ifconfig.c:203
- msgid " List of possible address families:\n"
- msgstr " Võimalike aadressiperekondade nimekiri:\n"
-
--#: ../ifconfig.c:361
-+#: ../ifconfig.c:278
-+#, c-format
-+msgid "ifconfig: option `%s' not recognised.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:280 ../ifconfig.c:925
-+msgid "ifconfig: `--help' gives usage information.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:355
- msgid "Unknown media type.\n"
- msgstr "Tundmatu meedia tüüp\n"
-
--#: ../ifconfig.c:653
-+#: ../ifconfig.c:647
- #, c-format
- msgid "hw address type `%s' has no handler to set address. failed.\n"
- msgstr ""
- "riistvara aadressi tüübil `%s' pole käsitlejat aadressi seadmiseks - ebaõnn\n"
-
--#: ../ifconfig.c:662
-+#: ../ifconfig.c:656
- #, c-format
- msgid "%s: invalid %s address.\n"
- msgstr "%s: vigane %s aadress\n"
-
--#: ../ifconfig.c:706 ../ifconfig.c:796 ../ifconfig.c:882
-+#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876
- msgid "No support for INET6 on this system.\n"
- msgstr "Antud süsteem ei toeta INET6 aadressiperekonda\n"
-
--#: ../ifconfig.c:749 ../ifconfig.c:840
-+#: ../ifconfig.c:743 ../ifconfig.c:834
- #, c-format
- msgid "Interface %s not initialized\n"
- msgstr "Liides %s pole initsialiseeritud\n"
-
--#: ../ifconfig.c:761 ../ifconfig.c:851
-+#: ../ifconfig.c:755 ../ifconfig.c:845
- msgid "Bad address.\n"
- msgstr "Vigane aadress\n"
-
--#: ../ifconfig.c:854
-+#: ../ifconfig.c:848
- msgid "Address deletion not supported on this system.\n"
- msgstr "Antud süsteem ei toeta aadresside kustutamist\n"
-
--#: ../ifconfig.c:947
-+#: ../ifconfig.c:920
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "Ei oska seada aadresse selle aadressiperekonna jaoks\n"
-+
-+#: ../ifconfig.c:946
- msgid "No support for ECONET on this system.\n"
- msgstr "Antud süsteem ei toeta ECONET aadressiperekonda\n"
-
--#: ../ifconfig.c:955
-+#: ../ifconfig.c:954
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
- msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n"
-
--#: ../netstat.c:429
-+#: ../netstat.c:430
- #, c-format
- msgid ""
- "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
- msgstr ""
- "(\"-p\" jaoks ei saanud infot lugeda: geteuid()=%d, aga vaja oleks root'u)\n"
-
--#: ../netstat.c:433
-+#: ../netstat.c:434
- msgid ""
- "(Not all processes could be identified, non-owned process info\n"
- " will not be shown, you would have to be root to see it all.)\n"
-@@ -592,27 +604,27 @@ msgstr ""
- "(Mõnesid protsesse ei saanud identifitseerida, teiste kasutajate\n"
- "info lugemiseks peab olema root)\n"
-
--#: ../netstat.c:440 ../netstat.c:1171 ../netstat.c:1248
-+#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253
- msgid "LISTENING"
- msgstr "LISTENING"
-
--#: ../netstat.c:441
-+#: ../netstat.c:442
- msgid "CONN SENT"
- msgstr "CONN SENT"
-
--#: ../netstat.c:442 ../netstat.c:1250
-+#: ../netstat.c:443 ../netstat.c:1255
- msgid "DISC SENT"
- msgstr "DISC SENT"
-
--#: ../netstat.c:443 ../netstat.c:510 ../netstat.c:889 ../netstat.c:1251
-+#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256
- msgid "ESTABLISHED"
- msgstr "ESTABLISHED"
-
--#: ../netstat.c:465
-+#: ../netstat.c:466
- msgid "Active NET/ROM sockets\n"
- msgstr "Aktiivsed NET/ROM soklid\n"
-
--#: ../netstat.c:466
-+#: ../netstat.c:467
- msgid ""
- "User Dest Source Device State Vr/Vs Send-Q "
- "Recv-Q\n"
-@@ -620,182 +632,182 @@ msgstr ""
- "Kasutaja Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk "
- "VvJrk\n"
-
--#: ../netstat.c:476 ../netstat.c:1290
-+#: ../netstat.c:477 ../netstat.c:1295
- #, c-format
- msgid "Problem reading data from %s\n"
- msgstr "Probleem andmete lugemisel failist %s\n"
-
--#: ../netstat.c:511
-+#: ../netstat.c:512
- msgid "SYN_SENT"
- msgstr "SYN_SENT"
-
--#: ../netstat.c:512
-+#: ../netstat.c:513
- msgid "SYN_RECV"
- msgstr "SYN_RECV"
-
--#: ../netstat.c:513
-+#: ../netstat.c:514
- msgid "FIN_WAIT1"
- msgstr "FIN_WAIT1"
-
--#: ../netstat.c:514
-+#: ../netstat.c:515
- msgid "FIN_WAIT2"
- msgstr "FIN_WAIT2"
-
--#: ../netstat.c:515
-+#: ../netstat.c:516
- msgid "TIME_WAIT"
- msgstr "TIME_WAIT"
-
--#: ../netstat.c:516
-+#: ../netstat.c:517
- msgid "CLOSE"
- msgstr "CLOSE"
-
--#: ../netstat.c:517
-+#: ../netstat.c:518
- msgid "CLOSE_WAIT"
- msgstr "CLOSE_WAIT"
-
--#: ../netstat.c:518
-+#: ../netstat.c:519
- msgid "LAST_ACK"
- msgstr "LAST_ACK"
-
--#: ../netstat.c:519
-+#: ../netstat.c:520
- msgid "LISTEN"
- msgstr "LISTEN"
-
--#: ../netstat.c:520
-+#: ../netstat.c:521
- msgid "CLOSING"
- msgstr "CLOSING"
-
--#: ../netstat.c:587
-+#: ../netstat.c:592
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
- msgstr "Hoiatus - sain imeliku igmp6 rea (nr. %d)\n"
-
--#: ../netstat.c:592 ../netstat.c:630 ../netstat.c:751 ../netstat.c:883
--#: ../netstat.c:1014 ../netstat.c:1019
-+#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888
-+#: ../netstat.c:1019 ../netstat.c:1024
- #, c-format
- msgid "netstat: unsupported address family %d !\n"
- msgstr "netstat: aadressiperekonda %d ei toetata\n"
-
--#: ../netstat.c:605 ../netstat.c:610 ../netstat.c:618 ../netstat.c:625
-+#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630
- #, c-format
- msgid "warning, got bogus igmp line %d.\n"
- msgstr "Hoiatus - sain imeliku igmp rea (nr. %d)\n"
-
--#: ../netstat.c:668
-+#: ../netstat.c:673
- msgid "Active X.25 sockets\n"
- msgstr "Aktiivsed X.25 soklid\n"
-
- #. IMHO, Vr/Vs is not very usefull --SF
--#: ../netstat.c:670
-+#: ../netstat.c:675
- msgid ""
- "Dest Source Device LCI State Vr/Vs Send-Q "
- "Recv-Q\n"
- msgstr ""
- "Sihtpunkt Lähtepunkt Liides LCI Olek Vr/Vs SaatJrk VvJrk\n"
-
--#: ../netstat.c:747
-+#: ../netstat.c:752
- msgid "warning, got bogus tcp line.\n"
- msgstr "Hoiatus - sain imeliku tcp rea\n"
-
--#: ../netstat.c:788 ../netstat.c:938 ../netstat.c:1057
-+#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062
- #, c-format
- msgid "off (0.00/%ld/%d)"
- msgstr "eikäi ((0.00/%ld/%d)"
-
--#: ../netstat.c:792
-+#: ../netstat.c:797
- #, c-format
- msgid "on (%2.2f/%ld/%d)"
- msgstr "käib (%2.2f/%ld/%d)"
-
--#: ../netstat.c:797
-+#: ../netstat.c:802
- #, c-format
- msgid "keepalive (%2.2f/%ld/%d)"
- msgstr "keepalive (%2.2f/%ld/%d)"
-
--#: ../netstat.c:802
-+#: ../netstat.c:807
- #, c-format
- msgid "timewait (%2.2f/%ld/%d)"
- msgstr "timewait (%2.2f/%ld/%d)"
-
--#: ../netstat.c:807 ../netstat.c:947 ../netstat.c:1067
-+#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072
- #, c-format
- msgid "unkn-%d (%2.2f/%ld/%d)"
- msgstr "eitea-%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:879
-+#: ../netstat.c:884
- msgid "warning, got bogus udp line.\n"
- msgstr "Hoiatus - sain imeliku udp rea\n"
-
--#: ../netstat.c:897 ../netstat.c:1157 ../netstat.c:1190
-+#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195
- msgid "UNKNOWN"
- msgstr "TUNDMATU"
-
--#: ../netstat.c:943 ../netstat.c:1062
-+#: ../netstat.c:948 ../netstat.c:1067
- #, c-format
- msgid "on%d (%2.2f/%ld/%d)"
- msgstr "käib-%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:1028
-+#: ../netstat.c:1033
- msgid "warning, got bogus raw line.\n"
- msgstr "Hoiatus - sain imeliku raw rea\n"
-
--#: ../netstat.c:1110
-+#: ../netstat.c:1115
- msgid "warning, got bogus unix line.\n"
- msgstr "Hoiatus - sain imeliku unix rea\n"
-
--#: ../netstat.c:1137
-+#: ../netstat.c:1142
- msgid "STREAM"
- msgstr "STREAM"
-
--#: ../netstat.c:1141
-+#: ../netstat.c:1146
- msgid "DGRAM"
- msgstr "DGRAM"
-
--#: ../netstat.c:1145
-+#: ../netstat.c:1150
- msgid "RAW"
- msgstr "RAW"
-
--#: ../netstat.c:1149
-+#: ../netstat.c:1154
- msgid "RDM"
- msgstr "RDM"
-
--#: ../netstat.c:1153
-+#: ../netstat.c:1158
- msgid "SEQPACKET"
- msgstr "SEQPACKET"
-
--#: ../netstat.c:1162
-+#: ../netstat.c:1167
- msgid "FREE"
- msgstr "VABA"
-
--#: ../netstat.c:1178
-+#: ../netstat.c:1183
- msgid "CONNECTING"
- msgstr "ÜHENDUMAS"
-
--#: ../netstat.c:1182
-+#: ../netstat.c:1187
- msgid "CONNECTED"
- msgstr "ÜHENDATUD"
-
--#: ../netstat.c:1186
-+#: ../netstat.c:1191
- msgid "DISCONNECTING"
- msgstr "LAHTIÜHENDUMAS"
-
--#: ../netstat.c:1217
-+#: ../netstat.c:1222
- msgid "Active UNIX domain sockets "
- msgstr "Aktiivsed UNIX domeeni soklid "
-
--#: ../netstat.c:1219 ../netstat.c:1729
-+#: ../netstat.c:1224 ../netstat.c:1735
- msgid "(servers and established)"
- msgstr "(serverid ja ühendatud)"
-
--#: ../netstat.c:1222 ../netstat.c:1732
-+#: ../netstat.c:1227 ../netstat.c:1738
- msgid "(only servers)"
- msgstr "(ainult serverid)"
-
--#: ../netstat.c:1224 ../netstat.c:1734
-+#: ../netstat.c:1229 ../netstat.c:1740
- msgid "(w/o servers)"
- msgstr "(ilma serveriteta)"
-
--#: ../netstat.c:1227
-+#: ../netstat.c:1232
- msgid ""
- "\n"
- "Proto RefCnt Flags Type State I-Node"
-@@ -803,32 +815,32 @@ msgstr ""
- "\n"
- "Proto Mitu Lipud Tüüp Olek I-kirje "
-
--#: ../netstat.c:1229
-+#: ../netstat.c:1234
- msgid " Path\n"
- msgstr "Tee\n"
-
--#: ../netstat.c:1249
-+#: ../netstat.c:1254
- msgid "SABM SENT"
- msgstr "SABM SENT"
-
--#: ../netstat.c:1252
-+#: ../netstat.c:1257
- msgid "RECOVERY"
- msgstr "RECOVERY"
-
--#: ../netstat.c:1266
-+#: ../netstat.c:1271
- msgid "Active AX.25 sockets\n"
- msgstr "Aktiivsed AX.25 soklid\n"
-
--#: ../netstat.c:1267
-+#: ../netstat.c:1272
- msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
- msgstr "Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk VvJrk\n"
-
--#: ../netstat.c:1310
-+#: ../netstat.c:1315
- #, c-format
- msgid "problem reading data from %s\n"
- msgstr "Probleem andmete lugemisel failist %s\n"
-
--#: ../netstat.c:1361
-+#: ../netstat.c:1366
- msgid ""
- "Active IPX sockets\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address "
-@@ -838,23 +850,23 @@ msgstr ""
- "Proto VvJrk SaatJrk Kohalik aadress Väline aadress "
- "Olek "
-
--#: ../netstat.c:1363
-+#: ../netstat.c:1368
- msgid " User"
- msgstr " Kasutaja"
-
--#: ../netstat.c:1397
-+#: ../netstat.c:1402
- msgid "ESTAB"
- msgstr "ESTAB"
-
--#: ../netstat.c:1405
-+#: ../netstat.c:1410
- msgid "UNK."
- msgstr "UNK."
-
--#: ../netstat.c:1443
-+#: ../netstat.c:1448
- msgid "Kernel Interface table\n"
- msgstr "Tuuma liideste tabel\n"
-
--#: ../netstat.c:1447
-+#: ../netstat.c:1452
- msgid ""
- "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Flg\n"
-@@ -862,11 +874,11 @@ msgstr ""
- "Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Lip\n"
-
--#: ../netstat.c:1451
-+#: ../netstat.c:1456
- msgid "missing interface information"
- msgstr "Puudulik informatsioon liideste kohta"
-
--#: ../netstat.c:1474
-+#: ../netstat.c:1479
- msgid ""
- "usage: netstat [-veenNcCF] [<Af>] -r netstat "
- "{-V|--version|-h|--help}\n"
-@@ -874,11 +886,11 @@ msgstr ""
- "Kasutamine: netstat [-veenNcCF] [<Af>] -r\n"
- " netstat {-V|--version|-h|--help}\n"
-
--#: ../netstat.c:1475
-+#: ../netstat.c:1480
- msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
- msgstr " netstat [-vnNcaeol] [<Sokkel> ...]\n"
-
--#: ../netstat.c:1476
-+#: ../netstat.c:1481
- msgid ""
- " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
- "\n"
-@@ -886,25 +898,25 @@ msgstr ""
- " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
- "\n"
-
--#: ../netstat.c:1478
-+#: ../netstat.c:1483
- msgid " -r, --route display routing table\n"
- msgstr " -r, --route ruutingutabeli näitamine\n"
-
--#: ../netstat.c:1479
-+#: ../netstat.c:1484
- msgid " -i, --interfaces display interface table\n"
- msgstr " -i, --interfaces liideste tabeli näitamine\n"
-
--#: ../netstat.c:1480
-+#: ../netstat.c:1485
- msgid " -g, --groups display multicast group memberships\n"
- msgstr " -g, --groups multiedastuse gruppide näitamine\n"
-
--#: ../netstat.c:1481
-+#: ../netstat.c:1486
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
- " -s, --statistics võrgu statistika näitamine (SNMP stiilis)\n"
-
--#: ../netstat.c:1483
-+#: ../netstat.c:1488
- msgid ""
- " -M, --masquerade display masqueraded connections\n"
- "\n"
-@@ -912,36 +924,32 @@ msgstr ""
- " -M, --masquerade maskeeritavate ühenduste näitamine\n"
- "\n"
-
--#: ../netstat.c:1486 ../route.c:86
--msgid " -n, --numeric dont resolve names\n"
--msgstr " -n, --numeric mitte lahendada numbreid nimedeks\n"
--
--#: ../netstat.c:1487
--msgid " --numeric-hosts dont resolve host names\n"
-+#: ../netstat.c:1492
-+msgid " --numeric-hosts don't resolve host names\n"
- msgstr " --numeric-hosts mitte lahendada hostinimesid\n"
-
--#: ../netstat.c:1488
--msgid " --numeric-ports dont resolve port names\n"
-+#: ../netstat.c:1493
-+msgid " --numeric-ports don't resolve port names\n"
- msgstr " --numeric-ports mitte lahendada pordinimesid\n"
-
--#: ../netstat.c:1489
--msgid " --numeric-users dont resolve user names\n"
-+#: ../netstat.c:1494
-+msgid " --numeric-users don't resolve user names\n"
- msgstr " --numeric-users mitte lahendada kasutajanimesid\n"
-
--#: ../netstat.c:1490
-+#: ../netstat.c:1495
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr " -N, --symbolic lahendada riistvara aadressid\n"
-
--#: ../netstat.c:1491 ../route.c:87
-+#: ../netstat.c:1496 ../route.c:88
- msgid " -e, --extend display other/more information\n"
- msgstr " -e, --extend muu info/lisainfo näitamine\n"
-
--#: ../netstat.c:1492
-+#: ../netstat.c:1497
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
- " -p, --programs soklite kohta PID/protsessi nime näitamine\n"
-
--#: ../netstat.c:1493
-+#: ../netstat.c:1498
- msgid ""
- " -c, --continuous continuous listing\n"
- "\n"
-@@ -949,22 +957,22 @@ msgstr ""
- " -c, --continuous pidevalt uuenev nimekiri\n"
- "\n"
-
--#: ../netstat.c:1494
-+#: ../netstat.c:1499
- msgid " -l, --listening display listening server sockets\n"
- msgstr " -l, --listening kuulavate serversoklite näitamine\n"
-
--#: ../netstat.c:1495
-+#: ../netstat.c:1500
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
- " -a, --all, --listening kõigi soklite näitamine (vaikimisi "
- "ühendatud)\n"
-
--#: ../netstat.c:1496
-+#: ../netstat.c:1501
- msgid " -o, --timers display timers\n"
- msgstr " -o, --timers taimerite näitamine\n"
-
--#: ../netstat.c:1497 ../route.c:88
-+#: ../netstat.c:1502 ../route.c:89
- msgid ""
- " -F, --fib display Forwarding Information Base "
- "(default)\n"
-@@ -972,7 +980,7 @@ msgstr ""
- " -F, --fib üldiste ruutingutabelite näitamine "
- "(vaikimisi)\n"
-
--#: ../netstat.c:1498 ../route.c:89
-+#: ../netstat.c:1503 ../route.c:90
- msgid ""
- " -C, --cache display routing cache instead of FIB\n"
- "\n"
-@@ -981,7 +989,7 @@ msgstr ""
- "näitamine\n"
- "\n"
-
--#: ../netstat.c:1500
-+#: ../netstat.c:1505
- msgid ""
- " <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
- "--netrom\n"
-@@ -989,20 +997,19 @@ msgstr ""
- " <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
- "--netrom\n"
-
--#: ../netstat.c:1501 ../route.c:91
--#, c-format
--msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
--msgstr " <AF>=kasutage '-A <af>' või '--<af>' vaikimisi: %s\n"
-+#: ../netstat.c:1506 ../route.c:92
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=kasutage '-A <af>' või '--<af>'; vaikimisi: %s\n"
-
--#: ../netstat.c:1502 ../route.c:92
-+#: ../netstat.c:1507 ../route.c:93
- msgid " List of possible address families (which support routing):\n"
- msgstr " Võimalike ruutingu toetavate aadressiperekondade nimekiri:\n"
-
--#: ../netstat.c:1726
-+#: ../netstat.c:1732
- msgid "Active Internet connections "
- msgstr "Aktiivsed internetiühendused "
-
--#: ../netstat.c:1736
-+#: ../netstat.c:1742
- msgid ""
- "\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address State "
-@@ -1012,77 +1019,77 @@ msgstr ""
- "Proto VvJrk SaatJrk Kohalik aadress Väline aadress Olek "
- " "
-
--#: ../netstat.c:1738
-+#: ../netstat.c:1744
- msgid " User Inode "
- msgstr " Kasutaja I-kirje "
-
--#: ../netstat.c:1741
-+#: ../netstat.c:1747
- msgid " Timer"
- msgstr " Taimer"
-
--#: ../netstat.c:1771
-+#: ../netstat.c:1777
- msgid "IPv4 Group Memberships\n"
- msgstr "IPv4 grupikuuluvused\n"
-
--#: ../netstat.c:1772
-+#: ../netstat.c:1778
- msgid "Interface RefCnt Group\n"
- msgstr "Liides Mitu Grupp\n"
-
--#: ../rarp.c:43
-+#: ../rarp.c:44
- msgid "This kernel does not support RARP.\n"
- msgstr "rarp: tuum ei toeta RARP'i\n"
-
--#: ../rarp.c:82
-+#: ../rarp.c:83
- #, c-format
- msgid "no RARP entry for %s.\n"
- msgstr "rarp: %s jaoks pole RARP kirjet\n"
-
--#: ../rarp.c:95
-+#: ../rarp.c:96
- #, c-format
- msgid "%s: bad hardware address\n"
- msgstr "rarp: vigane riistvaraline aadress %s\n"
-
--#: ../rarp.c:127
-+#: ../rarp.c:128
- #, c-format
- msgid "rarp: cannot open file %s:%s.\n"
- msgstr "rarp: ei saa avada faili %s:%s\n"
-
--#: ../rarp.c:139
-+#: ../rarp.c:140
- #, c-format
- msgid "rarp: format error at %s:%u\n"
- msgstr "rarp: vorminguviga failis %s real %u\n"
-
--#: ../rarp.c:143 ../rarp.c:287
-+#: ../rarp.c:144 ../rarp.c:289
- #, c-format
- msgid "rarp: %s: unknown host\n"
- msgstr "rarp: tundmatu host %s\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:147
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
- msgstr "rarp: ei saa kehtestada kirjet failist %s realt %u\n"
-
--#: ../rarp.c:175
-+#: ../rarp.c:176
- msgid "Usage: rarp -a list entries in cache.\n"
- msgstr ""
- "Kasutamine:\n"
- " rarp -a puhvris olevate kirjete vaatamine\n"
-
--#: ../rarp.c:176
-+#: ../rarp.c:177
- msgid " rarp -d <hostname> delete entry from cache.\n"
- msgstr " rarp -d <hosti nimi> kirje kustutamine puhvrist\n"
-
--#: ../rarp.c:177
-+#: ../rarp.c:178
- msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
- msgstr " rarp [<HW>] -s <hosti nimi> <hwaddr> kirje lisamine puhvrisse\n"
-
--#: ../rarp.c:178
-+#: ../rarp.c:179
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
- " rarp -f kirjete lisamine failist /etc/ethers\n"
-
--#: ../rarp.c:179
-+#: ../rarp.c:180
- msgid ""
- " rarp -V display program version.\n"
- "\n"
-@@ -1090,24 +1097,24 @@ msgstr ""
- " rarp -V programmi versiooni näitamine\n"
- "\n"
-
--#: ../rarp.c:236
-+#: ../rarp.c:238
- #, c-format
- msgid "%s: illegal option mix.\n"
- msgstr "%s: lubamatu võtmete kombinatsioon\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:269
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
- msgstr "rarp: tundmatu riistvara tüüp %s\n"
-
--#: ../route.c:79
-+#: ../route.c:80
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
- "Kasutamine:\n"
- " route [-nNvee] [-FC] [<AF>] Tuuma ruutingutabeli näitamine\n"
-
--#: ../route.c:80
-+#: ../route.c:81
- msgid ""
- " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
- "\n"
-@@ -1115,7 +1122,7 @@ msgstr ""
- " route [-v] [-FC] {add|del|flush} ... Tuuma ruutingutabeli muutmine\n"
- "\n"
-
--#: ../route.c:82
-+#: ../route.c:83
- msgid ""
- " route {-h|--help} [<AF>] Detailed usage syntax for "
- "specified AF.\n"
-@@ -1123,7 +1130,7 @@ msgstr ""
- " route {-h|--help} [<AF>] Detailne süntaks perekonna AF "
- "jaoks\n"
-
--#: ../route.c:83
-+#: ../route.c:84
- msgid ""
- " route {-V|--version} Display version/author and "
- "exit.\n"
-@@ -1149,25 +1156,25 @@ msgstr " plipconfig -V | --version\n"
- msgid "%s\tnibble %lu trigger %lu\n"
- msgstr "%s\tnibble %lu trigger %lu\n"
-
--#: ../iptunnel.c:84
-+#: ../iptunnel.c:85
- msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
- msgstr "Kasutamine: iptunnel { add | change | del | show } [ NIMI ]\n"
-
--#: ../iptunnel.c:85
-+#: ../iptunnel.c:86
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
- " [ mode { ipip | gre | sit } ] [ remote AADR ] [ local AADR ]\n"
-
--#: ../iptunnel.c:86
-+#: ../iptunnel.c:87
- msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
- msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
-
--#: ../iptunnel.c:87
-+#: ../iptunnel.c:88
- msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
- msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev LIIDES ]\n"
-
--#: ../iptunnel.c:88
-+#: ../iptunnel.c:89
- msgid ""
- " iptunnel -V | --version\n"
- "\n"
-@@ -1175,83 +1182,83 @@ msgstr ""
- " iptunnel -V | --version\n"
- "\n"
-
--#: ../iptunnel.c:89
-+#: ../iptunnel.c:90
- msgid "Where: NAME := STRING\n"
- msgstr "Kus: NIMI := STRING\n"
-
--#: ../iptunnel.c:90
-+#: ../iptunnel.c:91
- msgid " ADDR := { IP_ADDRESS | any }\n"
- msgstr " AADR := { IP_AADRESS | any }\n"
-
--#: ../iptunnel.c:91
-+#: ../iptunnel.c:92
- msgid " TOS := { NUMBER | inherit }\n"
- msgstr " TOS := { ARV | inherit }\n"
-
--#: ../iptunnel.c:92
-+#: ../iptunnel.c:93
- msgid " TTL := { 1..255 | inherit }\n"
- msgstr " TTL := { 1..255 | inherit }\n"
-
--#: ../iptunnel.c:93
-+#: ../iptunnel.c:94
- msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
- msgstr ""
- " KEY := { PUNKTIDEGA_ARVUNELIK | ARV }\n"
- " LIIDES := FÜÜSILISE_LIIDESE_NIMI\n"
-
--#: ../iptunnel.c:331
-+#: ../iptunnel.c:332
- msgid "Keys are not allowed with ipip and sit.\n"
- msgstr "ipip ja sit juures ei ole võtmed lubatud\n"
-
--#: ../iptunnel.c:351
-+#: ../iptunnel.c:352
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr "Leviedastusega tunnel vajab lähteaadressi\n"
-
--#: ../iptunnel.c:366
-+#: ../iptunnel.c:367
- msgid "ttl != 0 and noptmudisc are incompatible\n"
- msgstr "ttl != 0 ning noptmudisc ei sobi kokku\n"
-
--#: ../iptunnel.c:378
-+#: ../iptunnel.c:379
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
- msgstr "Ei suuda määrata tunneli moodi (ipip, gre või sit)\n"
-
--#: ../iptunnel.c:416
-+#: ../iptunnel.c:417
- #, c-format
- msgid "%s: %s/ip remote %s local %s "
- msgstr "%s: %s/ip teises otsas %s siin %s "
-
--#: ../iptunnel.c:420
-+#: ../iptunnel.c:421
- msgid "unknown"
- msgstr "tundmatu"
-
--#: ../iptunnel.c:452
-+#: ../iptunnel.c:453
- msgid " Drop packets out of sequence.\n"
- msgstr " Järjekorravälised paketid visatakse minema\n"
-
--#: ../iptunnel.c:454
-+#: ../iptunnel.c:455
- msgid " Checksum in received packet is required.\n"
- msgstr " Vastuvõetavates pakettides on kontrollsumma kohustuslik\n"
-
--#: ../iptunnel.c:456
-+#: ../iptunnel.c:457
- msgid " Sequence packets on output.\n"
- msgstr " Väljuvad paketid varustatakse järjekorranumbritega\n"
-
--#: ../iptunnel.c:458
-+#: ../iptunnel.c:459
- msgid " Checksum output packets.\n"
- msgstr " Väljuvad paketid varustatakse kontrollsummaga\n"
-
--#: ../iptunnel.c:486
-+#: ../iptunnel.c:487
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
- msgstr "/proc/net/dev on vales formaadis. Vale tuuma versioon?\n"
-
--#: ../iptunnel.c:499
-+#: ../iptunnel.c:500
- #, c-format
- msgid "Failed to get type of [%s]\n"
- msgstr "Ei suutnud kindlaks teha liidese %s tüüpi\n"
-
--#: ../iptunnel.c:515
-+#: ../iptunnel.c:516
- msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
- msgstr "RX: Pakette Baite Vigu KSumVigu JrkVigu Levipakette\n"
-
--#: ../iptunnel.c:518
-+#: ../iptunnel.c:519
- msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
- msgstr "TX: Pakette Baite Vigu DeadLoop EiRuudi MäluOtsas\n"
-
-@@ -1972,15 +1979,15 @@ msgstr "rresolve: toetuseta aadressiperekond %d\n"
- msgid "[UNKNOWN]"
- msgstr "[TUNDMATU]"
-
--#: ../lib/inet6_gr.c:79
-+#: ../lib/inet6_gr.c:71
- msgid "INET6 (IPv6) not configured in this system.\n"
- msgstr "INET6 (IPv6) pole antud süsteemis konfigureeritud\n"
-
--#: ../lib/inet6_gr.c:82
-+#: ../lib/inet6_gr.c:74
- msgid "Kernel IPv6 routing table\n"
- msgstr "Tuuma IPv6 ruutingutabel\n"
-
--#: ../lib/inet6_gr.c:84
-+#: ../lib/inet6_gr.c:76
- msgid ""
- "Destination Next Hop "
- " Flags Metric Ref Use Iface\n"
-@@ -1988,11 +1995,11 @@ msgstr ""
- "Sihtpunkt Järgmine samm "
- " Lipud Meetr Mitu Kasut Liides\n"
-
--#: ../lib/inet6_gr.c:158
-+#: ../lib/inet6_gr.c:150
- msgid "Kernel IPv6 Neighbour Cache\n"
- msgstr "Tuuma IPv6 naabrite puhver\n"
-
--#: ../lib/inet6_gr.c:161
-+#: ../lib/inet6_gr.c:153
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State\n"
-@@ -2000,7 +2007,7 @@ msgstr ""
- "Naaber HW Aadress Liides Lipud "
- "Mitu Olek\n"
-
--#: ../lib/inet6_gr.c:165
-+#: ../lib/inet6_gr.c:157
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State Stale(sec) Delete(sec)\n"
-@@ -2538,29 +2545,29 @@ msgstr "iptunnel: %s on vigane IPv4 aadress\n"
- msgid "ip: argument is wrong: %s\n"
- msgstr "iptunnel: vale argument %s\n"
-
--#: ../ipmaddr.c:58
-+#: ../ipmaddr.c:61
- msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
- msgstr "Kasutamine: ipmaddr [ add | del ] MULTIAADR dev STRING\n"
-
--#: ../ipmaddr.c:59
-+#: ../ipmaddr.c:62
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
- msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
-
--#: ../ipmaddr.c:60
-+#: ../ipmaddr.c:63
- msgid " ipmaddr -V | -version\n"
- msgstr " ipmaddr -V | -version\n"
-
--#: ../ipmaddr.c:260
-+#: ../ipmaddr.c:263
- #, c-format
- msgid "family %d "
- msgstr "perekond %d "
-
--#: ../ipmaddr.c:269
-+#: ../ipmaddr.c:272
- #, c-format
- msgid " users %d"
- msgstr " kasutajaid %d"
-
--#: ../ipmaddr.c:355
-+#: ../ipmaddr.c:358
- msgid "Cannot create socket"
- msgstr "Ei saa avada soklit"
-
-diff --git a/po/fr.po b/po/fr.po
-index e8e7542..d021e0f 100644
---- a/po/fr.po
-+++ b/po/fr.po
-@@ -9,7 +9,7 @@ msgstr ""
- "Last-Translator: J.M.Vansteene <vanstee@worldnet.fr>\n"
- "Language-Team:\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=iso8859-1\n"
-+"Content-Type: text/plain; charset=iso-8859-1\n"
- "Content-Transfer-Encoding: 8bit\n"
-
- #: ../arp.c:110 ../arp.c:269
-diff --git a/po/net-tools.pot b/po/net-tools.pot
-index 0231aac..cdeccc9 100644
---- a/po/net-tools.pot
-+++ b/po/net-tools.pot
-@@ -1,263 +1,285 @@
- # SOME DESCRIPTIVE TITLE.
--# Copyright (C) YEAR Free Software Foundation, Inc.
-+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-+# This file is distributed under the same license as the PACKAGE package.
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
- #
- #, fuzzy
- msgid ""
- msgstr ""
- "Project-Id-Version: PACKAGE VERSION\n"
--"POT-Creation-Date: 2001-04-15 15:40+0100\n"
-+"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2005-05-16 05:18+0200\n"
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
- "Language-Team: LANGUAGE <LL@li.org>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=CHARSET\n"
--"Content-Transfer-Encoding: ENCODING\n"
-+"Content-Transfer-Encoding: 8bit\n"
-
--#: ../arp.c:111 ../arp.c:270
-+#: ../arp.c:111 ../arp.c:276
-+#, c-format
- msgid "arp: need host name\n"
- msgstr ""
-
--#: ../arp.c:208 ../arp.c:222
-+#: ../arp.c:213 ../arp.c:228
- #, c-format
- msgid "No ARP entry for %s\n"
- msgstr ""
-
--#: ../arp.c:240
-+#: ../arp.c:246
- #, c-format
- msgid "arp: cant get HW-Address for `%s': %s.\n"
- msgstr ""
-
--#: ../arp.c:244
-+#: ../arp.c:250
-+#, c-format
- msgid "arp: protocol type mismatch.\n"
- msgstr ""
-
--#: ../arp.c:253
-+#: ../arp.c:259
- #, c-format
- msgid "arp: device `%s' has HW address %s `%s'.\n"
- msgstr ""
-
--#: ../arp.c:283
-+#: ../arp.c:289
-+#, c-format
- msgid "arp: need hardware address\n"
- msgstr ""
-
--#: ../arp.c:291
-+#: ../arp.c:297
-+#, c-format
- msgid "arp: invalid hardware address\n"
- msgstr ""
-
--#: ../arp.c:388
-+#: ../arp.c:394
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
- msgstr ""
-
--#: ../arp.c:404
-+#: ../arp.c:410
- #, c-format
- msgid "arp: format error on line %u of etherfile %s !\n"
- msgstr ""
-
--#: ../arp.c:417
-+#: ../arp.c:423
- #, c-format
- msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr ""
-
--#: ../arp.c:438
-+#: ../arp.c:444
-+#, c-format
- msgid ""
- "Address HWtype HWaddress Flags Mask "
- "Iface\n"
- msgstr ""
-
--#: ../arp.c:468
-+#: ../arp.c:472
-+msgid "<from_interface>"
-+msgstr ""
-+
-+#: ../arp.c:474
- msgid "(incomplete)"
- msgstr ""
-
--#: ../arp.c:485
-+#: ../arp.c:491
- #, c-format
- msgid "%s (%s) at "
- msgstr ""
-
--#: ../arp.c:491
-+#: ../arp.c:497
-+#, c-format
- msgid "<incomplete> "
- msgstr ""
-
--#: ../arp.c:497
-+#: ../arp.c:503
- #, c-format
- msgid "netmask %s "
- msgstr ""
-
--#: ../arp.c:514
-+#: ../arp.c:520
- #, c-format
- msgid "on %s\n"
- msgstr ""
-
--#: ../arp.c:593
-+#: ../arp.c:599
- #, c-format
- msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
- msgstr ""
-
--#: ../arp.c:597
-+#: ../arp.c:603
- #, c-format
- msgid "%s (%s) -- no entry\n"
- msgstr ""
-
--#: ../arp.c:599
-+#: ../arp.c:605
- #, c-format
- msgid "arp: in %d entries no match found.\n"
- msgstr ""
-
--#: ../arp.c:614
-+#: ../arp.c:620
-+#, c-format
- msgid ""
- "Usage:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
- "cache\n"
- msgstr ""
-
--#: ../arp.c:615
-+#: ../arp.c:621
-+#, c-format
- msgid ""
- " arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
- "entry\n"
- msgstr ""
-
--#: ../arp.c:616
-+#: ../arp.c:622
-+#, c-format
- msgid ""
--" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
-+" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
- "file\n"
- msgstr ""
-
--#: ../arp.c:617
-+#: ../arp.c:623
-+#, c-format
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
- "entry\n"
- msgstr ""
-
--#: ../arp.c:618
--msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
--"<-''-\n"
--msgstr ""
--
--#: ../arp.c:619
-+#: ../arp.c:624
-+#, c-format
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
- "<-''-\n"
- "\n"
- msgstr ""
-
--#: ../arp.c:621
-+#: ../arp.c:626
-+#, c-format
- msgid ""
- " -a display (all) hosts in alternative (BSD) "
- "style\n"
- msgstr ""
-
--#: ../arp.c:622
-+#: ../arp.c:627
-+#, c-format
- msgid " -s, --set set a new ARP entry\n"
- msgstr ""
-
--#: ../arp.c:623
-+#: ../arp.c:628
-+#, c-format
- msgid " -d, --delete delete a specified entry\n"
- msgstr ""
-
--#: ../arp.c:624 ../netstat.c:1490 ../route.c:86
-+#: ../arp.c:629 ../netstat.c:1503 ../route.c:86
-+#, c-format
- msgid " -v, --verbose be verbose\n"
- msgstr ""
-
--#: ../arp.c:625 ../netstat.c:1491 ../route.c:87
-+#: ../arp.c:630 ../netstat.c:1504 ../route.c:87
-+#, c-format
- msgid " -n, --numeric don't resolve names\n"
- msgstr ""
-
--#: ../arp.c:626
-+#: ../arp.c:631
-+#, c-format
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
- msgstr ""
-
--#: ../arp.c:627
-+#: ../arp.c:632
-+#, c-format
- msgid " -D, --use-device read <hwaddr> from given device\n"
- msgstr ""
-
--#: ../arp.c:628
-+#: ../arp.c:633
-+#, c-format
- msgid " -A, -p, --protocol specify protocol family\n"
- msgstr ""
-
--#: ../arp.c:629
-+#: ../arp.c:634
-+#, c-format
- msgid ""
--" -f, --file read new entries from file or from "
--"/etc/ethers\n"
-+" -f, --file read new entries from file or from /etc/"
-+"ethers\n"
- "\n"
- msgstr ""
-
--#: ../arp.c:631 ../rarp.c:182
-+#: ../arp.c:636 ../rarp.c:182
- #, c-format
- msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
- msgstr ""
-
--#: ../arp.c:632 ../rarp.c:183
-+#: ../arp.c:637 ../rarp.c:183
-+#, c-format
- msgid " List of possible hardware types (which support ARP):\n"
- msgstr ""
-
--#: ../arp.c:666 ../arp.c:751
-+#: ../arp.c:671 ../arp.c:756
- #, c-format
- msgid "%s: hardware type not supported!\n"
- msgstr ""
-
--#: ../arp.c:670
-+#: ../arp.c:675
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr ""
-
--#: ../arp.c:705
-+#: ../arp.c:710
-+#, c-format
- msgid "arp: -N not yet supported.\n"
- msgstr ""
-
--#: ../arp.c:715
-+#: ../arp.c:720
- #, c-format
- msgid "arp: %s: unknown address family.\n"
- msgstr ""
-
--#: ../arp.c:724
-+#: ../arp.c:729
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
- msgstr ""
-
--#: ../arp.c:743
-+#: ../arp.c:748
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
- msgstr ""
-
--#: ../arp.c:756
-+#: ../arp.c:761
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
- msgstr ""
-
--#: ../hostname.c:70
-+#: ../hostname.c:71
- #, c-format
- msgid "Setting nodename to `%s'\n"
- msgstr ""
-
--#: ../hostname.c:75
-+#: ../hostname.c:76
- #, c-format
- msgid "%s: you must be root to change the node name\n"
- msgstr ""
-
--#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117
-+#: ../hostname.c:79 ../hostname.c:100 ../hostname.c:118
- #, c-format
- msgid "%s: name too long\n"
- msgstr ""
-
--#: ../hostname.c:90
-+#: ../hostname.c:92
- #, c-format
- msgid "Setting hostname to `%s'\n"
- msgstr ""
-
--#: ../hostname.c:95
-+#: ../hostname.c:97
- #, c-format
- msgid "%s: you must be root to change the host name\n"
- msgstr ""
-
--#: ../hostname.c:109
-+#: ../hostname.c:110
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr ""
-
--#: ../hostname.c:114
-+#: ../hostname.c:115
- #, c-format
- msgid "%s: you must be root to change the domain name\n"
- msgstr ""
-@@ -282,83 +304,99 @@ msgstr ""
- msgid "Result: h_addr_list=`%s'\n"
- msgstr ""
-
--#: ../hostname.c:210
-+#: ../hostname.c:209
- #, c-format
- msgid "%s: can't open `%s'\n"
- msgstr ""
-
--#: ../hostname.c:224
-+#: ../hostname.c:223
-+#, c-format
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
-
--#: ../hostname.c:225
-+#: ../hostname.c:224
-+#, c-format
- msgid ""
- " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
- msgstr ""
-
--#: ../hostname.c:227
-+#: ../hostname.c:226
-+#, c-format
- msgid ""
- " nodename [-v] {nodename|-F file} set DECnet node name (from "
- "file)\n"
- msgstr ""
-
--#: ../hostname.c:229
-+#: ../hostname.c:228
-+#, c-format
- msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
- msgstr ""
-
--#: ../hostname.c:230
-+#: ../hostname.c:229
-+#, c-format
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:231
-+#: ../hostname.c:230
-+#, c-format
- msgid ""
- " hostname -V|--version|-h|--help print info and exit\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:232
-+#: ../hostname.c:231
-+#, c-format
- msgid ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:233
-+#: ../hostname.c:232
-+#, c-format
- msgid " -s, --short short host name\n"
- msgstr ""
-
--#: ../hostname.c:234
-+#: ../hostname.c:233
-+#, c-format
- msgid " -a, --alias alias names\n"
- msgstr ""
-
--#: ../hostname.c:235
-+#: ../hostname.c:234
-+#, c-format
- msgid " -i, --ip-address addresses for the hostname\n"
- msgstr ""
-
--#: ../hostname.c:236
-+#: ../hostname.c:235
-+#, c-format
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
- msgstr ""
-
--#: ../hostname.c:237
-+#: ../hostname.c:236
-+#, c-format
- msgid " -d, --domain DNS domain name\n"
- msgstr ""
-
--#: ../hostname.c:238
-+#: ../hostname.c:237
-+#, c-format
- msgid " -y, --yp, --nis NIS/YP domainname\n"
- msgstr ""
-
--#: ../hostname.c:240
-+#: ../hostname.c:239
-+#, c-format
- msgid " -n, --node DECnet node name\n"
- msgstr ""
-
--#: ../hostname.c:242
-+#: ../hostname.c:241
-+#, c-format
- msgid ""
- " -F, --file read hostname or NIS domainname from given file\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:244
-+#: ../hostname.c:243
-+#, c-format
- msgid ""
- " This command can read or set the hostname or the NIS domainname. You can\n"
- " also read the DNS domain or the FQDN (fully qualified domain name).\n"
-@@ -373,12 +411,14 @@ msgid "%s: You can't change the DNS domain name with this command\n"
- msgstr ""
-
- #: ../hostname.c:341
-+#, c-format
- msgid ""
- "\n"
- "Unless you are using bind or NIS for host lookups you can change the DNS\n"
- msgstr ""
-
- #: ../hostname.c:342
-+#, c-format
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
-
-@@ -397,557 +437,697 @@ msgstr ""
- msgid "getnodename()=`%s'\n"
- msgstr ""
-
--#: ../ifconfig.c:108
-+#: ../ifconfig.c:107 ../netstat.c:1465
-+#, c-format
- msgid ""
--"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
-+"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Flg\n"
- msgstr ""
-
--#: ../ifconfig.c:130 ../ifconfig.c:162
-+#: ../ifconfig.c:129 ../ifconfig.c:161
- #, c-format
--msgid "%s: unknown interface: %s\n"
-+msgid "%s: ERROR while getting interface flags: %s\n"
- msgstr ""
-
--#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936
-+#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:791 ../ifconfig.c:884
-+#: ../ifconfig.c:997
-+#, c-format
- msgid "No support for INET on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:177
-+#: ../ifconfig.c:193
-+#, c-format
-+msgid "%s: ERROR while testing interface flags: %s\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:202
-+#, c-format
- msgid ""
- "Usage:\n"
--" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"
-+" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
- msgstr ""
-
--#: ../ifconfig.c:179
-+#: ../ifconfig.c:204
-+#, c-format
- msgid " [add <address>[/<prefixlen>]]\n"
- msgstr ""
-
--#: ../ifconfig.c:180
-+#: ../ifconfig.c:205
-+#, c-format
- msgid " [del <address>[/<prefixlen>]]\n"
- msgstr ""
-
--#: ../ifconfig.c:181
-+#: ../ifconfig.c:206
-+#, c-format
- msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
- msgstr ""
-
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:207
-+#, c-format
- msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
- msgstr ""
-
--#: ../ifconfig.c:185
-+#: ../ifconfig.c:210
-+#, c-format
- msgid " [outfill <NN>] [keepalive <NN>]\n"
- msgstr ""
-
--#: ../ifconfig.c:187
-+#: ../ifconfig.c:212
-+#, c-format
- msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
- msgstr ""
-
--#: ../ifconfig.c:188
-+#: ../ifconfig.c:213
-+#, c-format
- msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
- msgstr ""
-
--#: ../ifconfig.c:189
-+#: ../ifconfig.c:214
-+#, c-format
- msgid " [multicast] [[-]promisc]\n"
- msgstr ""
-
--#: ../ifconfig.c:190
-+#: ../ifconfig.c:215
-+#, c-format
- msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
- msgstr ""
-
--#: ../ifconfig.c:192
-+#: ../ifconfig.c:217
-+#, c-format
- msgid " [txqueuelen <NN>]\n"
- msgstr ""
-
--#: ../ifconfig.c:195
-+#: ../ifconfig.c:220
-+#, c-format
- msgid " [[-]dynamic]\n"
- msgstr ""
-
--#: ../ifconfig.c:197
-+#: ../ifconfig.c:222
-+#, c-format
- msgid ""
- " [up|down] ...\n"
- "\n"
- msgstr ""
-
--#: ../ifconfig.c:199
-+#: ../ifconfig.c:224
-+#, c-format
- msgid " <HW>=Hardware Type.\n"
- msgstr ""
-
--#: ../ifconfig.c:200
-+#: ../ifconfig.c:225
-+#, c-format
- msgid " List of possible hardware types:\n"
- msgstr ""
-
- #. 1 = ARPable
--#: ../ifconfig.c:202
-+#: ../ifconfig.c:227
- #, c-format
- msgid " <AF>=Address family. Default: %s\n"
- msgstr ""
-
--#: ../ifconfig.c:203
-+#: ../ifconfig.c:228
-+#, c-format
- msgid " List of possible address families:\n"
- msgstr ""
-
--#: ../ifconfig.c:278
-+#: ../ifconfig.c:304
- #, c-format
- msgid "ifconfig: option `%s' not recognised.\n"
- msgstr ""
-
--#: ../ifconfig.c:280 ../ifconfig.c:925
-+#: ../ifconfig.c:306 ../ifconfig.c:987
-+#, c-format
- msgid "ifconfig: `--help' gives usage information.\n"
- msgstr ""
-
--#: ../ifconfig.c:355
-+#: ../ifconfig.c:381
-+#, c-format
- msgid "Unknown media type.\n"
- msgstr ""
-
--#: ../ifconfig.c:647
-+#: ../ifconfig.c:418
-+#, c-format
-+msgid ""
-+"Warning: Interface %s still in promisc mode... maybe other application is "
-+"running?\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:430
-+#, c-format
-+msgid "Warning: Interface %s still in MULTICAST mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:442
-+#, c-format
-+msgid "Warning: Interface %s still in ALLMULTI mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:466
-+#, c-format
-+msgid "Warning: Interface %s still in DYNAMIC mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:524
-+#, c-format
-+msgid "Warning: Interface %s still in BROADCAST mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:535
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for broadcast\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:560
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for dstaddr\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:583
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for netmask\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:662
-+#, c-format
-+msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:673
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for pointopoint\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:697
- #, c-format
- msgid "hw address type `%s' has no handler to set address. failed.\n"
- msgstr ""
-
--#: ../ifconfig.c:656
-+#: ../ifconfig.c:706
- #, c-format
- msgid "%s: invalid %s address.\n"
- msgstr ""
-
--#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876
-+#: ../ifconfig.c:746
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for add\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:757 ../ifconfig.c:847 ../ifconfig.c:935
-+#, c-format
- msgid "No support for INET6 on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:743 ../ifconfig.c:834
-+#: ../ifconfig.c:800 ../ifconfig.c:893
- #, c-format
- msgid "Interface %s not initialized\n"
- msgstr ""
-
--#: ../ifconfig.c:755 ../ifconfig.c:845
-+#: ../ifconfig.c:812 ../ifconfig.c:904
-+#, c-format
- msgid "Bad address.\n"
- msgstr ""
-
--#: ../ifconfig.c:848
-+#: ../ifconfig.c:907
-+#, c-format
- msgid "Address deletion not supported on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:920
-+#: ../ifconfig.c:979
-+#, c-format
- msgid "ifconfig: Cannot set address for this protocol family.\n"
- msgstr ""
-
--#: ../ifconfig.c:946
-+#: ../ifconfig.c:986
-+#, c-format
-+msgid "ifconfig: error resolving '%s' to set address for af=%s\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:1007
-+#, c-format
- msgid "No support for ECONET on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:954
-+#: ../ifconfig.c:1015
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
- msgstr ""
-
--#: ../netstat.c:430
-+#: ../ifconfig.c:1050
-+#, c-format
-+msgid "WARNING: at least one error occured. (%d)\n"
-+msgstr ""
-+
-+#: ../netstat.c:434
- #, c-format
- msgid ""
- "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
- msgstr ""
-
--#: ../netstat.c:434
-+#: ../netstat.c:438
-+#, c-format
- msgid ""
- "(Not all processes could be identified, non-owned process info\n"
- " will not be shown, you would have to be root to see it all.)\n"
- msgstr ""
-
--#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253
-+#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
- msgid "LISTENING"
- msgstr ""
-
--#: ../netstat.c:442
-+#: ../netstat.c:446
- msgid "CONN SENT"
- msgstr ""
-
--#: ../netstat.c:443 ../netstat.c:1255
-+#: ../netstat.c:447 ../netstat.c:1268
- msgid "DISC SENT"
- msgstr ""
-
--#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256
-+#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
- msgid "ESTABLISHED"
- msgstr ""
-
--#: ../netstat.c:466
-+#: ../netstat.c:470
-+#, c-format
- msgid "Active NET/ROM sockets\n"
- msgstr ""
-
--#: ../netstat.c:467
-+#: ../netstat.c:471
-+#, c-format
- msgid ""
--"User Dest Source Device State Vr/Vs Send-Q "
--"Recv-Q\n"
-+"User Dest Source Device State Vr/Vs Send-Q Recv-"
-+"Q\n"
- msgstr ""
-
--#: ../netstat.c:477 ../netstat.c:1295
-+#: ../netstat.c:481 ../netstat.c:1308
- #, c-format
- msgid "Problem reading data from %s\n"
- msgstr ""
-
--#: ../netstat.c:512
-+#: ../netstat.c:516
- msgid "SYN_SENT"
- msgstr ""
-
--#: ../netstat.c:513
-+#: ../netstat.c:517
- msgid "SYN_RECV"
- msgstr ""
-
--#: ../netstat.c:514
-+#: ../netstat.c:518
- msgid "FIN_WAIT1"
- msgstr ""
-
--#: ../netstat.c:515
-+#: ../netstat.c:519
- msgid "FIN_WAIT2"
- msgstr ""
-
--#: ../netstat.c:516
-+#: ../netstat.c:520
- msgid "TIME_WAIT"
- msgstr ""
-
--#: ../netstat.c:517
-+#: ../netstat.c:521
- msgid "CLOSE"
- msgstr ""
-
--#: ../netstat.c:518
-+#: ../netstat.c:522
- msgid "CLOSE_WAIT"
- msgstr ""
-
--#: ../netstat.c:519
-+#: ../netstat.c:523
- msgid "LAST_ACK"
- msgstr ""
-
--#: ../netstat.c:520
-+#: ../netstat.c:524
- msgid "LISTEN"
- msgstr ""
-
--#: ../netstat.c:521
-+#: ../netstat.c:525
- msgid "CLOSING"
- msgstr ""
-
--#: ../netstat.c:592
-+#: ../netstat.c:596
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
- msgstr ""
-
--#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888
--#: ../netstat.c:1019 ../netstat.c:1024
-+#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
-+#: ../netstat.c:1032 ../netstat.c:1037
- #, c-format
- msgid "netstat: unsupported address family %d !\n"
- msgstr ""
-
--#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630
-+#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
- #, c-format
- msgid "warning, got bogus igmp line %d.\n"
- msgstr ""
-
--#: ../netstat.c:673
-+#: ../netstat.c:677
-+#, c-format
- msgid "Active X.25 sockets\n"
- msgstr ""
-
- #. IMHO, Vr/Vs is not very usefull --SF
--#: ../netstat.c:675
-+#: ../netstat.c:679
-+#, c-format
- msgid ""
--"Dest Source Device LCI State Vr/Vs Send-Q "
--"Recv-Q\n"
-+"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
-+"Q\n"
- msgstr ""
-
--#: ../netstat.c:752
-+#: ../netstat.c:759
-+#, c-format
- msgid "warning, got bogus tcp line.\n"
- msgstr ""
-
--#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062
-+#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
- #, c-format
- msgid "off (0.00/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:797
-+#: ../netstat.c:804
- #, c-format
- msgid "on (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:802
-+#: ../netstat.c:809
- #, c-format
- msgid "keepalive (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:807
-+#: ../netstat.c:814
- #, c-format
- msgid "timewait (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072
-+#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
- #, c-format
- msgid "unkn-%d (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:884
-+#: ../netstat.c:894
-+#, c-format
- msgid "warning, got bogus udp line.\n"
- msgstr ""
-
--#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195
-+#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
- msgid "UNKNOWN"
- msgstr ""
-
--#: ../netstat.c:948 ../netstat.c:1067
-+#: ../netstat.c:958 ../netstat.c:1080
- #, c-format
- msgid "on%d (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:1033
-+#: ../netstat.c:1046
-+#, c-format
- msgid "warning, got bogus raw line.\n"
- msgstr ""
-
--#: ../netstat.c:1115
-+#: ../netstat.c:1128
-+#, c-format
- msgid "warning, got bogus unix line.\n"
- msgstr ""
-
--#: ../netstat.c:1142
-+#: ../netstat.c:1155
- msgid "STREAM"
- msgstr ""
-
--#: ../netstat.c:1146
-+#: ../netstat.c:1159
- msgid "DGRAM"
- msgstr ""
-
--#: ../netstat.c:1150
-+#: ../netstat.c:1163
- msgid "RAW"
- msgstr ""
-
--#: ../netstat.c:1154
-+#: ../netstat.c:1167
- msgid "RDM"
- msgstr ""
-
--#: ../netstat.c:1158
-+#: ../netstat.c:1171
- msgid "SEQPACKET"
- msgstr ""
-
--#: ../netstat.c:1167
-+#: ../netstat.c:1180
- msgid "FREE"
- msgstr ""
-
--#: ../netstat.c:1183
-+#: ../netstat.c:1196
- msgid "CONNECTING"
- msgstr ""
-
--#: ../netstat.c:1187
-+#: ../netstat.c:1200
- msgid "CONNECTED"
- msgstr ""
-
--#: ../netstat.c:1191
-+#: ../netstat.c:1204
- msgid "DISCONNECTING"
- msgstr ""
-
--#: ../netstat.c:1222
-+#: ../netstat.c:1235
-+#, c-format
- msgid "Active UNIX domain sockets "
- msgstr ""
-
--#: ../netstat.c:1224 ../netstat.c:1735
-+#: ../netstat.c:1237 ../netstat.c:1756
-+#, c-format
- msgid "(servers and established)"
- msgstr ""
-
--#: ../netstat.c:1227 ../netstat.c:1738
-+#: ../netstat.c:1240 ../netstat.c:1759
-+#, c-format
- msgid "(only servers)"
- msgstr ""
-
--#: ../netstat.c:1229 ../netstat.c:1740
-+#: ../netstat.c:1242 ../netstat.c:1761
-+#, c-format
- msgid "(w/o servers)"
- msgstr ""
-
--#: ../netstat.c:1232
-+#: ../netstat.c:1245
-+#, c-format
- msgid ""
- "\n"
- "Proto RefCnt Flags Type State I-Node"
- msgstr ""
-
--#: ../netstat.c:1234
-+#: ../netstat.c:1247
-+#, c-format
- msgid " Path\n"
- msgstr ""
-
--#: ../netstat.c:1254
-+#: ../netstat.c:1267
- msgid "SABM SENT"
- msgstr ""
-
--#: ../netstat.c:1257
-+#: ../netstat.c:1270
- msgid "RECOVERY"
- msgstr ""
-
--#: ../netstat.c:1271
-+#: ../netstat.c:1284
-+#, c-format
- msgid "Active AX.25 sockets\n"
- msgstr ""
-
--#: ../netstat.c:1272
-+#: ../netstat.c:1285
-+#, c-format
- msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
- msgstr ""
-
--#: ../netstat.c:1315
-+#: ../netstat.c:1328
- #, c-format
- msgid "problem reading data from %s\n"
- msgstr ""
-
--#: ../netstat.c:1366
-+#: ../netstat.c:1379
-+#, c-format
- msgid ""
- "Active IPX sockets\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address "
- "State"
- msgstr ""
-
--#: ../netstat.c:1368
-+#: ../netstat.c:1381
-+#, c-format
- msgid " User"
- msgstr ""
-
--#: ../netstat.c:1402
-+#: ../netstat.c:1415
- msgid "ESTAB"
- msgstr ""
-
--#: ../netstat.c:1410
-+#: ../netstat.c:1423
- msgid "UNK."
- msgstr ""
-
--#: ../netstat.c:1448
-+#: ../netstat.c:1461
-+#, c-format
- msgid "Kernel Interface table\n"
- msgstr ""
-
--#: ../netstat.c:1452
--msgid ""
--"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
--"Flg\n"
--msgstr ""
--
--#: ../netstat.c:1456
-+#: ../netstat.c:1469
- msgid "missing interface information"
- msgstr ""
-
--#: ../netstat.c:1479
-+#: ../netstat.c:1492
-+#, c-format
- msgid ""
--"usage: netstat [-veenNcCF] [<Af>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
-+"help}\n"
- msgstr ""
-
--#: ../netstat.c:1480
-+#: ../netstat.c:1493
-+#, c-format
- msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
- msgstr ""
-
--#: ../netstat.c:1481
-+#: ../netstat.c:1494
-+#, c-format
- msgid ""
- " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1483
-+#: ../netstat.c:1496
-+#, c-format
- msgid " -r, --route display routing table\n"
- msgstr ""
-
--#: ../netstat.c:1484
-+#: ../netstat.c:1497
-+#, c-format
- msgid " -i, --interfaces display interface table\n"
- msgstr ""
-
--#: ../netstat.c:1485
-+#: ../netstat.c:1498
-+#, c-format
- msgid " -g, --groups display multicast group memberships\n"
- msgstr ""
-
--#: ../netstat.c:1486
-+#: ../netstat.c:1499
-+#, c-format
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
-
--#: ../netstat.c:1488
-+#: ../netstat.c:1501
-+#, c-format
- msgid ""
- " -M, --masquerade display masqueraded connections\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1492
-+#: ../netstat.c:1505
-+#, c-format
- msgid " --numeric-hosts don't resolve host names\n"
- msgstr ""
-
--#: ../netstat.c:1493
-+#: ../netstat.c:1506
-+#, c-format
- msgid " --numeric-ports don't resolve port names\n"
- msgstr ""
-
--#: ../netstat.c:1494
-+#: ../netstat.c:1507
-+#, c-format
- msgid " --numeric-users don't resolve user names\n"
- msgstr ""
-
--#: ../netstat.c:1495
-+#: ../netstat.c:1508
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr ""
-
--#: ../netstat.c:1496 ../route.c:88
-+#: ../netstat.c:1509 ../route.c:88
-+#, c-format
- msgid " -e, --extend display other/more information\n"
- msgstr ""
-
--#: ../netstat.c:1497
-+#: ../netstat.c:1510
-+#, c-format
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
-
--#: ../netstat.c:1498
-+#: ../netstat.c:1511
-+#, c-format
- msgid ""
- " -c, --continuous continuous listing\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1499
-+#: ../netstat.c:1512
-+#, c-format
- msgid " -l, --listening display listening server sockets\n"
- msgstr ""
-
--#: ../netstat.c:1500
-+#: ../netstat.c:1513
-+#, c-format
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
-
--#: ../netstat.c:1501
-+#: ../netstat.c:1514
-+#, c-format
- msgid " -o, --timers display timers\n"
- msgstr ""
-
--#: ../netstat.c:1502 ../route.c:89
-+#: ../netstat.c:1515 ../route.c:89
-+#, c-format
- msgid ""
- " -F, --fib display Forwarding Information Base "
- "(default)\n"
- msgstr ""
-
--#: ../netstat.c:1503 ../route.c:90
-+#: ../netstat.c:1516 ../route.c:90
-+#, c-format
- msgid ""
- " -C, --cache display routing cache instead of FIB\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1505
-+#: ../netstat.c:1518
-+#, c-format
- msgid ""
--" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
--"--netrom\n"
-+" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
-+"netrom\n"
- msgstr ""
-
--#: ../netstat.c:1506 ../route.c:92
-+#: ../netstat.c:1519
- #, c-format
--msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
- msgstr ""
-
--#: ../netstat.c:1507 ../route.c:93
-+#: ../netstat.c:1520 ../route.c:93
-+#, c-format
- msgid " List of possible address families (which support routing):\n"
- msgstr ""
-
--#: ../netstat.c:1732
-+#: ../netstat.c:1753
-+#, c-format
- msgid "Active Internet connections "
- msgstr ""
-
--#: ../netstat.c:1742
-+#: ../netstat.c:1763
-+#, c-format
- msgid ""
- "\n"
--"Proto Recv-Q Send-Q Local Address Foreign Address State "
--" "
-+"Proto Recv-Q Send-Q Local Address Foreign Address "
-+"State "
- msgstr ""
-
--#: ../netstat.c:1744
-+#: ../netstat.c:1765
-+#, c-format
- msgid " User Inode "
- msgstr ""
-
--#: ../netstat.c:1747
-+#: ../netstat.c:1768
-+#, c-format
- msgid " Timer"
- msgstr ""
-
--#: ../netstat.c:1777
-+#: ../netstat.c:1798
-+#, c-format
- msgid "IPv4 Group Memberships\n"
- msgstr ""
-
--#: ../netstat.c:1778
-+#: ../netstat.c:1799
-+#, c-format
- msgid "Interface RefCnt Group\n"
- msgstr ""
-
-@@ -986,23 +1166,28 @@ msgid "rarp: cannot set entry from %s:%u\n"
- msgstr ""
-
- #: ../rarp.c:176
-+#, c-format
- msgid "Usage: rarp -a list entries in cache.\n"
- msgstr ""
-
- #: ../rarp.c:177
-+#, c-format
- msgid " rarp -d <hostname> delete entry from cache.\n"
- msgstr ""
-
- #: ../rarp.c:178
-+#, c-format
- msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
- msgstr ""
-
- #: ../rarp.c:179
-+#, c-format
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
-
- #: ../rarp.c:180
-+#, c-format
- msgid ""
- " rarp -V display program version.\n"
- "\n"
-@@ -1019,38 +1204,50 @@ msgid "rarp: %s: unknown hardware type.\n"
- msgstr ""
-
- #: ../route.c:80
-+#, c-format
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
-
- #: ../route.c:81
-+#, c-format
- msgid ""
- " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
- "\n"
- msgstr ""
-
- #: ../route.c:83
-+#, c-format
- msgid ""
- " route {-h|--help} [<AF>] Detailed usage syntax for "
- "specified AF.\n"
- msgstr ""
-
- #: ../route.c:84
-+#, c-format
- msgid ""
- " route {-V|--version} Display version/author and "
- "exit.\n"
- "\n"
- msgstr ""
-
-+#: ../route.c:92
-+#, c-format
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr ""
-+
- #: ../plipconfig.c:66
-+#, c-format
- msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
- msgstr ""
-
- #: ../plipconfig.c:67
-+#, c-format
- msgid " [nibble NN] [trigger NN]\n"
- msgstr ""
-
- #: ../plipconfig.c:68
-+#, c-format
- msgid " plipconfig -V | --version\n"
- msgstr ""
-
-@@ -1060,61 +1257,75 @@ msgid "%s\tnibble %lu trigger %lu\n"
- msgstr ""
-
- #: ../iptunnel.c:85
-+#, c-format
- msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
- msgstr ""
-
- #: ../iptunnel.c:86
-+#, c-format
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
-
- #: ../iptunnel.c:87
-+#, c-format
- msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
- msgstr ""
-
- #: ../iptunnel.c:88
-+#, c-format
- msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
- msgstr ""
-
- #: ../iptunnel.c:89
-+#, c-format
- msgid ""
- " iptunnel -V | --version\n"
- "\n"
- msgstr ""
-
- #: ../iptunnel.c:90
-+#, c-format
- msgid "Where: NAME := STRING\n"
- msgstr ""
-
- #: ../iptunnel.c:91
-+#, c-format
- msgid " ADDR := { IP_ADDRESS | any }\n"
- msgstr ""
-
- #: ../iptunnel.c:92
-+#, c-format
- msgid " TOS := { NUMBER | inherit }\n"
- msgstr ""
-
- #: ../iptunnel.c:93
-+#, c-format
- msgid " TTL := { 1..255 | inherit }\n"
- msgstr ""
-
- #: ../iptunnel.c:94
-+#, c-format
- msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
- msgstr ""
-
- #: ../iptunnel.c:332
-+#, c-format
- msgid "Keys are not allowed with ipip and sit.\n"
- msgstr ""
-
- #: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr ""
-
- #: ../iptunnel.c:367
-+#, c-format
- msgid "ttl != 0 and noptmudisc are incompatible\n"
- msgstr ""
-
- #: ../iptunnel.c:379
-+#, c-format
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
- msgstr ""
-
-@@ -1128,22 +1339,27 @@ msgid "unknown"
- msgstr ""
-
- #: ../iptunnel.c:453
-+#, c-format
- msgid " Drop packets out of sequence.\n"
- msgstr ""
-
- #: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
- msgstr ""
-
- #: ../iptunnel.c:457
-+#, c-format
- msgid " Sequence packets on output.\n"
- msgstr ""
-
- #: ../iptunnel.c:459
-+#, c-format
- msgid " Checksum output packets.\n"
- msgstr ""
-
- #: ../iptunnel.c:487
-+#, c-format
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
- msgstr ""
-
-@@ -1153,10 +1369,12 @@ msgid "Failed to get type of [%s]\n"
- msgstr ""
-
- #: ../iptunnel.c:516
-+#, c-format
- msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
- msgstr ""
-
- #: ../iptunnel.c:519
-+#, c-format
- msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
- msgstr ""
-
-@@ -1323,287 +1541,487 @@ msgstr ""
-
- #: ../statistics.c:99
- #, c-format
--msgid "address mask request: %u"
-+msgid "address mask request: %u"
-+msgstr ""
-+
-+#. ?
-+#: ../statistics.c:100 ../statistics.c:113
-+#, c-format
-+msgid "address mask replies: %u"
-+msgstr ""
-+
-+#. ?
-+#: ../statistics.c:101
-+#, c-format
-+msgid "%u ICMP messages sent"
-+msgstr ""
-+
-+#: ../statistics.c:102
-+#, c-format
-+msgid "%u ICMP messages failed"
-+msgstr ""
-+
-+#: ../statistics.c:104
-+#, c-format
-+msgid "time exceeded: %u"
-+msgstr ""
-+
-+#. ?
-+#: ../statistics.c:106
-+#, c-format
-+msgid "source quench: %u"
-+msgstr ""
-+
-+#: ../statistics.c:107
-+#, c-format
-+msgid "redirect: %u"
-+msgstr ""
-+
-+#: ../statistics.c:108
-+#, c-format
-+msgid "echo request: %u"
-+msgstr ""
-+
-+#: ../statistics.c:110
-+#, c-format
-+msgid "timestamp requests: %u"
-+msgstr ""
-+
-+#: ../statistics.c:111
-+#, c-format
-+msgid "timestamp replies: %u"
-+msgstr ""
-+
-+#: ../statistics.c:112
-+#, c-format
-+msgid "address mask requests: %u"
-+msgstr ""
-+
-+#: ../statistics.c:118
-+#, c-format
-+msgid "RTO algorithm is %s"
-+msgstr ""
-+
-+#: ../statistics.c:122
-+#, c-format
-+msgid "%u active connections openings"
-+msgstr ""
-+
-+#: ../statistics.c:123
-+#, c-format
-+msgid "%u passive connection openings"
-+msgstr ""
-+
-+#: ../statistics.c:124
-+#, c-format
-+msgid "%u failed connection attempts"
-+msgstr ""
-+
-+#: ../statistics.c:125
-+#, c-format
-+msgid "%u connection resets received"
-+msgstr ""
-+
-+#: ../statistics.c:126
-+#, c-format
-+msgid "%u connections established"
-+msgstr ""
-+
-+#: ../statistics.c:127
-+#, c-format
-+msgid "%u segments received"
-+msgstr ""
-+
-+#: ../statistics.c:128
-+#, c-format
-+msgid "%u segments send out"
-+msgstr ""
-+
-+#: ../statistics.c:129
-+#, c-format
-+msgid "%u segments retransmited"
-+msgstr ""
-+
-+#: ../statistics.c:130
-+#, c-format
-+msgid "%u bad segments received."
-+msgstr ""
-+
-+#: ../statistics.c:131
-+#, c-format
-+msgid "%u resets sent"
-+msgstr ""
-+
-+#: ../statistics.c:136
-+#, c-format
-+msgid "%u packets received"
-+msgstr ""
-+
-+#: ../statistics.c:137
-+#, c-format
-+msgid "%u packets to unknown port received."
-+msgstr ""
-+
-+#: ../statistics.c:138
-+#, c-format
-+msgid "%u packet receive errors"
-+msgstr ""
-+
-+#: ../statistics.c:139
-+#, c-format
-+msgid "%u packets sent"
-+msgstr ""
-+
-+#: ../statistics.c:144
-+#, c-format
-+msgid "%u SYN cookies sent"
-+msgstr ""
-+
-+#: ../statistics.c:145
-+#, c-format
-+msgid "%u SYN cookies received"
-+msgstr ""
-+
-+#: ../statistics.c:146
-+#, c-format
-+msgid "%u invalid SYN cookies received"
-+msgstr ""
-+
-+#: ../statistics.c:148
-+#, c-format
-+msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgstr ""
-+
-+#: ../statistics.c:150
-+#, c-format
-+msgid "%u packets pruned from receive queue because of socket buffer overrun"
-+msgstr ""
-+
-+#. obsolete: 2.2.0 doesn't do that anymore
-+#: ../statistics.c:153
-+#, c-format
-+msgid "%u packets pruned from receive queue"
-+msgstr ""
-+
-+#: ../statistics.c:154
-+#, c-format
-+msgid ""
-+"%u packets dropped from out-of-order queue because of socket buffer overrun"
-+msgstr ""
-+
-+#: ../statistics.c:156
-+#, c-format
-+msgid "%u ICMP packets dropped because they were out-of-window"
-+msgstr ""
-+
-+#: ../statistics.c:158
-+#, c-format
-+msgid "%u ICMP packets dropped because socket was locked"
-+msgstr ""
-+
-+#: ../statistics.c:160
-+#, c-format
-+msgid "%u TCP sockets finished time wait in fast timer"
-+msgstr ""
-+
-+#: ../statistics.c:161
-+#, c-format
-+msgid "%u time wait sockets recycled by time stamp"
-+msgstr ""
-+
-+#: ../statistics.c:162
-+#, c-format
-+msgid "%u TCP sockets finished time wait in slow timer"
-+msgstr ""
-+
-+#: ../statistics.c:163
-+#, c-format
-+msgid "%u passive connections rejected because of time stamp"
-+msgstr ""
-+
-+#: ../statistics.c:165
-+#, c-format
-+msgid "%u active connections rejected because of time stamp"
-+msgstr ""
-+
-+#: ../statistics.c:167
-+#, c-format
-+msgid "%u packets rejects in established connections because of timestamp"
- msgstr ""
-
--#. ?
--#: ../statistics.c:100 ../statistics.c:113
-+#: ../statistics.c:169
- #, c-format
--msgid "address mask replies: %u"
-+msgid "%u delayed acks sent"
- msgstr ""
-
--#. ?
--#: ../statistics.c:101
-+#: ../statistics.c:170
- #, c-format
--msgid "%u ICMP messages sent"
-+msgid "%u delayed acks further delayed because of locked socket"
- msgstr ""
-
--#: ../statistics.c:102
-+#: ../statistics.c:172
- #, c-format
--msgid "%u ICMP messages failed"
-+msgid "Quick ack mode was activated %u times"
- msgstr ""
-
--#: ../statistics.c:104
-+#: ../statistics.c:173
- #, c-format
--msgid "time exceeded: %u"
-+msgid "%u times the listen queue of a socket overflowed"
- msgstr ""
-
--#. ?
--#: ../statistics.c:106
-+#: ../statistics.c:175
- #, c-format
--msgid "source quench: %u"
-+msgid "%u SYNs to LISTEN sockets dropped"
- msgstr ""
-
--#: ../statistics.c:107
-+#: ../statistics.c:176
- #, c-format
--msgid "redirect: %u"
-+msgid "%u packets directly queued to recvmsg prequeue."
- msgstr ""
-
--#: ../statistics.c:108
-+#: ../statistics.c:178
- #, c-format
--msgid "echo request: %u"
-+msgid "%u bytes directly in process context from backlog"
- msgstr ""
-
--#: ../statistics.c:110
-+#: ../statistics.c:179
- #, c-format
--msgid "timestamp requests: %u"
-+msgid "%u bytes directly received in process context from prequeue"
- msgstr ""
-
--#: ../statistics.c:111
-+#: ../statistics.c:181
- #, c-format
--msgid "timestamp replies: %u"
-+msgid "%u packets dropped from prequeue"
- msgstr ""
-
--#: ../statistics.c:112
-+#: ../statistics.c:182
- #, c-format
--msgid "address mask requests: %u"
-+msgid "%u packet headers predicted"
- msgstr ""
-
--#: ../statistics.c:118
-+#: ../statistics.c:183
- #, c-format
--msgid "RTO algorithm is %s"
-+msgid "%u packets header predicted and directly queued to user"
- msgstr ""
-
--#: ../statistics.c:122
-+#: ../statistics.c:185
- #, c-format
--msgid "%u active connections openings"
-+msgid "Ran %u times out of system memory during packet sending"
- msgstr ""
-
--#: ../statistics.c:123
-+#: ../statistics.c:187
- #, c-format
--msgid "%u passive connection openings"
-+msgid "%u acknowledgments not containing data payload received"
- msgstr ""
-
--#: ../statistics.c:124
-+#: ../statistics.c:188
- #, c-format
--msgid "%u failed connection attempts"
-+msgid "%u predicted acknowledgments"
- msgstr ""
-
--#: ../statistics.c:125
-+#: ../statistics.c:189
- #, c-format
--msgid "%u connection resets received"
-+msgid "%u times recovered from packet loss due to fast retransmit"
- msgstr ""
-
--#: ../statistics.c:126
-+#: ../statistics.c:190
- #, c-format
--msgid "%u connections established"
-+msgid "%u times recovered from packet loss by selective acknowledgements"
- msgstr ""
-
--#: ../statistics.c:127
-+#: ../statistics.c:191
- #, c-format
--msgid "%u segments received"
-+msgid "%u bad SACK blocks received"
- msgstr ""
-
--#: ../statistics.c:128
-+#: ../statistics.c:192
- #, c-format
--msgid "%u segments send out"
-+msgid "Detected reordering %u times using FACK"
- msgstr ""
-
--#: ../statistics.c:129
-+#: ../statistics.c:193
- #, c-format
--msgid "%u segments retransmited"
-+msgid "Detected reordering %u times using SACK"
- msgstr ""
-
--#: ../statistics.c:130
-+#: ../statistics.c:194
- #, c-format
--msgid "%u bad segments received."
-+msgid "Detected reordering %u times using time stamp"
- msgstr ""
-
--#: ../statistics.c:131
-+#: ../statistics.c:195
- #, c-format
--msgid "%u resets sent"
-+msgid "Detected reordering %u times using reno fast retransmit"
- msgstr ""
-
--#: ../statistics.c:136
-+#: ../statistics.c:196
- #, c-format
--msgid "%u packets received"
-+msgid "%u congestion windows fully recovered without slow start"
- msgstr ""
-
--#: ../statistics.c:137
-+#: ../statistics.c:197
- #, c-format
--msgid "%u packets to unknown port received."
-+msgid "%u congestion windows partially recovered using Hoe heuristic"
- msgstr ""
-
--#: ../statistics.c:138
-+#: ../statistics.c:198
- #, c-format
--msgid "%u packet receive errors"
-+msgid "%u congestion window recovered without slow start using DSACK"
- msgstr ""
-
--#: ../statistics.c:139
-+#: ../statistics.c:199
- #, c-format
--msgid "%u packets sent"
-+msgid "%u congestion windows recovered without slow start after partial ack"
- msgstr ""
-
--#: ../statistics.c:144
-+#: ../statistics.c:200
- #, c-format
--msgid "%u SYN cookies sent"
-+msgid "%u retransmits lost"
- msgstr ""
-
--#: ../statistics.c:145
-+#: ../statistics.c:201
- #, c-format
--msgid "%u SYN cookies received"
-+msgid "%u timeouts after reno fast retransmit"
- msgstr ""
-
--#: ../statistics.c:146
-+#: ../statistics.c:202
- #, c-format
--msgid "%u invalid SYN cookies received"
-+msgid "%u timeouts after SACK recovery"
- msgstr ""
-
--#: ../statistics.c:148
-+#: ../statistics.c:203
- #, c-format
--msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgid "%u timeouts in loss state"
- msgstr ""
-
--#: ../statistics.c:150
-+#: ../statistics.c:204
- #, c-format
--msgid "%u packets pruned from receive queue because of socket buffer overrun"
-+msgid "%u fast retransmits"
- msgstr ""
-
--#. obsolete: 2.2.0 doesn't do that anymore
--#: ../statistics.c:153
-+#: ../statistics.c:205
- #, c-format
--msgid "%u packets pruned from receive queue"
-+msgid "%u forward retransmits"
- msgstr ""
-
--#: ../statistics.c:154
-+#: ../statistics.c:206
- #, c-format
--msgid ""
--"%u packets dropped from out-of-order queue because of socket buffer overrun"
-+msgid "%u retransmits in slow start"
- msgstr ""
-
--#: ../statistics.c:156
-+#: ../statistics.c:207
- #, c-format
--msgid "%u ICMP packets dropped because they were out-of-window"
-+msgid "%u other TCP timeouts"
- msgstr ""
-
--#: ../statistics.c:158
-+#: ../statistics.c:208
- #, c-format
--msgid "%u ICMP packets dropped because socket was locked"
-+msgid "%u reno fast retransmits failed"
- msgstr ""
-
--#: ../statistics.c:160
-+#: ../statistics.c:209
- #, c-format
--msgid "%u TCP sockets finished time wait in fast timer"
-+msgid "%u SACK retransmits failed"
- msgstr ""
-
--#: ../statistics.c:161
-+#: ../statistics.c:210
- #, c-format
--msgid "%u time wait sockets recycled by time stamp"
-+msgid "%u times receiver scheduled too late for direct processing"
- msgstr ""
-
--#: ../statistics.c:162
-+#: ../statistics.c:211
- #, c-format
--msgid "%u TCP sockets finished time wait in slow timer"
-+msgid "%u packets collapsed in receive queue due to low socket buffer"
- msgstr ""
-
--#: ../statistics.c:163
-+#: ../statistics.c:212
- #, c-format
--msgid "%u passive connections rejected because of time stamp"
-+msgid "%u DSACKs sent for old packets"
- msgstr ""
-
--#: ../statistics.c:165
-+#: ../statistics.c:213
- #, c-format
--msgid "%u active connections rejected because of time stamp"
-+msgid "%u DSACKs sent for out of order packets"
- msgstr ""
-
--#: ../statistics.c:167
-+#: ../statistics.c:214
- #, c-format
--msgid "%u packets rejects in established connections because of timestamp"
-+msgid "%u DSACKs received"
- msgstr ""
-
--#: ../statistics.c:169
-+#: ../statistics.c:215
- #, c-format
--msgid "%u delayed acks sent"
-+msgid "%u DSACKs for out of order packets received"
- msgstr ""
-
--#: ../statistics.c:170
-+#: ../statistics.c:216
- #, c-format
--msgid "%u delayed acks further delayed because of locked socket"
-+msgid "%u connections reset due to unexpected SYN"
- msgstr ""
-
--#: ../statistics.c:172
-+#: ../statistics.c:217
- #, c-format
--msgid "Quick ack mode was activated %u times"
-+msgid "%u connections reset due to unexpected data"
- msgstr ""
-
--#: ../statistics.c:173
-+#: ../statistics.c:218
- #, c-format
--msgid "%u times the listen queue of a socket overflowed"
-+msgid "%u connections reset due to early user close"
- msgstr ""
-
--#: ../statistics.c:175
-+#: ../statistics.c:219
- #, c-format
--msgid "%u SYNs to LISTEN sockets ignored"
-+msgid "%u connections aborted due to memory pressure"
- msgstr ""
-
--#: ../statistics.c:176
-+#: ../statistics.c:220
- #, c-format
--msgid "%u packets directly queued to recvmsg prequeue."
-+msgid "%u connections aborted due to timeout"
- msgstr ""
-
--#: ../statistics.c:178
-+#: ../statistics.c:221
- #, c-format
--msgid "%u packets directly received from backlog"
-+msgid "%u connections aborted after user close in linger timeout"
- msgstr ""
-
--#: ../statistics.c:180
-+#: ../statistics.c:222
- #, c-format
--msgid "%u packets directly received from prequeue"
-+msgid "%u times unabled to send RST due to no memory"
- msgstr ""
-
--#: ../statistics.c:182
-+#: ../statistics.c:223
- #, c-format
--msgid "%u packets dropped from prequeue"
-+msgid "TCP ran low on memory %u times"
- msgstr ""
-
--#: ../statistics.c:183
-+#: ../statistics.c:224
- #, c-format
--msgid "%u packets header predicted"
-+msgid "%u TCP data loss events"
- msgstr ""
-
--#: ../statistics.c:184
-+#: ../statistics.c:225
- #, c-format
--msgid "%u packets header predicted and directly queued to user"
-+msgid "%u congestion windows recovered without slow start by DSACK"
- msgstr ""
-
--#: ../statistics.c:186
-+#: ../statistics.c:227
- #, c-format
--msgid "Ran %u times out of system memory during packet sending"
-+msgid "%u classic Reno fast retransmits failed"
- msgstr ""
-
--#: ../statistics.c:253
-+#: ../statistics.c:294
- msgid "enabled"
- msgstr ""
-
--#: ../statistics.c:253
-+#: ../statistics.c:294
- msgid "disabled"
- msgstr ""
-
--#: ../statistics.c:336
-+#: ../statistics.c:377
- msgid "error parsing /proc/net/snmp"
- msgstr ""
-
--#: ../statistics.c:349
-+#: ../statistics.c:390
- msgid "cannot open /proc/net/snmp"
- msgstr ""
-
-@@ -1617,7 +2035,7 @@ msgstr ""
- msgid "Cannot change line discipline to `%s'.\n"
- msgstr ""
-
--#: ../lib/af.c:153 ../lib/hw.c:156
-+#: ../lib/af.c:153 ../lib/hw.c:161
- msgid "UNSPEC"
- msgstr ""
-
-@@ -1633,11 +2051,11 @@ msgstr ""
- msgid "IPv6"
- msgstr ""
-
--#: ../lib/af.c:164 ../lib/hw.c:177
-+#: ../lib/af.c:164 ../lib/hw.c:182
- msgid "AMPR AX.25"
- msgstr ""
-
--#: ../lib/af.c:167 ../lib/hw.c:183
-+#: ../lib/af.c:167 ../lib/hw.c:188
- msgid "AMPR NET/ROM"
- msgstr ""
-
-@@ -1649,7 +2067,7 @@ msgstr ""
- msgid "Appletalk DDP"
- msgstr ""
-
--#: ../lib/af.c:176 ../lib/hw.c:218
-+#: ../lib/af.c:176 ../lib/hw.c:223
- msgid "Econet"
- msgstr ""
-
-@@ -1657,19 +2075,21 @@ msgstr ""
- msgid "CCITT X.25"
- msgstr ""
-
--#: ../lib/af.c:182 ../lib/hw.c:180
-+#: ../lib/af.c:182 ../lib/hw.c:185
- msgid "AMPR ROSE"
- msgstr ""
-
--#: ../lib/af.c:185 ../lib/hw.c:168
-+#: ../lib/af.c:185 ../lib/hw.c:173
- msgid "Ash"
- msgstr ""
-
- #: ../lib/af.c:243
-+#, c-format
- msgid "Please don't supply more than one address family.\n"
- msgstr ""
-
- #: ../lib/af.c:304
-+#, c-format
- msgid "Too much address family arguments.\n"
- msgstr ""
-
-@@ -1694,11 +2114,12 @@ msgid "in_arcnet(%s): trailing junk!\n"
- msgstr ""
-
- #: ../lib/ash.c:81
-+#, c-format
- msgid "Malformed Ash address"
- msgstr ""
-
- #: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
--#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
-+#: ../lib/inet.c:259 ../lib/inet6.c:145 ../lib/ipx.c:81 ../lib/netrom.c:78
- #: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
- msgid "[NONE SET]"
- msgstr ""
-@@ -1712,22 +2133,21 @@ msgid "Callsign too long"
- msgstr ""
-
- #: ../lib/ax25_gr.c:47
-+#, c-format
- msgid "AX.25 not configured in this system.\n"
- msgstr ""
-
- #: ../lib/ax25_gr.c:50
-+#, c-format
- msgid "Kernel AX.25 routing table\n"
- msgstr ""
-
- #. xxx
- #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
-+#, c-format
- msgid "Destination Iface Use\n"
- msgstr ""
-
--#: ../lib/ddp_gr.c:21
--msgid "Routing table for `ddp' not yet supported.\n"
--msgstr ""
--
- #: ../lib/ether.c:74 ../lib/ether.c:91
- #, c-format
- msgid "in_ether(%s): invalid ether address!\n"
-@@ -1783,225 +2203,260 @@ msgstr ""
- msgid "in_hippi(%s): trailing junk!\n"
- msgstr ""
-
--#: ../lib/hw.c:155
-+#: ../lib/hw.c:160
- msgid "Local Loopback"
- msgstr ""
-
--#: ../lib/hw.c:158
-+#: ../lib/hw.c:163
- msgid "Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:159
-+#: ../lib/hw.c:164
- msgid "VJ Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:160
-+#: ../lib/hw.c:165
- msgid "6-bit Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:161
-+#: ../lib/hw.c:166
- msgid "VJ 6-bit Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:162
-+#: ../lib/hw.c:167
- msgid "Adaptive Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:165
-+#: ../lib/hw.c:170
- msgid "Ethernet"
- msgstr ""
-
--#: ../lib/hw.c:171
-+#: ../lib/hw.c:176
- msgid "Fiber Distributed Data Interface"
- msgstr ""
-
--#: ../lib/hw.c:174
-+#: ../lib/hw.c:179
- msgid "HIPPI"
- msgstr ""
-
--#: ../lib/hw.c:186
-+#: ../lib/hw.c:191
- msgid "generic X.25"
- msgstr ""
-
--#: ../lib/hw.c:189
-+#: ../lib/hw.c:194
- msgid "IPIP Tunnel"
- msgstr ""
-
--#: ../lib/hw.c:192
-+#: ../lib/hw.c:197
- msgid "Point-to-Point Protocol"
- msgstr ""
-
--#: ../lib/hw.c:195
-+#: ../lib/hw.c:200
- msgid "(Cisco)-HDLC"
- msgstr ""
-
--#: ../lib/hw.c:196
-+#: ../lib/hw.c:201
- msgid "LAPB"
- msgstr ""
-
--#: ../lib/hw.c:199
-+#: ../lib/hw.c:204
- msgid "ARCnet"
- msgstr ""
-
--#: ../lib/hw.c:202
-+#: ../lib/hw.c:207
- msgid "Frame Relay DLCI"
- msgstr ""
-
--#: ../lib/hw.c:203
-+#: ../lib/hw.c:208
- msgid "Frame Relay Access Device"
- msgstr ""
-
--#: ../lib/hw.c:206
-+#: ../lib/hw.c:211
- msgid "IPv6-in-IPv4"
- msgstr ""
-
--#: ../lib/hw.c:209
-+#: ../lib/hw.c:214
- msgid "IrLAP"
- msgstr ""
-
--#: ../lib/hw.c:212
-+#: ../lib/hw.c:217
- msgid "16/4 Mbps Token Ring"
- msgstr ""
-
--#: ../lib/hw.c:214
-+#: ../lib/hw.c:219
- msgid "16/4 Mbps Token Ring (New)"
- msgstr ""
-
--#: ../lib/inet.c:153 ../lib/inet6.c:79
-+#: ../lib/hw.c:226
-+msgid "Generic EUI-64"
-+msgstr ""
-+
-+#: ../lib/inet.c:153 ../lib/inet6.c:94
- #, c-format
- msgid "rresolve: unsupport address family %d !\n"
- msgstr ""
-
--#: ../lib/inet6.c:131
-+#: ../lib/inet6.c:147
- msgid "[UNKNOWN]"
- msgstr ""
-
- #: ../lib/inet6_gr.c:71
-+#, c-format
- msgid "INET6 (IPv6) not configured in this system.\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:74
-+#: ../lib/inet6_gr.c:76
-+#, c-format
-+msgid "Kernel IPv6 routing cache\n"
-+msgstr ""
-+
-+#: ../lib/inet6_gr.c:78
-+#, c-format
- msgid "Kernel IPv6 routing table\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:76
-+#: ../lib/inet6_gr.c:80
-+#, c-format
- msgid ""
--"Destination Next Hop "
--" Flags Metric Ref Use Iface\n"
-+"Destination Next Hop Flag Met Ref Use "
-+"If\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:150
-+#: ../lib/inet6_gr.c:174
-+#, c-format
- msgid "Kernel IPv6 Neighbour Cache\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:153
-+#: ../lib/inet6_gr.c:177
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:157
-+#: ../lib/inet6_gr.c:181
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State Stale(sec) Delete(sec)\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:46
-+#, c-format
- msgid "Usage: inet6_route [-vF] del Target\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:47
-+#, c-format
- msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:48
-+#, c-format
- msgid " inet6_route [-FC] flush NOT supported\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:188
-+#, c-format
- msgid "Flushing `inet6' routing table not supported\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
-+#, c-format
- msgid "INET (IPv4) not configured in this system.\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:53
-+#, c-format
- msgid "Kernel IP routing table\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:56
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:59
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:62
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface MSS Window irtt\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:237
-+#, c-format
- msgid "Kernel IP routing cache\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:258
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:261
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:266
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt HH Arp\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:290
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:50
-+#: ../lib/inet_sr.c:51
-+#, c-format
- msgid ""
- "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
- "[[dev] If]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:51
-+#: ../lib/inet_sr.c:52
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:52
-+#: ../lib/inet_sr.c:53
-+#, c-format
- msgid ""
- " [netmask N] [mss Mss] [window W] [irtt I]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:53
-+#: ../lib/inet_sr.c:54
-+#, c-format
- msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:54
-+#: ../lib/inet_sr.c:55
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:55
-+#: ../lib/inet_sr.c:56
-+#, c-format
- msgid " inet_route [-FC] flush NOT supported\n"
- msgstr ""
-
-@@ -2011,14 +2466,17 @@ msgid "route: %s: cannot use a NETWORK as gateway!\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:174
-+#, c-format
- msgid "route: Invalid MSS/MTU.\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
- msgstr ""
-
-@@ -2033,73 +2491,90 @@ msgid "route: bogus netmask %s\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
- msgstr ""
-
- #: ../lib/ipx_gr.c:52
-+#, c-format
- msgid "IPX not configured in this system.\n"
- msgstr ""
-
- #: ../lib/ipx_gr.c:56
-+#, c-format
- msgid "Kernel IPX routing table\n"
- msgstr ""
-
- #. xxx
- #: ../lib/ipx_gr.c:57
-+#, c-format
- msgid "Destination Router Net Router Node\n"
- msgstr ""
-
- #: ../lib/ipx_sr.c:33
-+#, c-format
- msgid "IPX: this needs to be written\n"
- msgstr ""
-
- #: ../lib/masq_info.c:198
-+#, c-format
- msgid "IP masquerading entries\n"
- msgstr ""
-
- #: ../lib/masq_info.c:201
-+#, c-format
- msgid "prot expire source destination ports\n"
- msgstr ""
-
- #: ../lib/masq_info.c:204
-+#, c-format
- msgid ""
--"prot expire initseq delta prevd source destination "
--" ports\n"
-+"prot expire initseq delta prevd source "
-+"destination ports\n"
- msgstr ""
-
- #: ../lib/netrom_gr.c:48
-+#, c-format
- msgid "NET/ROM not configured in this system.\n"
- msgstr ""
-
- #: ../lib/netrom_gr.c:51
-+#, c-format
- msgid "Kernel NET/ROM routing table\n"
- msgstr ""
-
- #: ../lib/netrom_gr.c:52
-+#, c-format
- msgid "Destination Mnemonic Quality Neighbour Iface\n"
- msgstr ""
-
- #: ../lib/netrom_sr.c:34
-+#, c-format
- msgid "netrom usage\n"
- msgstr ""
-
- #: ../lib/netrom_sr.c:44
-+#, c-format
- msgid "NET/ROM: this needs to be written\n"
- msgstr ""
-
- #: ../lib/ppp.c:44
-+#, c-format
- msgid "You cannot start PPP with this program.\n"
- msgstr ""
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
- msgstr ""
-
-@@ -2108,287 +2583,314 @@ msgid "Node address must be ten digits"
- msgstr ""
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
- msgstr ""
-
- #: ../lib/rose_gr.c:54
-+#, c-format
- msgid "Kernel ROSE routing table\n"
- msgstr ""
-
--#: ../lib/tr.c:70 ../lib/tr.c:85
-+#: ../lib/tr.c:86 ../lib/tr.c:101
- #, c-format
- msgid "in_tr(%s): invalid token ring address!\n"
- msgstr ""
-
--#: ../lib/tr.c:97
-+#: ../lib/tr.c:113
- #, c-format
- msgid "in_tr(%s): trailing : ignored!\n"
- msgstr ""
-
--#: ../lib/tr.c:109
-+#: ../lib/tr.c:125
- #, c-format
- msgid "in_tr(%s): trailing junk!\n"
- msgstr ""
-
--#: ../lib/interface.c:164
-+#: ../lib/interface.c:174
- #, c-format
- msgid "warning: no inet socket available: %s\n"
- msgstr ""
-
--#: ../lib/interface.c:316
-+#: ../lib/interface.c:323
- #, c-format
- msgid "Warning: cannot open %s (%s). Limited output.\n"
- msgstr ""
-
- #. Give better error message for this case.
--#: ../lib/interface.c:556
-+#: ../lib/interface.c:570
- msgid "Device not found"
- msgstr ""
-
--#: ../lib/interface.c:560
-+#: ../lib/interface.c:574
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
- msgstr ""
-
--#: ../lib/interface.c:593
-+#: ../lib/interface.c:607
- msgid " - no statistics available -"
- msgstr ""
-
--#: ../lib/interface.c:597
-+#: ../lib/interface.c:611
-+#, c-format
- msgid "[NO FLAGS]"
- msgstr ""
-
--#: ../lib/interface.c:673
-+#: ../lib/interface.c:687
- #, c-format
- msgid "%-9.9s Link encap:%s "
- msgstr ""
-
--#: ../lib/interface.c:678
-+#: ../lib/interface.c:692
- #, c-format
- msgid "HWaddr %s "
- msgstr ""
-
--#: ../lib/interface.c:681
-+#: ../lib/interface.c:695
- #, c-format
- msgid "Media:%s"
- msgstr ""
-
--#: ../lib/interface.c:683
-+#: ../lib/interface.c:697
-+#, c-format
- msgid "(auto)"
- msgstr ""
-
--#: ../lib/interface.c:690
-+#: ../lib/interface.c:704
- #, c-format
- msgid " %s addr:%s "
- msgstr ""
-
--#: ../lib/interface.c:693
-+#: ../lib/interface.c:707
- #, c-format
- msgid " P-t-P:%s "
- msgstr ""
-
--#: ../lib/interface.c:696
-+#: ../lib/interface.c:710
- #, c-format
- msgid " Bcast:%s "
- msgstr ""
-
--#: ../lib/interface.c:698
-+#: ../lib/interface.c:712
- #, c-format
- msgid " Mask:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:715
-+#: ../lib/interface.c:729
- #, c-format
- msgid " inet6 addr: %s/%d"
- msgstr ""
-
--#: ../lib/interface.c:717
-+#: ../lib/interface.c:731
-+#, c-format
- msgid " Scope:"
- msgstr ""
-
--#: ../lib/interface.c:720
-+#: ../lib/interface.c:734
-+#, c-format
- msgid "Global"
- msgstr ""
-
--#: ../lib/interface.c:723
-+#: ../lib/interface.c:737
-+#, c-format
- msgid "Link"
- msgstr ""
-
--#: ../lib/interface.c:726
-+#: ../lib/interface.c:740
-+#, c-format
- msgid "Site"
- msgstr ""
-
--#: ../lib/interface.c:729
-+#: ../lib/interface.c:743
-+#, c-format
- msgid "Compat"
- msgstr ""
-
--#: ../lib/interface.c:732
-+#: ../lib/interface.c:746
-+#, c-format
- msgid "Host"
- msgstr ""
-
--#: ../lib/interface.c:735
-+#: ../lib/interface.c:749
-+#, c-format
- msgid "Unknown"
- msgstr ""
-
--#: ../lib/interface.c:750
-+#: ../lib/interface.c:764
- #, c-format
- msgid " IPX/Ethernet II addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:753
-+#: ../lib/interface.c:767
- #, c-format
- msgid " IPX/Ethernet SNAP addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:756
-+#: ../lib/interface.c:770
- #, c-format
- msgid " IPX/Ethernet 802.2 addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:759
-+#: ../lib/interface.c:773
- #, c-format
- msgid " IPX/Ethernet 802.3 addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:769
-+#: ../lib/interface.c:783
- #, c-format
- msgid " EtherTalk Phase 2 addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:778
-+#: ../lib/interface.c:792
- #, c-format
- msgid " econet addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:785
-+#: ../lib/interface.c:799
-+#, c-format
- msgid "[NO FLAGS] "
- msgstr ""
-
--#: ../lib/interface.c:787
-+#: ../lib/interface.c:801
-+#, c-format
- msgid "UP "
- msgstr ""
-
--#: ../lib/interface.c:789
-+#: ../lib/interface.c:803
-+#, c-format
- msgid "BROADCAST "
- msgstr ""
-
--#: ../lib/interface.c:791
-+#: ../lib/interface.c:805
-+#, c-format
- msgid "DEBUG "
- msgstr ""
-
--#: ../lib/interface.c:793
-+#: ../lib/interface.c:807
-+#, c-format
- msgid "LOOPBACK "
- msgstr ""
-
--#: ../lib/interface.c:795
-+#: ../lib/interface.c:809
-+#, c-format
- msgid "POINTOPOINT "
- msgstr ""
-
--#: ../lib/interface.c:797
-+#: ../lib/interface.c:811
-+#, c-format
- msgid "NOTRAILERS "
- msgstr ""
-
--#: ../lib/interface.c:799
-+#: ../lib/interface.c:813
-+#, c-format
- msgid "RUNNING "
- msgstr ""
-
--#: ../lib/interface.c:801
-+#: ../lib/interface.c:815
-+#, c-format
- msgid "NOARP "
- msgstr ""
-
--#: ../lib/interface.c:803
-+#: ../lib/interface.c:817
-+#, c-format
- msgid "PROMISC "
- msgstr ""
-
--#: ../lib/interface.c:805
-+#: ../lib/interface.c:819
-+#, c-format
- msgid "ALLMULTI "
- msgstr ""
-
--#: ../lib/interface.c:807
-+#: ../lib/interface.c:821
-+#, c-format
- msgid "SLAVE "
- msgstr ""
-
--#: ../lib/interface.c:809
-+#: ../lib/interface.c:823
-+#, c-format
- msgid "MASTER "
- msgstr ""
-
--#: ../lib/interface.c:811
-+#: ../lib/interface.c:825
-+#, c-format
- msgid "MULTICAST "
- msgstr ""
-
--#: ../lib/interface.c:814
-+#: ../lib/interface.c:828
-+#, c-format
- msgid "DYNAMIC "
- msgstr ""
-
- #. DONT FORGET TO ADD THE FLAGS IN ife_print_short
--#: ../lib/interface.c:817
-+#: ../lib/interface.c:831
- #, c-format
- msgid " MTU:%d Metric:%d"
- msgstr ""
-
--#: ../lib/interface.c:821
-+#: ../lib/interface.c:835
- #, c-format
- msgid " Outfill:%d Keepalive:%d"
- msgstr ""
-
--#: ../lib/interface.c:835
-+#: ../lib/interface.c:849
- #, c-format
- msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
- msgstr ""
-
--#: ../lib/interface.c:840
-+#: ../lib/interface.c:854
- #, c-format
- msgid " compressed:%lu\n"
- msgstr ""
-
--#: ../lib/interface.c:852
-+#: ../lib/interface.c:894
- #, c-format
- msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
- msgstr ""
-
--#: ../lib/interface.c:856
-+#: ../lib/interface.c:898
- #, c-format
- msgid " collisions:%lu "
- msgstr ""
-
--#: ../lib/interface.c:858
-+#: ../lib/interface.c:900
- #, c-format
- msgid "compressed:%lu "
- msgstr ""
-
--#: ../lib/interface.c:860
-+#: ../lib/interface.c:902
- #, c-format
- msgid "txqueuelen:%d "
- msgstr ""
-
--#: ../lib/interface.c:862
-+#: ../lib/interface.c:904
- #, c-format
- msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
- msgstr ""
-
--#: ../lib/interface.c:873
-+#: ../lib/interface.c:915
- #, c-format
- msgid "Interrupt:%d "
- msgstr ""
-
- #. Only print devices using it for
- #. I/O maps
--#: ../lib/interface.c:876
-+#: ../lib/interface.c:918
- #, c-format
- msgid "Base address:0x%x "
- msgstr ""
-
--#: ../lib/interface.c:878
-+#: ../lib/interface.c:920
- #, c-format
- msgid "Memory:%lx-%lx "
- msgstr ""
-
--#: ../lib/interface.c:881
-+#: ../lib/interface.c:923
- #, c-format
- msgid "DMA chan:%x "
- msgstr ""
-
- #: ../lib/sockets.c:63
-+#, c-format
- msgid "No usable address families found.\n"
- msgstr ""
-
-@@ -2413,14 +2915,17 @@ msgid "ip: argument is wrong: %s\n"
- msgstr ""
-
- #: ../ipmaddr.c:61
-+#, c-format
- msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
- msgstr ""
-
- #: ../ipmaddr.c:62
-+#, c-format
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
- msgstr ""
-
- #: ../ipmaddr.c:63
-+#, c-format
- msgid " ipmaddr -V | -version\n"
- msgstr ""
-
-@@ -2449,6 +2954,7 @@ msgid "slattach: tty_lock: (%s): %s\n"
- msgstr ""
-
- #: ../slattach.c:192
-+#, c-format
- msgid "slattach: cannot write PID file\n"
- msgstr ""
-
-@@ -2468,18 +2974,22 @@ msgid "slattach: tty_hangup(RAISE): %s\n"
- msgstr ""
-
- #: ../slattach.c:468
-+#, c-format
- msgid "slattach: tty name too long\n"
- msgstr ""
-
- #: ../slattach.c:498
-+#, c-format
- msgid "slattach: tty_open: cannot get current state!\n"
- msgstr ""
-
- #: ../slattach.c:505
-+#, c-format
- msgid "slattach: tty_open: cannot get current line disc!\n"
- msgstr ""
-
- #: ../slattach.c:513
-+#, c-format
- msgid "slattach: tty_open: cannot set RAW mode!\n"
- msgstr ""
-
-@@ -2489,6 +2999,7 @@ msgid "slattach: tty_open: cannot set %s bps!\n"
- msgstr ""
-
- #: ../slattach.c:530
-+#, c-format
- msgid "slattach: tty_open: cannot set 8N1 mode!\n"
- msgstr ""
-
-diff --git a/po/pt_BR.po b/po/pt_BR.po
-index 7c5dd37..9d94d5a 100644
---- a/po/pt_BR.po
-+++ b/po/pt_BR.po
-@@ -2,7 +2,7 @@
- # Copyright (C) 2000 Free Software Foundation, Inc.
- # Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 2000.
- #
--# $Id: pt_BR.po,v 1.7 2000/02/13 22:28:11 ralf Exp $
-+# $Id: pt_BR.po,v 1.8 2006/12/14 23:36:24 ecki Exp $
- # Brazilian portuguese translation for net-tools 1.54
- # Copyright (C) 1998, 1999 Free Software Foundation, Inc.
- # Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 1998-2000
-@@ -14,7 +14,7 @@ msgstr ""
- "PO-Revision-Date: 1999-03-01 02:38+0100\n"
- "Last-Translator: Arnaldo Carvalho de Melo <acme@conectiva.com.br>\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=ISO8859-9\n"
-+"Content-Type: text/plain; charset=iso-8859-9\n"
- "Content-Transfer-Encoding: 8bit\n"
-
- #: ../arp.c:110 ../arp.c:269
-@@ -2361,17 +2361,15 @@ msgstr "aten
- msgid "Warning: cannot open %s (%s). Limited output.\n"
- msgstr "Atenção: não foi possível abrir %s (%s). Saída limitada.\n"
-
--#. Give better error message for this case.
-+#. better translation?
- #: ../lib/interface.c:504
- msgid "Device not found"
--msgstr "%s: dispositivo não encontrado"
-+msgstr "dispositivo não encontrado"
-
- #: ../lib/interface.c:508
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
--msgstr ""
--"%s: erro obtendo informações da interface: %s\n"
--"\n"
-+msgstr "%s: erro obtendo informações da interface: %s\n"
-
- #: ../lib/sockets.c:59
- msgid "No usable address families found.\n"
-diff --git a/rarp.c b/rarp.c
-index aab05b3..ab8f710 100644
---- a/rarp.c
-+++ b/rarp.c
-@@ -3,7 +3,7 @@
- * that maintains the kernel's RARP cache. It is derived
- * from Fred N. van Kempen's arp command.
- *
-- * Version: $Id: rarp.c,v 1.6 2001/04/08 17:05:05 pb Exp $
-+ * Version: $Id: rarp.c,v 1.9 2007/12/02 02:19:52 ecki Exp $
- *
- * Usage: rarp -d hostname Delete entry
- * rarp -s hostname ethernet_address Add entry
-@@ -40,10 +40,11 @@
- #include "net-support.h"
- #include "version.h"
- #include "pathnames.h"
-+#include "proc.h"
-
- static char no_rarp_message[] = N_("This kernel does not support RARP.\n");
-
--static char version_string[] = RELEASE "\nrarp 1.03 (2001-04-04)\n";
-+static char *Release = RELEASE;
-
- static struct hwtype *hardware = NULL;
-
-@@ -154,7 +155,7 @@ static int rarp_file(int fd, const char *name)
-
- static int display_cache(void)
- {
-- FILE *fd = fopen(_PATH_PROCNET_RARP, "r");
-+ FILE *fd = proc_fopen(_PATH_PROCNET_RARP);
- char buffer[256];
- if (fd == NULL) {
- if (errno == ENOENT)
-@@ -225,7 +226,7 @@ int main(int argc, char **argv)
- case 'h':
- usage();
- case 'V':
-- fprintf(stderr, version_string);
-+ fprintf(stderr, "%s\n", Release);
- exit(E_VERSION);
- break;
- case 'v':
-diff --git a/route.c b/route.c
-index f8c2bc3..4eaed49 100644
---- a/route.c
-+++ b/route.c
-@@ -2,7 +2,7 @@
- * route This file contains an implementation of the command
- * that manages the IP routing table in the kernel.
- *
-- * Version: $Id: route.c,v 1.9 2001/04/15 14:41:17 pb Exp $
-+ * Version: $Id: route.c,v 1.10 2002/07/30 05:24:20 ecki Exp $
- *
- * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
- *
-@@ -10,7 +10,7 @@
- * (derived from FvK's 'route.c 1.70 01/04/94')
- *
- * Modifications:
-- * Johannes Stille: for Net-2Debugged by
-+ * Johannes Stille: for Net-2Debugged by
- * <johannes@titan.os.open.de>
- * Linus Torvalds: Misc Changes
- * Alan Cox: add the new mtu/window stuff
-@@ -19,7 +19,7 @@
- * {1.80} Bernd Eckenfels: reject, metric, irtt, 1.2.x support.
- * {1.81} Bernd Eckenfels: reject routes need a dummy device
- *960127 {1.82} Bernd Eckenfels: 'mod' and 'dyn' 'reinstate' added
-- *960129 {1.83} Bernd Eckenfels: resolve and getsock now in lib/,
-+ *960129 {1.83} Bernd Eckenfels: resolve and getsock now in lib/,
- * REJECT displays '-' as gatway.
- *960202 {1.84} Bernd Eckenfels: net-features support added
- *960203 {1.85} Bernd Eckenfels: "#ifdef' in '#if' for net-features
-@@ -60,20 +60,21 @@
- #include "intl.h"
- #include "pathnames.h"
- #include "version.h"
-+#include "util.h"
-
- #define DFLT_AF "inet"
-
- #define FEATURE_ROUTE
- #include "lib/net-features.h" /* needs some of the system includes above! */
-
--char *Release = RELEASE, *Version = "route 1.98 (2001-04-15)";
-+static char *Release = RELEASE;
-
--int opt_n = 0; /* numerical output flag */
--int opt_v = 0; /* debugging output flag */
--int opt_e = 1; /* 1,2,3=type of routetable */
--int opt_fc = 0; /* routing cache/FIB */
--int opt_h = 0; /* help selected */
--struct aftype *ap; /* current address family */
-+int opt_n = 0; // numerical output FLAG_NUM | FLAG_SYM
-+int opt_v = 0; // debugging output flag
-+int opt_e = 1; // 1,2,3=type of routetable
-+int opt_fc = 0; // routing cache/FIB
-+int opt_h = 0; // help selected
-+struct aftype *ap; // selected address family
-
- static void usage(void)
- {
-@@ -89,7 +90,7 @@ static void usage(void)
- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n"));
- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
-
-- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
-+ fprintf(stderr, _(" <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
- fprintf(stderr, _(" List of possible address families (which support routing):\n"));
- print_aflist(1); /* 1 = routeable */
- exit(E_USAGE);
-@@ -98,7 +99,7 @@ static void usage(void)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n%s\n", Release, Version, Features);
-+ fprintf(stderr, "%s\n%s\n", Release, Features);
- exit(E_VERSION);
- }
-
-@@ -135,14 +136,12 @@ int main(int argc, char **argv)
-
- /* getopts and -net wont work :-/ */
- for (tmp = argv; *tmp; tmp++) {
-- if (!strcmp(*tmp, "-net"))
-- strcpy(*tmp, "#net");
-- else if (!strcmp(*tmp, "-host"))
-- strcpy(*tmp, "#host");
-+ if (!strcmp(*tmp, "-net") || !strcmp(*tmp, "-host"))
-+ (*tmp)[0]='#';
- }
-
- /* Fetch the command-line arguments. */
-- while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF)
-+ while ((i = getopt_long(argc, argv, "A:eCFhnN64Vv?", longopts, &lop)) != EOF)
- switch (i) {
- case -1:
- break;
-@@ -176,6 +175,14 @@ int main(int argc, char **argv)
- if ((i = aftrans_opt(optarg)))
- exit(i);
- break;
-+ case '6':
-+ if ((i = aftrans_opt("inet6")))
-+ exit(i);
-+ break;
-+ case '4':
-+ if ((i = aftrans_opt("inet")))
-+ exit(i);
-+ break;
- case 'V':
- version();
- case 'h':
-diff --git a/slattach.c b/slattach.c
-index cedae1b..5c81584 100644
---- a/slattach.c
-+++ b/slattach.c
-@@ -40,7 +40,7 @@
- #include <limits.h>
- #include <pwd.h>
- #include <signal.h>
--#include <stdlib.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <getopt.h>
-@@ -62,26 +62,27 @@
- #include "util.h"
-
- #ifndef _PATH_LOCKD
--#define _PATH_LOCKD "/var/lock" /* lock files */
-+#define _PATH_LOCKD "/var/lock" /* lock files */
- #endif
- #ifndef _UID_UUCP
--#define _UID_UUCP "uucp" /* owns locks */
-+#define _UID_UUCP "uucp" /* owns locks */
-+#endif
-+#ifndef _PATH_DEVPTMX
-+#define _PATH_DEVPTMX "/dev/ptmx" /* pseudo-terminal master */
- #endif
-
-
- #define DEF_PROTO "cslip"
-
-
--const char *Release = RELEASE,
-- *Version = "@(#) slattach 1.21 (1999-11-21)",
-- *Signature = "net-tools, Fred N. van Kempen et al.";
-+static char *Release = RELEASE, *Signature = "Fred N. van Kempen et al.";
-
-
- struct {
- const char *speed;
- int code;
- } tty_speeds[] = { /* table of usable baud rates */
-- { "50", B50 }, { "75", B75 },
-+ { "50", B50 }, { "75", B75 },
- { "110", B110 }, { "300", B300 },
- { "600", B600 }, { "1200", B1200 },
- { "2400", B2400 }, { "4800", B4800 },
-@@ -108,6 +109,7 @@ struct termios tty_saved, /* saved TTY device state */
- int tty_sdisc, /* saved TTY line discipline */
- tty_ldisc, /* current TTY line discipline */
- tty_fd = -1; /* TTY file descriptor */
-+char * path_pts = NULL; /* slave pseudo-terminal device */
- int opt_c = 0; /* "command" to run at exit */
- int opt_e = 0; /* "activate only" flag */
- int opt_h = 0; /* "hangup" on carrier loss */
-@@ -115,7 +117,7 @@ int opt_h = 0; /* "hangup" on carrier loss */
- int opt_k = 0; /* "keepalive" value */
- #endif
- int opt_l = 0; /* "lock it" flag */
--int opt_L = 0; /* clocal flag */
-+int opt_L = 0; /* 3-wire mode flag */
- int opt_m = 0; /* "set RAW mode" flag */
- int opt_n = 0; /* "set No Mesg" flag */
- #ifdef SIOCSOUTFILL
-@@ -149,7 +151,7 @@ tty_already_locked(char *nam)
- /* that lock. */
- i = fscanf(fd, "%d", &pid);
- (void) fclose(fd);
--
-+
- if (i != 1) /* Lock file format's wrong! Kill't */
- return(0);
-
-@@ -195,15 +197,18 @@ tty_lock(char *path, int mode)
- return(-1);
- }
-
-- (void) close(fd);
--
- /* Make sure UUCP owns the lockfile. Required by some packages. */
- if ((pw = getpwnam(_UID_UUCP)) == NULL) {
- if (opt_q == 0) fprintf(stderr, _("slattach: tty_lock: UUCP user %s unknown!\n"),
- _UID_UUCP);
-+ (void) close(fd);
- return(0); /* keep the lock anyway */
- }
-- (void) chown(saved_path, pw->pw_uid, pw->pw_gid);
-+ if (fchown(fd, pw->pw_uid, pw->pw_gid))
-+ /* keep the lock anyway */;
-+
-+ (void) close(fd);
-+
- saved_lock = 1;
- } else { /* unlock */
- if (saved_lock != 1) return(0);
-@@ -294,7 +299,7 @@ tty_set_parity(struct termios *tty, char *parity)
- switch(toupper(*parity)) {
- case 'N':
- tty->c_cflag &= ~(PARENB | PARODD);
-- break;
-+ break;
-
- case 'O':
- tty->c_cflag &= ~(PARENB | PARODD);
-@@ -342,9 +347,11 @@ tty_set_raw(struct termios *tty)
- tty->c_oflag = (0); /* output flags */
- tty->c_lflag = (0); /* local flags */
- speed = (tty->c_cflag & CBAUD); /* save current speed */
-- tty->c_cflag = (CRTSCTS | HUPCL | CREAD); /* UART flags */
-- if (opt_L)
-+ tty->c_cflag = (HUPCL | CREAD); /* UART flags */
-+ if (opt_L)
- tty->c_cflag |= CLOCAL;
-+ else
-+ tty->c_cflag |= CRTSCTS;
- tty->c_cflag |= speed; /* restore speed */
- return(0);
- }
-@@ -410,7 +417,7 @@ static int
- tty_get_name(char *name)
- {
- if (ioctl(tty_fd, SIOCGIFNAME, name) < 0) {
-- if (opt_q == 0)
-+ if (opt_q == 0)
- perror("tty_get_name");
- return(-errno);
- }
-@@ -464,7 +471,7 @@ tty_open(char *name, const char *speed)
- if (name != NULL) {
- if (name[0] != '/') {
- if (strlen(name + 6) > sizeof(pathbuf)) {
-- if (opt_q == 0) fprintf(stderr,
-+ if (opt_q == 0) fprintf(stderr,
- _("slattach: tty name too long\n"));
- return (-1);
- }
-@@ -488,7 +495,28 @@ tty_open(char *name, const char *speed)
- return(-errno);
- }
- tty_fd = fd;
-- if (opt_d) printf("slattach: tty_open: %s (fd=%d) ", path_open, fd);
-+ if (opt_d) printf("slattach: tty_open: %s (fd=%d)\n", path_open, fd);
-+ if (!strcmp(path_open, _PATH_DEVPTMX)) {
-+ if (opt_d) printf("slattach: tty_open: trying to grantpt and unlockpt\n");
-+ if (grantpt(fd) < 0) {
-+ if (opt_q == 0) fprintf(stderr,
-+ "slattach: tty_open: grantpt: %s\n", strerror(errno));
-+ return(-errno);
-+ }
-+ if (unlockpt(fd) < 0) {
-+ if (opt_q == 0) fprintf(stderr,
-+ "slattach: tty_open: unlockpt: %s\n", strerror(errno));
-+ return(-errno);
-+ }
-+ path_pts = ptsname(fd);
-+ if (path_pts == NULL) {
-+ if (opt_q == 0) fprintf(stderr,
-+ "slattach: tty_open: ptsname: %s\n", strerror(errno));
-+ return(-errno);
-+ }
-+ if (opt_d) printf("slattach: tty_open: %s: slave pseudo-terminal is %s\n",
-+ path_open, path_pts);
-+ }
- } else {
- tty_fd = 0;
- }
-@@ -504,7 +532,7 @@ tty_open(char *name, const char *speed)
- if (tty_get_disc(&tty_sdisc) < 0) {
- if (opt_q == 0) fprintf(stderr, _("slattach: tty_open: cannot get current line disc!\n"));
- return(-errno);
-- }
-+ }
- tty_ldisc = tty_sdisc;
-
- /* Put this terminal line in a 8-bit transparent mode. */
-@@ -565,15 +593,15 @@ usage(void)
- "[-c cmd] [-s speed] [-p protocol] tty | -\n"
- " slattach -V | --version\n";
-
-- fprintf(stderr, usage_msg);
-- exit(1);
-+ fputs(usage_msg, stderr);
-+ exit(E_USAGE);
- }
-
-
--static void
-+static void
- version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
-@@ -581,7 +609,7 @@ version(void)
- int
- main(int argc, char *argv[])
- {
-- char path_buf[128];
-+ char path_buf[128] = "";
- char *path_dev;
- char buff[128];
- const char *speed = NULL;
-@@ -593,7 +621,6 @@ main(int argc, char *argv[])
- { NULL, 0, NULL, 0 }
- };
-
-- strcpy(path_buf, "");
- path_dev = path_buf;
-
- /* Scan command line for any arguments. */
-@@ -667,7 +694,7 @@ main(int argc, char *argv[])
- usage();
- /*NOTREACHED*/
- }
--
-+
- if (setvbuf(stdout,0,_IOLBF,0)) {
- if (opt_q == 0) fprintf(stderr, _("slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"),
- strerror(errno));
-@@ -703,6 +730,7 @@ main(int argc, char *argv[])
- if (tty_get_name(buff)) { return(3); }
- printf(_("%s started"), proto);
- if (path_dev != NULL) printf(_(" on %s"), path_dev);
-+ if (path_pts != NULL) printf(_(" ptsname %s"), path_pts);
- printf(_(" interface %s\n"), buff);
- }
-
-@@ -738,7 +766,7 @@ main(int argc, char *argv[])
-
- tty_close();
- if(extcmd) /* external command on exit */
-- system(extcmd);
-+ exit(system(extcmd));
- }
- exit(0);
- }
-diff --git a/statistics.c b/statistics.c
-index a878df8..fe8ee4e 100644
---- a/statistics.c
-+++ b/statistics.c
-@@ -1,9 +1,9 @@
- /*
-- * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL.
-- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $
-- * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-- * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-- * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels
-+ * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL.
-+ * $Id: statistics.c,v 1.23 2010-10-29 19:24:36 ecki Exp $
-+ * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-+ * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-+ * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels
- */
- #include <ctype.h>
- #include <stdio.h>
-@@ -11,6 +11,7 @@
- #include <string.h>
- #include "config.h"
- #include "intl.h"
-+#include "proc.h"
-
- /* #define WARN 1 */
-
-@@ -35,26 +36,26 @@ struct entry {
- enum State type;
- };
-
--struct statedesc {
-+struct statedesc {
- int indent;
-- char *title;
--};
-+ char *title;
-+};
-
--struct statedesc states[] = {
-+struct statedesc states[] = {
- [number] = { 4, NULL },
-- [opt_number] = { 4, NULL },
-+ [opt_number] = { 4, NULL },
- [i_forward] = { 4, NULL },
- [i_inp_icmp] = { 8, N_("ICMP input histogram:") },
- [i_outp_icmp] = { 8, N_("ICMP output histogram:") },
- [MaxState] = {0},
--};
-+};
-
- static enum State state;
-
- #define I_STATIC (1<<16) /* static configuration option. */
- #define I_TITLE (1<<17)
-
--/*
-+/*
- * XXX check against the snmp mib rfc.
- *
- * Don't mark the first field as translatable! It's a snmp MIB standard.
-@@ -63,54 +64,115 @@ static enum State state;
- struct entry Iptab[] =
- {
- {"Forwarding", N_("Forwarding is %s"), i_forward | I_STATIC},
-- {"DefaultTTL", N_("Default TTL is %u"), number | I_STATIC},
-- {"InReceives", N_("%u total packets received"), number},
-- {"InHdrErrors", N_("%u with invalid headers"), opt_number},
-- {"InAddrErrors", N_("%u with invalid addresses"), opt_number},
-- {"ForwDatagrams", N_("%u forwarded"), number},
-- {"InUnknownProtos", N_("%u with unknown protocol"), opt_number},
-- {"InDiscards", N_("%u incoming packets discarded"), number},
-- {"InDelivers", N_("%u incoming packets delivered"), number},
-- {"OutRequests", N_("%u requests sent out"), number}, /*? */
-- {"OutDiscards", N_("%u outgoing packets dropped"), opt_number},
-- {"OutNoRoutes", N_("%u dropped because of missing route"), opt_number},
-- {"ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number},
-- {"ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */
-- {"ReasmOKs", N_("%u packets reassembled ok"), opt_number},
-- {"ReasmFails", N_("%u packet reassembles failed"), opt_number},
-- {"FragOKs", N_("%u fragments received ok"), opt_number},
-- {"FragFails", N_("%u fragments failed"), opt_number},
-- {"FragCreates", N_("%u fragments created"), opt_number}
-+ {"DefaultTTL", N_("Default TTL is %llu"), number | I_STATIC},
-+ {"InReceives", N_("%llu total packets received"), number},
-+ {"InHdrErrors", N_("%llu with invalid headers"), opt_number},
-+ {"InAddrErrors", N_("%llu with invalid addresses"), opt_number},
-+ {"ForwDatagrams", N_("%llu forwarded"), number},
-+ {"InUnknownProtos", N_("%llu with unknown protocol"), opt_number},
-+ {"InDiscards", N_("%llu incoming packets discarded"), number},
-+ {"InDelivers", N_("%llu incoming packets delivered"), number},
-+ {"OutRequests", N_("%llu requests sent out"), number}, /*? */
-+ {"OutDiscards", N_("%llu outgoing packets dropped"), opt_number},
-+ {"OutNoRoutes", N_("%llu dropped because of missing route"), opt_number},
-+ {"ReasmTimeout", N_("%llu fragments dropped after timeout"), opt_number},
-+ {"ReasmReqds", N_("%llu reassemblies required"), opt_number}, /* ? */
-+ {"ReasmOKs", N_("%llu packets reassembled ok"), opt_number},
-+ {"ReasmFails", N_("%llu packet reassembles failed"), opt_number},
-+ {"FragOKs", N_("%llu fragments received ok"), opt_number},
-+ {"FragFails", N_("%llu fragments failed"), opt_number},
-+ {"FragCreates", N_("%llu fragments created"), opt_number}
-+};
-+
-+struct entry Ip6tab[] =
-+{
-+ {"Ip6InReceives", N_("%llu total packets received"), number},
-+ {"Ip6InHdrErrors", N_("%llu with invalid headers"), opt_number},
-+ {"Ip6InTooBigErrors", N_("%llu with packets too big"), opt_number},
-+ {"Ip6InNoRoutes", N_("%llu incoming packets with no route"), opt_number},
-+ {"Ip6InAddrErrors", N_("%llu with invalid addresses"), opt_number},
-+ {"Ip6InUnknownProtos", N_("%llu with unknown protocol"), opt_number},
-+ {"Ip6InTruncatedPkts", N_("%llu with truncated packets"), opt_number},
-+ {"Ip6InDiscards", N_("%llu incoming packets discarded"), number},
-+ {"Ip6InDelivers", N_("%llu incoming packets delivered"), number},
-+ {"Ip6OutForwDatagrams", N_("%llu forwarded"), number},
-+ {"Ip6OutRequests", N_("%llu requests sent out"), number}, /*? */
-+ {"Ip6OutDiscards", N_("%llu outgoing packets dropped"), opt_number},
-+ {"Ip6OutNoRoutes", N_("%llu dropped because of missing route"), opt_number},
-+ {"Ip6ReasmTimeout", N_("%llu fragments dropped after timeout"), opt_number},
-+ {"Ip6ReasmReqds", N_("%llu reassemblies required"), opt_number}, /* ? */
-+ {"Ip6ReasmOKs", N_("%llu packets reassembled ok"), opt_number},
-+ {"Ip6ReasmFails", N_("%llu packet reassembles failed"), opt_number},
-+ {"Ip6FragOKs", N_("%llu fragments received ok"), opt_number},
-+ {"Ip6FragFails", N_("%llu fragments failed"), opt_number},
-+ {"Ip6FragCreates", N_("%llu fragments created"), opt_number},
-+ {"Ip6InMcastPkts", N_("%llu incoming multicast packets"), opt_number},
-+ {"Ip6OutMcastPkts", N_("%llu outgoing multicast packets"), opt_number}
- };
-
- struct entry Icmptab[] =
- {
-- {"InMsgs", N_("%u ICMP messages received"), number},
-- {"InErrors", N_("%u input ICMP message failed."), number},
-- {"InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE},
-- {"InTimeExcds", N_("timeout in transit: %u"), i_inp_icmp | I_TITLE},
-- {"InParmProbs", N_("wrong parameters: %u"), i_inp_icmp | I_TITLE}, /*? */
-- {"InSrcQuenchs", N_("source quenches: %u"), i_inp_icmp | I_TITLE},
-- {"InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE},
-- {"InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE},
-- {"InEchoReps", N_("echo replies: %u"), i_inp_icmp | I_TITLE},
-- {"InTimestamps", N_("timestamp request: %u"), i_inp_icmp | I_TITLE},
-- {"InTimestampReps", N_("timestamp reply: %u"), i_inp_icmp | I_TITLE},
-- {"InAddrMasks", N_("address mask request: %u"), i_inp_icmp | I_TITLE}, /*? */
-- {"InAddrMaskReps", N_("address mask replies: %u"), i_inp_icmp | I_TITLE}, /*? */
-- {"OutMsgs", N_("%u ICMP messages sent"), number},
-- {"OutErrors", N_("%u ICMP messages failed"), number},
-- {"OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE},
-- {"OutTimeExcds", N_("time exceeded: %u"), i_outp_icmp | I_TITLE},
-- {"OutParmProbs", N_("wrong parameters: %u"), i_outp_icmp | I_TITLE}, /*? */
-- {"OutSrcQuenchs", N_("source quench: %u"), i_outp_icmp | I_TITLE},
-- {"OutRedirects", N_("redirect: %u"), i_outp_icmp | I_TITLE},
-- {"OutEchos", N_("echo request: %u"), i_outp_icmp | I_TITLE},
-- {"OutEchoReps", N_("echo replies: %u"), i_outp_icmp | I_TITLE},
-- {"OutTimestamps", N_("timestamp requests: %u"), i_outp_icmp | I_TITLE},
-- {"OutTimestampReps", N_("timestamp replies: %u"), i_outp_icmp | I_TITLE},
-- {"OutAddrMasks", N_("address mask requests: %u"), i_outp_icmp | I_TITLE},
-- {"OutAddrMaskReps", N_("address mask replies: %u"), i_outp_icmp | I_TITLE},
-+ {"InMsgs", N_("%llu ICMP messages received"), number},
-+ {"InErrors", N_("%llu input ICMP message failed."), number},
-+ {"InDestUnreachs", N_("destination unreachable: %llu"), i_inp_icmp | I_TITLE},
-+ {"InTimeExcds", N_("timeout in transit: %llu"), i_inp_icmp | I_TITLE},
-+ {"InParmProbs", N_("wrong parameters: %llu"), i_inp_icmp | I_TITLE}, /*? */
-+ {"InSrcQuenchs", N_("source quenches: %llu"), i_inp_icmp | I_TITLE},
-+ {"InRedirects", N_("redirects: %llu"), i_inp_icmp | I_TITLE},
-+ {"InEchos", N_("echo requests: %llu"), i_inp_icmp | I_TITLE},
-+ {"InEchoReps", N_("echo replies: %llu"), i_inp_icmp | I_TITLE},
-+ {"InTimestamps", N_("timestamp request: %llu"), i_inp_icmp | I_TITLE},
-+ {"InTimestampReps", N_("timestamp reply: %llu"), i_inp_icmp | I_TITLE},
-+ {"InAddrMasks", N_("address mask request: %llu"), i_inp_icmp | I_TITLE}, /*? */
-+ {"InAddrMaskReps", N_("address mask replies: %llu"), i_inp_icmp | I_TITLE}, /*? */
-+ {"OutMsgs", N_("%llu ICMP messages sent"), number},
-+ {"OutErrors", N_("%llu ICMP messages failed"), number},
-+ {"OutDestUnreachs", N_("destination unreachable: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutTimeExcds", N_("time exceeded: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutParmProbs", N_("wrong parameters: %llu"), i_outp_icmp | I_TITLE}, /*? */
-+ {"OutSrcQuenchs", N_("source quench: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutRedirects", N_("redirect: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutEchos", N_("echo request: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutEchoReps", N_("echo replies: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutTimestamps", N_("timestamp requests: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutTimestampReps", N_("timestamp replies: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutAddrMasks", N_("address mask requests: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutAddrMaskReps", N_("address mask replies: %llu"), i_outp_icmp | I_TITLE},
-+};
-+
-+struct entry Icmp6tab[] =
-+{
-+ {"Icmp6InMsgs", N_("%llu ICMP messages received"), number},
-+ {"Icmp6InErrors", N_("%llu input ICMP message failed."), number},
-+ {"Icmp6InDestUnreachs", N_("destination unreachable: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InPktTooBigs", N_("packets too big: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InParmProblems", N_("parameter problem: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InEchos", N_("echo requests: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InEchoReplies", N_("echo replies: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InGroupMembQueries", N_("group member queries: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InGroupMembResponses", N_("group member responses: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InGroupMembReductions", N_("group member reductions: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InRouterSolicits", N_("router solicits: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InRouterAdvertisements", N_("router advertisement: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InNeighborSolicits", N_("neighbour solicits: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InRedirects", N_("redirects: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6OutMsgs", N_("%llu ICMP messages sent"), number},
-+ {"Icmp6OutDestUnreachs", N_("destination unreachable: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutPktTooBigs", N_("packets too big: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutParmProblems", N_("parameter problem: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutEchos", N_("echo requests: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutEchoReplies", N_("echo replies: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutGroupMembQueries", N_("group member queries: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutGroupMembResponses", N_("group member responses: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutGroupMembReductions", N_("group member reductions: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutRouterSolicits", N_("router solicits: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutRedirects", N_("redirects: %llu"), i_outp_icmp | I_TITLE},
- };
-
- struct entry Tcptab[] =
-@@ -119,79 +181,129 @@ struct entry Tcptab[] =
- {"RtoMin", "", number},
- {"RtoMax", "", number},
- {"MaxConn", "", number},
-- {"ActiveOpens", N_("%u active connections openings"), number},
-- {"PassiveOpens", N_("%u passive connection openings"), number},
-- {"AttemptFails", N_("%u failed connection attempts"), number},
-- {"EstabResets", N_("%u connection resets received"), number},
-- {"CurrEstab", N_("%u connections established"), number},
-- {"InSegs", N_("%u segments received"), number},
-- {"OutSegs", N_("%u segments send out"), number},
-- {"RetransSegs", N_("%u segments retransmited"), number},
-- {"InErrs", N_("%u bad segments received."), number},
-- {"OutRsts", N_("%u resets sent"), number},
-+ {"ActiveOpens", N_("%llu active connections openings"), number},
-+ {"PassiveOpens", N_("%llu passive connection openings"), number},
-+ {"AttemptFails", N_("%llu failed connection attempts"), number},
-+ {"EstabResets", N_("%llu connection resets received"), number},
-+ {"CurrEstab", N_("%llu connections established"), number},
-+ {"InSegs", N_("%llu segments received"), number},
-+ {"OutSegs", N_("%llu segments send out"), number},
-+ {"RetransSegs", N_("%llu segments retransmited"), number},
-+ {"InErrs", N_("%llu bad segments received."), number},
-+ {"OutRsts", N_("%llu resets sent"), number},
- };
-
- struct entry Udptab[] =
- {
-- {"InDatagrams", N_("%u packets received"), number},
-- {"NoPorts", N_("%u packets to unknown port received."), number},
-- {"InErrors", N_("%u packet receive errors"), number},
-- {"OutDatagrams", N_("%u packets sent"), number},
-+ {"InDatagrams", N_("%llu packets received"), number},
-+ {"NoPorts", N_("%llu packets to unknown port received."), number},
-+ {"InErrors", N_("%llu packet receive errors"), number},
-+ {"OutDatagrams", N_("%llu packets sent"), number},
-+ {"RcvbufErrors", N_("%llu receive buffer errors"), number},
-+ {"SndbufErrors", N_("%llu send buffer errors"), number},
-+ };
-+
-+struct entry Udp6tab[] =
-+{
-+ {"Udp6InDatagrams", N_("%llu packets received"), number},
-+ {"Udp6NoPorts", N_("%llu packets to unknown port received."), number},
-+ {"Udp6InErrors", N_("%llu packet receive errors"), number},
-+ {"Udp6OutDatagrams", N_("%llu packets sent"), number},
- };
-
- struct entry Tcpexttab[] =
- {
-- {"SyncookiesSent", N_("%u SYN cookies sent"), opt_number},
-- {"SyncookiesRecv", N_("%u SYN cookies received"), opt_number},
-- {"SyncookiesFailed", N_("%u invalid SYN cookies received"), opt_number},
--
-- { "EmbryonicRsts", N_("%u resets received for embryonic SYN_RECV sockets"),
-- opt_number },
-- { "PruneCalled", N_("%u packets pruned from receive queue because of socket"
-- " buffer overrun"), opt_number },
-+ {"SyncookiesSent", N_("%llu SYN cookies sent"), opt_number},
-+ {"SyncookiesRecv", N_("%llu SYN cookies received"), opt_number},
-+ {"SyncookiesFailed", N_("%llu invalid SYN cookies received"), opt_number},
-+
-+ { "EmbryonicRsts", N_("%llu resets received for embryonic SYN_RECV sockets"),
-+ opt_number },
-+ { "PruneCalled", N_("%llu packets pruned from receive queue because of socket"
-+ " buffer overrun"), opt_number },
- /* obsolete: 2.2.0 doesn't do that anymore */
-- { "RcvPruned", N_("%u packets pruned from receive queue"), opt_number },
-- { "OfoPruned", N_("%u packets dropped from out-of-order queue because of"
-- " socket buffer overrun"), opt_number },
-- { "OutOfWindowIcmps", N_("%u ICMP packets dropped because they were "
-- "out-of-window"), opt_number },
-- { "LockDroppedIcmps", N_("%u ICMP packets dropped because"
-+ { "RcvPruned", N_("%llu packets pruned from receive queue"), opt_number },
-+ { "OfoPruned", N_("%llu packets dropped from out-of-order queue because of"
-+ " socket buffer overrun"), opt_number },
-+ { "OutOfWindowIcmps", N_("%llu ICMP packets dropped because they were "
-+ "out-of-window"), opt_number },
-+ { "LockDroppedIcmps", N_("%llu ICMP packets dropped because"
- " socket was locked"), opt_number },
-- { "TW", N_("%u TCP sockets finished time wait in fast timer"), opt_number },
-- { "TWRecycled", N_("%u time wait sockets recycled by time stamp"), opt_number },
-- { "TWKilled", N_("%u TCP sockets finished time wait in slow timer"), opt_number },
-- { "PAWSPassive", N_("%u passive connections rejected because of"
-+ { "TW", N_("%llu TCP sockets finished time wait in fast timer"), opt_number },
-+ { "TWRecycled", N_("%llu time wait sockets recycled by time stamp"), opt_number },
-+ { "TWKilled", N_("%llu TCP sockets finished time wait in slow timer"), opt_number },
-+ { "PAWSPassive", N_("%llu passive connections rejected because of"
- " time stamp"), opt_number },
-- { "PAWSActive", N_("%u active connections rejected because of "
-+ { "PAWSActive", N_("%llu active connections rejected because of "
- "time stamp"), opt_number },
-- { "PAWSEstab", N_("%u packets rejects in established connections because of"
-+ { "PAWSEstab", N_("%llu packets rejects in established connections because of"
- " timestamp"), opt_number },
-- { "DelayedACKs", N_("%u delayed acks sent"), opt_number },
-- { "DelayedACKLocked", N_("%u delayed acks further delayed because of"
-+ { "DelayedACKs", N_("%llu delayed acks sent"), opt_number },
-+ { "DelayedACKLocked", N_("%llu delayed acks further delayed because of"
- " locked socket"), opt_number },
-- { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number },
-- { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"),
-+ { "DelayedACKLost", N_("Quick ack mode was activated %llu times"), opt_number },
-+ { "ListenOverflows", N_("%llu times the listen queue of a socket overflowed"),
- opt_number },
-- { "ListenDrops", N_("%u SYNs to LISTEN sockets ignored"), opt_number },
-- { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."),
-+ { "ListenDrops", N_("%llu SYNs to LISTEN sockets dropped"), opt_number },
-+ { "TCPPrequeued", N_("%llu packets directly queued to recvmsg prequeue."),
- opt_number },
-- { "TCPDirectCopyFromBacklog", N_("%u packets directly received"
-- " from backlog"), opt_number },
-- { "TCPDirectCopyFromPrequeue", N_("%u packets directly received"
-- " from prequeue"), opt_number },
-- { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number },
-- { "TCPHPHits", N_("%u packets header predicted"), number },
-- { "TCPHPHitsToUser", N_("%u packets header predicted and "
-+ { "TCPDirectCopyFromBacklog", N_("%llu bytes directly in process context from backlog"), opt_number },
-+ { "TCPDirectCopyFromPrequeue", N_("%llu bytes directly received in process context from prequeue"),
-+ opt_number },
-+ { "TCPPrequeueDropped", N_("%llu packets dropped from prequeue"), opt_number },
-+ { "TCPHPHits", N_("%llu packet headers predicted"), number },
-+ { "TCPHPHitsToUser", N_("%llu packets header predicted and "
- "directly queued to user"), opt_number },
-- { "SockMallocOOM", N_("Ran %u times out of system memory during "
-- "packet sending"), opt_number },
-+ { "SockMallocOOM", N_("Ran %llu times out of system memory during "
-+ "packet sending"), opt_number },
-+ { "TCPPureAcks", N_("%llu acknowledgments not containing data payload received"), opt_number },
-+ { "TCPHPAcks", N_("%llu predicted acknowledgments"), opt_number },
-+ { "TCPRenoRecovery", N_("%llu times recovered from packet loss due to fast retransmit"), opt_number },
-+ { "TCPSackRecovery", N_("%llu times recovered from packet loss by selective acknowledgements"), opt_number },
-+ { "TCPSACKReneging", N_("%llu bad SACK blocks received"), opt_number },
-+ { "TCPFACKReorder", N_("Detected reordering %llu times using FACK"), opt_number },
-+ { "TCPSACKReorder", N_("Detected reordering %llu times using SACK"), opt_number },
-+ { "TCPTSReorder", N_("Detected reordering %llu times using time stamp"), opt_number },
-+ { "TCPRenoReorder", N_("Detected reordering %llu times using reno fast retransmit"), opt_number },
-+ { "TCPFullUndo", N_("%llu congestion windows fully recovered without slow start"), opt_number },
-+ { "TCPPartialUndo", N_("%llu congestion windows partially recovered using Hoe heuristic"), opt_number },
-+ { "TCPDSackUndo", N_("%llu congestion window recovered without slow start using DSACK"), opt_number },
-+ { "TCPLossUndo", N_("%llu congestion windows recovered without slow start after partial ack"), opt_number },
-+ { "TCPLostRetransmits", N_("%llu retransmits lost"), opt_number },
-+ { "TCPRenoFailures", N_("%llu timeouts after reno fast retransmit"), opt_number },
-+ { "TCPSackFailures", N_("%llu timeouts after SACK recovery"), opt_number },
-+ { "TCPLossFailures", N_("%llu timeouts in loss state"), opt_number },
-+ { "TCPFastRetrans", N_("%llu fast retransmits"), opt_number },
-+ { "TCPForwardRetrans", N_("%llu forward retransmits"), opt_number },
-+ { "TCPSlowStartRetrans", N_("%llu retransmits in slow start"), opt_number },
-+ { "TCPTimeouts", N_("%llu other TCP timeouts"), opt_number },
-+ { "TCPRenoRecoveryFailed", N_("%llu reno fast retransmits failed"), opt_number },
-+ { "TCPSackRecoveryFail", N_("%llu SACK retransmits failed"), opt_number },
-+ { "TCPSchedulerFailed", N_("%llu times receiver scheduled too late for direct processing"), opt_number },
-+ { "TCPRcvCollapsed", N_("%llu packets collapsed in receive queue due to low socket buffer"), opt_number },
-+ { "TCPDSACKOldSent", N_("%llu DSACKs sent for old packets"), opt_number },
-+ { "TCPDSACKOfoSent", N_("%llu DSACKs sent for out of order packets"), opt_number },
-+ { "TCPDSACKRecv", N_("%llu DSACKs received"), opt_number },
-+ { "TCPDSACKOfoRecv", N_("%llu DSACKs for out of order packets received"), opt_number },
-+ { "TCPAbortOnSyn", N_("%llu connections reset due to unexpected SYN"), opt_number },
-+ { "TCPAbortOnData", N_("%llu connections reset due to unexpected data"), opt_number },
-+ { "TCPAbortOnClose", N_("%llu connections reset due to early user close"), opt_number },
-+ { "TCPAbortOnMemory", N_("%llu connections aborted due to memory pressure"), opt_number },
-+ { "TCPAbortOnTimeout", N_("%llu connections aborted due to timeout"), opt_number },
-+ { "TCPAbortOnLinger", N_("%llu connections aborted after user close in linger timeout"), opt_number },
-+ { "TCPAbortFailed", N_("%llu times unable to send RST due to no memory"), opt_number },
-+ { "TCPMemoryPressures", N_("TCP ran low on memory %llu times"), opt_number },
-+ { "TCPLoss", N_("%llu TCP data loss events"), opt_number },
-+ { "TCPDSACKUndo", N_("%llu congestion windows recovered without slow start by DSACK"),
-+ opt_number },
-+ { "TCPRenoRecoveryFail", N_("%llu classic Reno fast retransmits failed"), opt_number },
- };
-
- struct tabtab {
- char *title;
- struct entry *tab;
- size_t size;
-- int *flag;
-+ int *flag;
- };
-
- struct tabtab snmptabs[] =
-@@ -204,6 +316,15 @@ struct tabtab snmptabs[] =
- {NULL}
- };
-
-+struct tabtab snmp6tabs[] =
-+{
-+ {"Ip6", Ip6tab, sizeof(Ip6tab), &f_raw},
-+ {"Icmp6", Icmp6tab, sizeof(Icmp6tab), &f_raw},
-+ {"Udp6", Udp6tab, sizeof(Udp6tab), &f_udp},
-+ {"Tcp6", Tcptab, sizeof(Tcptab), &f_tcp},
-+ {NULL}
-+};
-+
- /* XXX IGMP */
-
- int cmpentries(const void *a, const void *b)
-@@ -211,18 +332,19 @@ int cmpentries(const void *a, const void *b)
- return strcmp(((struct entry *) a)->title, ((struct entry *) b)->title);
- }
-
--void printval(struct tabtab *tab, char *title, int val)
-+void printval(struct tabtab *tab, char *title, unsigned long long val)
- {
- struct entry *ent = NULL, key;
- int type;
- char buf[512];
-
- key.title = title;
-- if (tab->tab)
-+ if (tab->tab)
- ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry),
- sizeof(struct entry), cmpentries);
- if (!ent) { /* try our best */
-- printf("%*s%s: %d\n", states[state].indent, "", title, val);
-+ if (val)
-+ printf("%*s%s: %llu\n", states[state].indent, "", title, val);
- return;
- }
- type = ent->type;
-@@ -242,7 +364,7 @@ void printval(struct tabtab *tab, char *title, int val)
- buf[0] = '\0';
- switch (type) {
- case opt_number:
-- if (val == 0)
-+ if (val == 0)
- break;
- /*FALL THOUGH*/
- case number:
-@@ -272,7 +394,7 @@ struct tabtab *newtable(struct tabtab *tabs, char *title)
- {
- struct tabtab *t;
- static struct tabtab dummytab;
--
-+
- for (t = tabs; t->title; t++) {
- if (!strcmp(title, t->title)) {
- if (*(t->flag))
-@@ -281,22 +403,25 @@ struct tabtab *newtable(struct tabtab *tabs, char *title)
- return t;
- }
- }
-- if (!f_unknown)
-- return NULL;
-+ if (!f_unknown)
-+ return NULL;
- printf("%s:\n", _(title));
- dummytab.title = title;
-- dummytab.flag = &f_unknown;
-+ dummytab.flag = &f_unknown;
- return &dummytab;
- }
-
--void process_fd(FILE *f)
-+int process_fd(FILE *f, int all, char *filter)
- {
-- char buf1[1024], buf2[1024];
-+ char buf1[2048], buf2[2048];
- char *sp, *np, *p;
- while (fgets(buf1, sizeof buf1, f)) {
- int endflag;
- struct tabtab *tab;
-
-+ if (buf1[0] == '\n') // skip empty first line in 2.6 kernels
-+ continue;
-+
- if (!fgets(buf2, sizeof buf2, f))
- break;
- sp = strchr(buf1, ':');
-@@ -305,6 +430,10 @@ void process_fd(FILE *f)
- goto formaterr;
- *sp = '\0';
-
-+ if (!all)
-+ if (strncmp(buf1, filter, strlen(filter)))
-+ continue;
-+
- tab = newtable(snmptabs, buf1);
- if (tab == NULL) {
- printf("unknown %s\n", buf1);
-@@ -315,8 +444,8 @@ void process_fd(FILE *f)
-
- endflag = 0;
- while (!endflag) {
-- sp += strspn(sp, " \t\n");
-- np += strspn(np, " \t\n");
-+ sp += strspn(sp, " \t\n");
-+ np += strspn(np, " \t\n");
- /*if (*np == '\0') goto formaterr; */
-
- p = sp+strcspn(sp, " \t\n");
-@@ -324,51 +453,116 @@ void process_fd(FILE *f)
- endflag = 1;
- *p = '\0';
-
-- if (*sp != '\0' && *(tab->flag))
-- printval(tab, sp, strtoul(np, &np, 10));
-+ if (*sp != '\0' && *(tab->flag))
-+ printval(tab, sp, strtoull(np, &np, 10));
-
- sp = p + 1;
- }
- }
-- return;
--
-+ return 0;
-+
- formaterr:
-- perror(_("error parsing /proc/net/snmp"));
-- return;
-+ return -1;
- }
-
-+void cpytitle(char *original, char *new)
-+{
-+ char *ptr = original;
-+ while(*ptr != '6' && *ptr != '\0') {
-+ *new = *ptr;
-+ new++;
-+ ptr++;
-+ }
-+ *new = *ptr;
-+ new++;
-+ *new = '\0';
-+}
-+
-+void process6_fd(FILE *f)
-+{
-+ char buf1[1024],buf2[50],buf3[1024];
-+ unsigned long long val;
-+ struct tabtab *tab = NULL;
-+ int cpflg = 0;
-+
-+ while (fgets(buf1, sizeof buf1, f)) {
-+ sscanf(buf1, "%s %llu", buf2, &val);
-+ if(!cpflg) {
-+ cpytitle(buf2, buf3);
-+ tab = newtable(snmp6tabs, buf3);
-+ cpflg = 1;
-+ }
-+ if(!strstr(buf2, buf3)) {
-+ cpytitle(buf2, buf3);
-+ tab = newtable(snmp6tabs, buf3);
-+ }
-+ if (*(tab->flag))
-+ printval(tab, buf2, val);
-+ }
-+
-+}
-
- void parsesnmp(int flag_raw, int flag_tcp, int flag_udp)
- {
- FILE *f;
-
- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp;
--
-- f = fopen("/proc/net/snmp", "r");
-+
-+ f = proc_fopen("/proc/net/snmp");
- if (!f) {
- perror(_("cannot open /proc/net/snmp"));
- return;
- }
-- process_fd(f);
-+
-+ if (process_fd(f, 1, NULL) < 0)
-+ fprintf(stderr, _("Problem while parsing /proc/net/snmp\n"));
-
- if (ferror(f))
- perror("/proc/net/snmp");
-
- fclose(f);
-
-- f = fopen("/proc/net/netstat", "r");
-+ f = proc_fopen("/proc/net/netstat");
-
- if (f) {
-- process_fd(f);
-+ if (process_fd(f, 1, NULL) <0)
-+ fprintf(stderr, _("Problem while parsing /proc/net/netstat\n"));
-
- if (ferror(f))
- perror("/proc/net/netstat");
--
-+
- fclose(f);
- }
- return;
- }
--
-+
-+void parsesnmp6(int flag_raw, int flag_tcp, int flag_udp)
-+{
-+ FILE *f;
-+
-+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp;
-+
-+ f = fopen("/proc/net/snmp6", "r");
-+ if (!f) {
-+ perror(_("cannot open /proc/net/snmp6"));
-+ return;
-+ }
-+ process6_fd(f);
-+ if (ferror(f))
-+ perror("/proc/net/snmp6");
-+
-+ fclose(f);
-+ f = fopen("/proc/net/snmp", "r");
-+ if (!f) {
-+ perror(_("cannot open /proc/net/snmp"));
-+ return;
-+ }
-+ process_fd(f, 0, "Tcp");
-+ if (ferror(f))
-+ perror("/proc/net/snmp");
-+
-+ fclose(f);
-+}
-
- void inittab(void)
- {
-@@ -379,3 +573,13 @@ void inittab(void)
- qsort(t->tab, t->size / sizeof(struct entry),
- sizeof(struct entry), cmpentries);
- }
-+
-+void inittab6(void)
-+{
-+ struct tabtab *t;
-+
-+ for (t = snmp6tabs; t->title; t++)
-+ qsort(t->tab, t->size / sizeof(struct entry),
-+ sizeof(struct entry), cmpentries);
-+}
-+