diff options
author | Martin Willi <martin@revosec.ch> | 2011-12-30 18:29:11 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-12-31 13:14:49 +0100 |
commit | 4caa380625e583c9bad5b9333e65ef1f9486bb2a (patch) | |
tree | a2c1506149b99baae89b590f5f6fc4eab0d28948 /src/libtls/tls_fragmentation.c | |
parent | 7c0c2349a9e0e64a96695c369bccdb244c1b9344 (diff) | |
download | strongswan-4caa380625e583c9bad5b9333e65ef1f9486bb2a.tar.bz2 strongswan-4caa380625e583c9bad5b9333e65ef1f9486bb2a.tar.xz |
Separated cipherspec checking and switching, allowing us to defer the second
Diffstat (limited to 'src/libtls/tls_fragmentation.c')
-rw-r--r-- | src/libtls/tls_fragmentation.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libtls/tls_fragmentation.c b/src/libtls/tls_fragmentation.c index c42c16fb8..0c3da71ad 100644 --- a/src/libtls/tls_fragmentation.c +++ b/src/libtls/tls_fragmentation.c @@ -251,8 +251,9 @@ METHOD(tls_fragmentation_t, process, status_t, switch (type) { case TLS_CHANGE_CIPHER_SPEC: - if (this->handshake->change_cipherspec(this->handshake)) + if (this->handshake->cipherspec_changed(this->handshake, TRUE)) { + this->handshake->change_cipherspec(this->handshake, TRUE); status = NEED_MORE; break; } @@ -397,8 +398,9 @@ METHOD(tls_fragmentation_t, build, status_t, } if (!this->output.len) { - if (this->handshake->cipherspec_changed(this->handshake)) + if (this->handshake->cipherspec_changed(this->handshake, FALSE)) { + this->handshake->change_cipherspec(this->handshake, FALSE); *type = TLS_CHANGE_CIPHER_SPEC; *data = chunk_clone(chunk_from_chars(0x01)); return NEED_MORE; |