ssl: Linux TLS Rx Offload
[oweals/openssl.git] / ssl / record / rec_layer_s3.c
index b21227765a9c641d67bb2b79575f5357f35b5fa5..8b2320d2dcbf518e29582e17ba3fdbac8aed4675 100644 (file)
@@ -268,11 +268,15 @@ int ssl3_read_n(SSL *s, size_t n, size_t max, int extend, int clearold,
         return -1;
     }
 
-    /* We always act like read_ahead is set for DTLS */
-    if (!s->rlayer.read_ahead && !SSL_IS_DTLS(s))
+    /*
+     * Ktls always reads full records.
+     * Also, we always act like read_ahead is set for DTLS.
+     */
+    if (!BIO_get_ktls_recv(s->rbio) && !s->rlayer.read_ahead
+        && !SSL_IS_DTLS(s)) {
         /* ignore max parameter */
         max = n;
-    else {
+    else {
         if (max < n)
             max = n;
         if (max > rb->len - rb->offset)