couple of client-crashing, download corruption and
Privoxy performance issues, whose root cause lies in
web servers labelling content of unknown type as text/plain.
-const char parsers_rcs[] = "$Id: parsers.c,v 1.56.2.6 2003/04/14 21:28:30 oes Exp $";
+const char parsers_rcs[] = "$Id: parsers.c,v 1.56.2.7 2003/05/06 12:07:26 oes Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/Attic/parsers.c,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/Attic/parsers.c,v $
*
* Revisions :
* $Log: parsers.c,v $
*
* Revisions :
* $Log: parsers.c,v $
+ * Revision 1.56.2.7 2003/05/06 12:07:26 oes
+ * Fixed bug #729900: Suspicious HOST: headers are now killed and regenerated if necessary
+ *
* Revision 1.56.2.6 2003/04/14 21:28:30 oes
* Completing the previous change
*
* Revision 1.56.2.6 2003/04/14 21:28:30 oes
* Completing the previous change
*
* Description : Set the content-type for filterable types (text/.*,
* javascript and image/gif) unless filtering has been
* forbidden (CT_TABOO) while parsing earlier headers.
* Description : Set the content-type for filterable types (text/.*,
* javascript and image/gif) unless filtering has been
* forbidden (CT_TABOO) while parsing earlier headers.
+ * NOTE: Since text/plain is commonly used by web servers
+ * for files whose correct type is unknown, we don't
+ * set CT_TEXT for it.
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
{
if (csp->content_type != CT_TABOO)
{
{
if (csp->content_type != CT_TABOO)
{
- if (strstr(*header, " text/")
+ if ((strstr(*header, " text/") && !strstr(*header, "plain"))
|| strstr(*header, "application/x-javascript"))
csp->content_type = CT_TEXT;
else if (strstr(*header, " image/gif"))
|| strstr(*header, "application/x-javascript"))
csp->content_type = CT_TEXT;
else if (strstr(*header, " image/gif"))