projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add #107: Support more pcrs variables
[privoxy.git]
/
project.h
diff --git
a/project.h
b/project.h
index
45cf172
..
e308ce5
100644
(file)
--- a/
project.h
+++ b/
project.h
@@
-1,7
+1,7
@@
#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.1
82 2012/10/17 18:19:59
fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.1
92 2012/11/11 12:38:42
fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
@@
-412,18
+412,11
@@
struct iob
/**
* Return the number of bytes in the I/O buffer associated with the passed
/**
* Return the number of bytes in the I/O buffer associated with the passed
- * client_state pointer.
- * May be zero.
+ * I/O buffer. May be zero.
*/
*/
-#define IOB_PEEK(
CSP) ((CSP->iob->cur > CSP->iob->eod) ? (CSP->iob->eod - CSP->iob
->cur) : 0)
+#define IOB_PEEK(
IOB) ((IOB->cur > IOB->eod) ? (IOB->eod - IOB
->cur) : 0)
-/**
- * Remove any data in the I/O buffer associated with the passed
- * client_state pointer.
- */
-#define IOB_RESET(CSP) if(CSP->iob->buf) free(CSP->iob->buf); memset(CSP->iob, '\0', sizeof(CSP->iob));
-
/* Bits for csp->content_type bitmask: */
#define CT_TEXT 0x0001U /**< Suitable for pcrs filtering. */
#define CT_GIF 0x0002U /**< Suitable for GIF filtering. */
/* Bits for csp->content_type bitmask: */
#define CT_TEXT 0x0001U /**< Suitable for pcrs filtering. */
#define CT_GIF 0x0002U /**< Suitable for GIF filtering. */
@@
-507,6
+500,8
@@
struct iob
#define ACTION_OVERWRITE_LAST_MODIFIED 0x02000000UL
/** Action bitmap: Replace or block Accept-Language header */
#define ACTION_HIDE_ACCEPT_LANGUAGE 0x04000000UL
#define ACTION_OVERWRITE_LAST_MODIFIED 0x02000000UL
/** Action bitmap: Replace or block Accept-Language header */
#define ACTION_HIDE_ACCEPT_LANGUAGE 0x04000000UL
+/** Action bitmap: Limit the cookie lifetime */
+#define ACTION_LIMIT_COOKIE_LIFETIME 0x08000000UL
/** Action string index: How to deanimate GIFs */
/** Action string index: How to deanimate GIFs */
@@
-545,8
+540,10
@@
struct iob
#define ACTION_STRING_BLOCK 16
/** Action string index: what to do with the "X-Forwarded-For" header. */
#define ACTION_STRING_CHANGE_X_FORWARDED_FOR 17
#define ACTION_STRING_BLOCK 16
/** Action string index: what to do with the "X-Forwarded-For" header. */
#define ACTION_STRING_CHANGE_X_FORWARDED_FOR 17
+/** Action string index: how many minutes cookies should be valid. */
+#define ACTION_STRING_LIMIT_COOKIE_LIFETIME 18
/** Number of string actions. */
/** Number of string actions. */
-#define ACTION_STRING_COUNT 1
8
+#define ACTION_STRING_COUNT 1
9
/* To make the ugly hack in sed easier to understand */
/* To make the ugly hack in sed easier to understand */
@@
-669,6
+666,11
@@
struct reusable_connection
* connection will no longer be reused.
*/
unsigned int keep_alive_timeout;
* connection will no longer be reused.
*/
unsigned int keep_alive_timeout;
+ /*
+ * Number of requests that were sent to this connection.
+ * This is currently only for debugging purposes.
+ */
+ unsigned int requests_sent_total;
char *host;
int port;
char *host;
int port;
@@
-765,7
+767,6
@@
struct reusable_connection
*/
#define CSP_FLAG_SERVER_CONNECTION_KEEP_ALIVE 0x00001000U
*/
#define CSP_FLAG_SERVER_CONNECTION_KEEP_ALIVE 0x00001000U
-#ifdef FEATURE_CONNECTION_KEEP_ALIVE
/**
* Flag for csp->flags: Set if the server specified the
* content length.
/**
* Flag for csp->flags: Set if the server specified the
* content length.
@@
-799,8
+800,6
@@
struct reusable_connection
*/
#define CSP_FLAG_SERVER_KEEP_ALIVE_TIMEOUT_SET 0x00020000U
*/
#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. XXX: It's also set after sabotaging
/**
* Flag for csp->flags: Set if we think we can't reuse
* the server socket. XXX: It's also set after sabotaging
@@
-830,6
+829,12
@@
struct reusable_connection
*/
#define CSP_FLAG_BUFFERED_CONTENT_DEFLATED 0x00400000U
*/
#define CSP_FLAG_BUFFERED_CONTENT_DEFLATED 0x00400000U
+/**
+ * Flag for csp->flags: Set if we already read (parts of)
+ * a pipelined request in which case the client obviously
+ * isn't done talking.
+ */
+#define CSP_FLAG_PIPELINED_REQUEST_WAITING 0x00800000U
/*
* Flags for use in return codes of child processes
/*
* Flags for use in return codes of child processes
@@
-851,7
+856,7
@@
struct reusable_connection
* Maximum number of actions/filter files. This limit is arbitrary - it's just used
* to size an array.
*/
* Maximum number of actions/filter files. This limit is arbitrary - it's just used
* to size an array.
*/
-#define MAX_AF_FILES
1
0
+#define MAX_AF_FILES
3
0
/**
* Maximum number of sockets to listen to. This limit is arbitrary - it's just used
/**
* Maximum number of sockets to listen to. This limit is arbitrary - it's just used
@@
-873,6
+878,9
@@
struct client_state
/** socket to talk to client (web browser) */
jb_socket cfd;
/** socket to talk to client (web browser) */
jb_socket cfd;
+ /** Number of requests received on the client socket. */
+ unsigned int requests_received_total;
+
/** current connection to the server (may go through a proxy) */
struct reusable_connection server_connection;
/** current connection to the server (may go through a proxy) */
struct reusable_connection server_connection;
@@
-902,9
+910,13
@@
struct client_state
*/
struct forward_spec * fwd;
*/
struct forward_spec * fwd;
- /** An I/O buffer used for buffering data read from the network */
+ /** An I/O buffer used for buffering data read from the server */
+ /* XXX: should be renamed to server_iob */
struct iob iob[1];
struct iob iob[1];
+ /** An I/O buffer used for buffering data read from the client */
+ struct iob client_iob[1];
+
/** List of all headers for this request */
struct list headers[1];
/** List of all headers for this request */
struct list headers[1];
@@
-923,7
+935,6
@@
struct client_state
/** Length after content modification. */
unsigned long long content_length;
/** Length after content modification. */
unsigned long long content_length;
-#ifdef FEATURE_CONNECTION_KEEP_ALIVE
/* XXX: is this the right location? */
/** Expected length of content after which we
/* XXX: is this the right location? */
/** Expected length of content after which we
@@
-935,7
+946,6
@@
struct client_state
* should stop reading from the client socket.
*/
unsigned long long expected_client_content_length;
* should stop reading from the client socket.
*/
unsigned long long expected_client_content_length;
-#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
#ifdef FEATURE_TRUST
#ifdef FEATURE_TRUST
@@
-1199,6
+1209,9
@@
struct access_control_list
/** configuration_spec::feature_flags: Buffered content is sent compressed if the client supports it. */
#define RUNTIME_FEATURE_COMPRESSION 1024U
/** configuration_spec::feature_flags: Buffered content is sent compressed if the client supports it. */
#define RUNTIME_FEATURE_COMPRESSION 1024U
+/** configuration_spec::feature_flags: Pipelined requests are served instead of being discarded. */
+#define RUNTIME_FEATURE_TOLERATE_PIPELINING 2048U
+
/**
* Data loaded from the configuration file.
*
/**
* Data loaded from the configuration file.
*