You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2022/08/10 17:24:24 UTC
[trafficserver] branch 9.2.x updated: Setup UA consumer only if ua_entry is not nullptr (#8949)
This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.2.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/9.2.x by this push:
new 09c725c7a Setup UA consumer only if ua_entry is not nullptr (#8949)
09c725c7a is described below
commit 09c725c7ac679fd2299c72627aa3d190792d281d
Author: Masaori Koshiba <ma...@apache.org>
AuthorDate: Wed Jul 27 08:42:20 2022 +0900
Setup UA consumer only if ua_entry is not nullptr (#8949)
(cherry picked from commit cbe0beaa88aca1272e49ac0763a5c246aa6a5831)
---
proxy/http/HttpSM.cc | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 7ed7ffd30..fe3db50d6 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -6683,18 +6683,22 @@ HttpSM::setup_internal_transfer(HttpSMHandler handler_arg)
HTTP_SM_SET_DEFAULT_HANDLER(handler_arg);
- // Clear the decks before we setup the new producers
- // As things stand, we cannot have two static producers operating at
- // once
- tunnel.reset();
+ if (ua_entry && ua_entry->vc) {
+ // Clear the decks before we setup the new producers
+ // As things stand, we cannot have two static producers operating at
+ // once
+ tunnel.reset();
- // Setup the tunnel to the client
- HttpTunnelProducer *p =
- tunnel.add_producer(HTTP_TUNNEL_STATIC_PRODUCER, nbytes, buf_start, (HttpProducerHandler) nullptr, HT_STATIC, "internal msg");
- tunnel.add_consumer(ua_entry->vc, HTTP_TUNNEL_STATIC_PRODUCER, &HttpSM::tunnel_handler_ua, HT_HTTP_CLIENT, "user agent");
+ // Setup the tunnel to the client
+ HttpTunnelProducer *p =
+ tunnel.add_producer(HTTP_TUNNEL_STATIC_PRODUCER, nbytes, buf_start, (HttpProducerHandler) nullptr, HT_STATIC, "internal msg");
+ tunnel.add_consumer(ua_entry->vc, HTTP_TUNNEL_STATIC_PRODUCER, &HttpSM::tunnel_handler_ua, HT_HTTP_CLIENT, "user agent");
- ua_entry->in_tunnel = true;
- tunnel.tunnel_run(p);
+ ua_entry->in_tunnel = true;
+ tunnel.tunnel_run(p);
+ } else {
+ (this->*default_handler)(HTTP_TUNNEL_EVENT_DONE, &tunnel);
+ }
}
// int HttpSM::find_http_resp_buffer_size(int cl)