From b900910be783486a34a3968384cf0d50e55effed Mon Sep 17 00:00:00 2001
From: TAKAMIYA Noriaki <takamiya@po.ntts.co.jp>
Date: Thu, 30 Nov 2006 12:57:41 +0900
Subject: [KERNELIF] XFRM: Use replace operation for acquired state.

Older kernel doesn't restrict acquired state duplication but
since 2.6.19 it is an error. This patch fix it.
---
 src/xfrm.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/xfrm.c b/src/xfrm.c
index 943bebe..fd30d93 100644
--- a/src/xfrm.c
+++ b/src/xfrm.c
@@ -1658,6 +1658,11 @@ int xfrm_pre_bu_add_bule(struct bulentry *bule)
 	if (_mn_bule_ro_pol_add(bule, bule->home->if_tunnel, rdata))
 		return -1;
 	set_selector(&bule->peer_addr, &bule->hoa, 0, 0, 0, 0, &sel);
+	/* XXX: acquired state is already inserted */
+	if (!(bule->flags & IP6_MH_BU_HOME)) {
+		XDBG2("%s: original rdata = %d\n", __FUNCTION__, rdata);
+		rdata = 1;
+	}
 	return xfrm_state_add(&sel, IPPROTO_DSTOPTS, &bule->coa, rdata, 0);
 }
 
-- 
1.5.0.3

