Created
June 23, 2017 00:32
-
-
Save hnakamur/a4bce7e98c94b2f8163856abb0280579 to your computer and use it in GitHub Desktop.
trafficserverでis_response_cacheableの呼び出し元をたどるコードリーディング
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
対象バージョンは6.2.0 | |
bool | |
HttpTransact::is_response_cacheable(State *s, HTTPHdr *request, HTTPHdr *response) | |
の実装 | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpTransact.cc#L6127 | |
is_response_cacheable の検索結果 | |
``` | |
proxy/InkAPI.cc|8789| return (req->valid() && resp->valid() && HttpTransact::is_response_cacheable(&(sm->t_state), req, resp)) ? 1 : 0; | |
proxy/http/HttpTransact.cc|2098| if (is_response_cacheable(s, &s->hdr_info.server_request, &s->hdr_info.server_response)) { | |
proxy/http/HttpTransact.cc|4181| cacheable = is_response_cacheable(s, &s->hdr_info.client_request, &s->hdr_info.server_response); | |
proxy/http/HttpTransact.cc|6044| // We can do the check in is_response_cacheable() or here. | |
proxy/http/HttpTransact.cc|6117| // Name : is_response_cacheable() | |
proxy/http/HttpTransact.cc|6127| HttpTransact::is_response_cacheable(State *s, HTTPHdr *request, HTTPHdr *response) | |
proxy/http/HttpTransact.cc|6135| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6151| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6155| // DebugTxn("http_trans", "[is_response_cacheable] method is cacheable"); | |
proxy/http/HttpTransact.cc|6160| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6172| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6178| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6186| DebugTxn("http_trans", "[is_response_cacheable] server does not permit storing and config file does not " | |
proxy/http/HttpTransact.cc|6190| // DebugTxn("http_trans", "[is_response_cacheable] server permits storing"); | |
proxy/http/HttpTransact.cc|6197| DebugTxn("http_trans", "[is_response_cacheable] config doesn't allow storing, and cache control does not " | |
proxy/http/HttpTransact.cc|6201| // DebugTxn("http_trans", "[is_response_cacheable] config permits storing"); | |
proxy/http/HttpTransact.cc|6205| DebugTxn("http_trans", "[is_response_cacheable] client does not permit storing, " | |
proxy/http/HttpTransact.cc|6209| DebugTxn("http_trans", "[is_response_cacheable] client permits storing"); | |
proxy/http/HttpTransact.cc|6225| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6232| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6242| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6255| DebugTxn("http_trans", "[is_response_cacheable] " | |
proxy/http/HttpTransact.cc|6265| DebugTxn("http_trans", "[is_response_cacheable] YES by response cache control"); | |
proxy/http/HttpTransact.cc|6275| "[is_response_cacheable] Cache-control header directives in response overridden by ttl in cache.config"); | |
proxy/http/HttpTransact.cc|6277| DebugTxn("http_trans", "[is_response_cacheable] NO by response cache control"); | |
proxy/http/HttpTransact.cc|6297| DebugTxn("http_trans", "[is_response_cacheable] YES response w/ Expires"); | |
proxy/http/HttpTransact.cc|6302| DebugTxn("http_trans", "[is_response_cacheable] cache-control or expires header is required for 302"); | |
proxy/http/HttpTransact.cc|6309| DebugTxn("http_trans", "[is_response_cacheable] POST method with a TTL"); | |
proxy/http/HttpTransact.cc|6311| DebugTxn("http_trans", "[is_response_cacheable] NO POST w/o Expires or CC"); | |
proxy/http/HttpTransact.cc|6321| DebugTxn("http_trans", "[is_response_cacheable] YES by default "); | |
proxy/http/HttpTransact.cc|6324| DebugTxn("http_trans", "[is_response_cacheable] NO by default"); | |
proxy/http/HttpTransact.cc|6346| DebugTxn("http_trans", "[is_response_cacheable] request has AUTHORIZATION - not cacheable"); | |
proxy/http/HttpTransact.cc|6350| // DebugTxn("http_trans","[is_response_cacheable] request has AUTHORIZATION, " | |
proxy/http/HttpTransact.h|1292| static bool is_response_cacheable(State *s, HTTPHdr *request, HTTPHdr *response); | |
``` | |
is_response_cacheableの呼び出し箇所は以下の3か所。 | |
``` | |
proxy/InkAPI.cc|8789| return (req->valid() && resp->valid() && HttpTransact::is_response_cacheable(&(sm->t_state), req, resp)) ? 1 : 0; | |
proxy/http/HttpTransact.cc|2098| if (is_response_cacheable(s, &s->hdr_info.server_request, &s->hdr_info.server_response)) { | |
proxy/http/HttpTransact.cc|4181| cacheable = is_response_cacheable(s, &s->hdr_info.client_request, &s->hdr_info.server_response); | |
``` | |
1か所目 | |
int | |
TSHttpTxnIsCacheable(TSHttpTxn txnp, TSMBuffer request, TSMBuffer response) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/InkAPI.cc#L8789 | |
2か所目 | |
void | |
HttpTransact::HandlePushResponseHdr(State *s) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpTransact.cc#L2098 | |
3か所目 | |
void | |
HttpTransact::handle_cache_operation_on_forward_server_response(State *s) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpTransact.cc#L4181 | |
TSHttpTxnIsCacheableの検索結果 | |
``` | |
plugins/experimental/cache_range_requests/cache_range_requests.cc|217| bool cacheable = TSHttpTxnIsCacheable(txnp, NULL, response); | |
plugins/experimental/background_fetch/background_fetch.cc|460| bool cacheable = TSHttpTxnIsCacheable(txnp, NULL, response); | |
proxy/InkAPI.cc|8767| TSHttpTxnIsCacheable(TSHttpTxn txnp, TSMBuffer request, TSMBuffer response) | |
proxy/api/ts/ts.h|2359| tsapi int TSHttpTxnIsCacheable(TSHttpTxn txnp, TSMBuffer request, TSMBuffer response); | |
``` | |
HandlePushResponseHdrの検索結果 | |
``` | |
proxy/http/HttpTransact.cc|2064| TRANSACT_RETURN(SM_ACTION_READ_PUSH_HDR, HandlePushResponseHdr); | |
proxy/http/HttpTransact.cc|2068| // Name : HandlePushResponseHdr | |
proxy/http/HttpTransact.cc|2076| HttpTransact::HandlePushResponseHdr(State *s) | |
proxy/http/HttpSM.cc|1098| call_transact_and_set_next_state(HttpTransact::HandlePushResponseHdr); | |
proxy/http/HttpTransact.h|1254| static void HandlePushResponseHdr(State *s); | |
``` | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpTransact.cc#L2064 | |
void | |
HttpTransact::HandleCacheOpenReadPush(State *s, bool read_successful) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L1098 | |
int | |
HttpSM::state_read_push_response_header(int event, void *data) | |
HandleCacheOpenReadPush の検索結果 | |
``` | |
proxy/http/HttpTransact.cc|2048| // Name : HandleCacheOpenReadPush | |
proxy/http/HttpTransact.cc|2056| HttpTransact::HandleCacheOpenReadPush(State *s, bool read_successful) | |
proxy/http/HttpTransact.cc|2226| HandleCacheOpenReadPush(s, read_successful); | |
proxy/http/HttpTransact.h|1253| static void HandleCacheOpenReadPush(State *s, bool read_successful); | |
``` | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpTransact.cc#L2226 | |
void | |
HttpTransact::HandleCacheOpenRead(State *s) | |
HandleCacheOpenRead の検索結果 | |
``` | |
proxy/InkAPI.cc|4806| sm->t_state.transact_return_point = HttpTransact::HandleCacheOpenRead; | |
proxy/http/HttpTransact.cc|1833| TRANSACT_RETURN(SM_ACTION_API_OS_DNS, HandleCacheOpenReadMiss); | |
proxy/http/HttpTransact.cc|1841| TRANSACT_RETURN(SM_ACTION_API_OS_DNS, HandleCacheOpenReadHit); | |
proxy/http/HttpTransact.cc|1843| TRANSACT_RETURN(SM_ACTION_API_OS_DNS, HandleCacheOpenReadMiss); | |
proxy/http/HttpTransact.cc|2048| // Name : HandleCacheOpenReadPush | |
proxy/http/HttpTransact.cc|2053| // Called on PUSH requests from HandleCacheOpenRead | |
proxy/http/HttpTransact.cc|2056| HttpTransact::HandleCacheOpenReadPush(State *s, bool read_successful) | |
proxy/http/HttpTransact.cc|2182| // Name : HandleCacheOpenRead | |
proxy/http/HttpTransact.cc|2197| HttpTransact::HandleCacheOpenRead(State *s) | |
proxy/http/HttpTransact.cc|2199| DebugTxn("http_trans", "[HttpTransact::HandleCacheOpenRead]"); | |
proxy/http/HttpTransact.cc|2226| HandleCacheOpenReadPush(s, read_successful); | |
proxy/http/HttpTransact.cc|2233| HandleCacheOpenReadMiss(s); | |
proxy/http/HttpTransact.cc|2241| TRANSACT_RETURN(SM_ACTION_API_READ_CACHE_HDR, HandleCacheOpenReadHitFreshness); | |
proxy/http/HttpTransact.cc|2388| HttpTransact::HandleCacheOpenReadHitFreshness(State *s) | |
proxy/http/HttpTransact.cc|2393| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHitFreshness] Hit in cache"); | |
proxy/http/HttpTransact.cc|2396| DebugTxn("http_trans", "[HandleCacheOpenReadHitFreshness] Delete and return"); | |
proxy/http/HttpTransact.cc|2415| DebugTxn("http_trans", "[HandleCacheOpenReadHitFreshness] request_sent_time : %" PRId64, (int64_t)s->request_sent_time); | |
proxy/http/HttpTransact.cc|2416| DebugTxn("http_trans", "[HandleCacheOpenReadHitFreshness] response_received_time : %" PRId64, (int64_t)s->response_received_time); | |
proxy/http/HttpTransact.cc|2425| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHitFreshness] " | |
proxy/http/HttpTransact.cc|2430| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHitFreshness] " | |
proxy/http/HttpTransact.cc|2435| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHitFreshness] " | |
proxy/http/HttpTransact.cc|2455| TRANSACT_RETURN(SM_ACTION_API_CACHE_LOOKUP_COMPLETE, HttpTransact::HandleCacheOpenReadHit); | |
proxy/http/HttpTransact.cc|2457| } else { // we have done dns . Its up to HandleCacheOpenReadHit to decide to go OS or serve from cache | |
proxy/http/HttpTransact.cc|2458| TRANSACT_RETURN(SM_ACTION_API_CACHE_LOOKUP_COMPLETE, HttpTransact::HandleCacheOpenReadHit); | |
proxy/http/HttpTransact.cc|2502| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2508| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2513| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2518| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2546| // Name : HandleCacheOpenReadHit | |
proxy/http/HttpTransact.cc|2578| HttpTransact::HandleCacheOpenReadHit(State *s) | |
proxy/http/HttpTransact.cc|2597| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2603| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2608| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2610| HandleCacheOpenReadMiss(s); | |
proxy/http/HttpTransact.cc|2613| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2668| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2674| DebugTxn("http_trans", "[HandleCacheOpenReadHit] ICP is configured" | |
proxy/http/HttpTransact.cc|2791| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] " | |
proxy/http/HttpTransact.cc|2827| // and HandleCacheOpenReadHit(). | |
proxy/http/HttpTransact.cc|2906| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadHit] Out-of-order Range request - tunneling"); | |
proxy/http/HttpTransact.cc|2909| HandleCacheOpenReadMiss(s); // DNS is already completed no need of doing DNS | |
proxy/http/HttpTransact.cc|3054| HandleCacheOpenReadHitFreshness(s); | |
proxy/http/HttpTransact.cc|3077| // Name : HandleCacheOpenReadMiss | |
proxy/http/HttpTransact.cc|3093| HttpTransact::HandleCacheOpenReadMiss(State *s) | |
proxy/http/HttpTransact.cc|3095| DebugTxn("http_trans", "[HandleCacheOpenReadMiss] --- MISS"); | |
proxy/http/HttpTransact.cc|3096| DebugTxn("http_seq", "[HttpTransact::HandleCacheOpenReadMiss] " | |
proxy/http/HttpTransact.cc|3100| DebugTxn("http_trans", "[HandleCacheOpenReadMiss] Delete and return"); | |
proxy/http/HttpTransact.cc|3139| DebugTxn("http_trans", "[HandleCacheOpenReadMiss] " | |
proxy/http/HttpSM.cc|2600| call_transact_and_set_next_state(HttpTransact::HandleCacheOpenRead); | |
proxy/http/HttpSM.cc|2618| t_state.transact_return_point = HttpTransact::HandleCacheOpenRead; | |
proxy/http/HttpTransact.h|1218| static void HandleCacheOpenRead(State *s); | |
proxy/http/HttpTransact.h|1219| static void HandleCacheOpenReadHitFreshness(State *s); | |
proxy/http/HttpTransact.h|1220| static void HandleCacheOpenReadHit(State *s); | |
proxy/http/HttpTransact.h|1221| static void HandleCacheOpenReadMiss(State *s); | |
proxy/http/HttpTransact.h|1253| static void HandleCacheOpenReadPush(State *s, bool read_successful); | |
``` | |
HandleCacheOpenRead の呼び出し箇所は以下の4か所 | |
``` | |
proxy/InkAPI.cc|4806| sm->t_state.transact_return_point = HttpTransact::HandleCacheOpenRead; | |
proxy/http/HttpSM.cc|2600| call_transact_and_set_next_state(HttpTransact::HandleCacheOpenRead); | |
proxy/http/HttpSM.cc|2618| t_state.transact_return_point = HttpTransact::HandleCacheOpenRead; | |
``` | |
TSReturnCode | |
TSHttpTxnCacheLookupStatusSet(TSHttpTxn txnp, int cachelookup) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/InkAPI.cc#L4806 | |
int | |
HttpSM::state_cache_open_read(int event, void *data) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L2600 | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L2618 | |
TSHttpTxnCacheLookupStatusSet の検索結果 | |
``` | |
proxy/InkAPI.cc|4791| TSHttpTxnCacheLookupStatusSet(TSHttpTxn txnp, int cachelookup) | |
proxy/api/ts/ts.h|2322| tsapi TSReturnCode TSHttpTxnCacheLookupStatusSet(TSHttpTxn txnp, int cachelookup); | |
``` | |
TSHttpTxnCacheLookupStatusSet は呼び出し箇所なし | |
state_cache_open_read の検索結果 | |
``` | |
proxy/http/HttpSM.cc|2563| // HttpSM::state_cache_open_read() | |
proxy/http/HttpSM.cc|2571| HttpSM::state_cache_open_read(int event, void *data) | |
proxy/http/HttpSM.cc|2573| STATE_ENTER(&HttpSM::state_cache_open_read, event); | |
proxy/http/HttpSM.cc|2609| DebugSM("http", "[state_cache_open_read] open read failed."); | |
proxy/http/HttpSM.cc|7229| HTTP_SM_SET_DEFAULT_HANDLER(&HttpSM::state_cache_open_read); | |
proxy/http/HttpCacheSM.cc|89| // HttpCacheSM::state_cache_open_read() | |
proxy/http/HttpCacheSM.cc|115| HttpCacheSM::state_cache_open_read(int event, void *data) | |
proxy/http/HttpCacheSM.cc|117| STATE_ENTER(&HttpCacheSM::state_cache_open_read, event); | |
proxy/http/HttpCacheSM.cc|159| Debug("http_cache", "[%" PRId64 "] [state_cache_open_read] cache open read failure %d. " | |
proxy/http/HttpCacheSM.cc|281| SET_HANDLER(&HttpCacheSM::state_cache_open_read); | |
proxy/http/HttpSM.h|378| int state_cache_open_read(int event, void *data); | |
proxy/http/HttpCacheSM.h|191| int state_cache_open_read(int event, void *data); | |
``` | |
HttpSM::state_cache_open_read の呼び出し箇所 | |
``` | |
proxy/http/HttpSM.cc|2573| STATE_ENTER(&HttpSM::state_cache_open_read, event); | |
proxy/http/HttpSM.cc|7229| HTTP_SM_SET_DEFAULT_HANDLER(&HttpSM::state_cache_open_read); | |
``` | |
int | |
HttpSM::state_cache_open_read(int event, void *data) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L2573 | |
void | |
HttpSM::set_next_state() | |
... | |
case HttpTransact::SM_ACTION_CACHE_LOOKUP: { | |
HTTP_SM_SET_DEFAULT_HANDLER(&HttpSM::state_cache_open_read); | |
do_cache_lookup_and_read(); | |
break; | |
} | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L7229 | |
set_next_state の検索結果 | |
``` | |
proxy/http/HttpUpdateSM.cc|104| call_transact_and_set_next_state(&HttpTransact::ModifyRequest); | |
proxy/http/HttpUpdateSM.cc|185| HttpUpdateSM::set_next_state() | |
proxy/http/HttpUpdateSM.cc|200| HttpSM::set_next_state(); | |
proxy/http/HttpTransact.cc|543| **** which is called from HttpSM::set_next_state to specify **** | |
proxy/http/HttpSM.cc|613| call_transact_and_set_next_state(HttpTransact::HandleBlindTunnel); | |
proxy/http/HttpSM.cc|741| call_transact_and_set_next_state(HttpTransact::BadRequest); | |
proxy/http/HttpSM.cc|752| call_transact_and_set_next_state(HttpTransact::BadRequest); | |
proxy/http/HttpSM.cc|816| call_transact_and_set_next_state(HttpTransact::ModifyRequest); | |
proxy/http/HttpSM.cc|872| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|1038| call_transact_and_set_next_state(HttpTransact::HandleBadPushRespHdr); | |
proxy/http/HttpSM.cc|1089| call_transact_and_set_next_state(HttpTransact::HandleBadPushRespHdr); | |
proxy/http/HttpSM.cc|1098| call_transact_and_set_next_state(HttpTransact::HandlePushResponseHdr); | |
proxy/http/HttpSM.cc|1142| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|1167| call_transact_and_set_next_state(HttpTransact::OriginServerRawOpen); | |
proxy/http/HttpSM.cc|1232| call_transact_and_set_next_state(HttpTransact::handle_transform_ready); | |
proxy/http/HttpSM.cc|1305| call_transact_and_set_next_state(HttpTransact::HandleApiErrorJump); | |
proxy/http/HttpSM.cc|1546| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|1549| call_transact_and_set_next_state(HttpTransact::HandleApiErrorJump); | |
proxy/http/HttpSM.cc|1570| // mess of set_next_state() | |
proxy/http/HttpSM.cc|1599| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|1686| call_transact_and_set_next_state(HttpTransact::HandleRequest); | |
proxy/http/HttpSM.cc|1779| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|1784| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|1788| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|1910| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|2219| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|2240| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|2271| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|2341| call_transact_and_set_next_state(HttpTransact::HandleStatPage); | |
proxy/http/HttpSM.cc|2346| call_transact_and_set_next_state(HttpTransact::HandleStatPage); | |
proxy/http/HttpSM.cc|2378| * pending_action=NULL only if we have to set_next_state. * | |
proxy/http/HttpSM.cc|2384| // set_next_state(); | |
proxy/http/HttpSM.cc|2440| call_transact_and_set_next_state(HttpTransact::HandleICPLookup); | |
proxy/http/HttpSM.cc|2448| // This state is set by set_next_state() for a cache open write | |
proxy/http/HttpSM.cc|2549| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|2600| call_transact_and_set_next_state(HttpTransact::HandleCacheOpenRead); | |
proxy/http/HttpSM.cc|2886| call_transact_and_set_next_state(HttpTransact::HandlePushTunnelSuccess); | |
proxy/http/HttpSM.cc|2888| call_transact_and_set_next_state(HttpTransact::HandlePushTunnelFailure); | |
proxy/http/HttpSM.cc|3990| call_transact_and_set_next_state(HttpTransact::HandleRequest); // HandleRequest skips EndRemapRequest | |
proxy/http/HttpSM.cc|3998| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|4104| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|4137| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|4600| call_transact_and_set_next_state(HttpTransact::HandleApiErrorJump); | |
proxy/http/HttpSM.cc|4885| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|4889| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|5291| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|5478| call_transact_and_set_next_state(HttpTransact::HandleResponse); | |
proxy/http/HttpSM.cc|5527| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7055| // HttpSM::call_transact_and_set_next_state(f) | |
proxy/http/HttpSM.cc|7070| HttpSM::call_transact_and_set_next_state(TransactEntryFunc_t f) | |
proxy/http/HttpSM.cc|7087| set_next_state(); | |
proxy/http/HttpSM.cc|7094| // HttpSM::set_next_state() | |
proxy/http/HttpSM.cc|7096| // call_transact_and_set_next_state() was broken into two parts, one | |
proxy/http/HttpSM.cc|7098| // next state. In a case which set_next_state() was not completed, | |
proxy/http/HttpSM.cc|7099| // the state function calls set_next_state() to retry setting the | |
proxy/http/HttpSM.cc|7104| HttpSM::set_next_state() | |
proxy/http/HttpSM.cc|7125| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7134| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7151| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7163| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7169| call_transact_and_set_next_state(HttpTransact::HandleFiltering); | |
proxy/http/HttpSM.cc|7198| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7204| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7211| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7466| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7505| call_transact_and_set_next_state(NULL); | |
proxy/http/HttpSM.cc|7553| set_next_state(); | |
proxy/http/HttpSM.h|471| virtual void set_next_state(); | |
proxy/http/HttpSM.h|472| void call_transact_and_set_next_state(TransactEntryFunc_t f); | |
proxy/http/HttpUpdateSM.h|66| void set_next_state(); | |
``` | |
HttpSM::set_next_state の呼び出し箇所 | |
``` | |
proxy/http/HttpUpdateSM.cc|200| HttpSM::set_next_state(); | |
proxy/http/HttpSM.cc|7087| set_next_state(); | |
proxy/http/HttpSM.cc|7553| set_next_state(); | |
``` | |
void | |
HttpUpdateSM::set_next_state() | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpUpdateSM.cc#L200 | |
void | |
HttpSM::call_transact_and_set_next_state(TransactEntryFunc_t f) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L7087 | |
int | |
HttpSM::state_congestion_control_lookup(int event, void *data) | |
https://github.com/apache/trafficserver/blob/6.2.0/proxy/http/HttpSM.cc#L7553 | |
HttpUpdateSM::set_next_state の呼び出し箇所は見当たらず。 | |
このあたりで挫折。 | |
HttpSM::call_transact_and_set_next_state はさまざまな場合に呼ばれていて単に関数呼び出しで辿ろうとしても関係ないところも含まれてしまう。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment