projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add documentation for the client-body-tagger action
[privoxy.git]
/
project.h
diff --git
a/project.h
b/project.h
index
44b62d1
..
e8bb678
100644
(file)
--- a/
project.h
+++ b/
project.h
@@
-8,7
+8,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-20
14
the
+ * Copyright : Written by and Copyright (C) 2001-20
21
the
* Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
@@
-49,7
+49,6
@@
* Macros for SSL structures
*/
#define CERT_INFO_BUF_SIZE 4096
* Macros for SSL structures
*/
#define CERT_INFO_BUF_SIZE 4096
-#define CERT_FILE_BUF_SIZE 16384
#define ISSUER_NAME_BUF_SIZE 2048
#define HASH_OF_HOST_BUF_SIZE 16
#endif /* FEATURE_HTTPS_INSPECTION */
#define ISSUER_NAME_BUF_SIZE 2048
#define HASH_OF_HOST_BUF_SIZE 16
#endif /* FEATURE_HTTPS_INSPECTION */
@@
-335,11
+334,10
@@
struct http_request
char *version; /**< Protocol version */
int status; /**< HTTP Status */
char *version; /**< Protocol version */
int status; /**< HTTP Status */
- char *host; /**< Host part of URL */
int port; /**< Port of URL or 80 (default) */
int port; /**< Port of URL or 80 (default) */
+ char *host; /**< Host part of URL */
char *path; /**< Path of URL */
char *hostport; /**< host[:port] */
char *path; /**< Path of URL */
char *hostport; /**< host[:port] */
- int ssl; /**< Flag if protocol is https */
char *host_ip_addr_str; /**< String with dotted decimal representation
of host's IP. NULL before connect_to() */
char *host_ip_addr_str; /**< String with dotted decimal representation
of host's IP. NULL before connect_to() */
@@
-354,6
+352,7
@@
struct http_request
unsigned char hash_of_host_hex[(HASH_OF_HOST_BUF_SIZE * 2) + 1]; /**< chars for hash in hex string and one for '\0' */
unsigned char hash_of_host[HASH_OF_HOST_BUF_SIZE+1]; /**< chars for bytes of hash and one for '\0' */
#endif
unsigned char hash_of_host_hex[(HASH_OF_HOST_BUF_SIZE * 2) + 1]; /**< chars for hash in hex string and one for '\0' */
unsigned char hash_of_host[HASH_OF_HOST_BUF_SIZE+1]; /**< chars for bytes of hash and one for '\0' */
#endif
+ short int ssl; /**< Flag if protocol is https */
};
};
@@
-363,7
+362,7
@@
struct http_request
*/
typedef struct certs_chain {
char info_buf[CERT_INFO_BUF_SIZE]; /* text info about properties of certificate */
*/
typedef struct certs_chain {
char info_buf[CERT_INFO_BUF_SIZE]; /* text info about properties of certificate */
- char
file_buf[CERT_FILE_BUF_SIZE];
/* buffer for whole certificate - format to save in file */
+ char
*file_buf;
/* buffer for whole certificate - format to save in file */
struct certs_chain *next; /* next certificate in chain of trust */
} certs_chain_t;
#endif
struct certs_chain *next; /* next certificate in chain of trust */
} certs_chain_t;
#endif
@@
-411,9
+410,9
@@
struct url_spec
regex_t *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 */
regex_t *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) */
char *dbuffer; /**< Buffer with '\0'-delimited domain name, or NULL to match all hosts. */
char **dvec; /**< List of pointers to the strings in dbuffer. */
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. */
char *port_list; /**< List of acceptable ports, or NULL to match all ports */
int unanchored; /**< Bitmap - flags are ANCHOR_LEFT and ANCHOR_RIGHT. */
char *port_list; /**< List of acceptable ports, or NULL to match all ports */
@@
-641,8
+640,12
@@
struct iob
#define ACTION_MULTI_EXTERNAL_FILTER 6
/** Index into current_action_spec::multi[] for tags to suppress. */
#define ACTION_MULTI_SUPPRESS_TAG 7
#define ACTION_MULTI_EXTERNAL_FILTER 6
/** Index into current_action_spec::multi[] for tags to suppress. */
#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. */
/** Number of multi-string actions. */
-#define ACTION_MULTI_COUNT
8
+#define ACTION_MULTI_COUNT
10
/**
/**
@@
-762,13
+765,14
@@
struct reusable_connection
char *host;
int port;
enum forwarder_type forwarder_type;
char *host;
int port;
enum forwarder_type forwarder_type;
- char *gateway_host;
+ char *forward_host;
+ int forward_port;
+
int gateway_port;
int gateway_port;
+ char *gateway_host;
char *auth_username;
char *auth_password;
char *auth_username;
char *auth_password;
- char *forward_host;
- int forward_port;
};
};
@@
-1002,6
+1006,9
@@
struct client_state
/** Multi-purpose flag container, see CSP_FLAG_* above */
unsigned int flags;
/** Multi-purpose flag container, see CSP_FLAG_* above */
unsigned int flags;
+ /** MIME-Type key, see CT_* above */
+ unsigned int content_type;
+
/** Client PC's IP address, as reported by the accept() function.
As a string. */
char *ip_addr_str;
/** Client PC's IP address, as reported by the accept() function.
As a string. */
char *ip_addr_str;
@@
-1067,9
+1074,6
@@
struct client_state
char *client_address;
#endif
char *client_address;
#endif
- /** MIME-Type key, see CT_* above */
- unsigned int content_type;
-
/** Actions files associated with this client */
struct file_list *actions_list[MAX_AF_FILES];
/** Actions files associated with this client */
struct file_list *actions_list[MAX_AF_FILES];
@@
-1132,8
+1136,8
@@
struct client_state
* Thanks to this flags, we can call function to close both connections
* and we don't have to care about more details.
*/
* Thanks to this flags, we can call function to close both connections
* and we don't have to care about more details.
*/
- int ssl_with_server_is_opened;
- int ssl_with_client_is_opened;
+
short
int ssl_with_server_is_opened;
+
short
int ssl_with_client_is_opened;
/*
* Server certificate chain of trust including strings with certificates
/*
* Server certificate chain of trust including strings with certificates
@@
-1261,12
+1265,12
@@
struct forward_spec
/** Connection type. Must be SOCKS_NONE, SOCKS_4, SOCKS_4A or SOCKS_5. */
enum forwarder_type type;
/** Connection type. Must be SOCKS_NONE, SOCKS_4, SOCKS_4A or SOCKS_5. */
enum forwarder_type type;
- /** SOCKS server hostname. Only valid if "type" is SOCKS_4 or SOCKS_4A. */
- char *gateway_host;
-
/** SOCKS server port. */
int gateway_port;
/** SOCKS server port. */
int gateway_port;
+ /** SOCKS server hostname. Only valid if "type" is SOCKS_4 or SOCKS_4A. */
+ char *gateway_host;
+
/** SOCKS5 username. */
char *auth_username;
/** SOCKS5 username. */
char *auth_username;
@@
-1292,17
+1296,20
@@
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,
+ FT_SUPPRESS_TAG = 5,
+ FT_CLIENT_BODY_FILTER = 6,
+ FT_CLIENT_BODY_TAGGER = 7,
+ FT_ADD_HEADER = 8,
#ifdef FEATURE_EXTERNAL_FILTERS
#ifdef FEATURE_EXTERNAL_FILTERS
- FT_EXTERNAL_CONTENT_FILTER =
5
,
+ FT_EXTERNAL_CONTENT_FILTER =
9
,
#endif
#endif
- FT_SUPPRESS_TAG = 6,
FT_INVALID_FILTER = 42,
};
#ifdef FEATURE_EXTERNAL_FILTERS
FT_INVALID_FILTER = 42,
};
#ifdef FEATURE_EXTERNAL_FILTERS
-#define MAX_FILTER_TYPES
7
+#define MAX_FILTER_TYPES
9
#else
#else
-#define MAX_FILTER_TYPES
6
+#define MAX_FILTER_TYPES
8
#endif
/**
#endif
/**
@@
-1354,7
+1361,7
@@
struct access_control_list
struct access_control_addr src[1]; /**< Client IP address */
struct access_control_addr dst[1]; /**< Website or parent proxy IP address */
#ifdef HAVE_RFC2553
struct access_control_addr src[1]; /**< Client IP address */
struct access_control_addr dst[1]; /**< Website or parent proxy IP address */
#ifdef HAVE_RFC2553
-
int wildcard_dst;
/** < dst address is wildcard */
+
short wildcard_dst;
/** < dst address is wildcard */
#endif
short action; /**< ACL_PERMIT or ACL_DENY */
#endif
short action; /**< ACL_PERMIT or ACL_DENY */
@@
-1432,6
+1439,9
@@
struct configuration_spec
/** Bitmask of features that can be controlled through the config file. */
unsigned feature_flags;
/** Bitmask of features that can be controlled through the config file. */
unsigned feature_flags;
+ /** Nonzero if we need to bind() to the new port. */
+ int need_bind;
+
/** The log file name. */
const char *logfile;
/** The log file name. */
const char *logfile;
@@
-1563,21
+1573,18
@@
struct configuration_spec
/** List of loaders */
int (*loaders[NLOADERS])(struct client_state *);
/** List of loaders */
int (*loaders[NLOADERS])(struct client_state *);
- /** Nonzero if we need to bind() to the new port. */
- int need_bind;
-
#ifdef FEATURE_HTTPS_INSPECTION
/** Password for proxy ca file **/
#ifdef FEATURE_HTTPS_INSPECTION
/** Password for proxy ca file **/
- char *
ca_password;
+ char *ca_password;
/** Directory with files of ca **/
char *ca_directory;
/** Filename of ca certificate **/
/** Directory with files of ca **/
char *ca_directory;
/** Filename of ca certificate **/
- char *
ca_cert_file;
+ char *ca_cert_file;
/** Filename of ca key **/
/** Filename of ca key **/
- char *
ca_key_file;
+ char *ca_key_file;
/** Directory for saving certificates and keys for each webpage **/
char *certificate_directory;
/** Directory for saving certificates and keys for each webpage **/
char *certificate_directory;
@@
-1586,7
+1593,7
@@
struct configuration_spec
char *cipher_list;
/** Filename of trusted CAs certificates **/
char *cipher_list;
/** Filename of trusted CAs certificates **/
- char *
trusted_cas_file;
+ char *trusted_cas_file;
#endif
};
#endif
};