-const char parsers_rcs[] = "$Id: parsers.c,v 1.208 2009/09/06 14:10:07 fabiankeil Exp $";
+const char parsers_rcs[] = "$Id: parsers.c,v 1.210 2009/12/25 11:39:26 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/parsers.c,v $
struct re_filterfile_spec *b;
struct list_entry *tag_name;
- int found_filters = 0;
const size_t header_length = strlen(header);
if (csp->flags & CSP_FLAG_CLIENT_HEADER_PARSING_DONE)
multi_action_index = ACTION_MULTI_CLIENT_HEADER_TAGGER;
}
- /* Check if there are any filters */
- for (i = 0; i < MAX_AF_FILES; i++)
- {
- fl = csp->rlist[i];
- if (NULL != fl)
- {
- if (NULL != fl->f)
- {
- found_filters = 1;
- break;
- }
- }
- }
-
- if (0 == found_filters)
+ if (filters_available(csp) == FALSE)
{
log_error(LOG_LEVEL_ERROR, "Inconsistent configuration: "
"tagging enabled, but no taggers available.");
struct re_filterfile_spec *b;
struct list_entry *filtername;
- int i, found_filters = 0;
+ int i;
int wanted_filter_type;
int multi_action_index;
multi_action_index = ACTION_MULTI_CLIENT_HEADER_FILTER;
}
- /*
- * Need to check the set of re_filterfiles...
- */
- for (i = 0; i < MAX_AF_FILES; i++)
- {
- fl = csp->rlist[i];
- if (NULL != fl)
- {
- if (NULL != fl->f)
- {
- found_filters = 1;
- break;
- }
- }
- }
-
- if (0 == found_filters)
+ if (filters_available(csp) == FALSE)
{
log_error(LOG_LEVEL_ERROR, "Inconsistent configuration: "
"header filtering enabled, but no matching filters available.");
{
char *expiration_date = cur_tag + 8; /* Skip "[Ee]xpires=" */
+ if ((expiration_date[0] == '"')
+ && (expiration_date[1] != '\0'))
+ {
+ /*
+ * Skip quotation mark. RFC 2109 10.1.2 seems to hint
+ * that the expiration date isn't supposed to be quoted,
+ * but some servers do it anyway.
+ */
+ expiration_date++;
+ }
+
/* Did we detect the date properly? */
if (JB_ERR_OK != parse_header_time(expiration_date, &cookie_time))
{