mirror of
https://github.com/strongswan/strongswan.git
synced 2025-11-27 00:00:29 -05:00
ike-cfg: Add method to check if config contains matching proposal
This way we can check whether the config should be considered or not if we have a selected proposal.
This commit is contained in:
parent
f72aa13a29
commit
29e7fe63c3
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2017 Tobias Brunner
|
* Copyright (C) 2012-2018 Tobias Brunner
|
||||||
* Copyright (C) 2005-2007 Martin Willi
|
* Copyright (C) 2005-2007 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* HSR Hochschule fuer Technik Rapperswil
|
* HSR Hochschule fuer Technik Rapperswil
|
||||||
@ -309,6 +309,25 @@ METHOD(ike_cfg_t, get_proposals, linked_list_t*,
|
|||||||
return proposals;
|
return proposals;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
METHOD(ike_cfg_t, has_proposal, bool,
|
||||||
|
private_ike_cfg_t *this, proposal_t *match, bool private)
|
||||||
|
{
|
||||||
|
enumerator_t *enumerator;
|
||||||
|
proposal_t *proposal;
|
||||||
|
|
||||||
|
enumerator = this->proposals->create_enumerator(this->proposals);
|
||||||
|
while (enumerator->enumerate(enumerator, &proposal))
|
||||||
|
{
|
||||||
|
if (proposal->matches(proposal, match, private))
|
||||||
|
{
|
||||||
|
enumerator->destroy(enumerator);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
enumerator->destroy(enumerator);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
METHOD(ike_cfg_t, select_proposal, proposal_t*,
|
METHOD(ike_cfg_t, select_proposal, proposal_t*,
|
||||||
private_ike_cfg_t *this, linked_list_t *proposals, bool private,
|
private_ike_cfg_t *this, linked_list_t *proposals, bool private,
|
||||||
bool prefer_self)
|
bool prefer_self)
|
||||||
@ -618,6 +637,7 @@ ike_cfg_t *ike_cfg_create(ike_version_t version, bool certreq, bool force_encap,
|
|||||||
.add_proposal = _add_proposal,
|
.add_proposal = _add_proposal,
|
||||||
.get_proposals = _get_proposals,
|
.get_proposals = _get_proposals,
|
||||||
.select_proposal = _select_proposal,
|
.select_proposal = _select_proposal,
|
||||||
|
.has_proposal = _has_proposal,
|
||||||
.get_dh_group = _get_dh_group,
|
.get_dh_group = _get_dh_group,
|
||||||
.equals = _equals,
|
.equals = _equals,
|
||||||
.get_ref = _get_ref,
|
.get_ref = _get_ref,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2017 Tobias Brunner
|
* Copyright (C) 2012-2018 Tobias Brunner
|
||||||
* Copyright (C) 2005-2007 Martin Willi
|
* Copyright (C) 2005-2007 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* HSR Hochschule fuer Technik Rapperswil
|
* HSR Hochschule fuer Technik Rapperswil
|
||||||
@ -179,6 +179,15 @@ struct ike_cfg_t {
|
|||||||
proposal_t *(*select_proposal) (ike_cfg_t *this, linked_list_t *proposals,
|
proposal_t *(*select_proposal) (ike_cfg_t *this, linked_list_t *proposals,
|
||||||
bool private, bool prefer_self);
|
bool private, bool prefer_self);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the config has a matching proposal.
|
||||||
|
*
|
||||||
|
* @param match proposal to check
|
||||||
|
* @param private accept algorithms from a private range
|
||||||
|
* @return TRUE if a matching proposal is contained
|
||||||
|
*/
|
||||||
|
bool(*has_proposal)(ike_cfg_t *this, proposal_t *match, bool private);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should we send a certificate request in IKE_SA_INIT?
|
* Should we send a certificate request in IKE_SA_INIT?
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user