diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-08-15 15:15:34 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-08-15 15:15:34 +0200 |
commit | f853e7bcc03be4cde89a7f61fb9c243748d558d7 (patch) | |
tree | d0235d1f4f84a82ea9b282cf47a48892a3c29e16 /src | |
parent | c81a6ff9070220ec97754a1334c384c3ddf5ce92 (diff) | |
download | strongswan-f853e7bcc03be4cde89a7f61fb9c243748d558d7.tar.bz2 strongswan-f853e7bcc03be4cde89a7f61fb9c243748d558d7.tar.xz |
ikev1: Fix calculation of the number of fragments
The old code resulted in too few fragments in some cases.
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/sa/ikev1/task_manager_v1.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c index bcfbe3e3a..dfceb5446 100644 --- a/src/libcharon/sa/ikev1/task_manager_v1.c +++ b/src/libcharon/sa/ikev1/task_manager_v1.c @@ -448,7 +448,7 @@ static bool send_packet(private_task_manager_t *this, bool request, { /* reduce size due to non-ESP marker */ frag_size -= 4; } - count = (data.len / (frag_size + 1)) + 1; + count = data.len / frag_size + (data.len % frag_size ? 1 : 0); DBG1(DBG_IKE, "sending IKE message with length of %zu bytes in " "%hhu fragments", data.len, count); |