| 717 | } |
| 718 | |
| 719 | static void |
| 720 | checkGzipAcceptance(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 | |
| 747 | static int |
| 748 | handleServerEvent(TSCont contp, TSEvent event, void *edata) |
no test coverage detected