From 69a16cf90b79084557c0e5d59bce50b2312f8987 Mon Sep 17 00:00:00 2001 From: Stanislav Ievlev Date: Tue, 30 Oct 2007 16:30:02 +0300 Subject: [PATCH] 0.1-alt3 - add iftabupdate utility --- alterator-net-common.spec | 5 +++- alterator-net-common/Makefile | 3 +- alterator-net-common/{ => tools}/ifaceinfo | 0 alterator-net-common/{ => tools}/ifcheckdhcp | 0 alterator-net-common/{ => tools}/ifcheckplug | 0 alterator-net-common/{ => tools}/ifcheckup | 0 alterator-net-common/{ => tools}/ifdown | 0 alterator-net-common/{ => tools}/iflist | 0 alterator-net-common/tools/iftabupdate | 31 ++++++++++++++++++++ alterator-net-common/{ => tools}/ifup | 0 alterator-net-common/{ => tools}/ifvar | 0 alterator-net-common/{ => tools}/maskname | 0 12 files changed, 36 insertions(+), 3 deletions(-) rename alterator-net-common/{ => tools}/ifaceinfo (100%) rename alterator-net-common/{ => tools}/ifcheckdhcp (100%) rename alterator-net-common/{ => tools}/ifcheckplug (100%) rename alterator-net-common/{ => tools}/ifcheckup (100%) rename alterator-net-common/{ => tools}/ifdown (100%) rename alterator-net-common/{ => tools}/iflist (100%) create mode 100755 alterator-net-common/tools/iftabupdate rename alterator-net-common/{ => tools}/ifup (100%) rename alterator-net-common/{ => tools}/ifvar (100%) rename alterator-net-common/{ => tools}/maskname (100%) diff --git a/alterator-net-common.spec b/alterator-net-common.spec index 5001978..1311078 100644 --- a/alterator-net-common.spec +++ b/alterator-net-common.spec @@ -2,7 +2,7 @@ Name: alterator-net-common Version: 0.1 -Release: alt2 +Release: alt3 Packager: Stanislav Ievlev @@ -30,6 +30,9 @@ helpers for etcnet administration %_libexecdir/%name/ %changelog +* Tue Oct 30 2007 Stanislav Ievlev 0.1-alt3 +- add iftabupdate utility + * Thu Oct 25 2007 Stanislav Ievlev 0.1-alt2 - simplify ifcheckup utility - add maskname and ifaceinfo utilities diff --git a/alterator-net-common/Makefile b/alterator-net-common/Makefile index 1f6873c..f519eab 100644 --- a/alterator-net-common/Makefile +++ b/alterator-net-common/Makefile @@ -1,6 +1,5 @@ -TOOLS=ifup ifdown ifvar iflist ifcheckup ifcheckplug ifcheckdhcp ifaceinfo maskname INSTALL=/usr/bin/install install: $(INSTALL) -d $(libexecdir)/alterator-net-common/ - $(INSTALL) -pm755 $(TOOLS) $(libexecdir)/alterator-net-common/ + $(INSTALL) -pm755 tools/* $(libexecdir)/alterator-net-common/ diff --git a/alterator-net-common/ifaceinfo b/alterator-net-common/tools/ifaceinfo similarity index 100% rename from alterator-net-common/ifaceinfo rename to alterator-net-common/tools/ifaceinfo diff --git a/alterator-net-common/ifcheckdhcp b/alterator-net-common/tools/ifcheckdhcp similarity index 100% rename from alterator-net-common/ifcheckdhcp rename to alterator-net-common/tools/ifcheckdhcp diff --git a/alterator-net-common/ifcheckplug b/alterator-net-common/tools/ifcheckplug similarity index 100% rename from alterator-net-common/ifcheckplug rename to alterator-net-common/tools/ifcheckplug diff --git a/alterator-net-common/ifcheckup b/alterator-net-common/tools/ifcheckup similarity index 100% rename from alterator-net-common/ifcheckup rename to alterator-net-common/tools/ifcheckup diff --git a/alterator-net-common/ifdown b/alterator-net-common/tools/ifdown similarity index 100% rename from alterator-net-common/ifdown rename to alterator-net-common/tools/ifdown diff --git a/alterator-net-common/iflist b/alterator-net-common/tools/iflist similarity index 100% rename from alterator-net-common/iflist rename to alterator-net-common/tools/iflist diff --git a/alterator-net-common/tools/iftabupdate b/alterator-net-common/tools/iftabupdate new file mode 100755 index 0000000..e73487f --- /dev/null +++ b/alterator-net-common/tools/iftabupdate @@ -0,0 +1,31 @@ +#!/bin/sh + +PATH="/usr/lib/alterator-net-common:$PATH" + +iftabfile="/etc/iftab" + +read_businfo() +{ + /usr/sbin/ethtool -i "$1" 2>/dev/null| + sed -nr 's,^bus-info:[[:space:]]([^[:space:]]+),\1,p' +} + +iflist| + while read name mac;do + [ "00:00:00:00:00:00" = "$mac" ] && continue # avoid wrong mac addresses from broken drivers (like rt61) + + if [ -s "$iftabfile" ]; then + sed -r \ + -e "/^$name[[:space:]]/ d" \ + -e "/[[:space:]]mac[[:space:]]+$mac([[:space:]]|\$)/ d" \ + -i "$iftabfile" + + businfo=$(read_businfo "$name") + [ -z "$businfo" ] || + sed -r \ + -e "/[[:space:]]businfo[[:space:]]+$businfo([[:space:]]|\$)/ d" \ + -i "$iftabfile" + fi + + printf "%s\tmac %s\n" "$name" "$mac" >>"$iftabfile" + done diff --git a/alterator-net-common/ifup b/alterator-net-common/tools/ifup similarity index 100% rename from alterator-net-common/ifup rename to alterator-net-common/tools/ifup diff --git a/alterator-net-common/ifvar b/alterator-net-common/tools/ifvar similarity index 100% rename from alterator-net-common/ifvar rename to alterator-net-common/tools/ifvar diff --git a/alterator-net-common/maskname b/alterator-net-common/tools/maskname similarity index 100% rename from alterator-net-common/maskname rename to alterator-net-common/tools/maskname