projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rebuild documentation
[privoxy.git]
/
project.h
diff --git
a/project.h
b/project.h
index
a129509
..
a53aa87
100644
(file)
--- a/
project.h
+++ b/
project.h
@@
-1,7
+1,7
@@
#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.2
03 2013/11/24 14:26:39
fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.2
13 2016/03/17 10:40:53
fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
@@
-10,7
+10,7
@@
* project. Does not define any variables or functions
* (though it does declare some macros).
*
* project. Does not define any variables or functions
* (though it does declare some macros).
*
- * Copyright : Written by and Copyright (C) 2001-201
2
the
+ * Copyright : Written by and Copyright (C) 2001-201
4
the
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
@@
-400,6
+400,9
@@
struct pattern_spec
/** Pattern spec bitmap: It's a NO-RESPONSE-TAG pattern. */
#define PATTERN_SPEC_NO_RESPONSE_TAG_PATTERN 0x00000008UL
/** Pattern spec bitmap: It's a NO-RESPONSE-TAG pattern. */
#define PATTERN_SPEC_NO_RESPONSE_TAG_PATTERN 0x00000008UL
+/** Pattern spec bitmap: It's a CLIENT-TAG pattern. */
+#define PATTERN_SPEC_CLIENT_TAG_PATTERN 0x00000010UL
+
/**
* An I/O buffer. Holds a string which can be appended to, and can have data
* removed from the beginning.
/**
* An I/O buffer. Holds a string which can be appended to, and can have data
* removed from the beginning.
@@
-566,7
+569,9
@@
struct iob
/** Index into current_action_spec::multi[] for server-header tags to apply. */
#define ACTION_MULTI_SERVER_HEADER_TAGGER 5
/** Number of multi-string actions. */
/** Index into current_action_spec::multi[] for server-header tags to apply. */
#define ACTION_MULTI_SERVER_HEADER_TAGGER 5
/** Number of multi-string actions. */
-#define ACTION_MULTI_COUNT 6
+#define ACTION_MULTI_EXTERNAL_FILTER 6
+/** Number of multi-string actions. */
+#define ACTION_MULTI_COUNT 7
/**
/**
@@
-640,7
+645,7
@@
struct url_actions
};
enum forwarder_type {
};
enum forwarder_type {
- /**< Don't use a SOCKS server
*/
+ /**< Don't use a SOCKS server
, forward to a HTTP proxy directly
*/
SOCKS_NONE = 0,
/**< original SOCKS 4 protocol */
SOCKS_4 = 40,
SOCKS_NONE = 0,
/**< original SOCKS 4 protocol */
SOCKS_4 = 40,
@@
-650,6
+655,12
@@
enum forwarder_type {
SOCKS_5 = 50,
/**< Like SOCKS5, but uses non-standard Tor extensions (currently only optimistic data) */
SOCKS_5T,
SOCKS_5 = 50,
/**< Like SOCKS5, but uses non-standard Tor extensions (currently only optimistic data) */
SOCKS_5T,
+ /**<
+ * Don't use a SOCKS server, forward to the specified webserver.
+ * The difference to SOCKS_NONE is that a request line without
+ * full URL is sent.
+ */
+ FORWARD_WEBSERVER,
};
/*
};
/*
@@
-724,11
+735,6
@@
struct reusable_connection
*/
#define CSP_FLAG_TOGGLED_ON 0x20U
*/
#define CSP_FLAG_TOGGLED_ON 0x20U
-/**
- * Flag for csp->flags: Set if we answered the request ourselve.
- */
-#define CSP_FLAG_CRUNCHED 0x40U
-
/**
* Flag for csp->flags: Set if an acceptable Connection header
* has already been set by the client.
/**
* Flag for csp->flags: Set if an acceptable Connection header
* has already been set by the client.
@@
-846,19
+852,29
@@
struct reusable_connection
*/
#define CSP_FLAG_CHUNKED_CLIENT_BODY 0x01000000U
*/
#define CSP_FLAG_CHUNKED_CLIENT_BODY 0x01000000U
+/**
+ * Flag for csp->flags: Set if the client set the Expect header
+ */
+#define CSP_FLAG_UNSUPPORTED_CLIENT_EXPECTATION 0x02000000U
+
+/**
+ * Flag for csp->flags: Set if we answered the request ourselve.
+ */
+#define CSP_FLAG_CRUNCHED 0x04000000U
+
/*
* Flags for use in return codes of child processes
*/
/**
/*
* Flags for use in return codes of child processes
*/
/**
- * Flag for process return code: Set if exiting p
or
cess has been toggled
+ * Flag for process return code: Set if exiting p
ro
cess has been toggled
* during its lifetime.
*/
#define RC_FLAG_TOGGLED 0x10
/**
* during its lifetime.
*/
#define RC_FLAG_TOGGLED 0x10
/**
- * Flag for process return code: Set if exiting p
or
cess has blocked its
+ * Flag for process return code: Set if exiting p
ro
cess has blocked its
* request.
*/
#define RC_FLAG_BLOCKED 0x20
* request.
*/
#define RC_FLAG_BLOCKED 0x20
@@
-934,6
+950,11
@@
struct client_state
/** List of all tags that apply to this request */
struct list tags[1];
/** List of all tags that apply to this request */
struct list tags[1];
+#ifdef FEATURE_CLIENT_TAGS
+ /** List of all tags that apply to this client (assigned based on address) */
+ struct list client_tags[1];
+#endif
+
/** MIME-Type key, see CT_* above */
unsigned int content_type;
/** MIME-Type key, see CT_* above */
unsigned int content_type;
@@
-1115,9
+1136,17
@@
enum filter_type
FT_SERVER_HEADER_FILTER = 2,
FT_CLIENT_HEADER_TAGGER = 3,
FT_SERVER_HEADER_TAGGER = 4,
FT_SERVER_HEADER_FILTER = 2,
FT_CLIENT_HEADER_TAGGER = 3,
FT_SERVER_HEADER_TAGGER = 4,
+#ifdef FEATURE_EXTERNAL_FILTERS
+ FT_EXTERNAL_CONTENT_FILTER = 5,
+#endif
FT_INVALID_FILTER = 42,
};
FT_INVALID_FILTER = 42,
};
+
+#ifdef FEATURE_EXTERNAL_FILTERS
+#define MAX_FILTER_TYPES 6
+#else
#define MAX_FILTER_TYPES 5
#define MAX_FILTER_TYPES 5
+#endif
/**
* This struct represents one filter (one block) from
/**
* This struct represents one filter (one block) from
@@
-1181,6
+1210,15
@@
struct access_control_list
/** Maximum number of loaders (actions, re_filter, ...) */
#define NLOADERS 8
/** Maximum number of loaders (actions, re_filter, ...) */
#define NLOADERS 8
+/**
+ * This struct represents a client-spcific-tag and it's description
+ */
+struct client_tag_spec
+{
+ char *name; /**< Name from "client-specific-tag bla" directive */
+ char *description; /**< Description from "client-specific-tag-description " directive */
+ struct client_tag_spec *next; /**< The pointer for chaining. */
+};
/** configuration_spec::feature_flags: CGI actions editor. */
#define RUNTIME_FEATURE_CGI_EDIT_ACTIONS 1U
/** configuration_spec::feature_flags: CGI actions editor. */
#define RUNTIME_FEATURE_CGI_EDIT_ACTIONS 1U
@@
-1246,6
+1284,11
@@
struct configuration_spec
/** The directory for customized CGI templates. */
const char *templdir;
/** The directory for customized CGI templates. */
const char *templdir;
+#ifdef FEATURE_EXTERNAL_FILTERS
+ /** The template used to create temporary files. */
+ const char *temporary_directory;
+#endif
+
/** The log file directory. */
const char *logdir;
/** The log file directory. */
const char *logdir;
@@
-1298,6
+1341,13
@@
struct configuration_spec
#endif /* def FEATURE_TRUST */
#endif /* def FEATURE_TRUST */
+#ifdef FEATURE_CLIENT_TAGS
+ struct client_tag_spec client_tags[1];
+
+ /* Maximum number of seconds a temporarily enabled tag stays enabled. */
+ unsigned int client_tag_lifetime;
+#endif /* def FEATURE_CLIENT_TAGS */
+
#ifdef FEATURE_ACL
/** The access control list (ACL). */
#ifdef FEATURE_ACL
/** The access control list (ACL). */
@@
-1345,10
+1395,9
@@
struct configuration_spec
/** Calculates the number of elements in an array, using sizeof. */
#define SZ(X) (sizeof(X) / sizeof(*X))
/** Calculates the number of elements in an array, using sizeof. */
#define SZ(X) (sizeof(X) / sizeof(*X))
-#ifdef FEATURE_FORCE_LOAD
-
/** The force load URL prefix
. */
+/** The force load URL prefix. Not behind an ifdef because
+
* it's always used for the show-status page
. */
#define FORCE_PREFIX "/PRIVOXY-FORCE"
#define FORCE_PREFIX "/PRIVOXY-FORCE"
-#endif /* def FEATURE_FORCE_LOAD */
#ifdef FEATURE_NO_GIFS
/** The MIME type for images ("image/png" or "image/gif"). */
#ifdef FEATURE_NO_GIFS
/** The MIME type for images ("image/png" or "image/gif"). */
@@
-1363,7
+1412,7
@@
struct configuration_spec
*/
/** URL for the Privoxy home page. */
*/
/** URL for the Privoxy home page. */
-#define HOME_PAGE_URL "http://www.privoxy.org/"
+#define HOME_PAGE_URL "http
s
://www.privoxy.org/"
/** URL for the Privoxy user manual. */
#define USER_MANUAL_URL HOME_PAGE_URL VERSION "/user-manual/"
/** URL for the Privoxy user manual. */
#define USER_MANUAL_URL HOME_PAGE_URL VERSION "/user-manual/"