Turns out conn->http_client is already NULL while doveadm_http_server_connection_destroy() is called.
This is because http_server_connection_unref() sets it to NULL;
Fixed by removing useless HTTP connection reference.
http_server_request_unref(&(conn->http_server_request));
http_server_switch_ioloop(doveadm_http_server);
- http_server_connection_unref(&(conn->http_client));
}
static void doveadm_http_server_json_error(void *context, const char *error)
conn->http_request = http_server_request_get(req);
struct doveadm_http_server_mount *ep = NULL;
- http_server_connection_ref(conn->http_client);
http_server_request_set_destroy_callback(req, doveadm_http_server_request_destroy, conn);
http_server_request_ref(conn->http_server_request);