X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=project.h;h=eeed8bc47747091566089d128835ba88afbef8ca;hp=0999e80d0852d2ba4e1ae9d6230187c9ba349891;hb=66b1e23830d60ea98b0ba2ac5644ef24a45f9c55;hpb=f9b953ed3f2bc2de510352e56dfbf91efd19ac7e diff --git a/project.h b/project.h index 0999e80d..eeed8bc4 100644 --- a/project.h +++ b/project.h @@ -54,16 +54,6 @@ #define HASH_OF_HOST_BUF_SIZE 16 #endif /* FEATURE_HTTPS_INSPECTION */ -#ifdef FEATURE_PTHREAD -# include - typedef pthread_mutex_t privoxy_mutex_t; -#else -# ifdef _WIN32 -# include -# endif - typedef CRITICAL_SECTION privoxy_mutex_t; -#endif - #ifdef FEATURE_HTTPS_INSPECTION_MBEDTLS #include "mbedtls/net_sockets.h" #include "mbedtls/entropy.h" @@ -75,6 +65,11 @@ #endif /* FEATURE_HTTPS_INSPECTION_MBEDTLS */ #ifdef FEATURE_HTTPS_INSPECTION_OPENSSL +#ifdef _WIN32 +#include +#undef X509_NAME +#undef X509_EXTENSIONS +#endif #include #include #include @@ -306,6 +301,7 @@ typedef struct { mbedtls_x509_crt server_cert; mbedtls_x509_crt ca_cert; mbedtls_pk_context prim_key; + int *ciphersuites_list; #if defined(MBEDTLS_SSL_CACHE_C) mbedtls_ssl_cache_context cache; @@ -318,7 +314,7 @@ typedef struct { * Struct of attributes necessary for TLS/SSL connection */ typedef struct { - SSL_CTX* ctx; + SSL_CTX *ctx; BIO *bio; } openssl_connection_attr; #endif /* FEATURE_HTTPS_INSPECTION_OPENSSL */ @@ -415,9 +411,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 */ + 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. */ - 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 */ @@ -488,13 +484,6 @@ struct iob }; -/** - * Return the number of bytes in the I/O buffer associated with the passed - * I/O buffer. May be zero. - */ -#define IOB_PEEK(IOB) ((IOB->cur > IOB->eod) ? (IOB->eod - IOB->cur) : 0) - - /* Bits for csp->content_type bitmask: */ #define CT_TEXT 0x0001U /**< Suitable for pcrs filtering. */ #define CT_GIF 0x0002U /**< Suitable for GIF filtering. */ @@ -650,8 +639,12 @@ struct iob #define ACTION_MULTI_SERVER_HEADER_TAGGER 5 /** Number of multi-string actions. */ #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 /** Number of multi-string actions. */ -#define ACTION_MULTI_COUNT 7 +#define ACTION_MULTI_COUNT 9 /** @@ -773,6 +766,9 @@ struct reusable_connection enum forwarder_type forwarder_type; char *gateway_host; int gateway_port; + char *auth_username; + char *auth_password; + char *forward_host; int forward_port; }; @@ -1298,16 +1294,18 @@ enum filter_type FT_SERVER_HEADER_FILTER = 2, FT_CLIENT_HEADER_TAGGER = 3, FT_SERVER_HEADER_TAGGER = 4, + FT_SUPPRESS_TAG = 5, + FT_CLIENT_BODY_FILTER = 6, #ifdef FEATURE_EXTERNAL_FILTERS - FT_EXTERNAL_CONTENT_FILTER = 5, + FT_EXTERNAL_CONTENT_FILTER = 7, #endif FT_INVALID_FILTER = 42, }; #ifdef FEATURE_EXTERNAL_FILTERS -#define MAX_FILTER_TYPES 6 +#define MAX_FILTER_TYPES 8 #else -#define MAX_FILTER_TYPES 5 +#define MAX_FILTER_TYPES 7 #endif /** @@ -1437,6 +1435,9 @@ struct configuration_spec /** 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; @@ -1568,9 +1569,6 @@ struct configuration_spec /** 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 **/ char * ca_password; @@ -1587,6 +1585,9 @@ struct configuration_spec /** Directory for saving certificates and keys for each webpage **/ char *certificate_directory; + /** Cipher list to use **/ + char *cipher_list; + /** Filename of trusted CAs certificates **/ char * trusted_cas_file; #endif @@ -1640,8 +1641,13 @@ struct configuration_spec * The prefix for CGI pages. Written out in generated HTML. * INCLUDES the trailing slash. */ +#ifdef FEATURE_HTTPS_INSPECTION +#define CGI_PREFIX "//" CGI_SITE_2_HOST CGI_SITE_2_PATH "/" +#define CGI_PREFIX_HTTPS "https:" CGI_PREFIX +#else #define CGI_PREFIX "http://" CGI_SITE_2_HOST CGI_SITE_2_PATH "/" -#define CGI_PREFIX_HTTPS "https://" CGI_SITE_2_HOST CGI_SITE_2_PATH "/" +#endif +#define CGI_PREFIX_HTTP "http://" CGI_SITE_2_HOST CGI_SITE_2_PATH "/" #endif /* ndef PROJECT_H_INCLUDED */