diff options
author | Martin Willi <martin@revosec.ch> | 2010-09-09 14:27:41 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-09-09 14:27:41 +0200 |
commit | 89821331e0be962fcbe6daaacb0b70ae9a30b148 (patch) | |
tree | 356ee93c85980ea73829c7303bbc3be80edf641d /src/libtls/tls_fragmentation.c | |
parent | 939c4bf2e8f02788860ba17d1231b20dfc211edf (diff) | |
download | strongswan-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.c | 12 |
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); |