ike-cfg: Use new method to compare proposal lists in equals()

This commit is contained in:
Tobias Brunner
2016-03-08 10:21:57 +01:00
parent f6a5e6b6a9
commit 8db4f19ad9
+4 -20
View File
@@ -371,9 +371,6 @@ METHOD(ike_cfg_t, equals, bool,
private_ike_cfg_t *this, ike_cfg_t *other_public) private_ike_cfg_t *this, ike_cfg_t *other_public)
{ {
private_ike_cfg_t *other = (private_ike_cfg_t*)other_public; private_ike_cfg_t *other = (private_ike_cfg_t*)other_public;
enumerator_t *e1, *e2;
proposal_t *p1, *p2;
bool eq = TRUE;
if (this == other) if (this == other)
{ {
@@ -383,25 +380,12 @@ METHOD(ike_cfg_t, equals, bool,
{ {
return FALSE; return FALSE;
} }
if (this->proposals->get_count(this->proposals) != if (!this->proposals->equals_offset(this->proposals, other->proposals,
other->proposals->get_count(other->proposals)) offsetof(proposal_t, equals)))
{ {
return FALSE; return FALSE;
} }
e1 = this->proposals->create_enumerator(this->proposals); return
e2 = other->proposals->create_enumerator(other->proposals);
while (e1->enumerate(e1, &p1) && e2->enumerate(e2, &p2))
{
if (!p1->equals(p1, p2))
{
eq = FALSE;
break;
}
}
e1->destroy(e1);
e2->destroy(e2);
return (eq &&
this->version == other->version && this->version == other->version &&
this->certreq == other->certreq && this->certreq == other->certreq &&
this->force_encap == other->force_encap && this->force_encap == other->force_encap &&
@@ -409,7 +393,7 @@ METHOD(ike_cfg_t, equals, bool,
streq(this->me, other->me) && streq(this->me, other->me) &&
streq(this->other, other->other) && streq(this->other, other->other) &&
this->my_port == other->my_port && this->my_port == other->my_port &&
this->other_port == other->other_port); this->other_port == other->other_port;
} }
METHOD(ike_cfg_t, get_ref, ike_cfg_t*, METHOD(ike_cfg_t, get_ref, ike_cfg_t*,