I realized that my patch does not correctly handle the interface going down; a fixed patch is attached.
-- brian m. carlson / brian with sandals: Houston, Texas, US +1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
--- 01ifupdown.old 2010-09-30 21:39:00.000000000 +0000
+++ 01ifupdown 2010-09-30 22:05:57.000000000 +0000
@@ -9,41 +9,55 @@
exit 1;
fi
+if [ -n "$IP4_NUM_ADDRESSES" ] && [ "$IP4_NUM_ADDRESSES" -gt 0 ]; then
+ ADDRESS_FAMILIES="$ADDRESS_FAMILIES inet"
+fi
+if [ -n "$IP6_NUM_ADDRESSES" ] && [ "$IP6_NUM_ADDRESSES" -gt 0 ]; then
+ ADDRESS_FAMILIES="$ADDRESS_FAMILIES inet6"
+fi
+
+# We're probably bringing the interface down.
+[ -n "$ADDRESS_FAMILIES" ] || ADDRESS_FAMILIES="inet"
+
# Fake ifupdown environment
export IFACE="$1"
export LOGICAL="$1"
-export ADDRFAM="NetworkManager"
export METHOD="NetworkManager"
export VERBOSITY="0"
-# Run the right scripts
-case "$2" in
- up|vpn-up)
- export MODE="start"
- export PHASE="post-up"
- exec run-parts /etc/network/if-up.d
- ;;
- down|vpn-down)
- export MODE="stop"
- export PHASE="post-down"
- exec run-parts /etc/network/if-post-down.d
- ;;
-# pre-up/pre-down not implemented. See
-# https://bugzilla.gnome.org/show_bug.cgi?id=387832
-# pre-up)
-# export MODE="start"
-# export PHASE="pre-up"
-# exec run-parts /etc/network/if-pre-up.d
-# ;;
-# pre-down)
-# export MODE="stop"
-# export PHASE="pre-down"
-# exec run-parts /etc/network/if-down.d
-# ;;
- hostname)
- ;;
- *)
- echo "$0: called with unknown action \`$2'" 1>&2
- exit 1
- ;;
-esac
+for i in $ADDRESS_FAMILIES
+do
+ export ADDRFAM="$i"
+
+ # Run the right scripts
+ case "$2" in
+ up|vpn-up)
+ export MODE="start"
+ export PHASE="post-up"
+ exec run-parts /etc/network/if-up.d
+ ;;
+ down|vpn-down)
+ export MODE="stop"
+ export PHASE="post-down"
+ exec run-parts /etc/network/if-post-down.d
+ ;;
+ # pre-up/pre-down not implemented. See
+ # https://bugzilla.gnome.org/show_bug.cgi?id=387832
+ # pre-up)
+ # export MODE="start"
+ # export PHASE="pre-up"
+ # exec run-parts /etc/network/if-pre-up.d
+ # ;;
+ # pre-down)
+ # export MODE="stop"
+ # export PHASE="pre-down"
+ # exec run-parts /etc/network/if-down.d
+ # ;;
+ hostname)
+ ;;
+ *)
+ echo "$0: called with unknown action \`$2'" 1>&2
+ exit 1
+ ;;
+ esac
+done
signature.asc
Description: Digital signature

