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

Function InjectOriginalContentTypeHeader

plugins/xdebug/xdebug.cc:449–470  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

447}
448
449static void
450InjectOriginalContentTypeHeader(TSMBuffer buffer, TSMLoc hdr)
451{
452 TSMLoc ct_field = TSMimeHdrFieldFind(buffer, hdr, TS_MIME_FIELD_CONTENT_TYPE, TS_MIME_LEN_CONTENT_TYPE);
453 if (TS_NULL_MLOC != ct_field) {
454 int original_content_type_len = 0;
455 const char *original_content_type = TSMimeHdrFieldValueStringGet(buffer, hdr, ct_field, -1, &original_content_type_len);
456 if (original_content_type != nullptr) {
457 TSMLoc dst = FindOrMakeHdrField(buffer, hdr, "X-Original-Content-Type", lengthof("X-Original-Content-Type"));
458 TSReleaseAssert(TS_NULL_MLOC != dst);
459 TSReleaseAssert(TSMimeHdrFieldValueStringInsert(buffer, hdr, dst, -1 /* idx */, original_content_type,
460 original_content_type_len) == TS_SUCCESS);
461 }
462 } else {
463 if (TSMimeHdrFieldCreateNamed(buffer, hdr, TS_MIME_FIELD_CONTENT_TYPE, TS_MIME_LEN_CONTENT_TYPE, &ct_field) == TS_SUCCESS) {
464 TSReleaseAssert(TSMimeHdrFieldAppend(buffer, hdr, ct_field) == TS_SUCCESS);
465 }
466 }
467
468 TSMimeHdrFieldValuesClear(buffer, hdr, ct_field);
469 TSReleaseAssert(TSMimeHdrFieldValueStringSet(buffer, hdr, ct_field, -1, "text/plain", lengthof("text/plain")) == TS_SUCCESS);
470}
471
472static void
473InjectTxnUuidHeader(TSHttpTxn txn, TSMBuffer buffer, TSMLoc hdr)

Callers 1

XInjectResponseHeadersFunction · 0.85

Calls 9

TSMimeHdrFieldFindFunction · 0.85
FindOrMakeHdrFieldFunction · 0.85
TSMimeHdrFieldAppendFunction · 0.85
lengthofFunction · 0.70

Tested by

no test coverage detected