| 1068 | */ |
| 1069 | |
| 1070 | void |
| 1071 | RangeTransform::change_response_header() |
| 1072 | { |
| 1073 | MIMEField *field; |
| 1074 | char *reason_phrase; |
| 1075 | HTTPStatus status_code; |
| 1076 | |
| 1077 | ink_release_assert(m_transform_resp); |
| 1078 | |
| 1079 | status_code = HTTP_STATUS_PARTIAL_CONTENT; |
| 1080 | m_transform_resp->status_set(status_code); |
| 1081 | reason_phrase = const_cast<char *>(http_hdr_reason_lookup(status_code)); |
| 1082 | m_transform_resp->reason_set(reason_phrase, strlen(reason_phrase)); |
| 1083 | |
| 1084 | if (m_num_range_fields > 1) { |
| 1085 | // set the right Content-Type for multiple entry Range |
| 1086 | field = m_transform_resp->field_find(MIME_FIELD_CONTENT_TYPE, MIME_LEN_CONTENT_TYPE); |
| 1087 | |
| 1088 | if (field != nullptr) { |
| 1089 | m_transform_resp->field_delete(MIME_FIELD_CONTENT_TYPE, MIME_LEN_CONTENT_TYPE); |
| 1090 | } |
| 1091 | |
| 1092 | field = m_transform_resp->field_create(MIME_FIELD_CONTENT_TYPE, MIME_LEN_CONTENT_TYPE); |
| 1093 | field->value_append(m_transform_resp->m_heap, m_transform_resp->m_mime, range_type, sizeof(range_type) - 1); |
| 1094 | |
| 1095 | m_transform_resp->field_attach(field); |
| 1096 | } else { |
| 1097 | char numbers[RANGE_NUMBERS_LENGTH]; |
| 1098 | m_transform_resp->field_delete(MIME_FIELD_CONTENT_RANGE, MIME_LEN_CONTENT_RANGE); |
| 1099 | field = m_transform_resp->field_create(MIME_FIELD_CONTENT_RANGE, MIME_LEN_CONTENT_RANGE); |
| 1100 | snprintf(numbers, sizeof(numbers), "bytes %" PRId64 "-%" PRId64 "/%" PRId64, m_ranges[0]._start, m_ranges[0]._end, m_output_cl); |
| 1101 | field->value_set(m_transform_resp->m_heap, m_transform_resp->m_mime, numbers, strlen(numbers)); |
| 1102 | m_transform_resp->field_attach(field); |
| 1103 | } |
| 1104 | } |
| 1105 | |
| 1106 | #undef RANGE_NUMBERS_LENGTH |
nothing calls this directly
no test coverage detected