#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.110 2008/03/29 12:13:46 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.119 2008/09/20 10:04:33 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
*
* Revisions :
* $Log: project.h,v $
+ * Revision 1.119 2008/09/20 10:04:33 fabiankeil
+ * Remove hide-forwarded-for-headers action which has
+ * been obsoleted by change-x-forwarded-for{block}.
+ *
+ * Revision 1.118 2008/09/19 15:26:29 fabiankeil
+ * Add change-x-forwarded-for{} action to block or add
+ * X-Forwarded-For headers. Mostly based on code removed
+ * before 3.0.7.
+ *
+ * Revision 1.117 2008/08/30 12:03:07 fabiankeil
+ * Remove FEATURE_COOKIE_JAR.
+ *
+ * Revision 1.116 2008/05/20 16:05:02 fabiankeil
+ * Move parsers structure definition from project.h to parsers.h.
+ *
+ * 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.
*
Used for debugging or display only. */
char *spec;
-#ifdef FEATURE_PCRE_HOST_PATTERNS
+#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_PCRE_HOST_PATTERNS */
+#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.
*/
-#ifndef FEATURE_PCRE_HOST_PATTERNS
-#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, NULL }
-#endif /* def FEATURE_PCRE_HOST_PATTERNS */
+#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 ACTION_DOWNGRADE 0x00000004UL
/** Action bitmap: Fast redirects. */
#define ACTION_FAST_REDIRECTS 0x00000008UL
-/** Action bitmap: Remove existing "Forwarded" header, and do not add another. */
-#define ACTION_HIDE_FORWARDED 0x00000010UL
+/** Action bitmap: Remove or add "X-Forwarded-For" header. */
+#define ACTION_CHANGE_X_FORWARDED_FOR 0x00000010UL
/** Action bitmap: Hide "From" header. */
#define ACTION_HIDE_FROM 0x00000020UL
/** Action bitmap: Hide "Referer" header. (sic - follow HTTP, not English). */
#define ACTION_STRING_FORWARD_OVERRIDE 15
/** Action string index: Reason for the block. */
#define ACTION_STRING_BLOCK 16
+/** Action string index: what to do with the "X-Forwarded-For" header. */
+#define ACTION_STRING_CHANGE_X_FORWARDED_FOR 17
/** Number of string actions. */
-#define ACTION_STRING_COUNT 17
+#define ACTION_STRING_COUNT 18
/* To make the ugly hack in sed easier to understand */
*/
#define CSP_FLAG_NO_FILTERING 0x00000400UL
+/**
+ * Flag for csp->flags: Set the client IP has appended to
+ * an already existing X-Forwarded-For header in which case
+ * no new header has to be generated.
+ */
+#define CSP_FLAG_X_FORWARDED_FOR_APPENDED 0x00000800UL
/*
* Flags for use in return codes of child processes
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.
*/
/** The hostname to show on CGI pages, or NULL to use the real one. */
const char *hostname;
-#ifdef FEATURE_COOKIE_JAR
-
- /** The file name of the cookie jar file */
- const char * jarfile;
-
- /** The handle to the cookie jar file */
- FILE * jar;
-
-#endif /* def FEATURE_COOKIE_JAR */
-
/** IP address to bind to. Defaults to HADDR_DEFAULT == 127.0.0.1. */
const char *haddr;