tls: add picotls session close process 13/24313/3
authorSimon Zhang <yuwei1.zhang@intel.com>
Tue, 14 Jan 2020 10:11:18 +0000 (18:11 +0800)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 15 Jan 2020 06:15:32 +0000 (06:15 +0000)
Type: fix

Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Change-Id: If0a1691c1435f2826c8c83f8bc52e4cd3ecc6256

src/plugins/tlspicotls/tls_picotls.c

index 7f19794..d475e9c 100644 (file)
@@ -206,7 +206,13 @@ picotls_transport_close (tls_ctx_t * ctx)
 static int
 picotls_app_close (tls_ctx_t * ctx)
 {
-  picotls_confirm_app_close (ctx);
+  session_t *app_session;
+
+  app_session = session_get_from_handle (ctx->app_session_handle);
+  if (!svm_fifo_max_dequeue_cons (app_session->tx_fifo))
+    picotls_confirm_app_close (ctx);
+  else
+    ctx->app_closed = 1;
 
   return 0;
 }
@@ -492,6 +498,9 @@ picotls_ctx_write (tls_ctx_t * ctx, session_t * app_session)
     tls_add_vpp_q_tx_evt (tls_session);
   tls_add_vpp_q_builtin_tx_evt (app_session);
 
+  if (ctx->app_closed)
+    picotls_app_close (ctx);
+
   return 0;
 }