This is an automated email from the ASF dual-hosted git repository.
kgiusti pushed a commit to branch 1.16.x
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
The following commit(s) were added to refs/heads/1.16.x by this push:
new e30fffe DISPATCH-2098 - Stop HTTP server before the AMQP server
(#1182)
e30fffe is described below
commit e30fffeee3834bb2d8c48c339f45020f1ff613e1
Author: Jiri Daněk <[email protected]>
AuthorDate: Tue May 4 17:47:09 2021 +0200
DISPATCH-2098 - Stop HTTP server before the AMQP server (#1182)
(cherry picked from commit fb3ebad74cb78e33e8dd6dd26e3edba7aadf5973)
---
src/dispatch.c | 4 ++++
src/server.c | 5 +++--
src/server_private.h | 2 ++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/dispatch.c b/src/dispatch.c
index 67b7cad..ddb3eb5 100644
--- a/src/dispatch.c
+++ b/src/dispatch.c
@@ -363,6 +363,10 @@ static void qd_dispatch_set_router_area(qd_dispatch_t *qd,
char *_area) {
void qd_dispatch_free(qd_dispatch_t *qd)
{
if (!qd) return;
+
+ /* Stop HTTP threads immediately */
+ qd_http_server_free(qd_server_http(qd->server));
+
free(qd->sasl_config_path);
free(qd->sasl_config_name);
qd_connection_manager_free(qd->connection_manager);
diff --git a/src/server.c b/src/server.c
index b407374..d3408a0 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1366,13 +1366,14 @@ qd_server_t *qd_server(qd_dispatch_t *qd, int
thread_count, const char *containe
return qd_server;
}
+qd_http_server_t *qd_server_http(qd_server_t *qd_server) {
+ return qd_server->http;
+}
void qd_server_free(qd_server_t *qd_server)
{
if (!qd_server) return;
- qd_http_server_free(qd_server->http);
-
qd_connection_t *ctx = DEQ_HEAD(qd_server->conn_list);
while (ctx) {
qd_log(qd_server->log_source, QD_LOG_INFO,
diff --git a/src/server_private.h b/src/server_private.h
index 2f374ec..6079585 100644
--- a/src/server_private.h
+++ b/src/server_private.h
@@ -92,6 +92,8 @@ DEQ_DECLARE(qd_pn_free_link_session_t,
qd_pn_free_link_session_list_t);
pn_proactor_t* qd_server_proactor(qd_server_t *s);
+qd_http_server_t *qd_server_http(qd_server_t *server);
+
typedef void (*qd_server_event_handler_t) (pn_event_t *e, qd_server_t
*qd_server, void *context);
typedef struct qd_handler_context_t {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]