Fix compilation on windows for record layer
[openssl.git] / ssl / ssl_lib.c
index cb3492a5e433fd7d122c13b4e1cf88964561f792..abb3fd301f07ae100cd3de01c6cb20188e1c810e 100644 (file)
@@ -189,10 +189,6 @@ SSL3_ENC_METHOD ssl3_undef_enc_method = {
 
 int SSL_clear(SSL *s)
 {
-    unsigned char *rp;
-    size_t rlen;
-    int read_ahead;
-
     if (s->method == NULL) {
         SSLerr(SSL_F_SSL_CLEAR, SSL_R_NO_METHOD_SPECIFIED);
         return (0);
@@ -219,7 +215,6 @@ int SSL_clear(SSL *s)
     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);
@@ -245,18 +240,7 @@ int SSL_clear(SSL *s)
     } else
         s->method->ssl_clear(s);
 
-    read_ahead = RECORD_LAYER_get_read_ahead(&s->rlayer);
-    rp = SSL3_BUFFER_get_buf(RECORD_LAYER_get_rbuf(&s->rlayer));
-    rlen = SSL3_BUFFER_get_len(RECORD_LAYER_get_rbuf(&s->rlayer));
-    memset(&s->rlayer, 0, sizeof s->rlayer);
-    SSL3_BUFFER_set_buf(RECORD_LAYER_get_rbuf(&s->rlayer), rp);
-    SSL3_BUFFER_set_len(RECORD_LAYER_get_rbuf(&s->rlayer), rlen);
-
-    /* Do I need to do this? As far as I can tell read_ahead did not
-     * previously get reset by SSL_clear...so I'll keep it that way..but is
-     * that right?
-     */
-    RECORD_LAYER_set_read_ahead(&s->rlayer, read_ahead);
+    RECORD_LAYER_clear(&s->rlayer);
 
     return (1);
 }
@@ -297,7 +281,7 @@ SSL *SSL_new(SSL_CTX *ctx)
         goto err;
     memset(s, 0, sizeof(SSL));
 
-    RECORD_LAYER_set_ssl(&s->rlayer, s);
+    RECORD_LAYER_init(&s->rlayer, s);
 
 #ifndef OPENSSL_NO_KRB5
     s->kssl_ctx = kssl_ctx_new();
@@ -616,8 +600,7 @@ void SSL_free(SSL *s)
     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);
+    RECORD_LAYER_release(&s->rlayer);
 
     if (s->ctx)
         SSL_CTX_free(s->ctx);
@@ -2846,7 +2829,7 @@ SSL *SSL_dup(SSL *s)
     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 */