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

Attachment: signature.asc
Description: Digital signature

Reply via email to