diff options
Diffstat (limited to 'src/libcharon/encoding')
-rw-r--r-- | src/libcharon/encoding/payloads/unknown_payload.c | 16 | ||||
-rw-r--r-- | src/libcharon/encoding/payloads/unknown_payload.h | 15 |
2 files changed, 29 insertions, 2 deletions
diff --git a/src/libcharon/encoding/payloads/unknown_payload.c b/src/libcharon/encoding/payloads/unknown_payload.c index defc5d361..7fa381632 100644 --- a/src/libcharon/encoding/payloads/unknown_payload.c +++ b/src/libcharon/encoding/payloads/unknown_payload.c @@ -179,3 +179,19 @@ unknown_payload_t *unknown_payload_create(payload_type_t type) return &this->public; } + + +/* + * Described in header + */ +unknown_payload_t *unknown_payload_create_data(payload_type_t type, + bool critical, chunk_t data) +{ + private_unknown_payload_t *this; + + this = (private_unknown_payload_t*)unknown_payload_create(type); + this->data = data; + this->critical = critical; + + return &this->public; +} diff --git a/src/libcharon/encoding/payloads/unknown_payload.h b/src/libcharon/encoding/payloads/unknown_payload.h index 1f42fcf09..5ae85331b 100644 --- a/src/libcharon/encoding/payloads/unknown_payload.h +++ b/src/libcharon/encoding/payloads/unknown_payload.h @@ -72,9 +72,20 @@ struct unknown_payload_t { /** * Creates an empty unknown_payload_t. * - * @param type of the payload - * @return unknown_payload_t object + * @param type of the payload + * @return unknown_payload_t object */ unknown_payload_t *unknown_payload_create(payload_type_t type); +/** + * Create an unknown payload with data. + * + * @param type type of payload to create + * @param critical TRUE to set critical bit + * @param data data to set for this payload, gets owned by payload + * @return payload object + */ +unknown_payload_t *unknown_payload_create_data(payload_type_t type, + bool critical, chunk_t data); + #endif /** UNKNOWN_PAYLOAD_H_ @}*/ |