MCPcopy Create free account
hub / github.com/apache/trafficserver / handle_transform_ready

Method handle_transform_ready

src/proxy/http/HttpTransact.cc:4872–4915  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4870}
4871
4872void
4873HttpTransact::handle_transform_ready(State *s)
4874{
4875 ink_assert(s->hdr_info.transform_response.valid() == true);
4876
4877 s->pre_transform_source = s->source;
4878 s->source = SOURCE_TRANSFORM;
4879
4880 dump_header(dbg_ctl_http_hdrs, &s->hdr_info.transform_response, s->state_machine_id(), "Header From Transform");
4881
4882 build_response(s, &s->hdr_info.transform_response, &s->hdr_info.client_response, s->client_info.http_version);
4883
4884 if (s->cache_info.action != CACHE_DO_NO_ACTION && s->cache_info.action != CACHE_DO_DELETE && s->api_info.cache_transformed &&
4885 !s->range_setup) {
4886 HTTPHdr *transform_store_request = nullptr;
4887 switch (s->pre_transform_source) {
4888 case SOURCE_CACHE:
4889 // If we are transforming from the cache, treat
4890 // the transform as if it were virtual server
4891 // use in the incoming request
4892 transform_store_request = &s->hdr_info.client_request;
4893 break;
4894 case SOURCE_HTTP_ORIGIN_SERVER:
4895 transform_store_request = &s->hdr_info.server_request;
4896 break;
4897 default:
4898 ink_release_assert(0);
4899 }
4900 ink_assert(transform_store_request->valid() == true);
4901 set_headers_for_cache_write(s, &s->cache_info.transform_store, transform_store_request, &s->hdr_info.transform_response);
4902
4903 // For debugging
4904 if (is_action_tag_set("http_nullt")) {
4905 s->cache_info.transform_store.request_get()->value_set("InkXform", 8, "nullt", 5);
4906 s->cache_info.transform_store.response_get()->value_set("InkXform", 8, "nullt", 5);
4907 }
4908
4909 s->cache_info.transform_action = CACHE_PREPARE_TO_WRITE;
4910 TRANSACT_RETURN(SM_ACTION_CACHE_ISSUE_WRITE_TRANSFORM, handle_transform_cache_write);
4911 } else {
4912 s->cache_info.transform_action = CACHE_DO_NO_ACTION;
4913 TRANSACT_RETURN(SM_ACTION_TRANSFORM_READ, nullptr);
4914 }
4915}
4916
4917void
4918HttpTransact::set_header_for_transform(State *s, HTTPHdr *base_header)

Callers

nothing calls this directly

Calls 6

dump_headerFunction · 0.85
state_machine_idMethod · 0.80
request_getMethod · 0.80
response_getMethod · 0.80
validMethod · 0.45
value_setMethod · 0.45

Tested by

no test coverage detected