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

Function txn_handler

tests/tools/plugins/http2_close_connection.cc:37–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35const int LEN_CLOSE = 5;
36
37static int
38txn_handler(TSCont /* contp */, TSEvent event, void *edata)
39{
40 Dbg(dbg_ctl_tag, "txn_handler event: %d", event);
41
42 TSHttpTxn txnp = static_cast<TSHttpTxn>(edata);
43
44 TSMBuffer resp_bufp = nullptr;
45 TSMLoc resp_hdr_loc = nullptr;
46 if (TSHttpTxnClientRespGet(txnp, &resp_bufp, &resp_hdr_loc) != TS_SUCCESS) {
47 Dbg(dbg_ctl_tag, "TSHttpTxnClientRespGet failed");
48 } else {
49 Dbg(dbg_ctl_tag, "TSHttpTxnClientRespGet success");
50 TSMLoc field_loc = TSMimeHdrFieldFind(resp_bufp, resp_hdr_loc, FIELD_CONNECTION, LEN_CONNECTION);
51 if (field_loc) {
52 Dbg(dbg_ctl_tag, "Found header %s", FIELD_CONNECTION);
53 TSMimeHdrFieldValueStringSet(resp_bufp, resp_hdr_loc, field_loc, 0, VALUE_CLOSE, LEN_CLOSE);
54 Dbg(dbg_ctl_tag, "Setting header %s:%s", FIELD_CONNECTION, VALUE_CLOSE);
55 } else {
56 Dbg(dbg_ctl_tag, "Header %s not found", FIELD_CONNECTION);
57 if (TSMimeHdrFieldCreate(resp_bufp, resp_hdr_loc, &field_loc) == TS_SUCCESS) {
58 TSMimeHdrFieldNameSet(resp_bufp, resp_hdr_loc, field_loc, FIELD_CONNECTION, LEN_CONNECTION);
59 TSMimeHdrFieldAppend(resp_bufp, resp_hdr_loc, field_loc);
60 TSMimeHdrFieldValueStringInsert(resp_bufp, resp_hdr_loc, field_loc, 0, VALUE_CLOSE, LEN_CLOSE);
61 Dbg(dbg_ctl_tag, "Adding header %s:%s", FIELD_CONNECTION, VALUE_CLOSE);
62 } else {
63 Dbg(dbg_ctl_tag, "TSMimeHdrFieldCreate failed");
64 }
65 }
66 TSHandleMLocRelease(resp_bufp, resp_hdr_loc, field_loc);
67 }
68 TSHandleMLocRelease(resp_bufp, TS_NULL_MLOC, resp_hdr_loc);
69 resp_bufp = nullptr;
70
71 TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
72 return TS_EVENT_NONE;
73}
74
75void
76TSPluginInit(int /* argc ATS_UNUSED */, const char ** /* argv ATS_UNUSED */)

Callers

nothing calls this directly

Calls 9

TSHttpTxnClientRespGetFunction · 0.85
TSMimeHdrFieldFindFunction · 0.85
TSMimeHdrFieldCreateFunction · 0.85
TSMimeHdrFieldNameSetFunction · 0.85
TSMimeHdrFieldAppendFunction · 0.85
TSHandleMLocReleaseFunction · 0.85
TSHttpTxnReenableFunction · 0.85

Tested by

no test coverage detected