s->version = s->method->version;
s->client_version = s->version;
s->rwstate = SSL_NOTHING;
- s->rstate = SSL_ST_READ_HEADER;
if (s->init_buf != NULL) {
BUF_MEM_free(s->init_buf);
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));
+ RECORD_LAYER_init(&s->rlayer, s);
#ifndef OPENSSL_NO_KRB5
s->kssl_ctx = kssl_ctx_new();
if (s->method != NULL)
s->method->ssl_free(s);
- if (SSL3_BUFFER_is_initialised(RECORD_LAYER_get_rbuf(&s->rlayer)))
- ssl3_release_read_buffer(s);
- if (SSL3_BUFFER_is_initialised(RECORD_LAYER_get_wbuf(&s->rlayer)))
- ssl3_release_write_buffer(s);
- SSL3_RECORD_release(RECORD_LAYER_get_rrec(&s->rlayer));
+ RECORD_LAYER_release(&s->rlayer);
if (s->ctx)
SSL_CTX_free(s->ctx);
ret->shutdown = s->shutdown;
ret->state = s->state; /* SSL_dup does not really work at any state,
* though */
- ret->rstate = s->rstate;
+ RECORD_LAYER_dup(&ret->rlayer, &s->rlayer);
ret->init_num = 0; /* would have to copy ret->init_buf,
* ret->init_msg, ret->init_num,
* ret->init_off */