+int
+app_worker_init_accepted (session_t * s)
+{
+ app_worker_t *app_wrk;
+ segment_manager_t *sm;
+ session_t *listener;
+
+ listener = listen_session_get (s->listener_index);
+ app_wrk = application_listener_select_worker (listener);
+ s->app_wrk_index = app_wrk->wrk_index;
+ sm = app_worker_get_listen_segment_manager (app_wrk, listener);
+ return app_worker_alloc_session_fifos (sm, s);
+}
+
+int
+app_worker_accept_notify (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ return app->cb_fns.session_accept_callback (s);
+}
+
+int
+app_worker_init_connected (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ segment_manager_t *sm;
+
+ /* Allocate fifos for session, unless the app is a builtin proxy */
+ if (!application_is_builtin_proxy (app))
+ {
+ sm = app_worker_get_connect_segment_manager (app_wrk);
+ if (app_worker_alloc_session_fifos (sm, s))
+ return -1;
+ }
+ return 0;
+}
+
+int
+app_worker_connect_notify (app_worker_t * app_wrk, session_t * s, u32 opaque)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ return app->cb_fns.session_connected_callback (app_wrk->wrk_index, opaque,
+ s, s == 0 /* is_fail */ );
+}
+