diff --git a/include/haproxy/session.h b/include/haproxy/session.h index 3b96f35a9..f62ea50e7 100644 --- a/include/haproxy/session.h +++ b/include/haproxy/session.h @@ -37,6 +37,7 @@ struct session *session_new(struct proxy *fe, struct listener *li, enum obj_type void session_free(struct session *sess); int session_accept_fd(struct connection *cli_conn); int conn_complete_session(struct connection *conn); +struct task *session_expire_embryonic(struct task *t, void *context, unsigned short state); /* Remove the refcount from the session to the tracked counters, and clear the * pointer to ensure this is only performed once. The caller is responsible for diff --git a/src/session.c b/src/session.c index 07828df96..055b578c4 100644 --- a/src/session.c +++ b/src/session.c @@ -28,7 +28,6 @@ DECLARE_POOL(pool_head_sess_srv_list, "session server list", sizeof(struct sess_srv_list)); int conn_complete_session(struct connection *conn); -static struct task *session_expire_embryonic(struct task *t, void *context, unsigned short state); /* Create a a new session and assign it to frontend , listener
  • , * origin , set the current date and clear the stick counters pointers. @@ -376,9 +375,10 @@ static void session_kill_embryonic(struct session *sess, unsigned short state) } /* Manages the embryonic session timeout. It is only called when the timeout - * strikes and performs the required cleanup. + * strikes and performs the required cleanup. It's only exported to make it + * resolve in "show tasks". */ -static struct task *session_expire_embryonic(struct task *t, void *context, unsigned short state) +struct task *session_expire_embryonic(struct task *t, void *context, unsigned short state) { struct session *sess = context; diff --git a/src/tools.c b/src/tools.c index 8891d472d..4ad6b95e0 100644 --- a/src/tools.c +++ b/src/tools.c @@ -4699,6 +4699,7 @@ const void *resolve_sym_name(struct buffer *buf, const char *pfx, const void *ad { .func = listener_accept, .name = "listener_accept" }, { .func = poller_pipe_io_handler, .name = "poller_pipe_io_handler" }, { .func = mworker_accept_wrapper, .name = "mworker_accept_wrapper" }, + { .func = session_expire_embryonic, .name = "session_expire_embryonic" }, #ifdef USE_THREAD { .func = accept_queue_process, .name = "accept_queue_process" }, #endif