X-Git-Url: http://www.privoxy.org/gitweb/new.html?a=blobdiff_plain;f=project.h;h=04fbe8e09f335f2c35a1d3b62b93800c2625570b;hb=8d1b6e2366d27b304cb53bc2f8370365473b269c;hp=001f25e963ff349ca65687b6085d835ff2992ecf;hpb=85bc700695d99d5858dbaa1448251e48df9ce747;p=privoxy.git
diff --git a/project.h b/project.h
index 001f25e9..04fbe8e0 100644
--- a/project.h
+++ b/project.h
@@ -8,7 +8,7 @@
* project. Does not define any variables or functions
* (though it does declare some macros).
*
- * Copyright : Written by and Copyright (C) 2001-2014 the
+ * Copyright : Written by and Copyright (C) 2001-2021 the
* Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
@@ -65,6 +65,10 @@
#ifdef FEATURE_HTTPS_INSPECTION_OPENSSL
#ifdef _WIN32
+#include
+#include
+#include
+#include
#include
#undef X509_NAME
#undef X509_EXTENSIONS
@@ -94,12 +98,38 @@
*/
#ifdef STATIC_PCRE
+#ifdef HAVE_PCRE2
+# include "pcre2.h"
+# include "pcre2posix.h"
+#else
# include "pcre.h"
+# include "pcreposix.h"
+#endif
#else
-# ifdef PCRE_H_IN_SUBDIR
-# include
+# ifdef HAVE_PCRE2
+# ifdef PCRE2_H_IN_SUBDIR
+# define PCRE2_CODE_UNIT_WIDTH 8
+# include
+# else
+# define PCRE2_CODE_UNIT_WIDTH 8
+# include
+# endif
+# ifdef PCRE2POSIX_H_IN_SUBDIR
+# include
+# else
+# include
+# endif
# else
-# include
+# ifdef PCRE_H_IN_SUBDIR
+# include
+# else
+# include
+# endif
+# ifdef PCREPOSIX_H_IN_SUBDIR
+# include
+# else
+# include
+# endif
# endif
#endif
@@ -109,16 +139,6 @@
# include
#endif
-#ifdef STATIC_PCRE
-# include "pcreposix.h"
-#else
-# ifdef PCRE_H_IN_SUBDIR
-# include
-# else
-# include
-# endif
-#endif
-
#ifdef _WIN32
/*
* I don't want to have to #include all this just for the declaration
@@ -404,10 +424,16 @@ struct http_response
enum crunch_reason crunch_reason; /**< Why the response was generated in the first place. */
};
+#ifdef HAVE_PCRE2
+#define REGEX_TYPE pcre2_code
+#else
+#define REGEX_TYPE regex_t
+#endif
+
struct url_spec
{
#ifdef FEATURE_PCRE_HOST_PATTERNS
- regex_t *host_regex;/**< Regex for host matching */
+ REGEX_TYPE *host_regex;/**< Regex for host matching */
enum host_regex_type { VANILLA_HOST_PATTERN, PCRE_HOST_PATTERN } host_regex_type;
#endif /* defined FEATURE_PCRE_HOST_PATTERNS */
int dcount; /**< How many parts to this domain? (length of dvec) */
@@ -417,7 +443,7 @@ struct url_spec
char *port_list; /**< List of acceptable ports, or NULL to match all ports */
- regex_t *preg; /**< Regex for matching path part */
+ REGEX_TYPE *preg; /**< Regex for matching path part */
};
/**
@@ -432,7 +458,7 @@ struct pattern_spec
union
{
struct url_spec url_spec;
- regex_t *tag_regex;
+ REGEX_TYPE *tag_regex;
} pattern;
unsigned int flags; /**< Bitmap with various pattern properties. */
@@ -642,8 +668,10 @@ struct iob
#define ACTION_MULTI_SUPPRESS_TAG 7
/** Index into current_action_spec::multi[] for client body filters to apply. */
#define ACTION_MULTI_CLIENT_BODY_FILTER 8
+/** Index into current_action_spec::multi[] for client body taggers to apply. */
+#define ACTION_MULTI_CLIENT_BODY_TAGGER 9
/** Number of multi-string actions. */
-#define ACTION_MULTI_COUNT 9
+#define ACTION_MULTI_COUNT 10
/**
@@ -1296,16 +1324,18 @@ enum filter_type
FT_SERVER_HEADER_TAGGER = 4,
FT_SUPPRESS_TAG = 5,
FT_CLIENT_BODY_FILTER = 6,
+ FT_CLIENT_BODY_TAGGER = 7,
+ FT_ADD_HEADER = 8,
#ifdef FEATURE_EXTERNAL_FILTERS
- FT_EXTERNAL_CONTENT_FILTER = 7,
+ FT_EXTERNAL_CONTENT_FILTER = 9,
#endif
FT_INVALID_FILTER = 42,
};
#ifdef FEATURE_EXTERNAL_FILTERS
-#define MAX_FILTER_TYPES 8
+#define MAX_FILTER_TYPES 9
#else
-#define MAX_FILTER_TYPES 7
+#define MAX_FILTER_TYPES 8
#endif
/**