#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.107 2008/03/26 18:07:08 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.115 2008/05/19 16:57:20 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
*
* Revisions :
* $Log: project.h,v $
+ * Revision 1.115 2008/05/19 16:57:20 fabiankeil
+ * Declare all members of the parsers structure immutable.
+ *
+ * Revision 1.114 2008/04/11 16:35:39 fabiankeil
+ * Oops, I forgot to shorten the URL_SPEC_INITIALIZER in my last commit.
+ *
+ * Revision 1.113 2008/04/10 14:41:04 fabiankeil
+ * Ditch url_spec's path member now that it's no longer used.
+ *
+ * Revision 1.112 2008/04/06 15:18:34 fabiankeil
+ * Oh well, rename the --enable-pcre-host-patterns option to
+ * --enable-extended-host-patterns as it's not really PCRE syntax.
+ *
+ * Revision 1.111 2008/04/06 14:54:26 fabiankeil
+ * Use PCRE syntax in host patterns when configured
+ * with --enable-pcre-host-patterns.
+ *
+ * Revision 1.110 2008/03/29 12:13:46 fabiankeil
+ * Remove send-wafer and send-vanilla-wafer actions.
+ *
+ * Revision 1.109 2008/03/28 15:13:41 fabiankeil
+ * Remove inspect-jpegs action.
+ *
+ * Revision 1.108 2008/03/27 18:27:36 fabiankeil
+ * Remove kill-popups action.
+ *
* Revision 1.107 2008/03/26 18:07:08 fabiankeil
* Add hostname directive. Closes PR#1918189.
*
Used for debugging or display only. */
char *spec;
+#ifdef FEATURE_EXTENDED_HOST_PATTERNS
+ regex_t *host_regex;/**< Regex for host matching */
+#else
char *dbuffer; /**< Buffer with '\0'-delimited domain name, or NULL to match all hosts. */
char **dvec; /**< List of pointers to the strings in dbuffer. */
int dcount; /**< How many parts to this domain? (length of dvec) */
int unanchored; /**< Bitmap - flags are ANCHOR_LEFT and ANCHOR_RIGHT. */
+#endif /* defined FEATURE_EXTENDED_HOST_PATTERNS */
char *port_list; /**< List of acceptable ports, or NULL to match all ports */
- char *path; /**< The source for the regex. */
regex_t *preg; /**< Regex for matching path part */
regex_t *tag_regex; /**< Regex for matching tags */
};
/**
* If you declare a static url_spec, this is the value to initialize it to zero.
*/
-#define URL_SPEC_INITIALIZER { NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL }
+#ifndef FEATURE_EXTENDED_HOST_PATTERNS
+#define URL_SPEC_INITIALIZER { NULL, NULL, NULL, 0, 0, NULL, NULL, NULL }
+#else
+#define URL_SPEC_INITIALIZER { NULL, NULL, NULL, NULL, NULL }
+#endif /* def FEATURE_EXTENDED_HOST_PATTERNS */
/**
* Constant for host part matching in URLs. If set, indicates that the start of
#define CT_TEXT 0x0001U /**< Suitable for pcrs filtering. */
#define CT_GIF 0x0002U /**< Suitable for GIF filtering. */
#define CT_TABOO 0x0004U /**< DO NOT filter, irrespective of other flags. */
-#define CT_JPEG 0x0008U /**< Suitable for JPEG filtering. */
/* Although these are not, strictly speaking, content types
* (they are content encodings), it is simple to handle them
#define ACTION_NO_COOKIE_SET 0x00002000UL
/** Action bitmap: Override the forward settings in the config file */
#define ACTION_FORWARD_OVERRIDE 0x00004000UL
-/** Action bitmap: Send a vanilla wafer. */
-#define ACTION_VANILLA_WAFER 0x00008000UL
+/** Action bitmap: Block as empty document */
+#define ACTION_HANDLE_AS_EMPTY_DOCUMENT 0x00008000UL
/** Action bitmap: Limit CONNECT requests to safe ports. */
#define ACTION_LIMIT_CONNECT 0x00010000UL
-/** Action bitmap: Inspect if it's a JPEG. */
-#define ACTION_JPEG_INSPECT 0x00020000UL
+/** Action bitmap: Redirect request. */
+#define ACTION_REDIRECT 0x00020000UL
/** Action bitmap: Crunch or modify "if-modified-since" header. */
#define ACTION_HIDE_IF_MODIFIED_SINCE 0x00040000UL
/** Action bitmap: Overwrite Content-Type header. */
#define ACTION_OVERWRITE_LAST_MODIFIED 0x02000000UL
/** Action bitmap: Replace or block Accept-Language header */
#define ACTION_HIDE_ACCEPT_LANGUAGE 0x04000000UL
-/** Action bitmap: Block as empty document */
-#define ACTION_HANDLE_AS_EMPTY_DOCUMENT 0x08000000UL
-/** Action bitmap: Redirect request. */
-#define ACTION_REDIRECT 0x10000000UL
/** Action string index: How to deanimate GIFs */
/** Index into current_action_spec::multi[] for headers to add. */
#define ACTION_MULTI_ADD_HEADER 0
-/** Index into current_action_spec::multi[] for headers to add. */
-#define ACTION_MULTI_WAFER 1
/** Index into current_action_spec::multi[] for content filters to apply. */
-#define ACTION_MULTI_FILTER 2
+#define ACTION_MULTI_FILTER 1
/** Index into current_action_spec::multi[] for server-header filters to apply. */
-#define ACTION_MULTI_SERVER_HEADER_FILTER 3
+#define ACTION_MULTI_SERVER_HEADER_FILTER 2
/** Index into current_action_spec::multi[] for client-header filters to apply. */
-#define ACTION_MULTI_CLIENT_HEADER_FILTER 4
+#define ACTION_MULTI_CLIENT_HEADER_FILTER 3
/** Index into current_action_spec::multi[] for client-header tags to apply. */
-#define ACTION_MULTI_CLIENT_HEADER_TAGGER 5
+#define ACTION_MULTI_CLIENT_HEADER_TAGGER 4
/** Index into current_action_spec::multi[] for server-header tags to apply. */
-#define ACTION_MULTI_SERVER_HEADER_TAGGER 6
+#define ACTION_MULTI_SERVER_HEADER_TAGGER 5
/** Number of multi-string actions. */
-#define ACTION_MULTI_COUNT 7
+#define ACTION_MULTI_COUNT 6
/**
typedef jb_err (*parser_func_ptr )(struct client_state *, char **);
-/**
- * List of functions to run on a list of headers
- */
-struct parsers
-{
- /** The header prefix to match */
- char *str;
-
- /** The length of the prefix to match */
- size_t len;
-
- /** The function to apply to this line */
- parser_func_ptr parser;
-};
-
-
/**
* List of available CGI functions.
*/