diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-06-17 13:58:59 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-06-17 13:58:59 +0000 |
commit | 770d5f439f9590a8e2b9a7fb8ba14374037b4a8e (patch) | |
tree | 456b8e8c0988b6cb15863ffe5f8180c6624e3f1d /testing | |
parent | 03564c306b51a96133c1291969898abebfde6e6c (diff) | |
download | aports-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/APKBUILD | 91 | ||||
-rw-r--r-- | testing/net-tools/git.patch | 25400 |
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); -+} -+ |