Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
tls: fix disconnects for sessions with pending data
[vpp.git]
/
src
/
plugins
/
tlsmbedtls
/
tls_mbedtls.c
diff --git
a/src/plugins/tlsmbedtls/tls_mbedtls.c
b/src/plugins/tlsmbedtls/tls_mbedtls.c
index
aaad99f
..
1010e37
100644
(file)
--- a/
src/plugins/tlsmbedtls/tls_mbedtls.c
+++ b/
src/plugins/tlsmbedtls/tls_mbedtls.c
@@
-169,7
+169,7
@@
tls_net_send (void *ctx_indexp, const unsigned char *buf, size_t len)
rv = svm_fifo_enqueue_nowait (tls_session->server_tx_fifo, len, buf);
if (rv < 0)
return MBEDTLS_ERR_SSL_WANT_WRITE;
rv = svm_fifo_enqueue_nowait (tls_session->server_tx_fifo, len, buf);
if (rv < 0)
return MBEDTLS_ERR_SSL_WANT_WRITE;
- tls_add_vpp_q_
evt (tls_session->server_tx_fifo, FIFO_EVENT_APP_TX
);
+ tls_add_vpp_q_
tx_evt (tls_session
);
return rv;
}
return rv;
}
@@
-258,6
+258,18
@@
mbedtls_ctx_init_client (tls_ctx_t * ctx)
return 0;
}
return 0;
}
+static int
+mbedtls_start_listen (tls_ctx_t * lctx)
+{
+ return 0;
+}
+
+static int
+mbedtls_stop_listen (tls_ctx_t * lctx)
+{
+ return 0;
+}
+
static int
mbedtls_ctx_init_server (tls_ctx_t * ctx)
{
static int
mbedtls_ctx_init_server (tls_ctx_t * ctx)
{
@@
-436,7
+448,7
@@
mbedtls_ctx_write (tls_ctx_t * ctx, stream_session_t * app_session)
if (PREDICT_FALSE (enq_max == 0))
{
if (PREDICT_FALSE (enq_max == 0))
{
- tls_add_vpp_q_
evt (app_session->server_tx_fifo, FIFO_EVENT_APP_TX
);
+ tls_add_vpp_q_
builtin_tx_evt (app_session
);
return 0;
}
return 0;
}
@@
-447,16
+459,16
@@
mbedtls_ctx_write (tls_ctx_t * ctx, stream_session_t * app_session)
wrote = mbedtls_ssl_write (&mc->ssl, mm->tx_bufs[thread_index], deq_now);
if (wrote <= 0)
{
wrote = mbedtls_ssl_write (&mc->ssl, mm->tx_bufs[thread_index], deq_now);
if (wrote <= 0)
{
- tls_add_vpp_q_
evt (app_session->server_tx_fifo, FIFO_EVENT_APP_TX
);
+ tls_add_vpp_q_
builtin_tx_evt (app_session
);
return 0;
}
svm_fifo_dequeue_drop (app_session->server_tx_fifo, wrote);
vec_reset_length (mm->tx_bufs[thread_index]);
return 0;
}
svm_fifo_dequeue_drop (app_session->server_tx_fifo, wrote);
vec_reset_length (mm->tx_bufs[thread_index]);
- tls_add_vpp_q_
evt (tls_session->server_tx_fifo, FIFO_EVENT_APP_TX
);
+ tls_add_vpp_q_
tx_evt (tls_session
);
if (deq_now < deq_max)
if (deq_now < deq_max)
- tls_add_vpp_q_
evt (app_session->server_tx_fifo, FIFO_EVENT_APP_TX
);
+ tls_add_vpp_q_
builtin_tx_evt (app_session
);
return 0;
}
return 0;
}
@@
-487,7
+499,7
@@
mbedtls_ctx_read (tls_ctx_t * ctx, stream_session_t * tls_session)
if (PREDICT_FALSE (enq_now == 0))
{
if (PREDICT_FALSE (enq_now == 0))
{
- tls_add_vpp_q_
evt (tls_session->server_rx_fifo, FIFO_EVENT_BUILTIN_RX
);
+ tls_add_vpp_q_
builtin_rx_evt (tls_session
);
return 0;
}
return 0;
}
@@
-495,7
+507,7
@@
mbedtls_ctx_read (tls_ctx_t * ctx, stream_session_t * tls_session)
read = mbedtls_ssl_read (&mc->ssl, mm->rx_bufs[thread_index], enq_now);
if (read <= 0)
{
read = mbedtls_ssl_read (&mc->ssl, mm->rx_bufs[thread_index], enq_now);
if (read <= 0)
{
- tls_add_vpp_q_
evt (tls_session->server_rx_fifo, FIFO_EVENT_BUILTIN_RX
);
+ tls_add_vpp_q_
builtin_rx_evt (tls_session
);
return 0;
}
return 0;
}
@@
-505,7
+517,7
@@
mbedtls_ctx_read (tls_ctx_t * ctx, stream_session_t * tls_session)
vec_reset_length (mm->rx_bufs[thread_index]);
if (svm_fifo_max_dequeue (tls_session->server_rx_fifo))
vec_reset_length (mm->rx_bufs[thread_index]);
if (svm_fifo_max_dequeue (tls_session->server_rx_fifo))
- tls_add_vpp_q_
evt (tls_session->server_rx_fifo, FIFO_EVENT_BUILTIN_RX
);
+ tls_add_vpp_q_
builtin_rx_evt (tls_session
);
if (enq > 0)
tls_notify_app_enqueue (ctx, app_session);
if (enq > 0)
tls_notify_app_enqueue (ctx, app_session);
@@
-530,6
+542,8
@@
const static tls_engine_vft_t mbedtls_engine = {
.ctx_write = mbedtls_ctx_write,
.ctx_read = mbedtls_ctx_read,
.ctx_handshake_is_over = mbedtls_handshake_is_over,
.ctx_write = mbedtls_ctx_write,
.ctx_read = mbedtls_ctx_read,
.ctx_handshake_is_over = mbedtls_handshake_is_over,
+ .ctx_start_listen = mbedtls_start_listen,
+ .ctx_stop_listen = mbedtls_stop_listen,
};
int
};
int