summaryrefslogtreecommitdiffstats
path: root/ssl/s3_lib.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2015-01-30 17:29:41 +0000
committerMatt Caswell <matt@openssl.org>2015-03-26 13:53:07 +0000
commit258f8721a5d2c3ec5fd433e89112885139be1db3 (patch)
treee43ce47ce54ae67d4a50f28306fdde89f5f5241d /ssl/s3_lib.c
parentab97b2cd4301074fd88fd2f13b8c79342593dae4 (diff)
Encapsulate s->s3->rrec
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'ssl/s3_lib.c')
-rw-r--r--ssl/s3_lib.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index 948e14e5a4..7023ba5d83 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -3083,8 +3083,9 @@ int ssl3_pending(const SSL *s)
if (s->rstate == SSL_ST_READ_BODY)
return 0;
- return (s->s3->rrec.type ==
- SSL3_RT_APPLICATION_DATA) ? s->s3->rrec.length : 0;
+ return (SSL3_RECORD_get_type(RECORD_LAYER_get_rrec(&s->rlayer))
+ == SSL3_RT_APPLICATION_DATA)
+ ? SSL3_RECORD_get_length(RECORD_LAYER_get_rrec(&s->rlayer)) : 0;
}
int ssl3_set_handshake_header(SSL *s, int htype, unsigned long len)
@@ -3110,11 +3111,10 @@ int ssl3_new(SSL *s)
if ((s3 = OPENSSL_malloc(sizeof *s3)) == NULL)
goto err;
memset(s3, 0, sizeof *s3);
- memset(s3->rrec.seq_num, 0, sizeof(s3->rrec.seq_num));
- memset(s3->wrec.seq_num, 0, sizeof(s3->wrec.seq_num));
-
s->s3 = s3;
-
+ SSL3_RECORD_clear(RECORD_LAYER_get_rrec(&s->rlayer));
+ memset(s3->wrec.seq_num, 0, sizeof(s3->wrec.seq_num));
+
#ifndef OPENSSL_NO_SRP
if(!SSL_SRP_CTX_init(s))
goto err;
@@ -3131,8 +3131,7 @@ void ssl3_free(SSL *s)
return;
ssl3_cleanup_key_block(s);
- if (s->s3->rrec.comp != NULL)
- OPENSSL_free(s->s3->rrec.comp);
+ SSL3_RECORD_release(RECORD_LAYER_get_rrec(&s->rlayer));
#ifndef OPENSSL_NO_DH
DH_free(s->s3->tmp.dh);
#endif
@@ -3166,10 +3165,7 @@ void ssl3_clear(SSL *s)
if (s->s3->tmp.ca_names != NULL)
sk_X509_NAME_pop_free(s->s3->tmp.ca_names, X509_NAME_free);
- if (s->s3->rrec.comp != NULL) {
- OPENSSL_free(s->s3->rrec.comp);
- s->s3->rrec.comp = NULL;
- }
+ SSL3_RECORD_release(RECORD_LAYER_get_rrec(&s->rlayer));
#ifndef OPENSSL_NO_DH
DH_free(s->s3->tmp.dh);
s->s3->tmp.dh = NULL;