aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtls/tls_fragmentation.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-09-09 14:27:41 +0200
committerMartin Willi <martin@revosec.ch>2010-09-09 14:27:41 +0200
commit89821331e0be962fcbe6daaacb0b70ae9a30b148 (patch)
tree356ee93c85980ea73829c7303bbc3be80edf641d /src/libtls/tls_fragmentation.c
parent939c4bf2e8f02788860ba17d1231b20dfc211edf (diff)
downloadstrongswan-89821331e0be962fcbe6daaacb0b70ae9a30b148.tar.bz2
strongswan-89821331e0be962fcbe6daaacb0b70ae9a30b148.tar.xz
Do not change cipherspec while we have buffered handshake fragments pending
Diffstat (limited to 'src/libtls/tls_fragmentation.c')
-rw-r--r--src/libtls/tls_fragmentation.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libtls/tls_fragmentation.c b/src/libtls/tls_fragmentation.c
index 3ef232806..5a598cfc4 100644
--- a/src/libtls/tls_fragmentation.c
+++ b/src/libtls/tls_fragmentation.c
@@ -393,14 +393,14 @@ METHOD(tls_fragmentation_t, build, status_t,
*type = TLS_ALERT;
return NEED_MORE;
}
- if (this->handshake->cipherspec_changed(this->handshake))
- {
- *type = TLS_CHANGE_CIPHER_SPEC;
- *data = chunk_clone(chunk_from_chars(0x01));
- return NEED_MORE;
- }
if (!this->output.len)
{
+ if (this->handshake->cipherspec_changed(this->handshake))
+ {
+ *type = TLS_CHANGE_CIPHER_SPEC;
+ *data = chunk_clone(chunk_from_chars(0x01));
+ return NEED_MORE;
+ }
if (!this->handshake->finished(this->handshake))
{
status = build_handshake(this);