- if (!tls_ctx_handshake_is_over (ctx))
- return tls_handshake_rx (ctx);
-
- deq_max = svm_fifo_max_dequeue (tls_session->server_rx_fifo);
- if (!deq_max)
- return 0;
-
- app_session = session_get_from_handle (ctx->app_session_handle);
- enq_max = svm_fifo_max_enqueue (app_session->server_rx_fifo);
- enq_now = clib_min (enq_max, TLS_CHUNK_SIZE);
-
- if (PREDICT_FALSE (enq_now == 0))
- {
- tls_add_vpp_q_evt (tls_session->server_rx_fifo, FIFO_EVENT_BUILTIN_RX);
- return 0;
- }
-
- vec_validate (tmp_buf, enq_now);
- read = tls_ctx_read (ctx, tmp_buf, enq_now);
- if (read <= 0)
- {
- tls_add_vpp_q_evt (tls_session->server_rx_fifo, FIFO_EVENT_BUILTIN_RX);
- return 0;
- }
-
- enq = svm_fifo_enqueue_nowait (app_session->server_rx_fifo, read, tmp_buf);
- ASSERT (enq == read);
- vec_reset_length (tmp_buf);
-
- if (svm_fifo_max_dequeue (tls_session->server_rx_fifo))
- tls_add_vpp_q_evt (tls_session->server_rx_fifo, FIFO_EVENT_BUILTIN_RX);
-
- app = application_get_if_valid (app_session->app_index);
- return tls_add_app_q_evt (app, app_session);