diff options
Diffstat (limited to 'Source/charon/encoding/payloads/ts_payload.h')
-rw-r--r-- | Source/charon/encoding/payloads/ts_payload.h | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/Source/charon/encoding/payloads/ts_payload.h b/Source/charon/encoding/payloads/ts_payload.h index 02cd3a410..158196a6c 100644 --- a/Source/charon/encoding/payloads/ts_payload.h +++ b/Source/charon/encoding/payloads/ts_payload.h @@ -26,6 +26,7 @@ #include <types.h> #include <utils/iterator.h> +#include <config/traffic_selector.h> #include <encoding/payloads/payload.h> #include <encoding/payloads/traffic_selector_substructure.h> @@ -100,6 +101,18 @@ struct ts_payload_t { * @return created iterator_t object */ iterator_t *(*create_traffic_selector_substructure_iterator) (ts_payload_t *this, bool forward); + + /** + * @brief Create an array of the nested traffic_selector_t's. + * + * @warning Array must be freed after usage. + * @warnging traffic selector must be destroyed after usage. + * + * @param this calling ts_payload_t object + * @param[out] address of the array of traffic_selectors will be written here. + * @return number of ts in the allocated array + */ + size_t (*get_traffic_selectors) (ts_payload_t *this, traffic_selector_t **traffic_selectors[]); /** * @brief Destroys an ts_payload_t object. @@ -110,18 +123,32 @@ struct ts_payload_t { }; /** - * @brief Creates an empty id_payload_t object. + * @brief Creates an empty ts_payload_t object. * * * @param is_initiator * - TRUE if this payload is of type TSi * - FALSE if this payload is of type TSr * - * @return created id_payload_t object + * @return created ts_payload_t object * * @ingroup payloads */ ts_payload_t *ts_payload_create(bool is_initiator); +/** + * @brief Creates ts_payload with the specified traffic_selectors. + * + * + * @param is_initiator + * - TRUE if this payload is of type TSi + * - FALSE if this payload is of type TSr + * + * @return created ts_payload_t object + * + * @ingroup payloads + */ +ts_payload_t *ts_payload_create_from_traffic_selectors(bool is_initiator, traffic_selector_t *traffic_selectors[], size_t count); + #endif //TS_PAYLOAD_H_ |