tls: track app owner of transport session 56/41256/2
authorFlorin Coras <[email protected]>
Thu, 11 Jul 2024 12:15:47 +0000 (05:15 -0700)
committerDave Barach <[email protected]>
Tue, 16 Jul 2024 15:50:30 +0000 (15:50 +0000)
Allow other apps to own transport sessions for tls.

Type: improvement

Change-Id: Ida04cef1dc49acb7117cbed8657e26890bf43d2a
Signed-off-by: Florin Coras <[email protected]>
src/vnet/tls/tls.c
src/vnet/tls/tls.h

index 9bc9323..9ca3a91 100644 (file)
@@ -28,7 +28,7 @@ tls_disconnect_transport (tls_ctx_t * ctx)
 {
   vnet_disconnect_args_t a = {
     .handle = ctx->tls_session_handle,
-    .app_index = tls_main.app_index,
+    .app_index = ctx->ts_app_index,
   };
 
   if (vnet_disconnect_session (&a))
@@ -649,6 +649,7 @@ tls_connect (transport_endpoint_cfg_t * tep)
   ctx = tls_ctx_half_open_get (ctx_index);
   ctx->parent_app_wrk_index = sep->app_wrk_index;
   ctx->parent_app_api_context = sep->opaque;
+  ctx->ts_app_index = tm->app_index;
   ctx->tcp_is_ip4 = sep->is_ip4;
   ctx->tls_type = sep->transport_proto;
   ctx->ckpair_index = ccfg->ckpair_index;
@@ -748,6 +749,7 @@ tls_start_listen (u32 app_listener_index, transport_endpoint_cfg_t *tep)
 
   lctx = tls_listener_ctx_get (lctx_index);
   lctx->parent_app_wrk_index = sep->app_wrk_index;
+  lctx->ts_app_index = tm->app_index;
   lctx->tls_session_handle = tls_al_handle;
   lctx->app_session_handle = listen_session_get_handle (app_listener);
   lctx->tcp_is_ip4 = sep->is_ip4;
index 38f4c4b..30bcce0 100644 (file)
@@ -102,6 +102,7 @@ typedef struct tls_ctx_
 #define parent_app_api_context c_tls_ctx_id.parent_app_api_ctx
 #define migration_ctx         c_tls_ctx_id.migrate_ctx
 
+  u32 ts_app_index;
   tls_conn_flags_t flags;
   u8 *srv_hostname;
   u32 evt_index;