s, s == 0 /* is_fail */ );
}
+int
+app_worker_close_notify (app_worker_t * app_wrk, session_t * s)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.session_disconnect_callback (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)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.builtin_app_rx_callback (s);
+ return 0;
+}
+
int
app_worker_own_session (app_worker_t * app_wrk, session_t * s)
{
hash_foreach (handle, sm_index, app_wrk->listeners_table, ({
listener = listen_session_get_from_handle (handle);
if (listener->session_type == sst
- && listener->enqueue_epoch != SESSION_PROXY_LISTENER_INDEX)
+ && !(listener->flags & SESSION_F_PROXY))
return listener;
}));
/* *INDENT-ON* */
/* *INDENT-OFF* */
hash_foreach (handle, sm_index, app_wrk->listeners_table, ({
listener = listen_session_get_from_handle (handle);
- if (listener->session_type == sst
- && listener->enqueue_epoch == SESSION_PROXY_LISTENER_INDEX)
+ if (listener->session_type == sst && (listener->flags & SESSION_F_PROXY))
return listener;
}));
/* *INDENT-ON* */
if (PREDICT_FALSE (s->session_state != SESSION_STATE_READY
&& s->session_state != SESSION_STATE_LISTENING))
- {
- /* Session is closed so app will never clean up. Flush rx fifo */
- if (s->session_state == SESSION_STATE_CLOSED)
- svm_fifo_dequeue_drop_all (s->rx_fifo);
- return 0;
- }
+ return 0;
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;