aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2015-04-17 14:19:05 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2015-06-01 09:42:10 +0200
commit823a8a9b464140524cfb14c1af7780b00acb68eb (patch)
treeea96b9f2c3585e022b20b174c734bfb7d5df1202 /src
parentb8399a2edc291a04bab7de59d1b5750f42fd8d5f (diff)
downloadstrongswan-823a8a9b464140524cfb14c1af7780b00acb68eb.tar.bz2
strongswan-823a8a9b464140524cfb14c1af7780b00acb68eb.tar.xz
message: Show the fragmentation numbers in message stringification
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/encoding/message.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libcharon/encoding/message.c b/src/libcharon/encoding/message.c
index e51c94691..1ee2cf81b 100644
--- a/src/libcharon/encoding/message.c
+++ b/src/libcharon/encoding/message.c
@@ -1411,6 +1411,42 @@ static char* get_string(private_message_t *this, char *buf, int len)
len -= written;
}
}
+ if (payload->get_type(payload) == PLV1_FRAGMENT)
+ {
+ fragment_payload_t *frag;
+
+ frag = (fragment_payload_t*)payload;
+ if (frag->is_last(frag))
+ {
+ written = snprintf(pos, len, "(%u/%u)",
+ frag->get_number(frag), frag->get_number(frag));
+ }
+ else
+ {
+ written = snprintf(pos, len, "(%u)", frag->get_number(frag));
+ }
+ if (written >= len || written < 0)
+ {
+ return buf;
+ }
+ pos += written;
+ len -= written;
+ }
+ if (payload->get_type(payload) == PLV2_FRAGMENT)
+ {
+ encrypted_fragment_payload_t *frag;
+
+ frag = (encrypted_fragment_payload_t*)payload;
+ written = snprintf(pos, len, "(%u/%u)",
+ frag->get_fragment_number(frag),
+ frag->get_total_fragments(frag));
+ if (written >= len || written < 0)
+ {
+ return buf;
+ }
+ pos += written;
+ len -= written;
+ }
}
enumerator->destroy(enumerator);