+/*********************************************************************
+ *
+ * Function : server_content_md5
+ *
+ * Description : Crumble any Content-MD5 headers if the document was
+ * modified. FIXME: Should we re-compute instead?
+ *
+ * Parameters :
+ * 1 : v = ignored
+ * 2 : s = header string we are "considering"
+ * 3 : csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns : A duplicate string pointer to this header (ie. pass thru)
+ *
+ *********************************************************************/
+char *server_content_md5(const struct parsers *v, const char *s, struct client_state *csp)
+{
+ if (csp->flags & CSP_FLAG_MODIFIED)
+ {
+ log_error(LOG_LEVEL_HEADER, "Crunching Content-MD5");
+ return(NULL);
+ }
+ else
+ {
+ return(strdup(s));
+ }
+
+}
+
+
+/*********************************************************************
+ *
+ * Function : client_accept_encoding
+ *
+ * Description : Rewrite the client's Accept-Encoding header so that
+ * if doesn't allow compression, if the action applies.
+ * Note: For HTTP/1.0 the absence of the header is enough.
+ *
+ * Parameters :
+ * 1 : v = ignored
+ * 2 : s = header string we are "considering"
+ * 3 : csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns : A copy of the client's original or the modified header.
+ *
+ *********************************************************************/
+char *client_accept_encoding(const struct parsers *v, const char *s, struct client_state *csp)
+{
+ if ((csp->action->flags & ACTION_NO_COMPRESSION) == 0)
+ {
+ return(strdup(s));
+ }
+ else
+ {
+ log_error(LOG_LEVEL_HEADER, "Supressed offer to compress content");
+
+ if (!strcmpic(csp->http->ver, "HTTP/1.1"))
+ {
+ return(strdup("Accept-Encoding: identity;q=1.0, *;q=0"));
+ }
+ else
+ {
+ return(NULL);
+ }
+ }
+
+}
+
+
+/*********************************************************************
+ *
+ * Function : client_te
+ *
+ * Description : Rewrite the client's TE header so that
+ * if doesn't allow compression, if the action applies.
+ *
+ * Parameters :
+ * 1 : v = ignored
+ * 2 : s = header string we are "considering"
+ * 3 : csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns : A copy of the client's original or the modified header.
+ *
+ *********************************************************************/
+char *client_te(const struct parsers *v, const char *s, struct client_state *csp)
+{
+ if ((csp->action->flags & ACTION_NO_COMPRESSION) == 0)
+ {
+ return(strdup(s));
+ }
+ else
+ {
+ log_error(LOG_LEVEL_HEADER, "Supressed offer to compress transfer");
+ return(NULL);
+ }
+
+}
+