aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/encoding/payloads/ts_payload.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2005-12-01 18:14:22 +0000
committerMartin Willi <martin@strongswan.org>2005-12-01 18:14:22 +0000
commit257fa503864d47420e6b9e16fad70587293d7edc (patch)
treebf7740b41f72f924aa55d82df2f60317afc373f2 /Source/charon/encoding/payloads/ts_payload.c
parent03283349a9ca4989c44e5eb6e632716c4c4b050f (diff)
downloadstrongswan-257fa503864d47420e6b9e16fad70587293d7edc.tar.bz2
strongswan-257fa503864d47420e6b9e16fad70587293d7edc.tar.xz
- added ts for both initator and responder
- ts_payload can get now ts's
Diffstat (limited to 'Source/charon/encoding/payloads/ts_payload.c')
-rw-r--r--Source/charon/encoding/payloads/ts_payload.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/charon/encoding/payloads/ts_payload.c b/Source/charon/encoding/payloads/ts_payload.c
index 6153e9504..0e6ed9930 100644
--- a/Source/charon/encoding/payloads/ts_payload.c
+++ b/Source/charon/encoding/payloads/ts_payload.c
@@ -236,25 +236,28 @@ static iterator_t * create_traffic_selector_substructure_iterator (private_ts_pa
return this->traffic_selectors->create_iterator(this->traffic_selectors,forward);
}
+/**
+ * Implementation of ts_payload_t.get_traffic_selectors.
+ */
static size_t get_traffic_selectors(private_ts_payload_t *this, traffic_selector_t **traffic_selectors[])
{
traffic_selector_t **ts;
iterator_t *iterator;
int i = 0;
- //ts = allocator_alloc(sizeof(traffic_selector_t*) * this->number_of_traffic_selectors);
+ ts = allocator_alloc(sizeof(traffic_selector_t*) * this->number_of_traffic_selectors);
iterator = this->traffic_selectors->create_iterator(this->traffic_selectors, TRUE);
- int x = this->traffic_selectors->get_count(this->traffic_selectors);
- while (iterator->has_next)
+ while (iterator->has_next(iterator))
{
traffic_selector_substructure_t *ts_substructure;
iterator->current(iterator, (void**)&ts_substructure);
- //ts[i] = ts_substructure->get_traffic_selector(ts_substructure);
+ ts[i] = ts_substructure->get_traffic_selector(ts_substructure);
i++;
}
+ iterator->destroy(iterator);
/* return values */
- //*traffic_selectors = ts;
+ *traffic_selectors = ts;
return this->number_of_traffic_selectors;
}