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

Function cache_hook_handler

src/api/InkAPITest.cc:7472–7623  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7470};
7471
7472static int
7473cache_hook_handler(TSCont contp, TSEvent event, void *edata)
7474{
7475 TSHttpTxn txnp = nullptr;
7476 CacheTestData *data = nullptr;
7477
7478 CHECK_SPURIOUS_EVENT(contp, event, edata);
7479 data = static_cast<CacheTestData *>(TSContDataGet(contp));
7480
7481 switch (event) {
7482 case TS_EVENT_HTTP_READ_REQUEST_HDR:
7483 txnp = static_cast<TSHttpTxn>(edata);
7484 TSHttpTxnCntlSet(txnp, TS_HTTP_CNTL_SKIP_REMAPPING, true);
7485 TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
7486 break;
7487
7488 case TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE: {
7489 int lookup_status;
7490 if (data->first_time == true) {
7491 txnp = static_cast<TSHttpTxn>(edata);
7492 if (TSHttpTxnCacheLookupStatusGet(txnp, &lookup_status) != TS_SUCCESS) {
7493 SDK_RPRINT(data->test, "TSHttpTxnCacheLookupStatusGet", "TestCase1", TC_FAIL,
7494 "TSHttpTxnCacheLookupStatus doesn't return TS_SUCCESS");
7495 } else {
7496 if (lookup_status == TS_CACHE_LOOKUP_MISS) {
7497 SDK_RPRINT(data->test, "TSHttpTxnCacheLookupStatusGet", "TestCase1", TC_PASS, "ok");
7498 data->test_passed_txn_cache_lookup_status = true;
7499 } else {
7500 SDK_RPRINT(data->test, "TSHttpTxnCacheLookupStatusGet", "TestCase1", TC_FAIL,
7501 "Incorrect Value returned by TSHttpTxnCacheLookupStatusGet");
7502 }
7503 }
7504 } else {
7505 txnp = static_cast<TSHttpTxn>(edata);
7506 if (TSHttpTxnCacheLookupStatusGet(txnp, &lookup_status) != TS_SUCCESS) {
7507 SDK_RPRINT(data->test, "TSHttpTxnCacheLookupStatusGet", "TestCase2", TC_FAIL,
7508 "TSHttpTxnCacheLookupStatus doesn't return TS_SUCCESS");
7509 data->test_passed_txn_cache_lookup_status = false;
7510 } else {
7511 if (lookup_status == TS_CACHE_LOOKUP_HIT_FRESH) {
7512 SDK_RPRINT(data->test, "TSHttpTxnCacheLookupStatusGet", "TestCase2", TC_PASS, "ok");
7513 } else {
7514 SDK_RPRINT(data->test, "TSHttpTxnCacheLookupStatusGet", "TestCase2", TC_FAIL,
7515 "Incorrect Value returned by TSHttpTxnCacheLookupStatusGet");
7516 data->test_passed_txn_cache_lookup_status = false;
7517 }
7518 }
7519 }
7520 TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
7521 } break;
7522 case TS_EVENT_HTTP_READ_CACHE_HDR: {
7523 TSMBuffer reqbuf;
7524 TSMBuffer respbuf;
7525
7526 TSMLoc reqhdr;
7527 TSMLoc resphdr;
7528
7529 txnp = static_cast<TSHttpTxn>(edata);

Callers

nothing calls this directly

Calls 15

TSContDataGetFunction · 0.85
TSHttpTxnCntlSetFunction · 0.85
TSHttpTxnReenableFunction · 0.85
SDK_RPRINTFunction · 0.85
TSHttpTxnCachedReqGetFunction · 0.85
TSHttpTxnCachedRespGetFunction · 0.85
TSHandleMLocReleaseFunction · 0.85
TSContScheduleOnPoolFunction · 0.85
synserver_deleteFunction · 0.85
synclient_txn_deleteFunction · 0.85

Tested by

no test coverage detected