diff --git a/src/shrpx_client_handler.cc b/src/shrpx_client_handler.cc index 2b6638a6..c4b0be59 100644 --- a/src/shrpx_client_handler.cc +++ b/src/shrpx_client_handler.cc @@ -902,10 +902,16 @@ ClientHandler::get_downstream_connection(int &err, Downstream *downstream) { err = 0; switch (faddr_->alt_mode) { - case UpstreamAltMode::API: - return std::make_unique(worker_); - case UpstreamAltMode::HEALTHMON: - return std::make_unique(); + case UpstreamAltMode::API: { + auto dconn = std::make_unique(worker_); + dconn->set_client_handler(this); + return dconn; + } + case UpstreamAltMode::HEALTHMON: { + auto dconn = std::make_unique(); + dconn->set_client_handler(this); + return dconn; + } default: break; }