| 447 | } |
| 448 | |
| 449 | static void |
| 450 | InjectOriginalContentTypeHeader(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 | |
| 472 | static void |
| 473 | InjectTxnUuidHeader(TSHttpTxn txn, TSMBuffer buffer, TSMLoc hdr) |
no test coverage detected