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

Function InjectRemapHeader

plugins/xdebug/xdebug.cc:397–420  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

395}
396
397static void
398InjectRemapHeader(TSHttpTxn txn, TSMBuffer buffer, TSMLoc hdr)
399{
400 TSMLoc dst = FindOrMakeHdrField(buffer, hdr, "X-Remap", lengthof("X-Remap"));
401
402 if (TS_NULL_MLOC != dst) {
403 int fromUrlStrLen, toUrlStrLen;
404 const char *fromUrlStr = getRemapUrlStr(txn, TSRemapFromUrlGet, fromUrlStrLen);
405 const char *toUrlStr = getRemapUrlStr(txn, TSRemapToUrlGet, toUrlStrLen);
406
407 char buf[2048];
408 int len = snprintf(buf, sizeof(buf), "from=%*s, to=%*s", fromUrlStrLen, fromUrlStr, toUrlStrLen, toUrlStr);
409
410 if (fromUrlStr != NotFound) {
411 TSfree(const_cast<char *>(fromUrlStr));
412 }
413 if (toUrlStr != NotFound) {
414 TSfree(const_cast<char *>(toUrlStr));
415 }
416
417 TSReleaseAssert(TSMimeHdrFieldValueStringInsert(buffer, hdr, dst, -1 /* idx */, buf, len) == TS_SUCCESS);
418 TSHandleMLocRelease(buffer, hdr, dst);
419 }
420}
421
422static void
423InjectEffectiveURLHeader(TSHttpTxn txn, TSMBuffer buffer, TSMLoc hdr)

Callers 1

XInjectResponseHeadersFunction · 0.85

Calls 6

FindOrMakeHdrFieldFunction · 0.85
getRemapUrlStrFunction · 0.85
TSfreeFunction · 0.85
TSHandleMLocReleaseFunction · 0.85
lengthofFunction · 0.70

Tested by

no test coverage detected