X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ftls%2Ftls.c;h=4b12248a0511cc1053aabbd1bd2970f30496d746;hb=decda5b466843b3164ba13f248f9e0bb93111782;hp=cea449163f86b0a921129d4b15f2a3aca5ca0bfd;hpb=3c2fed5145d9e40a9ecd178c2866c813eddc6203;p=vpp.git diff --git a/src/vnet/tls/tls.c b/src/vnet/tls/tls.c index cea449163f8..4b12248a051 100644 --- a/src/vnet/tls/tls.c +++ b/src/vnet/tls/tls.c @@ -156,14 +156,15 @@ tls_notify_app_accept (tls_ctx_t * ctx) app = application_get (ctx->parent_app_index); lctx = tls_listener_ctx_get (ctx->listener_ctx_index); - app_listener = listen_session_get_from_handle (lctx->app_session_handle); - sm = application_get_listen_segment_manager (app, app_listener); app_session = session_alloc (vlib_get_thread_index ()); app_session->app_index = ctx->parent_app_index; app_session->connection_index = ctx->tls_ctx_handle; + + app_listener = listen_session_get_from_handle (lctx->app_session_handle); app_session->session_type = app_listener->session_type; app_session->listener_index = app_listener->session_index; + sm = application_get_listen_segment_manager (app, app_listener); if ((rv = session_alloc_fifos (sm, app_session))) { TLS_DBG (1, "failed to allocate fifos"); @@ -540,6 +541,8 @@ tls_start_listen (u32 app_listener_index, transport_endpoint_t * tep) lctx->tcp_is_ip4 = sep->is_ip4; lctx->tls_ctx_engine = engine_type; + tls_vfts[engine_type].ctx_start_listen (lctx); + TLS_DBG (1, "Started listening %d, engine type %d", lctx_index, engine_type); return lctx_index; @@ -551,9 +554,15 @@ tls_stop_listen (u32 lctx_index) tls_main_t *tm = &tls_main; application_t *tls_app; tls_ctx_t *lctx; + tls_engine_type_t engine_type; + lctx = tls_listener_ctx_get (lctx_index); tls_app = application_get (tm->app_index); application_stop_listen (tls_app, lctx->tls_session_handle); + + engine_type = lctx->tls_ctx_engine; + tls_vfts[engine_type].ctx_stop_listen (lctx); + tls_listener_ctx_free (lctx); return 0; }