set XFRM_STATE_AF_UNSPEC flag

This commit is contained in:
Andreas Steffen
2009-09-22 20:55:10 +02:00
parent b262680175
commit b88bbe8aa1
+14 -1
View File
@@ -40,6 +40,11 @@
#include "whack.h" /* for RC_LOG_SERIOUS */
#include "kernel_alg.h"
/** required for Linux 2.6.26 kernel and later */
#ifndef XFRM_STATE_AF_UNSPEC
#define XFRM_STATE_AF_UNSPEC 32
#endif
/* Minimum priority number in SPD used by pluto. */
#define MIN_SPD_PRIORITY 1024
@@ -602,7 +607,15 @@ static bool netlink_add_sa(const struct kernel_sa *sa, bool replace)
req.p.id.spi = sa->spi;
req.p.id.proto = satype2proto(sa->satype);
req.p.family = sa->src->u.v4.sin_family;
req.p.mode = (sa->encapsulation == ENCAPSULATION_MODE_TUNNEL);
if (sa->encapsulation == ENCAPSULATION_MODE_TUNNEL)
{
req.p.mode = XFRM_MODE_TUNNEL;
req.p.flags |= XFRM_STATE_AF_UNSPEC;
}
else
{
req.p.mode = XFRM_MODE_TRANSPORT;
}
req.p.replay_window = sa->replay_window;
req.p.reqid = sa->reqid;
req.p.lft.soft_byte_limit = XFRM_INF;