ipsec: Add function to compare two ipsec_sa_cfg_t instances

memeq() is currently used to compare these but if there is padding that
is not initialized the same for two instances the comparison fails.
Using this function ensures the objects are compared correctly.
This commit is contained in:
Tobias Brunner 2016-06-08 16:06:53 +02:00
parent 5005325020
commit 3c12905103
2 changed files with 25 additions and 0 deletions

View File

@ -37,6 +37,22 @@ ENUM(ipcomp_transform_names, IPCOMP_NONE, IPCOMP_LZJH,
"IPCOMP_LZJH"
);
/*
* See header
*/
bool ipsec_sa_cfg_equals(ipsec_sa_cfg_t *a, ipsec_sa_cfg_t *b)
{
return a->mode == b->mode &&
a->reqid == b->reqid &&
a->policy_count == b->policy_count &&
a->esp.use == b->esp.use &&
a->esp.spi == b->esp.spi &&
a->ah.use == b->ah.use &&
a->ah.spi == b->ah.spi &&
a->ipcomp.transform == b->ipcomp.transform &&
a->ipcomp.cpi == b->ipcomp.cpi;
}
/*
* See header
*/

View File

@ -142,6 +142,15 @@ struct ipsec_sa_cfg_t {
} ipcomp;
};
/**
* Compare two ipsec_sa_cfg_t objects for equality.
*
* @param a first object
* @param b second object
* @return TRUE if both objects are equal
*/
bool ipsec_sa_cfg_equals(ipsec_sa_cfg_t *a, ipsec_sa_cfg_t *b);
/**
* A lifetime_cfg_t defines the lifetime limits of an SA.
*