Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > e536fc0c6270ec1d92a0fd41bb1f8360 > files > 29

rgmanager-2.0.52-28.el5_8.2.src.rpm

From 3ae5f5cea15c8198141308d0fc8443853c45faf4 Mon Sep 17 00:00:00 2001
From: Ferenc Antal <antalf@ulx.hu>
Date: Fri, 13 Nov 2009 15:09:51 -0500
Subject: [PATCH] resource-agents: Make ip.sh deal with ip address collision

Resolves: rhbz#526647

Part 1/2

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 rgmanager/src/resources/ip.sh |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/rgmanager/src/resources/ip.sh b/rgmanager/src/resources/ip.sh
index e9779a2..9511884 100755
--- a/rgmanager/src/resources/ip.sh
+++ b/rgmanager/src/resources/ip.sh
@@ -585,6 +585,13 @@ ipv6()
 			ocf_log info "Removing IPv6 address $addr from $dev"
                 fi
 		
+		if [ "$1" = "add" ]; then
+			ocf_log notice "Pinging addr ${addr%%/*} from dev $dev"
+			if ping_check inet6 ${addr%%/*} $dev; then
+				ocf_log err "IPv6 address collision ${addr%%/*}"
+				return 1
+			fi
+		fi
 		/sbin/ip -f inet6 addr $1 dev $dev $addr
 		[ $? -ne 0 ] && return 1
 		
@@ -657,6 +664,13 @@ ipv4()
 			ocf_log info "Removing IPv4 address $addr from $dev"
 		fi
 		
+		if [ "$1" = "add" ]; then
+			ocf_log notice "Pinging addr ${addr%%/*} from dev $dev"
+			if ping_check inet ${addr%%/*} $dev; then
+				ocf_log err "IPv4 address collision ${addr%%/*}"
+				return 1
+			fi
+		fi
 		/sbin/ip -f inet addr $1 dev $dev $addr
 		[ $? -ne 0 ] && return 1
 		
-- 
1.6.2.5