session: use app cb function wrappers 51/18651/2
authorFlorin Coras <fcoras@cisco.com>
Tue, 2 Apr 2019 18:38:51 +0000 (11:38 -0700)
committerDave Barach <openvpp@barachs.net>
Tue, 2 Apr 2019 21:12:56 +0000 (21:12 +0000)
Change-Id: I77ad9eb4d4c7699397aa4be6a973ef37c60db4c5
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/plugins/quic/quic.c
src/vnet/session/application.h
src/vnet/session/application_worker.c
src/vnet/session/session.c
src/vnet/session/session_cli.c
src/vnet/session/session_node.c
src/vnet/tls/tls.c

index 82de6de..0772240 100644 (file)
@@ -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);
index 3d601ce..0cf97a7 100644 (file)
@@ -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 *);
index 08b42f3..6f504da 100644 (file)
@@ -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;
index 7769f1f..f637d62 100644 (file)
@@ -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
index d8e504e..5179322 100755 (executable)
@@ -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;
 }
 
index 8167947..2eac515 100644 (file)
@@ -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;
index a5e0872..81b51f5 100644 (file)
@@ -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);