diff options
author | Martin Willi <martin@revosec.ch> | 2011-07-07 12:31:02 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-08-08 13:36:55 +0200 |
commit | 4c199e6f815ffc82e4dccc90d359d32ae5ebdddf (patch) | |
tree | 9e862a0da9d7e95c870bfa2e384ef88bab73d5b9 /src | |
parent | b4853f12f5abc9110ca6a0cb9cdd622225484eff (diff) | |
download | strongswan-4c199e6f815ffc82e4dccc90d359d32ae5ebdddf.tar.bz2 strongswan-4c199e6f815ffc82e4dccc90d359d32ae5ebdddf.tar.xz |
Add a non-clonig variant of eap_payload_create_data
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/encoding/payloads/eap_payload.c | 12 | ||||
-rw-r--r-- | src/libcharon/encoding/payloads/eap_payload.h | 13 |
2 files changed, 23 insertions, 2 deletions
diff --git a/src/libcharon/encoding/payloads/eap_payload.c b/src/libcharon/encoding/payloads/eap_payload.c index eafb668b6..cacaef222 100644 --- a/src/libcharon/encoding/payloads/eap_payload.c +++ b/src/libcharon/encoding/payloads/eap_payload.c @@ -284,6 +284,18 @@ eap_payload_t *eap_payload_create_data(chunk_t data) /* * Described in header */ +eap_payload_t *eap_payload_create_data_own(chunk_t data) +{ + eap_payload_t *this = eap_payload_create(); + + this->set_data(this, data); + free(data.ptr); + return this; +} + +/* + * Described in header + */ eap_payload_t *eap_payload_create_code(eap_code_t code, u_int8_t identifier) { chunk_t data; diff --git a/src/libcharon/encoding/payloads/eap_payload.h b/src/libcharon/encoding/payloads/eap_payload.h index 0bde4b15e..60d9c99d2 100644 --- a/src/libcharon/encoding/payloads/eap_payload.h +++ b/src/libcharon/encoding/payloads/eap_payload.h @@ -95,18 +95,27 @@ struct eap_payload_t { /** * Creates an empty eap_payload_t object. * - * @return eap_payload_t object + * @return eap_payload_t object */ eap_payload_t *eap_payload_create(void); /** * Creates an eap_payload_t object with data. * - * @return eap_payload_t object + * @param data data, gets cloned + * @return eap_payload_t object */ eap_payload_t *eap_payload_create_data(chunk_t data); /** + * Creates an eap_payload_t object with data, owning the data. + * + * @param data data on heap, gets owned and freed + * @return eap_payload_t object + */ +eap_payload_t *eap_payload_create_data_own(chunk_t data); + +/** * Creates an eap_payload_t object with a code. * * Could should be either EAP_SUCCESS/EAP_FAILURE, use |