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

Method state_request_wait_for_transform_read

src/proxy/http/HttpSM.cc:1159–1190  ·  view source on GitHub ↗

int HttpSM::state_request_wait_for_transform_read(int event, void* data) We've done a successful transform open and issued a do_io_write to the transform. We are now ready for the transform to tell us it is now ready to be read from and it done modifying the server request header

Source from the content-addressed store, hash-verified

1157// server request header
1158//
1159int
1160HttpSM::state_request_wait_for_transform_read(int event, void *data)
1161{
1162 STATE_ENTER(&HttpSM::state_request_wait_for_transform_read, event);
1163 int64_t size;
1164
1165 switch (event) {
1166 case TRANSFORM_READ_READY:
1167 size = *(static_cast<int64_t *>(data));
1168 if (size != INT64_MAX && size >= 0) {
1169 // We got a content length so update our internal
1170 // data as well as fix up the request header
1171 t_state.hdr_info.transform_request_cl = size;
1172 t_state.hdr_info.server_request.value_set_int64(MIME_FIELD_CONTENT_LENGTH, MIME_LEN_CONTENT_LENGTH, size);
1173 setup_server_send_request_api();
1174 break;
1175 } else {
1176 // No content length from the post. This is a no go
1177 // since http spec requires content length when
1178 // sending a request message body. Change the event
1179 // to an error and fall through
1180 event = VC_EVENT_ERROR;
1181 Log::error("Request transformation failed to set content length");
1182 }
1183 // FALLTHROUGH
1184 default:
1185 state_common_wait_for_transform_read(&post_transform_info, &HttpSM::tunnel_handler_post, event, data);
1186 break;
1187 }
1188
1189 return 0;
1190}
1191
1192// int HttpSM::state_response_wait_for_transform_read(int event, void* data)
1193//

Callers

nothing calls this directly

Calls 2

errorFunction · 0.85
value_set_int64Method · 0.80

Tested by

no test coverage detected