Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > e8916e5cb6487118130934db089d8fa5 > files > 7

openswan-2.6.32-9.el5.src.rpm

diff -urNp openswan-2.6.32-orig/programs/_updown.netkey/_updown.netkey.in openswan-2.6.32-cvs-patched/programs/_updown.netkey/_updown.netkey.in
--- openswan-2.6.32-orig/programs/_updown.netkey/_updown.netkey.in	2010-12-20 12:44:19.114080068 -0500
+++ openswan-2.6.32-cvs-patched/programs/_updown.netkey/_updown.netkey.in	2010-12-20 12:57:35.152322209 -0500
@@ -271,8 +271,15 @@ fi
 addsource() {
     st=0
     # check if given sourceip is local and add as alias if not
-    if ! ip -o route get ${PLUTO_MY_SOURCEIP%/*} | grep -q ^local; then
-	it="ip addr add ${PLUTO_MY_SOURCEIP%/*}/32 dev ${PLUTO_INTERFACE%:*}"
+    saddr=${PLUTO_MY_SOURCEIP%/*}/32
+    if test "${PLUTO_PEER_CLIENT##*/}" != 32
+    then
+	saddr=${PLUTO_MY_SOURCEIP%/*}/"${PLUTO_PEER_CLIENT##*/}"
+    fi
+
+    if ! ip addr show dev ${PLUTO_INTERFACE%:*} | grep -qs "inet ${saddr}"
+    then
+	it="ip addr add ${saddr} dev ${PLUTO_INTERFACE%:*}"
 	oops="`eval $it 2>&1`"
 	st=$?
 	if [ " $oops" = " " -a " $st" != " 0" ]; then