chunk_hash_inc(sa->dst->get_address(sa->dst),
chunk_hash_inc(chunk_from_thing(sa->mark),
chunk_hash_inc(chunk_from_thing(sa->if_id),
- chunk_hash(chunk_from_thing(sa->cfg))))));
+ ipsec_sa_cfg_hash(&sa->cfg)))));
}
/**
{
return chunk_hash_inc(sa->src->get_address(sa->src),
chunk_hash_inc(sa->dst->get_address(sa->dst),
- chunk_hash(chunk_from_thing(sa->cfg))));
+ ipsec_sa_cfg_hash(&sa->cfg)));
}
/**
"no",
);
+/*
+ * See header
+ */
+u_int ipsec_sa_cfg_hash(ipsec_sa_cfg_t *this)
+{
+ return chunk_hash_inc(chunk_from_thing(this->mode),
+ chunk_hash_inc(chunk_from_thing(this->reqid),
+ chunk_hash_inc(chunk_from_thing(this->policy_count),
+ chunk_hash_inc(chunk_from_thing(this->esp.use),
+ chunk_hash_inc(chunk_from_thing(this->esp.spi),
+ chunk_hash_inc(chunk_from_thing(this->ah.use),
+ chunk_hash_inc(chunk_from_thing(this->ah.spi),
+ chunk_hash_inc(chunk_from_thing(this->ipcomp.transform),
+ chunk_hash(chunk_from_thing(this->ipcomp.cpi))))))))));
+}
+
/*
* See header
*/
} ipcomp;
};
+/**
+ * Hash an ipsec_sa_cfg_t object.
+ *
+ * @param this object to hash
+ * @return hash value
+ */
+u_int ipsec_sa_cfg_hash(ipsec_sa_cfg_t *this);
+
/**
* Compare two ipsec_sa_cfg_t objects for equality.
*