| 395 | } |
| 396 | |
| 397 | static void |
| 398 | InjectRemapHeader(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 | |
| 422 | static void |
| 423 | InjectEffectiveURLHeader(TSHttpTxn txn, TSMBuffer buffer, TSMLoc hdr) |
no test coverage detected