-const char parsers_rcs[] = "$Id: parsers.c,v 1.118 2007/12/28 16:56:35 fabiankeil Exp $";
+const char parsers_rcs[] = "$Id: parsers.c,v 1.122 2008/03/28 15:13:39 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/parsers.c,v $
*
* Revisions :
* $Log: parsers.c,v $
+ * Revision 1.122 2008/03/28 15:13:39 fabiankeil
+ * Remove inspect-jpegs action.
+ *
+ * Revision 1.121 2008/01/05 21:37:03 fabiankeil
+ * Let client_range() also handle Request-Range headers
+ * which apparently are still supported by many servers.
+ *
+ * Revision 1.120 2008/01/04 17:43:45 fabiankeil
+ * Improve the warning messages that get logged if the action files
+ * "enable" filters but no filters of that type have been loaded.
+ *
+ * Revision 1.119 2007/12/28 18:32:51 fabiankeil
+ * In server_content_type():
+ * - Don't require leading white space when detecting image content types.
+ * - Change '... not replaced ...' message to sound less crazy if the text
+ * type actually is 'text/plain'.
+ * - Mark the 'text/plain == binary data' assumption for removal.
+ * - Remove a bunch of trailing white space.
+ *
* Revision 1.118 2007/12/28 16:56:35 fabiankeil
* Minor server_content_disposition() changes:
* - Don't regenerate the header name all lower-case.
static jb_err server_content_disposition(struct client_state *csp, char **header);
static jb_err client_host_adder (struct client_state *csp);
-static jb_err client_cookie_adder (struct client_state *csp);
static jb_err client_xtra_adder (struct client_state *csp);
static jb_err connection_close_adder (struct client_state *csp);
{ "Accept-Language:", 16, client_accept_language },
{ "if-none-match:", 14, client_if_none_match },
{ "Range:", 6, client_range },
+ { "Request-Range:", 14, client_range },
{ "If-Range:", 9, client_range },
{ "X-Filter:", 9, client_x_filter },
{ "*", 0, crunch_client_header },
const add_header_func_ptr add_client_headers[] = {
client_host_adder,
- client_cookie_adder,
client_xtra_adder,
/* Temporarily disabled: client_accept_encoding_adder, */
connection_close_adder,
NULL
};
-/* The vanilla wafer. */
-static const char VANILLA_WAFER[] =
- "NOTICE=TO_WHOM_IT_MAY_CONCERN_"
- "Do_not_send_me_any_copyrighted_information_other_than_the_"
- "document_that_I_am_requesting_or_any_of_its_necessary_components._"
- "In_particular_do_not_send_me_any_cookies_that_"
- "are_subject_to_a_claim_of_copyright_by_anybody._"
- "Take_notice_that_I_refuse_to_be_bound_by_any_license_condition_"
- "(copyright_or_otherwise)_applying_to_any_cookie._";
-
/*********************************************************************
*
* Function : flush_socket
if (0 == found_filters)
{
- log_error(LOG_LEVEL_ERROR, "Unable to get current state of regex tagging.");
+ log_error(LOG_LEVEL_ERROR, "Inconsistent configuration: "
+ "tagging enabled, but no taggers available.");
return(JB_ERR_OK);
}
if (0 == found_filters)
{
- log_error(LOG_LEVEL_ERROR, "Unable to get current state of regexp filtering.");
+ log_error(LOG_LEVEL_ERROR, "Inconsistent configuration: "
+ "header filtering enabled, but no matching filters available.");
return(JB_ERR_OK);
}
{
csp->content_type |= CT_GIF;
}
- else if (strstr(*header, "image/jpeg"))
- {
- csp->content_type |= CT_JPEG;
- }
}
/*
*
* Function : client_range
*
- * Description : Removes Range and If-Range headers if content
- * filtering is enabled. If the client's version of
- * the document has been altered by Privoxy, the server
+ * Description : Removes Range, Request-Range and If-Range headers if
+ * content filtering is enabled. If the client's version
+ * of the document has been altered by Privoxy, the server
* could interpret the range differently than the client
* intended in which case the user could end up with
* corrupted content.
}
-/*********************************************************************
- *
- * Function : client_cookie_adder
- *
- * Description : Used in the add_client_headers list to add "wafers".
- * Called from `sed'.
- *
- * Parameters :
- * 1 : csp = Current client state (buffers, headers, etc...)
- *
- * Returns : JB_ERR_OK on success, or
- * JB_ERR_MEMORY on out-of-memory error.
- *
- *********************************************************************/
-jb_err client_cookie_adder(struct client_state *csp)
-{
- char *tmp;
- struct list_entry *wafer;
- struct list_entry *wafer_list;
- jb_err err;
-
- /*
- * If the user has not supplied any wafers, and the user has not
- * told us to suppress the vanilla wafer, then send the vanilla wafer.
- */
- if ((0 != (csp->action->flags & ACTION_VANILLA_WAFER))
- && list_is_empty(csp->action->multi[ACTION_MULTI_WAFER]))
- {
- enlist(csp->action->multi[ACTION_MULTI_WAFER], VANILLA_WAFER);
- }
-
- wafer_list = csp->action->multi[ACTION_MULTI_WAFER]->first;
-
- if (NULL == wafer_list)
- {
- /* Nothing to do */
- return JB_ERR_OK;
- }
-
- tmp = strdup("Cookie: ");
-
- for (wafer = wafer_list; (NULL != tmp) && (NULL != wafer); wafer = wafer->next)
- {
- if (wafer != wafer_list)
- {
- /* As this isn't the first wafer, we need a delimiter. */
- string_append(&tmp, "; ");
- }
- string_join(&tmp, cookie_encode(wafer->str));
- }
-
- if (tmp == NULL)
- {
- return JB_ERR_MEMORY;
- }
-
- log_error(LOG_LEVEL_HEADER, "addh: %s", tmp);
- err = enlist(csp->headers, tmp);
- free(tmp);
- return err;
-}
-
-
#if 0
/*********************************************************************
*