Description: remove existing IPv4 addresses when configuring static IP
Origin: upstream, commit 731a05714e71ace0c9dfa7c0860db758071b740e
Author: Rob Hoes <rob.hoes@citrix.com>
Last-Update: Tue Mar 13 17:23:39 2012 +0000

Index: xen-api/ocaml/network/network_server.ml
===================================================================
--- xen-api.orig/ocaml/network/network_server.ml	2012-07-05 19:54:26.000000000 +0000
+++ xen-api/ocaml/network/network_server.ml	2012-07-05 19:54:35.000000000 +0000
@@ -221,6 +221,7 @@
 		| Static4 addrs ->
 			if Dhclient.is_running name then
 				ignore (Dhclient.stop name);
+			Ip.flush_ip_addr name;
 			List.iter (Ip.set_ip_addr name) addrs
 
 	let get_ipv4_gateway _ name =
Index: xen-api/ocaml/network/network_utils.ml
===================================================================
--- xen-api.orig/ocaml/network/network_utils.ml	2012-07-05 19:54:35.000000000 +0000
+++ xen-api/ocaml/network/network_utils.ml	2012-07-05 19:54:35.000000000 +0000
@@ -326,7 +326,9 @@
 
 	let flush_ip_addr ?(ipv6=false) dev =
 		let ipv6' = if ipv6 then ["-6"] else ["-4"] in
-		ignore (call(ipv6' @ ["addr"; "flush"; "dev"; dev]))
+		try
+			ignore (call(ipv6' @ ["addr"; "flush"; "dev"; dev]))
+		with _ -> ()
 
 	let route_show ?(version=V46) dev =
 		let v = string_of_version version in
