NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.10 User Manual"
+TITLE="Privoxy 3.0.17 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Privoxy Configuration"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.10 User Manual</TH
+>Privoxy 3.0.17 User Manual</TH
></TR
><TR
><TD
>Privoxy</SPAN
>'s
operation that are not location dependent (i.e. they apply universally, no matter
- where you may be surfing).</P
+ where you may be surfing). Like the filter and action files, the config file is
+ a plain text file and can be modified with a text editor like emacs, vim or
+ notepad.exe.</P
><DIV
CLASS="SECT2"
><H2
>Default value:</DT
><DD
><P
->Two example URLs are provided</P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Unset</I
+></SPAN
+></P
></DD
><DT
>Effect if unset:</DT
><DD
><P
> The directory where all logging takes place
- (i.e. where <TT
+ (i.e. where the <TT
CLASS="FILENAME"
>logfile</TT
-> and
- <TT
-CLASS="FILENAME"
->jarfile</TT
-> are located).
+> is located).
</P
></DD
><DT
><TD
> <P
CLASS="LITERALLAYOUT"
-> standard.action # Internal purposes, no editing recommended</P
+> match-all.action # Actions that are applied to all sites and maybe overruled later on.</P
>
</TD
></TR
><TD
> <P
CLASS="LITERALLAYOUT"
-> default.action # Main actions file</P
+> default.action # Main actions file</P
>
</TD
></TR
><TD
> <P
CLASS="LITERALLAYOUT"
-> user.action # User customizations</P
+> user.action # User customizations</P
>
</TD
></TR
</P
><P
>
- The default values include <TT
-CLASS="FILENAME"
->standard.action</TT
->, which is used
- for internal purposes and should be loaded, <TT
+ The default values are <TT
CLASS="FILENAME"
>default.action</TT
->,
- which is the <SPAN
+>, which is the
+ <SPAN
CLASS="QUOTE"
>"main"</SPAN
> actions file maintained by the developers, and
><H4
CLASS="SECT3"
><A
-NAME="JARFILE"
->7.2.7. jarfile</A
-></H4
-><P
-></P
-><DIV
-CLASS="VARIABLELIST"
-><DL
-><DT
->Specifies:</DT
-><DD
-><P
-> The file to store intercepted cookies in
- </P
-></DD
-><DT
->Type of value:</DT
-><DD
-><P
->File name, relative to <TT
-CLASS="LITERAL"
->logdir</TT
-></P
-></DD
-><DT
->Default value:</DT
-><DD
-><P
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Unset (commented out)</I
-></SPAN
->. When activated: jarfile (Unix) <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->or</I
-></SPAN
-> privoxy.jar (Windows).</P
-></DD
-><DT
->Effect if unset:</DT
-><DD
-><P
-> Intercepted cookies are not stored in a dedicated log file.
- </P
-></DD
-><DT
->Notes:</DT
-><DD
-><P
-> The jarfile may grow to ridiculous sizes over time.
- </P
-><P
-> If debug 8 (show header parsing) is enabled, cookies are
- also written to the logfile with the rest of the headers.
- Therefore this option isn't very useful and may be removed
- in future releases. Please report to the developers if you
- are still using it.
- </P
-></DD
-></DL
-></DIV
-></DIV
-><DIV
-CLASS="SECT3"
-><H4
-CLASS="SECT3"
-><A
NAME="TRUSTFILE"
->7.2.8. trustfile</A
+>7.2.7. trustfile</A
></H4
><P
></P
><TD
><PRE
CLASS="PROGRAMLISTING"
-> debug 1 # log each request destination (and the crunch reason if <SPAN
+> debug 1 # Log the destination for each request <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> intercepted the request)
+> let through. See also debug 1024.
debug 2 # show each connection status
debug 4 # show I/O status
debug 8 # show header parsing
- debug 16 # log all data written to the network into the logfile
+ debug 16 # log all data written to the network
debug 32 # debug force feature
debug 64 # debug regular expression filters
debug 128 # debug redirects
debug 256 # debug GIF de-animation
debug 512 # Common Log Format
+ debug 1024 # Log the destination for requests <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> didn't let through, and the reason why.
debug 2048 # CGI user interface
debug 4096 # Startup banner and warnings.
- debug 8192 # Non-fatal errors</PRE
+ debug 8192 # Non-fatal errors
+ debug 32768 # log all data read from the network</PRE
></TD
></TR
></TABLE
CLASS="emphasis"
><I
CLASS="EMPHASIS"
->1, 4096 and 8192 are recommended</I
+>1, 1024, 4096 and 8192 are recommended</I
></SPAN
>
so that you will notice when things go wrong. The other levels are
>Effect if unset:</DT
><DD
><P
-> Bind to 127.0.0.1 (localhost), port 8118. This is suitable and recommended for
- home users who run <SPAN
+> Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is suitable and
+ recommended for home users who run <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> on the same machine as
- their browser.
+> on
+ the same machine as their browser.
</P
></DD
><DT
will need to override the default.
</P
><P
+> IPv6 addresses containing colons have to be quoted by brackets.
+ </P
+><P
> If you leave out the IP address, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> will
- bind to all interfaces (addresses) on your machine and may become reachable
+ bind to all IPv4 interfaces (addresses) on your machine and may become reachable
from the Internet. In that case, consider using <A
HREF="config.html#ACLS"
>access control lists</A
></TD
></TR
></TABLE
+>
+ </P
+><P
+> Suppose you are running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on an
+ IPv6-capable machine and you want it to listen on the IPv6 address
+ of the loopback device:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> listen-address [::1]:8118</PRE
+></TD
+></TR
+></TABLE
>
</P
></DD
><I
>src_addr</I
></TT
->[/<TT
+>[:<TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+>][/<TT
CLASS="REPLACEABLE"
><I
>src_masklen</I
><I
>dst_addr</I
></TT
->[/<TT
+>[:<TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+>][/<TT
CLASS="REPLACEABLE"
><I
>dst_masklen</I
><I
>dst_addr</I
></TT
-> are IP addresses in dotted decimal notation or valid
- DNS names, and <TT
+> are IPv4 addresses in dotted decimal notation or valid
+ DNS names, <TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+> is a port
+ number, and <TT
CLASS="REPLACEABLE"
><I
>src_masklen</I
values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole
destination part are optional.
</P
+><P
+> If your system implements
+ <A
+HREF="http://tools.ietf.org/html/rfc3493"
+TARGET="_top"
+>RFC 3493</A
+>, then
+ <TT
+CLASS="REPLACEABLE"
+><I
+>src_addr</I
+></TT
+> and <TT
+CLASS="REPLACEABLE"
+><I
+>dst_addr</I
+></TT
+> can be IPv6 addresses delimeted by
+ brackets, <TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+> can be a number
+ or a service name, and
+ <TT
+CLASS="REPLACEABLE"
+><I
+>src_masklen</I
+></TT
+> and
+ <TT
+CLASS="REPLACEABLE"
+><I
+>dst_masklen</I
+></TT
+> can be a number
+ from 0 to 128.
+ </P
></DD
><DT
>Default value:</DT
>Unset</I
></SPAN
></P
+><P
+> If no <TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+> is specified,
+ any port will match. If no <TT
+CLASS="REPLACEABLE"
+><I
+>src_masklen</I
+></TT
+> or
+ <TT
+CLASS="REPLACEABLE"
+><I
+>src_masklen</I
+></TT
+> is given, the complete IP
+ address has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6).
+ </P
></DD
><DT
>Effect if unset:</DT
IP addresses, only the first one is used.
</P
><P
+> Some systems allow IPv4 clients to connect to IPv6 server sockets.
+ Then the client's IPv4 address will be translated by the system into
+ IPv6 address space with special prefix ::ffff:0:0/96 (so called IPv4
+ mapped IPv6 address). <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can handle it
+ and maps such ACL addresses automatically.
+ </P
+><P
> Denying access to particular sites by ACL may have undesired side effects
if the site in question is hosted on a machine which also hosts other sites
(most sites are).
></TD
></TR
></TABLE
+>
+ </P
+><P
+> Allow access from the IPv4 network 192.0.2.0/24 even if listening on
+ an IPv6 wild card address (not supported on all platforms):
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> permit-access 192.0.2.0/24</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+><P
+> This is equivalent to the following line even if listening on an
+ IPv4 address (not supported on all platforms):
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> permit-access [::ffff:192.0.2.0]/120</PRE
+></TD
+></TR
+></TABLE
>
</P
></DD
></TT
>]
is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded,
- optionally followed by its listening port (default: 8080).
+ optionally followed by its listening port (default: 8000).
Use a single dot (<TT
CLASS="LITERAL"
>.</TT
forwarded to another HTTP proxy but are made directly to the web servers.
</P
><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>http_parent</I
+></TT
+> can be a
+ numerical IPv6 address (if
+ <A
+HREF="http://tools.ietf.org/html/rfc3493"
+TARGET="_top"
+>RFC 3493</A
+> is
+ implemented). To prevent clashes with the port delimiter, the whole IP
+ address has to be put into brackets. On the other hand a <TT
+CLASS="REPLACEABLE"
+><I
+>target_pattern</I
+></TT
+> containing an IPv6 address
+ has to be put into angle brackets (normal brackets are reserved for
+ regular expressions already).
+ </P
+><P
> Multiple lines are OK, they are checked in sequence, and the last match wins.
</P
></DD
></TD
></TR
></TABLE
+>
+ </P
+><P
+> Parent proxy specified by an IPv6 address:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> foward / [2001:DB8::1]:8000</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+><P
+> Suppose your parent proxy doesn't support IPv6:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> forward / parent-proxy.example.org:8000
+ forward ipv6-server.example.org .
+ forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> .</PRE
+></TD
+></TR
+></TABLE
>
</P
></DD
> the DNS resolution will happen on the remote server as well.
</P
><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>socks_proxy</I
+></TT
+> and
+ <TT
+CLASS="REPLACEABLE"
+><I
+>http_parent</I
+></TT
+> can be a
+ numerical IPv6 address (if
+ <A
+HREF="http://tools.ietf.org/html/rfc3493"
+TARGET="_top"
+>RFC 3493</A
+> is
+ implemented). To prevent clashes with the port delimiter, the whole IP
+ address has to be put into brackets. On the other hand a <TT
+CLASS="REPLACEABLE"
+><I
+>target_pattern</I
+></TT
+> containing an IPv6 address
+ has to be put into angle brackets (normal brackets are reserved for
+ regular expressions already).
+ </P
+><P
> If <TT
CLASS="REPLACEABLE"
><I
><TD
><PRE
CLASS="SCREEN"
-> forward-socks4a / 127.0.0.1:9050 .</PRE
+> forward-socks5 / 127.0.0.1:9050 .</PRE
></TD
></TR
></TABLE
that go away when you try again manually. Start with a small value and check Privoxy's
logfile from time to time, to see how many retries are usually needed.
</P
+><P
+> Due to a bug, this option currently also causes Privoxy to
+ retry in case of certain problems with direct connections.
+ </P
></DD
><DT
>Examples:</DT
></DL
></DIV
></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="MISC"
+>7.6. Miscellaneous</A
+></H2
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
NAME="ACCEPT-INTERCEPTED-REQUESTS"
->7.5.5. accept-intercepted-requests</A
+>7.6.1. accept-intercepted-requests</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="ALLOW-CGI-REQUEST-CRUNCHING"
->7.5.6. allow-cgi-request-crunching</A
+>7.6.2. allow-cgi-request-crunching</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="SPLIT-LARGE-FORMS"
->7.5.7. split-large-forms</A
+>7.6.3. split-large-forms</A
></H4
><P
></P
></DL
></DIV
></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="KEEP-ALIVE-TIMEOUT"
+>7.6.4. keep-alive-timeout</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+> Number of seconds after which an open connection will no longer be reused.
+ </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>Time in seconds.</I
+></TT
+>
+ </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+> Connections are not kept alive.
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> This option allows clients to keep the connection to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ alive. If the server supports it, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will keep
+ the connection to the server alive as well. Under certain
+ circumstances this may result in speed-ups.
+ </P
+><P
+> By default, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will close the connection to the server if
+ the client connection gets closed, or if the specified timeout
+ has been reached without a new request coming in. This behaviour
+ can be changed with the <A
+HREF="#CONNECTION-SHARING"
+TARGET="_top"
+>connection-sharing</A
+> option.
+ </P
+><P
+> This option has no effect if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ has been compiled without keep-alive support.
+ </P
+><P
+> Note that a timeout of five seconds as used in the default
+ configuration file significantly decreases the number of
+ connections that will be reused. The value is used because
+ some browsers limit the number of connections they open to
+ a single host and apply the same limit to proxies. This can
+ result in a single website <SPAN
+CLASS="QUOTE"
+>"grabbing"</SPAN
+> all the
+ connections the browser allows, which means connections to
+ other websites can't be opened until the connections currently
+ in use time out.
+ </P
+><P
+> Several users have reported this as a Privoxy bug, so the
+ default value has been reduced. Consider increasing it to
+ 300 seconds or even more if you think your browser can handle
+ it. If your browser appears to be hanging it can't.
+ </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+> keep-alive-timeout 300
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="DEFAULT-SERVER-TIMEOUT"
+>7.6.5. default-server-timeout</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+> Assumed server-side keep-alive timeout if not specified by the server.
+ </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>Time in seconds.</I
+></TT
+>
+ </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+> Connections for which the server didn't specify the keep-alive
+ timeout are not reused.
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> Enabling this option significantly increases the number of connections
+ that are reused, provided the <A
+HREF="#KEEP-ALIVE-TIMEOUT"
+TARGET="_top"
+>keep-alive-timeout</A
+> option
+ is also enabled.
+ </P
+><P
+> While it also increases the number of connections problems
+ when <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> tries to reuse a connection that already has
+ been closed on the server side, or is closed while <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ is trying to reuse it, this should only be a problem if it
+ happens for the first request sent by the client. If it happens
+ for requests on reused client connections, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will simply
+ close the connection and the client is supposed to retry the
+ request without bothering the user.
+ </P
+><P
+> Enabling this option is therefore only recommended if the
+ <A
+HREF="#CONNECTION-SHARING"
+TARGET="_top"
+>connection-sharing</A
+> option
+ is disabled.
+ </P
+><P
+> It is an error to specify a value larger than the <A
+HREF="#KEEP-ALIVE-TIMEOUT"
+TARGET="_top"
+>keep-alive-timeout</A
+> value.
+ </P
+><P
+> This option has no effect if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ has been compiled without keep-alive support.
+ </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+> default-server-timeout 60
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="CONNECTION-SHARING"
+>7.6.6. connection-sharing</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+> Whether or not outgoing connections that have been kept alive
+ should be shared between different incoming connections.
+ </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>0 or 1</I
+></TT
+>
+ </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+> Connections are not shared.
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> This option has no effect if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ has been compiled without keep-alive support, or if it's disabled.
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> Note that reusing connections doesn't necessary cause speedups.
+ There are also a few privacy implications you should be aware of.
+ </P
+><P
+> If this option is effective, outgoing connections are shared between
+ clients (if there are more than one) and closing the browser that initiated
+ the outgoing connection does no longer affect the connection between <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ and the server unless the client's request hasn't been completed yet.
+ </P
+><P
+> If the outgoing connection is idle, it will not be closed until either
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> or the server's timeout is reached.
+ While it's open, the server knows that the system running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is still
+ there.
+ </P
+><P
+> If there are more than one client (maybe even belonging to multiple users),
+ they will be able to reuse each others connections. This is potentially
+ dangerous in case of authentication schemes like NTLM where only the
+ connection is authenticated, instead of requiring authentication for
+ each request.
+ </P
+><P
+> If there is only a single client, and if said client can keep connections
+ alive on its own, enabling this option has next to no effect. If the client
+ doesn't support connection keep-alive, enabling this option may make sense
+ as it allows <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to keep outgoing connections alive even if the client
+ itself doesn't support it.
+ </P
+><P
+> You should also be aware that enabling this option increases the likelihood
+ of getting the "No server or forwarder data" error message, especially if you
+ are using a slow connection to the Internet.
+ </P
+><P
+> This option should only be used by experienced users who
+ understand the risks and can weight them against the benefits.
+ </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+> connection-sharing 1
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="SOCKET-TIMEOUT"
+>7.6.7. socket-timeout</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+> Number of seconds after which a socket times out if
+ no data is received.
+ </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>Time in seconds.</I
+></TT
+>
+ </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+> A default value of 300 seconds is used.
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> For SOCKS requests the timeout currently doesn't start until
+ the SOCKS server accepted the request. This will be fixed in
+ the next release.
+ </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+> socket-timeout 300
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="MAX-CLIENT-CONNECTIONS"
+>7.6.8. max-client-connections</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+> Maximum number of client connections that will be served.
+ </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>Positive number.</I
+></TT
+>
+ </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+> Connections are served until a resource limit is reached.
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> creates one thread (or process) for every incoming client
+ connection that isn't rejected based on the access control settings.
+ </P
+><P
+> If the system is powerful enough, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can theoretically deal with
+ several hundred (or thousand) connections at the same time, but some
+ operating systems enforce resource limits by shutting down offending
+ processes and their default limits may be below the ones <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> would
+ require under heavy load.
+ </P
+><P
+> Configuring <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to enforce a connection limit below the thread
+ or process limit used by the operating system makes sure this doesn't
+ happen. Simply increasing the operating system's limit would work too,
+ but if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> isn't the only application running on the system,
+ you may actually want to limit the resources used by <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+ </P
+><P
+> If <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is only used by a single trusted user, limiting the
+ number of client connections is probably unnecessary. If there
+ are multiple possibly untrusted users you probably still want to
+ additionally use a packet filter to limit the maximal number of
+ incoming connections per client. Otherwise a malicious user could
+ intentionally create a high number of connections to prevent other
+ users from using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+ </P
+><P
+> Obviously using this option only makes sense if you choose a limit
+ below the one enforced by the operating system.
+ </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+> max-client-connections 256
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HANDLE-AS-EMPTY-DOC-RETURNS-OK"
+>7.6.9. handle-as-empty-doc-returns-ok</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Note:</DT
+><DD
+><P
+> This is a work-around for Firefox bug 492459:
+ <SPAN
+CLASS="QUOTE"
+>" Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.
+ "</SPAN
+>
+ (<A
+HREF="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
+TARGET="_top"
+>https://bugzilla.mozilla.org/show_bug.cgi?id=492459</A
+>)
+ </P
+></DD
+><DT
+>Specifies:</DT
+><DD
+><P
+> The status code Privoxy returns for pages blocked with
+
+ <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"
+TARGET="_top"
+>+handle-as-empty-document</A
+></TT
+>.
+ </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+> <TT
+CLASS="REPLACEABLE"
+><I
+>0 or 1</I
+></TT
+>
+ </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>0</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+> Privoxy returns a status 403(forbidden) for all blocked pages.
+ </P
+></DD
+><DT
+>Effect if set:</DT
+><DD
+><P
+> Privoxy returns a status 200(OK) for pages blocked with +handle-as-empty-document
+ and a status 403(Forbidden) for all other blocked pages.
+ </P
+></DD
+></DL
+></DIV
+></DIV
></DIV
><DIV
CLASS="SECT2"
CLASS="SECT2"
><A
NAME="WINDOWS-GUI"
->7.6. Windows GUI Options</A
+>7.7. Windows GUI Options</A
></H2
><P
> <SPAN