Commit b00623c
Changed files (2)
nm-ifadddel
sam
nm-ifadddel/02ifadddel
@@ -1,41 +0,0 @@
-#!/bin/sh -e
-
-INTERFACE=$1
-OPERATION=$2
-
-if [ -z "$INTERFACE" ]; then
- logger "$0: called with no interface"
- exit 1;
-fi
-
-case "$OPERATION" in
- up|vpn-up)
- logger "if UP, adding interfaces"
- ip addr add 192.168.101.50/24 dev $1
- ip addr add 192.168.101.51/24 dev $1
- ip addr add 192.168.101.52/24 dev $1
- ip addr add 192.168.101.53/24 dev $1
- ip addr add 192.168.101.54/24 dev $1
- ip addr add 192.168.101.55/24 dev $1
- ip addr add 192.168.101.56/24 dev $1
- ip addr add 192.168.101.57/24 dev $1
- ;;
- down|vpn-down)
- logger "if DOWN removing interfaces"
- ip addr del 192.168.101.50/24 dev $1
- ip addr del 192.168.101.51/24 dev $1
- ip addr del 192.168.101.52/24 dev $1
- ip addr del 192.168.101.53/24 dev $1
- ip addr del 192.168.101.54/24 dev $1
- ip addr del 192.168.101.55/24 dev $1
- ip addr del 192.168.101.56/24 dev $1
- ip addr del 192.168.101.57/24 dev $1
- ;;
- hostname|dhcp4-change|dhcp6-change)
- logger "did nothing, get your act together"
- ;;
- *)
- logger "$0: called with unknown action \`$2'"
- exit 1
- ;;
-esac
sam/02sam
@@ -0,0 +1,68 @@
+#!/bin/sh -e
+# _________ _____ ___
+# / ___/ __ `/ __ `__ \
+# (__ ) /_/ / / / / / /
+#/____/\__,_/_/ /_/ /_/
+# sam - secondary address manager
+# for use with Network Manager in dispatcher.d
+
+# expected arguments
+INTERFACE=$1
+OPERATION=$2
+
+# secondary addresses
+ADDR1="192.168.101.50/24"
+
+# only assign sam-addresses to one interface, keep track of it with STATEFILE
+STATEFILE=/var/tmp/sam-state
+
+if [ -z "$INTERFACE" ]; then
+ logger "sam - $0: called with no interface"
+ exit 1;
+fi
+
+# statefile exists
+if [ -e "$STATEFILE" ]; then
+ # get contents
+ DEV=$(cat "$STATEFILE")
+ if [ "$DEV" = "$INTERFACE" ]; then
+ case "$OPERATION" in
+ up|vpn-up)
+ logger "sam - error: if UP on sam'd dev"
+ ;;
+ down|vpn-down)
+ logger "sam - if DOWN, removing addresses"
+ ip addr del $ADDR1 dev $INTERFACE || true
+ rm -f $STATEFILE
+ ;;
+ hostname|dhcp4-change|dhcp6-change)
+ logger "sam - did nothing"
+ ;;
+ *)
+ logger "sam - $0: called with unknown action $2"
+ exit 1
+ ;;
+ esac
+ else
+ logger "sam - if UP, another dev already sam'd"
+ fi
+# statefile doesn't exist
+else
+ case "$OPERATION" in
+ up|vpn-up)
+ logger "sam - if UP, adding addresses"
+ ip addr add $ADDR1 dev $INTERFACE
+ echo "$INTERFACE" > "$STATEFILE"
+ ;;
+ down|vpn-down)
+ logger "sam - if DOWN of non-sam'd dev, nothing to do"
+ ;;
+ hostname|dhcp4-change|dhcp6-change)
+ logger "sam - did nothing"
+ ;;
+ *)
+ logger "sam - $0: called with unknown action $3"
+ exit 1
+ ;;
+ esac
+fi