vnet_unlisten_args_t _a, *a = &_a;
u64 handle, *handles = 0;
segment_manager_t *sm;
+ session_t *ls;
u32 sm_index;
int i;
- app_listener_t *al;
- session_t *ls;
/*
* Listener cleanup
/* *INDENT-OFF* */
hash_foreach (handle, sm_index, app_wrk->listeners_table, ({
ls = listen_session_get_from_handle (handle);
- al = app_listener_get (app, ls->al_index);
- vec_add1 (handles, app_listener_handle (al));
+ vec_add1 (handles, app_listen_session_handle (ls));
sm = segment_manager_get (sm_index);
sm->app_wrk_index = SEGMENT_MANAGER_INVALID_APP_INDEX;
}));
segment_manager_t *sm;
session_t *listener;
- listener = listen_session_get (s->listener_index);
+ listener = listen_session_get_from_handle (s->listener_handle);
app_wrk = application_listener_select_worker (listener);
s->app_wrk_index = app_wrk->wrk_index;
return 0;
}
+int
+app_worker_cleanup_notify (app_worker_t * app_wrk, session_t * s,
+ session_cleanup_ntf_t ntf)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ if (app->cb_fns.session_cleanup_callback)
+ app->cb_fns.session_cleanup_callback (s, ntf);
+ return 0;
+}
+
int
app_worker_builtin_rx (app_worker_t * app_wrk, session_t * s)
{