#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.145 2009/07/13 19:16:15 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.150 2009/10/04 15:34:18 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
/*
- * 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
{
*/
#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
/** 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;
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