aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtls/tls_fragmentation.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-12-30 18:29:11 +0100
committerMartin Willi <martin@revosec.ch>2011-12-31 13:14:49 +0100
commit4caa380625e583c9bad5b9333e65ef1f9486bb2a (patch)
treea2c1506149b99baae89b590f5f6fc4eab0d28948 /src/libtls/tls_fragmentation.c
parent7c0c2349a9e0e64a96695c369bccdb244c1b9344 (diff)
downloadstrongswan-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.c6
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;