session: use app cb function wrappers
Change-Id: I77ad9eb4d4c7699397aa4be6a973ef37c60db4c5 Signed-off-by: Florin Coras <fcoras@cisco.com>
This commit is contained in:

committed by
Dave Barach

parent
f6adf1f8db
commit
69b68ef1a9
@ -1068,18 +1068,15 @@ quic_session_connected_callback (u32 quic_app_index, u32 ho_ctx_idx,
|
||||
ho_ctx = quic_ctx_half_open_get (ho_ctx_idx);
|
||||
if (is_fail)
|
||||
{
|
||||
int (*cb_fn) (u32, u32, session_t *, u8), rv = 0;
|
||||
u32 wrk_index, api_context;
|
||||
u32 api_context;
|
||||
int rv = 0;
|
||||
|
||||
wrk_index = ho_ctx->c_quic_ctx_id.parent_app_wrk_idx;
|
||||
app_wrk =
|
||||
app_worker_get_if_valid (ho_ctx->c_quic_ctx_id.parent_app_wrk_idx);
|
||||
if (app_wrk)
|
||||
{
|
||||
api_context = ho_ctx->c_s_index;
|
||||
app = application_get (app_wrk->app_index);
|
||||
cb_fn = app->cb_fns.session_connected_callback;
|
||||
rv = cb_fn (wrk_index, api_context, 0, 1 /* failed */ );
|
||||
app_worker_connect_notify (app_wrk, 0, api_context);
|
||||
}
|
||||
quic_ctx_half_open_reader_unlock ();
|
||||
quic_ctx_half_open_free (ho_ctx_idx);
|
||||
|
@ -225,6 +225,7 @@ int app_worker_init_connected (app_worker_t * app_wrk, session_t * s);
|
||||
int app_worker_connect_notify (app_worker_t * app_wrk, session_t * s,
|
||||
u32 opaque);
|
||||
int app_worker_close_notify (app_worker_t * app_wrk, session_t * s);
|
||||
int app_worker_reset_notify (app_worker_t * app_wrk, session_t * s);
|
||||
int app_worker_builtin_rx (app_worker_t * app_wrk, session_t * s);
|
||||
segment_manager_t *app_worker_get_listen_segment_manager (app_worker_t *,
|
||||
session_t *);
|
||||
|
@ -329,6 +329,14 @@ app_worker_close_notify (app_worker_t * app_wrk, session_t * s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
app_worker_reset_notify (app_worker_t * app_wrk, session_t * s)
|
||||
{
|
||||
application_t *app = application_get (app_wrk->app_index);
|
||||
app->cb_fns.session_reset_callback (s);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
app_worker_builtin_rx (app_worker_t * app_wrk, session_t * s)
|
||||
{
|
||||
@ -553,10 +561,7 @@ app_send_io_evt_rx (app_worker_t * app_wrk, session_t * s, u8 lock)
|
||||
}
|
||||
|
||||
if (app_worker_application_is_builtin (app_wrk))
|
||||
{
|
||||
application_t *app = application_get (app_wrk->app_index);
|
||||
return app->cb_fns.builtin_app_rx_callback (s);
|
||||
}
|
||||
return app_worker_builtin_rx (app_wrk, s);
|
||||
|
||||
if (svm_fifo_has_event (s->rx_fifo))
|
||||
return 0;
|
||||
|
@ -825,17 +825,16 @@ session_transport_closed_notify (transport_connection_t * tc)
|
||||
void
|
||||
session_transport_reset_notify (transport_connection_t * tc)
|
||||
{
|
||||
session_t *s;
|
||||
app_worker_t *app_wrk;
|
||||
application_t *app;
|
||||
session_t *s;
|
||||
|
||||
s = session_get (tc->s_index, tc->thread_index);
|
||||
svm_fifo_dequeue_drop_all (s->tx_fifo);
|
||||
if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSING)
|
||||
return;
|
||||
s->session_state = SESSION_STATE_TRANSPORT_CLOSING;
|
||||
app_wrk = app_worker_get (s->app_wrk_index);
|
||||
app = application_get (app_wrk->app_index);
|
||||
app->cb_fns.session_reset_callback (s);
|
||||
app_worker_reset_notify (app_wrk, s);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -362,8 +362,7 @@ static int
|
||||
clear_session (session_t * s)
|
||||
{
|
||||
app_worker_t *server_wrk = app_worker_get (s->app_wrk_index);
|
||||
application_t *server = application_get (server_wrk->app_index);
|
||||
server->cb_fns.session_disconnect_callback (s);
|
||||
app_worker_close_notify (server_wrk, s);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -88,8 +88,7 @@ session_mq_accepted_reply_handler (void *data)
|
||||
/* Closed while waiting for app to reply. Resend disconnect */
|
||||
if (old_state >= SESSION_STATE_TRANSPORT_CLOSING)
|
||||
{
|
||||
application_t *app = application_get (app_wrk->app_index);
|
||||
app->cb_fns.session_disconnect_callback (s);
|
||||
app_worker_close_notify (app_wrk, s);
|
||||
s->session_state = old_state;
|
||||
return;
|
||||
}
|
||||
@ -289,7 +288,7 @@ session_mq_worker_update_handler (void *data)
|
||||
app_worker_lock_and_send_event (app_wrk, s, SESSION_IO_EVT_RX);
|
||||
|
||||
if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSING)
|
||||
app->cb_fns.session_disconnect_callback (s);
|
||||
app_worker_close_notify (app_wrk, s);
|
||||
}
|
||||
|
||||
vlib_node_registration_t session_queue_node;
|
||||
|
@ -431,19 +431,15 @@ tls_session_connected_callback (u32 tls_app_index, u32 ho_ctx_index,
|
||||
|
||||
if (is_fail)
|
||||
{
|
||||
int (*cb_fn) (u32, u32, session_t *, u8), rv = 0;
|
||||
u32 wrk_index, api_context;
|
||||
app_worker_t *app_wrk;
|
||||
application_t *app;
|
||||
u32 api_context;
|
||||
int rv = 0;
|
||||
|
||||
wrk_index = ho_ctx->parent_app_wrk_index;
|
||||
app_wrk = app_worker_get_if_valid (ho_ctx->parent_app_wrk_index);
|
||||
if (app_wrk)
|
||||
{
|
||||
api_context = ho_ctx->c_s_index;
|
||||
app = application_get (app_wrk->app_index);
|
||||
cb_fn = app->cb_fns.session_connected_callback;
|
||||
rv = cb_fn (wrk_index, api_context, 0, 1 /* failed */ );
|
||||
app_worker_connect_notify (app_wrk, 0, api_context);
|
||||
}
|
||||
tls_ctx_half_open_reader_unlock ();
|
||||
tls_ctx_half_open_free (ho_ctx_index);
|
||||
|
Reference in New Issue
Block a user