int SSL_clear(SSL *s)
{
-
if (s->method == NULL) {
SSLerr(SSL_F_SSL_CLEAR, SSL_R_NO_METHOD_SPECIFIED);
return (0);
return (0);
} else
s->method->ssl_clear(s);
+
+ RECORD_LAYER_clear(&s->rlayer);
+
return (1);
}
goto err;
memset(s, 0, sizeof(SSL));
+ RECORD_LAYER_set_ssl(&s->rlayer, s);
+ SSL3_RECORD_clear(RECORD_LAYER_get_rrec(&s->rlayer));
+ SSL3_RECORD_clear(RECORD_LAYER_get_wrec(&s->rlayer));
+
#ifndef OPENSSL_NO_KRB5
s->kssl_ctx = kssl_ctx_new();
#endif /* OPENSSL_NO_KRB5 */
if (s->method != NULL)
s->method->ssl_free(s);
+ RECORD_LAYER_release(&s->rlayer);
+
if (s->ctx)
SSL_CTX_free(s->ctx);