#ifndef PROJECT_H_INCLUDED
#define PROJECT_H_INCLUDED
/** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.128 2009/03/07 13:09:17 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.132 2009/04/17 11:45:19 fabiankeil Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/project.h,v $
*
* Revisions :
* $Log: project.h,v $
+ * Revision 1.132 2009/04/17 11:45:19 fabiankeil
+ * Replace HAVE_GETADDRINFO and HAVE_GETNAMEINFO macros
+ * with HAVE_RFC2553 macro. Original patch by Petr Pisar.
+ *
+ * Revision 1.131 2009/04/17 11:34:35 fabiankeil
+ * Style cosmetics for the IPv6 code.
+ *
+ * Revision 1.130 2009/04/17 11:27:49 fabiankeil
+ * Petr Pisar's privoxy-3.0.12-ipv6-3.diff.
+ *
+ * Revision 1.129 2009/03/08 14:12:51 fabiankeil
+ * All the CSP_FLAG_FOO bit masks should be unsigned ints.
+ *
* Revision 1.128 2009/03/07 13:09:17 fabiankeil
* Change csp->expected_content and_csp->expected_content_length from
* size_t to unsigned long long to reduce the likelihood of integer
/* Needed for pcre choice */
#include "config.h"
+#ifdef HAVE_RFC2553
+/* Need for struct sockaddr_storage */
+#include <sys/socket.h>
+#endif
+
+
/*
* Include appropriate regular expression libraries.
* Note that pcrs and pcre (native) are needed for cgi
#define FOREVER 1
/**
- * Default IP address to listen on, as a string.
- * Set to "127.0.0.1".
+ * Default TCP/IP address to listen on, as a string.
+ * Set to "127.0.0.1:8118".
*/
-#define HADDR_DEFAULT "127.0.0.1"
-
-/**
- * Default port to listen on, as a number.
- * Set to 8118.
- */
-#define HADDR_PORT 8118
+#define HADDR_DEFAULT "127.0.0.1:8118"
/* Forward def for struct client_state */
/** Client PC's IP address, as reported by the accept() function.
As a string. */
char *ip_addr_str;
+#ifdef HAVE_RFC2553
+ /** Client PC's TCP address, as reported by the accept() function.
+ As a sockaddr. */
+ struct sockaddr_storage tcp_addr;
+#else
/** Client PC's IP address, as reported by the accept() function.
As a number. */
unsigned long ip_addr_long;
+#endif /* def HAVE_RFC2553 */
/** The URL that was requested */
struct http_request http[1];
*/
struct access_control_addr
{
+#ifdef HAVE_RFC2553
+ struct sockaddr_storage addr; /* <The TCP address in network order. */
+ struct sockaddr_storage mask; /* <The TCP mask in network order. */
+#else
unsigned long addr; /**< The IP address as an integer. */
unsigned long mask; /**< The network mask as an integer. */
unsigned long port; /**< The port number. */
+#endif /* HAVE_RFC2553 */
};
/**
{
struct access_control_addr src[1]; /**< Client IP address */
struct access_control_addr dst[1]; /**< Website or parent proxy IP address */
+#ifdef HAVE_RFC2553
+ int wildcard_dst; /** < dst address is wildcard */
+#endif
short action; /**< ACL_PERMIT or ACL_DENY */
struct access_control_list *next; /**< The next entry in the ACL. */
struct forward_spec *forward;
/** Number of retries in case a forwarded connection attempt fails */
- int forwarded_connect_retries;
+ int forwarded_connect_retries;
+
+ /** Maximum number of client connections. */
+ int max_client_connections;
/* Timeout when waiting on sockets for data to become available. */
int socket_timeout;