X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=project.h;h=ae80b49a6a94997d0a7d86c65afcfb4c049ca537;hb=140da2f315c69184c96dc753c8d1ae872f19cfc2;hp=885acfea0c6a2517682df43a00bc3714a16c89d9;hpb=fbcfc6c6616fafb551c7cd13d39c42d37854c655;p=privoxy.git diff --git a/project.h b/project.h index 885acfea..ae80b49a 100644 --- a/project.h +++ b/project.h @@ -1,7 +1,7 @@ #ifndef PROJECT_H_INCLUDED #define PROJECT_H_INCLUDED /** Version string. */ -#define PROJECT_H_VERSION "$Id: project.h,v 1.143 2009/06/28 14:31:43 fabiankeil Exp $" +#define PROJECT_H_VERSION "$Id: project.h,v 1.152 2009/11/08 17:54:09 ler762 Exp $" /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/project.h,v $ @@ -632,8 +632,9 @@ struct url_actions /* - * Structure to make sure we only reuse the server socket - * if the host and forwarding settings are the same. + * Structure to hold the server socket and the information + * required to make sure we only reuse the connection if + * the host and forwarding settings are the same. */ struct reusable_connection { @@ -768,13 +769,30 @@ struct reusable_connection */ #define CSP_FLAG_CLIENT_REQUEST_COMPLETELY_READ 0x00010000U +/** + * Flag for csp->flags: Set if the server promised us to + * keep the connection open for a known number of seconds. + */ +#define CSP_FLAG_SERVER_KEEP_ALIVE_TIMEOUT_SET 0x00020000U + #endif /* def FEATURE_CONNECTION_KEEP_ALIVE */ /** * Flag for csp->flags: Set if we think we can't reuse * the server socket. */ -#define CSP_FLAG_SERVER_SOCKET_TAINTED 0x00020000U +#define CSP_FLAG_SERVER_SOCKET_TAINTED 0x00040000U + +/** + * Flag for csp->flags: Set if the Proxy-Connection header + * is among the server headers. + */ +#define CSP_FLAG_SERVER_PROXY_CONNECTION_HEADER_SET 0x00080000U + +/** + * Flag for csp->flags: Set if the client reused its connection. + */ +#define CSP_FLAG_REUSED_CLIENT_CONNECTION 0x00100000U /* * Flags for use in return codes of child processes @@ -812,9 +830,6 @@ struct client_state /** socket to talk to client (web browser) */ jb_socket cfd; - /** socket to talk to server (web server or proxy) */ - jb_socket sfd; - /** current connection to the server (may go through a proxy) */ struct reusable_connection server_connection; @@ -866,11 +881,17 @@ struct client_state unsigned long long content_length; #ifdef FEATURE_CONNECTION_KEEP_ALIVE + /* XXX: is this the right location? */ + /** Expected length of content after which we * should stop reading from the server socket. */ - /* XXX: is this the right location? */ unsigned long long expected_content_length; + + /** Expected length of content after which we + * should stop reading from the client socket. + */ + unsigned long long expected_client_content_length; #endif /* def FEATURE_CONNECTION_KEEP_ALIVE */ #ifdef FEATURE_TRUST @@ -1148,6 +1169,11 @@ struct configuration_spec * - RUNTIME_FEATURE_CGI_TOGGLE * - RUNTIME_FEATURE_HTTP_TOGGLE * - RUNTIME_FEATURE_SPLIT_LARGE_FORMS + * - RUNTIME_FEATURE_ACCEPT_INTERCEPTED_REQUESTS + * - RUNTIME_FEATURE_ENFORCE_BLOCKS + * - RUNTIME_FEATURE_CGI_CRUNCHING + * - RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE + * - RUNTIME_FEATURE_CONNECTION_SHARING */ unsigned feature_flags; @@ -1231,6 +1257,9 @@ struct configuration_spec #ifdef FEATURE_CONNECTION_KEEP_ALIVE /* Maximum number of seconds after which an open connection will no longer be reused. */ unsigned int keep_alive_timeout; + + /* Assumed server-side keep alive timeout if none is specified. */ + unsigned int default_server_timeout; #endif /** All options from the config file, HTML-formatted. */