diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-12-20 16:04:38 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-12-24 12:29:30 +0100 |
commit | 07df944c9c21539f686831fd27585caa12effe02 (patch) | |
tree | 8e52991e0e8fa55688d0904f343c10c0e41bec21 /src/libcharon/encoding/payloads/fragment_payload.c | |
parent | c4daac2c0b99ac9851310a196305ce18a97fcc51 (diff) | |
download | strongswan-07df944c9c21539f686831fd27585caa12effe02.tar.bz2 strongswan-07df944c9c21539f686831fd27585caa12effe02.tar.xz |
Add support to create IKE fragments
All fragments currently use the same fragment ID (1) as that's what
other implementations are doing.
Diffstat (limited to 'src/libcharon/encoding/payloads/fragment_payload.c')
-rw-r--r-- | src/libcharon/encoding/payloads/fragment_payload.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libcharon/encoding/payloads/fragment_payload.c b/src/libcharon/encoding/payloads/fragment_payload.c index 2e7e06198..1a6b3234b 100644 --- a/src/libcharon/encoding/payloads/fragment_payload.c +++ b/src/libcharon/encoding/payloads/fragment_payload.c @@ -206,3 +206,20 @@ fragment_payload_t *fragment_payload_create() this->payload_length = get_header_length(this); return &this->public; } + +/* + * Described in header + */ +fragment_payload_t *fragment_payload_create_from_data(u_int8_t num, bool last, + chunk_t data) +{ + private_fragment_payload_t *this; + + this = (private_fragment_payload_t*)fragment_payload_create(); + this->fragment_id = 1; + this->fragment_number = num; + this->flags |= (last ? LAST_FRAGMENT : 0); + this->data = chunk_clone(data); + this->payload_length = get_header_length(this) + data.len; + return &this->public; +}
\ No newline at end of file |