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

Function ssn_handler

src/api/InkAPITest.cc:7024–7151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7022}
7023
7024static int
7025ssn_handler(TSCont contp, TSEvent event, void *edata)
7026{
7027 TSHttpTxn txnp = nullptr;
7028 ContData *data = nullptr;
7029 data = static_cast<ContData *>(TSContDataGet(contp));
7030 if (data == nullptr) {
7031 switch (event) {
7032 case TS_EVENT_HTTP_SSN_START:
7033 TSHttpSsnReenable(static_cast<TSHttpSsn>(edata), TS_EVENT_HTTP_CONTINUE);
7034 break;
7035 case TS_EVENT_IMMEDIATE:
7036 case TS_EVENT_TIMEOUT:
7037 break;
7038 case TS_EVENT_HTTP_TXN_START:
7039 default:
7040 TSHttpTxnReenable(static_cast<TSHttpTxn>(edata), TS_EVENT_HTTP_CONTINUE);
7041 break;
7042 }
7043 return 0;
7044 }
7045
7046 switch (event) {
7047 case TS_EVENT_HTTP_SSN_START:
7048 data->ssnp = static_cast<TSHttpSsn>(edata);
7049 TSHttpSsnHookAdd(data->ssnp, TS_HTTP_TXN_START_HOOK, contp);
7050 TSHttpSsnReenable(data->ssnp, TS_EVENT_HTTP_CONTINUE);
7051 break;
7052
7053 case TS_EVENT_HTTP_TXN_START:
7054 TSHttpTxnCntlSet(static_cast<TSHttpTxn>(edata), TS_HTTP_CNTL_SKIP_REMAPPING, true);
7055 SDK_RPRINT(data->test, "TSHttpSsnReenable", "TestCase", TC_PASS, "ok");
7056 data->test_passed_ssn_reenable++;
7057 {
7058 txnp = static_cast<TSHttpTxn>(edata);
7059 TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
7060 if (ssnp != data->ssnp) {
7061 SDK_RPRINT(data->test, "TSHttpSsnHookAdd", "TestCase", TC_FAIL, "Value's mismatch");
7062 data->test_passed_ssn_hook_add--;
7063 SDK_RPRINT(data->test, "TSHttpTxnSsnGet", "TestCase", TC_FAIL, "Session doesn't match");
7064 data->test_passed_txn_ssn_get--;
7065 } else {
7066 SDK_RPRINT(data->test, "TSHttpSsnHookAdd", "TestCase1", TC_PASS, "ok");
7067 data->test_passed_ssn_hook_add++;
7068 SDK_RPRINT(data->test, "TSHttpTxnSsnGet", "TestCase1", TC_PASS, "ok");
7069 data->test_passed_txn_ssn_get++;
7070 }
7071 TSHttpTxnHookAdd(txnp, TS_HTTP_OS_DNS_HOOK, contp);
7072 TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
7073 }
7074 break;
7075
7076 case TS_EVENT_HTTP_OS_DNS:
7077 SDK_RPRINT(data->test, "TSHttpTxnHookAdd", "TestCase1", TC_PASS, "ok");
7078 data->test_passed_txn_hook_add++;
7079 txnp = static_cast<TSHttpTxn>(edata);
7080
7081 TSHttpTxnHookAdd(txnp, TS_HTTP_SEND_RESPONSE_HDR_HOOK, contp);

Callers

nothing calls this directly

Calls 15

TSContDataGetFunction · 0.85
TSHttpSsnReenableFunction · 0.85
TSHttpTxnReenableFunction · 0.85
TSHttpSsnHookAddFunction · 0.85
TSHttpTxnCntlSetFunction · 0.85
SDK_RPRINTFunction · 0.85
TSHttpTxnSsnGetFunction · 0.85
TSHttpTxnHookAddFunction · 0.85
checkHttpTxnParentProxyFunction · 0.85
TSstrdupFunction · 0.85
TSHttpTxnErrorBodySetFunction · 0.85
TSContScheduleOnPoolFunction · 0.85

Tested by

no test coverage detected