charon-tkm: Store remote SPI in SAD
authorReto Buerki <reet@codelabs.ch>
Thu, 18 Dec 2014 15:49:16 +0000 (16:49 +0100)
committerMartin Willi <martin@revosec.ch>
Fri, 20 Feb 2015 12:34:53 +0000 (13:34 +0100)
Store the remote instead of the local SPI in the SAD when adding a new
entry in the kernel plugin's add_sa() function.

Since only one ESA context must be destroyed for an inbound/outbound
CHILD SA pair, it does not matter which SPI is used to retrieve it in
the del_sa function.

src/charon-tkm/src/tkm/tkm_kernel_ipsec.c

index 1cc58e2..3f1b0bb 100644 (file)
@@ -136,7 +136,7 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
        }
 
        esa_id = tkm->idmgr->acquire_id(tkm->idmgr, TKM_CTX_ESA);
-       if (!tkm->sad->insert(tkm->sad, esa_id, peer, local, spi_loc, protocol))
+       if (!tkm->sad->insert(tkm->sad, esa_id, local, peer, spi_rem, protocol))
        {
                DBG1(DBG_KNL, "unable to add entry (%llu) to SAD", esa_id);
                goto sad_failure;