X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ftls%2Ftls.c;h=34de539b29513b8f59c73996af730758858844cf;hb=7c03ed4;hp=109280b4be1cc165e7bcca4115de10fba185c844;hpb=5665cedf57165c05d00f28de06b627047902ffce;p=vpp.git diff --git a/src/vnet/tls/tls.c b/src/vnet/tls/tls.c index 109280b4be1..34de539b295 100644 --- a/src/vnet/tls/tls.c +++ b/src/vnet/tls/tls.c @@ -262,7 +262,6 @@ tls_notify_app_connected (tls_ctx_t * ctx, u8 is_failed) goto failed; ctx->app_session_handle = session_handle (app_session); - ctx->c_s_index = app_session->session_index; app_session->session_state = SESSION_STATE_CONNECTING; if (cb_fn (ctx->parent_app_index, ctx->parent_app_api_context, app_session, 0 /* not failed */ )) @@ -272,6 +271,9 @@ tls_notify_app_connected (tls_ctx_t * ctx, u8 is_failed) return -1; } + /* parent_app_api_context should not be overwitten before used, + * so defer setting c_s_index */ + ctx->c_s_index = app_session->session_index; app_session->session_state = SESSION_STATE_READY; session_lookup_add_connection (&ctx->connection, session_handle (app_session)); @@ -367,14 +369,14 @@ tls_session_reset_callback (stream_session_t * s) } int -tls_add_segment_callback (u32 client_index, const ssvm_private_t * fs) +tls_add_segment_callback (u32 client_index, u64 segment_handle) { /* No-op for builtin */ return 0; } int -tls_del_segment_callback (u32 client_index, const ssvm_private_t * fs) +tls_del_segment_callback (u32 client_index, u64 segment_handle) { return 0; } @@ -390,7 +392,7 @@ tls_session_disconnect_callback (stream_session_t * tls_session) ctx = tls_ctx_get (tls_session->opaque); if (!tls_ctx_handshake_is_over (ctx)) { - stream_session_disconnect (tls_session); + session_close (tls_session); return; } ctx->is_passive_close = 1; @@ -479,7 +481,7 @@ tls_session_connected_callback (u32 tls_app_index, u32 ho_ctx_index, ctx_handle = tls_ctx_alloc (ho_ctx->tls_ctx_engine); ctx = tls_ctx_get (ctx_handle); - clib_memcpy (ctx, ho_ctx, sizeof (*ctx)); + clib_memcpy_fast (ctx, ho_ctx, sizeof (*ctx)); tls_ctx_half_open_reader_unlock (); tls_ctx_half_open_free (ho_ctx_index); @@ -548,7 +550,7 @@ tls_connect (transport_endpoint_cfg_t * tep) app_worker_alloc_connects_segment_manager (app_wrk); ctx->tls_ctx_engine = engine_type; - clib_memcpy (&cargs->sep, sep, sizeof (session_endpoint_t)); + clib_memcpy_fast (&cargs->sep, sep, sizeof (session_endpoint_t)); cargs->sep.transport_proto = TRANSPORT_PROTO_TCP; cargs->app_index = tm->app_index; cargs->api_context = ctx_index; @@ -568,7 +570,7 @@ tls_disconnect (u32 ctx_handle, u32 thread_index) ctx = tls_ctx_get (ctx_handle); tls_disconnect_transport (ctx); - stream_session_delete_notify (&ctx->connection); + session_transport_delete_notify (&ctx->connection); tls_ctx_free (ctx); }