diff options
author | Tobias Brunner <tobias@strongswan.org> | 2017-05-12 12:10:27 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2017-05-26 13:56:44 +0200 |
commit | 525cc46cabe3dbf17d9f63e76ea9aa974d3665fa (patch) | |
tree | 33c09810e1c86a943c9bbca05ad35900d086362b /src/libcharon/tests/utils/mock_ipsec.c | |
parent | 95a63bf2813cd6ecad912237688526bbcc3481ee (diff) | |
download | strongswan-525cc46cabe3dbf17d9f63e76ea9aa974d3665fa.tar.bz2 strongswan-525cc46cabe3dbf17d9f63e76ea9aa974d3665fa.tar.xz |
Change interface for enumerator_create_filter() callback
This avoids the unportable 5 pointer hack, but requires enumerating in
the callback.
Diffstat (limited to 'src/libcharon/tests/utils/mock_ipsec.c')
-rw-r--r-- | src/libcharon/tests/utils/mock_ipsec.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/libcharon/tests/utils/mock_ipsec.c b/src/libcharon/tests/utils/mock_ipsec.c index 68daaac32..d6172f5bd 100644 --- a/src/libcharon/tests/utils/mock_ipsec.c +++ b/src/libcharon/tests/utils/mock_ipsec.c @@ -269,19 +269,27 @@ kernel_ipsec_t *mock_ipsec_create() return &this->public; } -/** - * Filter SAs - */ -static bool filter_sas(void *data, entry_t **entry, ike_sa_t **ike_sa, - void *unused, uint32_t *spi) + +CALLBACK(filter_sas, bool, + void *data, enumerator_t *orig, va_list args) { - if ((*entry)->alloc) + entry_t *entry; + ike_sa_t **ike_sa; + uint32_t *spi; + + VA_ARGS_VGET(args, ike_sa, spi); + + while (orig->enumerate(orig, &entry, NULL)) { - return FALSE; + if (entry->alloc) + { + continue; + } + *ike_sa = entry->ike_sa; + *spi = entry->spi; + return TRUE; } - *ike_sa = (*entry)->ike_sa; - *spi = (*entry)->spi; - return TRUE; + return FALSE; } /* @@ -291,5 +299,5 @@ enumerator_t *mock_ipsec_create_sa_enumerator() { return enumerator_create_filter( instance->sas->create_enumerator(instance->sas), - (void*)filter_sas, NULL, NULL); + filter_sas, NULL, NULL); } |