#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.148 2009/07/18 12:20:05 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.154 2010/01/10 13:53:48 ler762 Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
* project. Does not define any variables or functions
* (though it does declare some macros).
*
- * Copyright : Written by and Copyright (C) 2001-2009 the
+ * Copyright : Written by and Copyright (C) 2001-2010 the
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
/*
- * 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_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.
*/
#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;
/** configuration_spec::feature_flags: Share outgoing connections between different client connections. */
#define RUNTIME_FEATURE_CONNECTION_SHARING 256U
+/** configuration_spec::feature_flags: Pages blocked with +handle-as-empty-doc get a return status of 200 OK. */
+#define RUNTIME_FEATURE_EMPTY_DOC_RETURNS_OK 512U
+
/**
* Data loaded from the configuration file.
*
* - 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
+ * - RUNTIME_FEATURE_EMPTY_DOC_RETURNS_OK
*/
unsigned feature_flags;
#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. */