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

Function checkGzipAcceptance

plugins/esi/combo_handler.cc:719–745  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

717}
718
719static void
720checkGzipAcceptance(TSMBuffer bufp, TSMLoc hdr_loc, ClientRequest &creq)
721{
722 creq.gzip_accepted = false;
723 TSMLoc field_loc = TSMimeHdrFieldFind(bufp, hdr_loc, TS_MIME_FIELD_ACCEPT_ENCODING, TS_MIME_LEN_ACCEPT_ENCODING);
724 if (field_loc != TS_NULL_MLOC) {
725 const char *value;
726 int value_len;
727 int n_values = TSMimeHdrFieldValuesCount(bufp, hdr_loc, field_loc);
728
729 for (int i = 0; i < n_values; ++i) {
730 value = TSMimeHdrFieldValueStringGet(bufp, hdr_loc, field_loc, i, &value_len);
731 if (value) {
732 if ((value_len == TS_HTTP_LEN_GZIP) && (strncasecmp(value, TS_HTTP_VALUE_GZIP, value_len) == 0)) {
733 creq.gzip_accepted = true;
734 }
735 } else {
736 LOG_DEBUG("Error while getting value # %d of header [%.*s]", i, TS_MIME_LEN_ACCEPT_ENCODING, TS_MIME_FIELD_ACCEPT_ENCODING);
737 }
738 if (creq.gzip_accepted) {
739 break;
740 }
741 }
742 TSHandleMLocRelease(bufp, hdr_loc, field_loc);
743 }
744 LOG_DEBUG("Client %s gzip encoding", (creq.gzip_accepted ? "accepts" : "does not accept"));
745}
746
747static int
748handleServerEvent(TSCont contp, TSEvent event, void *edata)

Callers 1

getClientRequestFunction · 0.85

Calls 4

TSMimeHdrFieldFindFunction · 0.85
TSHandleMLocReleaseFunction · 0.85

Tested by

no test coverage detected