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

Method do_api_callout_internal

src/proxy/http/HttpSM.cc:5769–5828  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5767}
5768
5769int
5770HttpSM::do_api_callout_internal()
5771{
5772 switch (t_state.api_next_action) {
5773 case HttpTransact::SM_ACTION_API_SM_START:
5774 cur_hook_id = TS_HTTP_TXN_START_HOOK;
5775 break;
5776 case HttpTransact::SM_ACTION_API_PRE_REMAP:
5777 cur_hook_id = TS_HTTP_PRE_REMAP_HOOK;
5778 break;
5779 case HttpTransact::SM_ACTION_API_POST_REMAP:
5780 cur_hook_id = TS_HTTP_POST_REMAP_HOOK;
5781 break;
5782 case HttpTransact::SM_ACTION_API_TUNNEL_START:
5783 cur_hook_id = TS_HTTP_TUNNEL_START_HOOK;
5784 break;
5785 case HttpTransact::SM_ACTION_API_READ_REQUEST_HDR:
5786 cur_hook_id = TS_HTTP_READ_REQUEST_HDR_HOOK;
5787 break;
5788 case HttpTransact::SM_ACTION_REQUEST_BUFFER_READ_COMPLETE:
5789 cur_hook_id = TS_HTTP_REQUEST_BUFFER_READ_COMPLETE_HOOK;
5790 break;
5791 case HttpTransact::SM_ACTION_API_OS_DNS:
5792 cur_hook_id = TS_HTTP_OS_DNS_HOOK;
5793 break;
5794 case HttpTransact::SM_ACTION_API_SEND_REQUEST_HDR:
5795 cur_hook_id = TS_HTTP_SEND_REQUEST_HDR_HOOK;
5796 break;
5797 case HttpTransact::SM_ACTION_API_READ_CACHE_HDR:
5798 cur_hook_id = TS_HTTP_READ_CACHE_HDR_HOOK;
5799 break;
5800 case HttpTransact::SM_ACTION_API_CACHE_LOOKUP_COMPLETE:
5801 cur_hook_id = TS_HTTP_CACHE_LOOKUP_COMPLETE_HOOK;
5802 break;
5803 case HttpTransact::SM_ACTION_API_READ_RESPONSE_HDR:
5804 cur_hook_id = TS_HTTP_READ_RESPONSE_HDR_HOOK;
5805 break;
5806 case HttpTransact::SM_ACTION_API_SEND_RESPONSE_HDR:
5807 cur_hook_id = TS_HTTP_SEND_RESPONSE_HDR_HOOK;
5808 ATS_PROBE1(milestone_ua_begin_write, sm_id);
5809 milestones[TS_MILESTONE_UA_BEGIN_WRITE] = ink_get_hrtime();
5810 break;
5811 case HttpTransact::SM_ACTION_API_SM_SHUTDOWN:
5812 if (callout_state == HTTP_API_IN_CALLOUT || callout_state == HTTP_API_DEFERED_SERVER_ERROR) {
5813 callout_state = HTTP_API_DEFERED_CLOSE;
5814 return 0;
5815 } else {
5816 cur_hook_id = TS_HTTP_TXN_CLOSE_HOOK;
5817 }
5818 break;
5819 default:
5820 cur_hook_id = static_cast<TSHttpHookID>(-1);
5821 ink_assert(!"not reached");
5822 }
5823
5824 hook_state.init(cur_hook_id, http_global_hooks, _ua.get_txn() ? _ua.get_txn()->feature_hooks() : nullptr, &api_hooks);
5825 cur_hook = nullptr;
5826 cur_hooks = 0;

Callers

nothing calls this directly

Calls 4

ink_get_hrtimeFunction · 0.85
get_txnMethod · 0.80
initMethod · 0.45
feature_hooksMethod · 0.45

Tested by

no test coverage detected