privoxy 3.0.12 clean checkin
This commit is contained in:
parent
f5183d8128
commit
3313e38ac9
|
@ -7,8 +7,11 @@ Current Privoxy Team:
|
||||||
David Schmidt, developer
|
David Schmidt, developer
|
||||||
|
|
||||||
Hal Burgiss
|
Hal Burgiss
|
||||||
|
Mark Miller
|
||||||
|
Gerry Murphy
|
||||||
Lee Rian
|
Lee Rian
|
||||||
Roland Rosenfeld
|
Roland Rosenfeld
|
||||||
|
Jörg Strohmayer
|
||||||
|
|
||||||
Former Privoxy Team Members:
|
Former Privoxy Team Members:
|
||||||
|
|
||||||
|
@ -25,13 +28,10 @@ Former Privoxy Team Members:
|
||||||
Adam Lock
|
Adam Lock
|
||||||
Guy Laroche
|
Guy Laroche
|
||||||
Justin McMurtry
|
Justin McMurtry
|
||||||
Mark Miller
|
|
||||||
Gerry Murphy
|
|
||||||
Andreas Oesterhelt
|
Andreas Oesterhelt
|
||||||
Haroon Rafique
|
Haroon Rafique
|
||||||
Georg Sauthoff
|
Georg Sauthoff
|
||||||
Thomas Steudten
|
Thomas Steudten
|
||||||
Jörg Strohmayer
|
|
||||||
Rodney Stromlund
|
Rodney Stromlund
|
||||||
Sviatoslav Sviridov
|
Sviatoslav Sviridov
|
||||||
Sarantis Paskalis
|
Sarantis Paskalis
|
||||||
|
@ -43,15 +43,11 @@ alphabetical order):
|
||||||
|
|
||||||
Ken Arromdee
|
Ken Arromdee
|
||||||
Devin Bayer
|
Devin Bayer
|
||||||
Havard Berland
|
|
||||||
Gergely Bor
|
Gergely Bor
|
||||||
Francois Botha
|
|
||||||
Reiner Buehl
|
Reiner Buehl
|
||||||
Andrew J. Caines
|
Andrew J. Caines
|
||||||
Clifford Caoile
|
Clifford Caoile
|
||||||
Wan-Teh Chang
|
|
||||||
Frédéric Crozat
|
Frédéric Crozat
|
||||||
Billy Crook
|
|
||||||
Michael T. Davis
|
Michael T. Davis
|
||||||
Mattes Dolak
|
Mattes Dolak
|
||||||
Matthias Drochner
|
Matthias Drochner
|
||||||
|
@ -62,13 +58,12 @@ alphabetical order):
|
||||||
Stephen Gildea
|
Stephen Gildea
|
||||||
Daniel Griscom
|
Daniel Griscom
|
||||||
Felix Gröbert
|
Felix Gröbert
|
||||||
Jeff H.
|
|
||||||
Aaron Hamid
|
Aaron Hamid
|
||||||
Darel Henman
|
Darel Henman
|
||||||
Magnus Holmgren
|
Magnus Holmgren
|
||||||
Eric M. Hopper
|
Eric M. Hopper
|
||||||
Ralf Horstmann
|
Ralf Horstmann
|
||||||
Stefan Huehner
|
Stefan Huehner
|
||||||
Peter Hyman
|
Peter Hyman
|
||||||
Derek Jennings
|
Derek Jennings
|
||||||
Petr Kadlec
|
Petr Kadlec
|
||||||
|
@ -76,17 +71,13 @@ alphabetical order):
|
||||||
Bert van Leeuwen
|
Bert van Leeuwen
|
||||||
Don Libes
|
Don Libes
|
||||||
Paul Lieverse
|
Paul Lieverse
|
||||||
Han Liu
|
|
||||||
Toby Lyward
|
Toby Lyward
|
||||||
Wil Mahan
|
Wil Mahan
|
||||||
Jindrich Makovicka
|
Jindrich Makovicka
|
||||||
Raphael Marichez
|
|
||||||
Francois Marier
|
|
||||||
David Mediavilla
|
David Mediavilla
|
||||||
Raphael Moll
|
Raphael Moll
|
||||||
Amuro Namie
|
Amuro Namie
|
||||||
Adam Piggott
|
Adam Piggott
|
||||||
Petr Písar
|
|
||||||
Dan Price
|
Dan Price
|
||||||
Roberto Ragusa
|
Roberto Ragusa
|
||||||
Félix Rauch
|
Félix Rauch
|
||||||
|
@ -94,7 +85,6 @@ alphabetical order):
|
||||||
Chung-chieh Shan
|
Chung-chieh Shan
|
||||||
Spinor S.
|
Spinor S.
|
||||||
Bart Schelstraete
|
Bart Schelstraete
|
||||||
Dan Stahlke
|
|
||||||
Oliver Stoeneberg
|
Oliver Stoeneberg
|
||||||
Peter Thoenen
|
Peter Thoenen
|
||||||
Martin Thomas
|
Martin Thomas
|
||||||
|
@ -124,4 +114,3 @@ If we've missed you off this list, please let us know!
|
||||||
|
|
||||||
Privoxy team. http://www.privoxy.org/
|
Privoxy team. http://www.privoxy.org/
|
||||||
<ijbswa-developers@lists.sourceforge.net>
|
<ijbswa-developers@lists.sourceforge.net>
|
||||||
|
|
||||||
|
|
|
@ -1,713 +1,7 @@
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
ChangeLog for Privoxy
|
ChangeLog for Privoxy
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
*** Version 3.0.19 Stable ***
|
*** Version 3.0.12 (UNRELEASED) ***
|
||||||
|
|
||||||
- Bug fixes:
|
|
||||||
- Prevent a segmentation fault when de-chunking buffered content.
|
|
||||||
It could be triggered by malicious web servers if Privoxy was
|
|
||||||
configured to filter the content and running on a platform
|
|
||||||
where SIZE_T_MAX isn't larger than UINT_MAX, which probably
|
|
||||||
includes most 32-bit systems. On those platforms, all Privoxy
|
|
||||||
versions before 3.0.19 appear to be affected.
|
|
||||||
To be on the safe side, this bug should be presumed to allow
|
|
||||||
code execution as proving that it doesn't seems unrealistic.
|
|
||||||
- Do not expect a response from the SOCKS4/4A server until it
|
|
||||||
got something to respond to. This regression was introduced
|
|
||||||
in 3.0.18 and prevented the SOCKS4/4A negotiation from working.
|
|
||||||
Reported by qqqqqw in #3459781.
|
|
||||||
|
|
||||||
- General improvements:
|
|
||||||
- Fix an off-by-one in an error message about connect failures.
|
|
||||||
- Use a GNUMakefile variable for the webserver root directory and
|
|
||||||
update the path. Sourceforge changed it which broke various
|
|
||||||
web-related targets.
|
|
||||||
- Update the CODE_STATUS description.
|
|
||||||
|
|
||||||
*** Version 3.0.18 Stable ***
|
|
||||||
|
|
||||||
- Bug fixes:
|
|
||||||
- If a generated redirect URL contains characters RFC 3986 doesn't
|
|
||||||
permit, they are (re)encoded. Not doing this makes Privoxy versions
|
|
||||||
from 3.0.5 to 3.0.17 susceptible to HTTP response splitting (CWE-113)
|
|
||||||
attacks if the +fast-redirects{check-decoded-url} action is used.
|
|
||||||
- Fix a logic bug that could cause Privoxy to reuse a server
|
|
||||||
socket after it got tainted by a server-header-tagger-induced
|
|
||||||
block that was triggered before the whole server response had
|
|
||||||
been read. If keep-alive was enabled and the request following
|
|
||||||
the blocked one was to the same host and using the same forwarding
|
|
||||||
settings, Privoxy would send it on the tainted server socket.
|
|
||||||
While the server would simply treat it as a pipelined request,
|
|
||||||
Privoxy would later on fail to properly parse the server's
|
|
||||||
response as it would try to parse the unread data from the
|
|
||||||
first response as server headers for the second one.
|
|
||||||
Regression introduced in 3.0.17.
|
|
||||||
- When implying keep-alive in client_connection(), remember that
|
|
||||||
the client didn't. Fixes a regression introduced in 3.0.13 that
|
|
||||||
would cause Privoxy to wait for additional client requests after
|
|
||||||
receiving a HTTP/1.1 request with "Connection: close" set
|
|
||||||
and connection sharing enabled.
|
|
||||||
With clients which terminates the client connection after detecting
|
|
||||||
that the whole body has been received it doesn't really matter,
|
|
||||||
but with clients that don't the connection would be kept open until
|
|
||||||
it timed out.
|
|
||||||
- Fix a subtle race condition between prepare_csp_for_next_request()
|
|
||||||
and sweep(). A thread preparing itself for the next client request
|
|
||||||
could briefly appear to be inactive.
|
|
||||||
If all other threads were already using more recent files,
|
|
||||||
the thread could get its files swept away under its feet.
|
|
||||||
So far this has only been reproduced while stress testing in
|
|
||||||
valgrind while touching action files in a loop. It's unlikely
|
|
||||||
to have caused any actual problems in the real world.
|
|
||||||
- Disable filters if SDCH compression is used unless filtering is forced.
|
|
||||||
If SDCH was combined with a supported compression algorithm, Privoxy
|
|
||||||
previously could try to decompress it and ditch the Content-Encoding
|
|
||||||
header even though the SDCH compression wasn't dealt with.
|
|
||||||
Reported by zebul666 in #3225863.
|
|
||||||
- Make a copy of the --user value and only mess with that when splitting
|
|
||||||
user and group. On some operating systems modifying the value directly
|
|
||||||
is reflected in the output of ps and friends and can be misleading.
|
|
||||||
Reported by zepard in #3292710.
|
|
||||||
- If forwarded-connect-retries is set, only retry if Privoxy is actually
|
|
||||||
forwarding the request. Previously direct connections would be retried
|
|
||||||
as well.
|
|
||||||
- Fixed a small memory leak when retrying connections with IPv6
|
|
||||||
support enabled.
|
|
||||||
- Remove an incorrect assertion in compile_dynamic_pcrs_job_list()
|
|
||||||
It could be triggered by a pcrs job with an invalid pcre
|
|
||||||
pattern (for example one that contains a lone quantifier).
|
|
||||||
- If the --user argument user[.group] contains a dot, always bail out
|
|
||||||
if no group has been specified. Previously the intended, but undocumented
|
|
||||||
(and apparently untested), behaviour was to try interpreting the whole
|
|
||||||
argument as user name, but the detection was flawed and checked for '0'
|
|
||||||
instead of '\0', thus merely preventing group names beginning with a zero.
|
|
||||||
- In html_code_map[], use a numeric character reference instead of '
|
|
||||||
which wasn't standardized before XHTML 1.0.
|
|
||||||
- Fix an invalid free when compiled with FEATURE_GRACEFUL_TERMINATION
|
|
||||||
and shut down through http://config.privoxy.org/die
|
|
||||||
- In get_actions(), fix the "temporary" backwards compatibility hack
|
|
||||||
to accept block actions without reason.
|
|
||||||
It also covered other actions that should be rejected as invalid.
|
|
||||||
Reported by Billy Crook.
|
|
||||||
|
|
||||||
- General improvements:
|
|
||||||
- Privoxy can (re)compress buffered content before delivering
|
|
||||||
it to the client. Disabled by default as most users wouldn't
|
|
||||||
benefit from it.
|
|
||||||
- The +fast-redirects{check-decoded-url} action checks URL
|
|
||||||
segments separately. If there are other parameters behind
|
|
||||||
the redirect URL, this makes it unnecessary to cut them off
|
|
||||||
by additionally using a +redirect{} pcrs command.
|
|
||||||
Initial patch submitted by Jamie Zawinski in #3429848.
|
|
||||||
- When loading action sections, verify that the referenced filters
|
|
||||||
exist. Currently missing filters only result in an error message,
|
|
||||||
but eventually the severity will be upgraded to fatal.
|
|
||||||
- Allow to bind to multiple separate addresses.
|
|
||||||
Patch set submitted by Petr Pisar in #3354485.
|
|
||||||
- Set socket_error to errno if connecting fails in rfc2553_connect_to().
|
|
||||||
Previously rejected direct connections could be incorrectly reported
|
|
||||||
as DNS issues if Privoxy was compiled with IPv6 support.
|
|
||||||
- Adjust url_code_map[] so spaces are replaced with %20 instead of '+'
|
|
||||||
While '+' can be used by client's submitting form data, this is not
|
|
||||||
actually what Privoxy is using the lookups for. This is more of a
|
|
||||||
cosmetic issue and doesn't fix any known problems.
|
|
||||||
- When compiled without FEATURE_FAST_REDIRECTS, do not silently
|
|
||||||
ignore +fast-redirect{} directives
|
|
||||||
- Added a workaround for GNU libc's strptime() reporting negative
|
|
||||||
year values when the parsed year is only specified with two digits.
|
|
||||||
On affected systems cookies with such a date would not be turned
|
|
||||||
into session cookies by the +session-cookies-only action.
|
|
||||||
Reported by Vaeinoe in #3403560
|
|
||||||
- Fixed bind failures with certain GNU libc versions if no non-loopback
|
|
||||||
IP address has been configured on the system. This is mainly an issue
|
|
||||||
if the system is using DHCP and Privoxy is started before the network
|
|
||||||
is completely configured.
|
|
||||||
Reported by Raphael Marichez in #3349356.
|
|
||||||
Additional insight from Petr Pisar.
|
|
||||||
- Privoxy log messages now use the ISO 8601 date format %Y-%m-%d.
|
|
||||||
It's only slightly longer than the old format, but contains
|
|
||||||
the full date including the year and allows sorting by date
|
|
||||||
(when grepping in multiple log files) without hassle.
|
|
||||||
- In get_last_url(), do not bother trying to decode URLs that do
|
|
||||||
not contain at least one '%' sign. It reduces the log noise and
|
|
||||||
a number of unnecessary memory allocations.
|
|
||||||
- In case of SOCKS5 failures, dump the socks response in the log message.
|
|
||||||
- Simplify the signal setup in main().
|
|
||||||
- Streamline socks5_connect() slightly.
|
|
||||||
- In socks5_connect(), require a complete socks response from the server.
|
|
||||||
Previously Privoxy didn't care how much data the server response
|
|
||||||
contained as long as the first two bytes contained the expected
|
|
||||||
values. While at it, shrink the buffer size so Privoxy can't read
|
|
||||||
more than a whole socks response.
|
|
||||||
- In chat(), do not bother to generate a client request in case of
|
|
||||||
direct CONNECT requests. It will not be used anyway.
|
|
||||||
- Reduce server_last_modified()'s stack size.
|
|
||||||
- Shorten get_http_time() by using strftime().
|
|
||||||
- Constify the known_http_methods pointers in unknown_method().
|
|
||||||
- Constify the time_formats pointers in parse_header_time().
|
|
||||||
- Constify the formerly_valid_actions pointers in action_used_to_be_valid().
|
|
||||||
- Introduce a GNUMakefile MAN_PAGE variable that defaults to privoxy.1.
|
|
||||||
The Debian package uses section 8 for the man page and this
|
|
||||||
should simplify the patch.
|
|
||||||
- Deduplicate the INADDR_NONE definition for Solaris by moving it to jbsockets.h
|
|
||||||
- In block_url(), ditch the obsolete workaround for ancient Netscape versions
|
|
||||||
that supposedly couldn't properly deal with status code 403.
|
|
||||||
- Remove a useless NULL pointer check in load_trustfile().
|
|
||||||
- Remove two useless NULL pointer checks in load_one_re_filterfile().
|
|
||||||
- Change url_code_map[] from an array of pointers to an array of arrays
|
|
||||||
It removes an unnecessary layer of indirection and on 64bit system reduces
|
|
||||||
the size of the binary a bit.
|
|
||||||
- Fix various typos. Fixes taken from Debian's 29_typos.dpatch by Roland Rosenfeld.
|
|
||||||
- Add a dok-tidy GNUMakefile target to clean up the messy HTML
|
|
||||||
generated by the other dok targets.
|
|
||||||
- GNUisms in the GNUMakefile have been removed.
|
|
||||||
- Change the HTTP version in static responses to 1.1
|
|
||||||
- Synced config.sub and config.guess with upstream
|
|
||||||
2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.
|
|
||||||
- Add a dedicated function to parse the values of toggles. Reduces duplicated
|
|
||||||
code in load_config() and provides better error handling. Invalid or missing
|
|
||||||
toggle values are now a fatal error instead of being silently ignored.
|
|
||||||
- Terminate HTML lines in static error messages with \n instead of \r\n.
|
|
||||||
- Simplify cgi_error_unknown() a bit.
|
|
||||||
- In LogPutString(), don't bother looking at pszText when not
|
|
||||||
actually logging anything.
|
|
||||||
- Change ssplit()'s fourth parameter from int to size_t.
|
|
||||||
Fixes a clang complaint.
|
|
||||||
- Add a warning that the statistics currently can't be trusted.
|
|
||||||
Mention Privoxy-Log-Parser's --statistics option as
|
|
||||||
an alternative for the time being.
|
|
||||||
- In rfc2553_connect_to(), start setting cgi->error_message on error.
|
|
||||||
- Change the expected status code returned for http://p.p/die depending
|
|
||||||
on whether or not FEATURE_GRACEFUL_TERMINATION is available.
|
|
||||||
- In cgi_die(), mark the client connection for closing.
|
|
||||||
If the client will fetch the style sheet through another connection
|
|
||||||
it gets the main thread out of the accept() state and should thus
|
|
||||||
trigger the actual shutdown.
|
|
||||||
- Add a proper CGI message for cgi_die().
|
|
||||||
- Don't enforce a logical line length limit in read_config_line().
|
|
||||||
- Slightly refactor server_last_modified() to remove useless gmtime*() calls.
|
|
||||||
- In get_content_type(), also recognize '.jpeg' as JPEG extension.
|
|
||||||
- Add '.png' to the list of recognized file extensions in get_content_type().
|
|
||||||
- In block_url(), consistently use the block reason "Request blocked by Privoxy"
|
|
||||||
In two places the reason was "Request for blocked URL" which hides the
|
|
||||||
fact that the request got blocked by Privoxy and isn't necessarily
|
|
||||||
correct as the block may be due to tags.
|
|
||||||
- In listen_loop(), reload the configuration files after accepting
|
|
||||||
a new connection instead of before.
|
|
||||||
Previously the first connection that arrived after a configuration
|
|
||||||
change would still be handled with the old configuration.
|
|
||||||
- In chat()'s receive-data loop, skip a client socket check if
|
|
||||||
the socket will be written to right away anyway. This can
|
|
||||||
increase the transfer speed for unfiltered content on fast
|
|
||||||
network connections.
|
|
||||||
- The socket timeout is used for SOCKS negotiations as well which
|
|
||||||
previously couldn't timeout.
|
|
||||||
- Don't keep the client connection alive if any configuration file
|
|
||||||
changed since the time the connection came in. This is closer to
|
|
||||||
Privoxy's behaviour before keep-alive support for client connection
|
|
||||||
has been added and also less confusing in general.
|
|
||||||
- Treat all Content-Type header values containing the pattern
|
|
||||||
'script' as a sign of text. Reported by pribog in #3134970.
|
|
||||||
|
|
||||||
- Action file improvements:
|
|
||||||
- Moved the site-specific block pattern section below the one for the
|
|
||||||
generic patterns so for requests that are matched in both, the block
|
|
||||||
reason for the domain is shown which is usually more useful than showing
|
|
||||||
the one for the generic pattern.
|
|
||||||
- Remove -prevent-compression from the fragile alias. It's no longer
|
|
||||||
used anywhere by default and isn't known to break stuff anyway.
|
|
||||||
- Add a (disabled) section to block various Facebook tracking URLs.
|
|
||||||
Reported by Dan Stahlke in #3421764.
|
|
||||||
- Add a (disabled) section to rewrite and redirect click-tracking
|
|
||||||
URLs used on news.google.com.
|
|
||||||
Reported by Dan Stahlke in #3421755.
|
|
||||||
- Unblock linuxcounter.net/.
|
|
||||||
Reported by Dan Stahlke in #3422612.
|
|
||||||
- Block 'www91.intel.com/' which is used by Omniture.
|
|
||||||
Reported by Adam Piggott in #3167370.
|
|
||||||
- Disable the handle-as-empty-doc-returns-ok option and mark it as deprecated.
|
|
||||||
Reminded by tceverling in #2790091.
|
|
||||||
- Add ".ivwbox.de/" to the "Cross-site user tracking" section.
|
|
||||||
Reported by Nettozahler in #3172525.
|
|
||||||
- Unblock and fast-redirect ".awin1.com/.*=http://".
|
|
||||||
Reported by Adam Piggott in #3170921.
|
|
||||||
- Block "b.collective-media.net/".
|
|
||||||
- Widen the Debian popcon exception to "qa.debian.org/popcon".
|
|
||||||
Seen in Debian's 05_default_action.dpatch by Roland Rosenfeld.
|
|
||||||
- Block ".gemius.pl/" which only seems to be used for user tracking.
|
|
||||||
Reported by johnd16 in #3002731. Additional input from Lee and movax.
|
|
||||||
- Disable banners-by-size filters for '.thinkgeek.com/'.
|
|
||||||
The filter only seems to catch pictures of the inventory.
|
|
||||||
- Block requests for 'go.idmnet.bbelements.com/please/showit/'.
|
|
||||||
Reported by kacperdominik in #3372959.
|
|
||||||
- Unblock adainitiative.org/.
|
|
||||||
- Add a fast-redirects exception for '.googleusercontent.com/.*=cache'.
|
|
||||||
- Add a fast-redirects exception for webcache.googleusercontent.com/.
|
|
||||||
- Unblock http://adassier.wordpress.com/ and http://adassier.files.wordpress.com/.
|
|
||||||
|
|
||||||
- Filter file improvements:
|
|
||||||
- Let the yahoo filter hide '.ads'.
|
|
||||||
- Let the msn filter hide overlay ads for Facebook 'likes' in search
|
|
||||||
results and elements with the id 's_notf_div'. They only seem to be
|
|
||||||
used to advertise site 'enhancements'.
|
|
||||||
- Let the js-events filter additionally disarm setInterval().
|
|
||||||
Suggested by dg1727 in #3423775.
|
|
||||||
|
|
||||||
- Documentation improvements:
|
|
||||||
- Clarify the effect of compiling Privoxy with zlib support.
|
|
||||||
Suggested by dg1727 in #3423782.
|
|
||||||
- Point out that the SourceForge messaging system works like a black
|
|
||||||
hole and should thus not be used to contact individual developers.
|
|
||||||
- Mention some of the problems one can experience when not explicitly
|
|
||||||
configuring an IP addresses as listen address.
|
|
||||||
- Explicitly mention that hostnames can be used instead of IP addresses
|
|
||||||
for the listen-address, that only the first address returned will be
|
|
||||||
used and what happens if the address is invalid.
|
|
||||||
Requested by Calestyo in #3302213.
|
|
||||||
|
|
||||||
- Log message improvements:
|
|
||||||
- If only the server connection is kept alive, do not pretend to
|
|
||||||
wait for a new client request.
|
|
||||||
- Remove a superfluous log message in forget_connection().
|
|
||||||
- In chat(), properly report missing server responses as such
|
|
||||||
instead of calling them empty.
|
|
||||||
- In forwarded_connect(), fix a log message nobody should ever see.
|
|
||||||
- Fix a log message in socks5_connect(), a failed write operation
|
|
||||||
was logged as failed read operation.
|
|
||||||
- Let load_one_actions_file() properly complain about a missing
|
|
||||||
'{' at the beginning of the file.
|
|
||||||
Simply stating that a line is invalid isn't particularly helpful.
|
|
||||||
- Do not claim to listen on a socket until Privoxy actually does.
|
|
||||||
Patch submitted by Petr Pisar #3354485
|
|
||||||
- Prevent a duplicated LOG_LEVEL_CLF message when sending out
|
|
||||||
the "no-server-data" response.
|
|
||||||
- Also log the client socket when dropping a connection.
|
|
||||||
- Include the destination host in the 'Request ... marked for
|
|
||||||
blocking. limit-connect{...} doesn't allow CONNECT ...' message
|
|
||||||
Patch submitted by Saperski in #3296250.
|
|
||||||
- Prevent a duplicated log message if none of the resolved IP
|
|
||||||
addresses were reachable.
|
|
||||||
- In connect_to(), do not pretend to retry if forwarded-connect-retries
|
|
||||||
is zero or unset.
|
|
||||||
- When a specified user or group can't be found, put the name in
|
|
||||||
single-quotes when logging it.
|
|
||||||
- In rfc2553_connect_to(), explain getnameinfo() errors better.
|
|
||||||
- Remove a useless log message in chat().
|
|
||||||
- When retrying to connect, also log the maximum number of connection
|
|
||||||
attempts.
|
|
||||||
- Rephrase a log message in compile_dynamic_pcrs_job_list().
|
|
||||||
Divide the error code and its meaning with a colon. Call the pcrs
|
|
||||||
job dynamic and not the filter. Filters may contain dynamic and
|
|
||||||
non-dynamic pcrs jobs at the same time. Only mention the name of
|
|
||||||
the filter or tagger, but don't claim it's a filter when it could
|
|
||||||
be a tagger.
|
|
||||||
- In a fatal error message in load_one_actions_file(), cover both
|
|
||||||
URL and TAG patterns.
|
|
||||||
- In pcrs_strerror(), properly report unknown positive error code
|
|
||||||
values as such. Previously they were handled like 0 (no error).
|
|
||||||
- In compile_dynamic_pcrs_job_list(), also log the actual error code as
|
|
||||||
pcrs_strerror() doesn't handle all errors reported by pcre.
|
|
||||||
- Don't bother trying to continue chatting if the client didn't ask for it.
|
|
||||||
Reduces log noise a bit.
|
|
||||||
- Make two fatal error message in load_one_actions_file() more descriptive.
|
|
||||||
- In cgi_send_user_manual(), log when rejecting a file name due to '/' or '..'.
|
|
||||||
- In load_file(), log a message if opening a file failed.
|
|
||||||
The CGI error message alone isn't too helpful.
|
|
||||||
- In connection_destination_matches(), improve two log messages
|
|
||||||
to help understand why the destinations don't match.
|
|
||||||
- Rephrase a log message in serve(). Client request arrival
|
|
||||||
should be differentiated from closed client connections now.
|
|
||||||
- In serve(), log if a client connection isn't reused due to a
|
|
||||||
configuration file change.
|
|
||||||
- Let mark_server_socket_tainted() always mark the server socket tainted,
|
|
||||||
just don't talk about it in cases where it has no effect. It doesn't change
|
|
||||||
Privoxy's behaviour, but makes understanding the log file easier.
|
|
||||||
|
|
||||||
- configure:
|
|
||||||
- Added a --disable-ipv6-support switch for platforms where support
|
|
||||||
is detected but doesn't actually work.
|
|
||||||
- Do not check for the existence of strerror() and memmove() twice
|
|
||||||
- Remove a useless test for setpgrp(2). Privoxy doesn't need it and
|
|
||||||
it can cause problems when cross-compiling.
|
|
||||||
- Rename the --disable-acl-files switch to --disable-acl-support.
|
|
||||||
Since about 2001, ACL directives are specified in the standard
|
|
||||||
config file.
|
|
||||||
- Update the URL of the 'Removing outdated PCRE version after the
|
|
||||||
next stable release' posting. The old URL stopped working after
|
|
||||||
one of SF's recent site "optimizations". Reported by Han Liu.
|
|
||||||
|
|
||||||
- Privoxy-Regression-Test:
|
|
||||||
- Added --shuffle-tests option to increase the chances of detection race conditions.
|
|
||||||
- Added a --local-test-file option that allows to use Privoxy-Regression-Test without Privoxy.
|
|
||||||
- Added tests for missing socks4 and socks4a forwarders.
|
|
||||||
- The --privoxy-address option now works with IPv6 addresses containing brackets, too.
|
|
||||||
- Perform limited sanity checks for parameters that are supposed to have numerical values.
|
|
||||||
- Added a --sleep-time option to specify a number of seconds to
|
|
||||||
sleep between tests, defaults to 0.
|
|
||||||
- Disable the range-requests tagger for tests that break if it's enabled.
|
|
||||||
- Log messages use the ISO 8601 date format %Y-%m-%d.
|
|
||||||
- Fix spelling in two error messages.
|
|
||||||
- In the --help output, include a list of supported tests and their default levels.
|
|
||||||
- Adjust the tests to properly deal with FEATURE_TOGGLE being disabled.
|
|
||||||
|
|
||||||
- Privoxy-Log-Parser:
|
|
||||||
- Perform limited sanity checks for command line parameters that
|
|
||||||
are supposed to have numerical values.
|
|
||||||
- Implement a --unbreak-lines-only option to try to revert MUA breakage.
|
|
||||||
- Accept and highlight: Added header: Content-Encoding: deflate
|
|
||||||
- Accept and highlight: Compressed content from 29258 to 8630 bytes.
|
|
||||||
- Accept and highlight: Client request arrived in time on socket 21.
|
|
||||||
- Highlight: Didn't receive data in time: a.fsdn.com:443
|
|
||||||
- Accept log messages with ISO 8601 time stamps, too.
|
|
||||||
|
|
||||||
- uagen:
|
|
||||||
- Bump generated Firefox version to 8.0.
|
|
||||||
- Only randomize the release date if the new --randomize-release-date
|
|
||||||
option is enabled. Firefox versions after 4 use a fixed date string
|
|
||||||
without meaning.
|
|
||||||
|
|
||||||
*** Version 3.0.17 Stable ***
|
|
||||||
|
|
||||||
- Fixed last-chunk-detection for responses where the body was small
|
|
||||||
enough to be read with the headers, causing Privoxy to wait for the
|
|
||||||
end of the content until the server closed the connection or the
|
|
||||||
request timed out. Reported by "Karsten" in #3028326.
|
|
||||||
- Responses with status code 204 weren't properly detected as body-less
|
|
||||||
like RFC2616 mandates. Like the previous bug, this caused Privoxy to
|
|
||||||
wait for the end of the content until the server closed the connection
|
|
||||||
or the request timed out. Fixes #3022042 and #3025553, reported by a
|
|
||||||
user with no visible name. Most likely also fixes a bunch of other
|
|
||||||
AJAX-related problem reports that got closed in the past due to
|
|
||||||
insufficient information and lack of feedback.
|
|
||||||
- Fixed an ACL bug that made it impossible to build a blacklist.
|
|
||||||
Usually the ACL directives are used in a whitelist, which worked
|
|
||||||
as expected, but blacklisting is still useful for public proxies
|
|
||||||
where one only needs to deny known abusers access.
|
|
||||||
- Added LOG_LEVEL_RECEIVED to log the not-yet-parsed data read from the
|
|
||||||
network. This should make debugging various parsing issues a lot easier.
|
|
||||||
- The IPv6 code is enabled by default on Windows versions that support it.
|
|
||||||
Patch submitted by oCameLo in #2942729.
|
|
||||||
- In mingw32 versions, the user.filter file is reachable through the
|
|
||||||
GUI, just like default.filter is. Feature request 3040263.
|
|
||||||
- Added the configure option --enable-large-file-support to set a few
|
|
||||||
defines that are required by platforms like GNU/Linux to support files
|
|
||||||
larger then 2GB. Mainly interesting for users without proper logfile
|
|
||||||
management.
|
|
||||||
- Logging with "debug 16" no longer stops at the first nul byte which is
|
|
||||||
pretty useless. Non-printable characters are replaced with their hex value
|
|
||||||
so the result can't span multiple lines making parsing them harder then
|
|
||||||
necessary.
|
|
||||||
- Privoxy logs when reading an action, filter or trust file.
|
|
||||||
- Fixed incorrect regression test markup which caused a test in
|
|
||||||
3.0.16 to fail while Privoxy itself was working correctly.
|
|
||||||
While Privoxy accepts hide-referer, too, the action name is actually
|
|
||||||
hide-referrer which is also the name used one the final results page,
|
|
||||||
where the test expected the alias.
|
|
||||||
|
|
||||||
- CGI interface improvements:
|
|
||||||
- In finish_http_response(), continue to add the 'Connection: close'
|
|
||||||
header if the client connection will not be kept alive.
|
|
||||||
Anonymously pointed out in #2987454.
|
|
||||||
- Apostrophes in block messages no longer cause parse errors
|
|
||||||
when the blocked page is viewed with JavaScript enabled.
|
|
||||||
Reported by dg1727 in #3062296.
|
|
||||||
- Fix a bunch of anchors that used underscores instead of dashes.
|
|
||||||
- Allow to keep the client connection alive after crunching the previous request.
|
|
||||||
Already opened server connections can be kept alive, too.
|
|
||||||
- In cgi_show_url_info(), don't forget to prefix URLs that only contain
|
|
||||||
http:// or https:// in the path. Fixes #2975765 reported by Adam Piggott.
|
|
||||||
- Show the 404 CGI page if cgi_send_user_manual() is called while
|
|
||||||
local user manual delivery is disabled.
|
|
||||||
|
|
||||||
- Action file improvements:
|
|
||||||
- Enable user.filter by default. Suggested by David White in #3001830.
|
|
||||||
- Block .sitestat.com/. Reported by johnd16 in #3002725.
|
|
||||||
- Block .atemda.com/. Reported by johnd16 in #3002723.
|
|
||||||
- Block js.adlink.net/. Reported by johnd16 in #3002720.
|
|
||||||
- Block .analytics.yahoo.com/. Reported by johnd16 in #3002713.
|
|
||||||
- Block sb.scorecardresearch.com, too. Reported by dg1727 in #2992652.
|
|
||||||
- Fix problems noticed on Yahoo mail and news pages.
|
|
||||||
- Remove the too broad yahoo section, only keeping the
|
|
||||||
fast-redirects exception as discussed on ijbswa-devel@.
|
|
||||||
- Don't block adesklets.sourceforge.net. Reported in #2974204.
|
|
||||||
- Block chartbeat ping tracking. Reported in #2975895.
|
|
||||||
- Tag CSS and image requests with cautious and medium settings, too.
|
|
||||||
- Don't handle view.atdmt.com as image. It's used for click-throughs
|
|
||||||
so users should be able to "go there anyway".
|
|
||||||
Reported by Adam Piggott in #2975927.
|
|
||||||
- Also let the refresh-tags filter remove invalid refresh tags where
|
|
||||||
the 'url=' part is missing. Anonymously reported in #2986382.
|
|
||||||
While at it, update the description to mention the fact that only
|
|
||||||
refresh tags with refresh times above 9 seconds are covered.
|
|
||||||
- javascript needs to be blocked with +handle-as-empty-document to
|
|
||||||
work around Firefox bug 492459. So move .js blockers from
|
|
||||||
+block{Might be a web-bug.} -handle-as-empty-document to
|
|
||||||
+block{Might be a web-bug.} +handle-as-empty-document.
|
|
||||||
- ijbswa-Feature Requests-3006719 - Block 160x578 Banners.
|
|
||||||
- Block another omniture tracking domain.
|
|
||||||
- Added a range-requests tagger.
|
|
||||||
- Added two sections to get Flickr's Ajax interface working with
|
|
||||||
default pre-settings. If you change the configuration to block
|
|
||||||
cookies by default, you'll need additional exceptions.
|
|
||||||
Reported by Mathias Homann in #3101419 and by Patrick on ijbswa-users@.
|
|
||||||
|
|
||||||
- Documentation improvements:
|
|
||||||
- Explicitly mention how to match all URLs.
|
|
||||||
- Consistently recommend socks5 in the Tor FAQ entry and mention
|
|
||||||
its advantage compared to socks4a. Reported by David in #2960129.
|
|
||||||
- Slightly improve the explanation of why filtering may appear
|
|
||||||
slower than it is.
|
|
||||||
- Grammar fixes for the ACL section.
|
|
||||||
- Fixed a link to the 'intercepting' entry and add another one.
|
|
||||||
- Rename the 'Other' section to 'Mailing Lists' and reword it
|
|
||||||
to make it clear that nobody is forced to use the trackers
|
|
||||||
- Note that 'anonymously' posting on the trackers may not always
|
|
||||||
be possible.
|
|
||||||
- Suggest to enable debug 32768 when suspecting parsing problems.
|
|
||||||
|
|
||||||
- Privoxy-Log-Parser improvements:
|
|
||||||
- Gather statistics for ressources, methods, and HTTP versions
|
|
||||||
used by the client.
|
|
||||||
- Also gather statistics for blocked and redirected requests.
|
|
||||||
- Provide the percentage of keep-alive offers the client accepted.
|
|
||||||
- Add a --url-statistics-threshold option.
|
|
||||||
- Add a --host-statistics-threshold option to also gather
|
|
||||||
statistics about how many request where made per host.
|
|
||||||
- Fix a bug in handle_loglevel_header() where a 'scan: ' got lost.
|
|
||||||
- Add a --shorten-thread-ids option to replace the thread id with
|
|
||||||
a decimal number.
|
|
||||||
- Accept and ignore: Looks like we got the last chunk together
|
|
||||||
with the server headers. We better stop reading.
|
|
||||||
- Accept and ignore: Continue hack in da house.
|
|
||||||
- Accept and higlight: Rejecting connection from 10.0.0.2.
|
|
||||||
Maximum number of connections reached.
|
|
||||||
- Accept and highlight: Loading actions file: /usr/local/etc/privoxy/default.action
|
|
||||||
- Accept and highlight: Loading filter file: /usr/local/etc/privoxy/default.filter
|
|
||||||
- Accept and highlight: Killed all-caps Host header line: HOST: bestproxydb.com
|
|
||||||
- Accept and highlight: Reducing expected bytes to 0. Marking
|
|
||||||
the server socket tainted after throwing 4 bytes away.
|
|
||||||
- Accept: Merged multiple header lines to: 'X-FORWARDED-PROTO: http X-HOST: 127.0.0.1'
|
|
||||||
|
|
||||||
- Code cleanups:
|
|
||||||
- Remove the next member from the client_state struct. Only the main
|
|
||||||
thread needs access to all client states so give it its own struct.
|
|
||||||
- Garbage-collect request_contains_null_bytes().
|
|
||||||
- Ditch redundant code in unload_configfile().
|
|
||||||
- Ditch LogGetURLUnderCursor() which doesn't seem to be used anywhere.
|
|
||||||
- In write_socket(), remove the write-only variable write_len in
|
|
||||||
an ifdef __OS2__ block. Spotted by cppcheck.
|
|
||||||
- In connect_to(), don't declare the variable 'flags' on OS/2 where
|
|
||||||
it isn't used. Spotted by cppcheck.
|
|
||||||
- Limit the scope of various variables. Spotted by cppcheck.
|
|
||||||
- In add_to_iob(), turn an interestingly looking for loop into a
|
|
||||||
boring while loop.
|
|
||||||
- Code cleanup in preparation for external filters.
|
|
||||||
- In listen_loop(), mention the socket on which we accepted the
|
|
||||||
connection, not just the source IP address.
|
|
||||||
- In write_socket(), also log the socket we're writing to.
|
|
||||||
- In log_error(), assert that escaped characters get logged
|
|
||||||
completely or not at all.
|
|
||||||
- In log_error(), assert that ival and sval have reasonable values.
|
|
||||||
There's no reason not to abort() if they don't.
|
|
||||||
- Remove an incorrect cgi_error_unknown() call in a
|
|
||||||
cannot-happen-situation in send_crunch_response().
|
|
||||||
- Clean up white-space in http_response definition and
|
|
||||||
move the crunch_reason to the beginning.
|
|
||||||
- Turn http_response.reason into an enum and rename it
|
|
||||||
to http_response.crunch_reason.
|
|
||||||
- Silence a 'gcc (Debian 4.3.2-1.1) 4.3.2' warning on i686 GNU/Linux.
|
|
||||||
- Fix white-space in a log message in remove_chunked_transfer_coding().
|
|
||||||
While at it, add a note that the message doesn't seem to
|
|
||||||
be entirely correct and should be improved later on.
|
|
||||||
|
|
||||||
- GNUmakefile improvements:
|
|
||||||
- Use $(SSH) instead of ssh, so one only needs to specify a username once.
|
|
||||||
- Removed references to the action feedback thingy that hasn't been
|
|
||||||
working for years.
|
|
||||||
- Consistently use shell.sourceforge.net instead of shell.sf.net so
|
|
||||||
one doesn't need to check server fingerprints twice.
|
|
||||||
- Removed GNUisms in the webserver and webactions targets so they
|
|
||||||
work with standard tar.
|
|
||||||
|
|
||||||
*** Version 3.0.16 Stable ***
|
|
||||||
|
|
||||||
- Added the config file option handle-as-empty-doc-returns-ok to
|
|
||||||
work around Firefox bug #492459, which causes Firefox to hang
|
|
||||||
if JavaScripts are blocked in certain situations. The option is
|
|
||||||
enabled in the default config file.
|
|
||||||
- Added the config file option default-server-timeout to control the
|
|
||||||
assumed default server timeout. Since Privoxy no longer returns
|
|
||||||
an error message for connection resets on reused client connections,
|
|
||||||
assuming larger server timeout values appears to actually work
|
|
||||||
pretty well as long as connections aren't shared.
|
|
||||||
- Added optional support for FreeBSD's accf_http(9). Use the
|
|
||||||
configure option --enable-accept-filter to enable it.
|
|
||||||
- Added fancier Privoxy icons for win32. Contributed by Jeff H.
|
|
||||||
- In daemon mode, fd 0, 1 and 2 are bound to /dev/null.
|
|
||||||
- Resolve localhost using whatever address family the operating
|
|
||||||
system feels like. Previous betas would try to use IPv4 as this
|
|
||||||
is what most users expect, but this didn't work reliably on
|
|
||||||
GNU/Linux systems.
|
|
||||||
- In the action lists on CGI pages, actions and their parameters are
|
|
||||||
no longer separated with a space. The action file parser doesn't
|
|
||||||
actually allow this and will throw an invalid syntax error if actions
|
|
||||||
and parameters in the action files are separated. Not adding the
|
|
||||||
spaces means copy and pasting CGI output into the action files works.
|
|
||||||
- The default keep-alive timeout has been reduced to 5 seconds to work
|
|
||||||
around hangs in clients that treat the proxy like any other host and
|
|
||||||
stop allowing any new connections if the "maximum number of
|
|
||||||
connections per host" is reached.
|
|
||||||
- Several webbug URLs that look like they are leading to images are now
|
|
||||||
blocked as image instead of empty documents. Doing the latter causes
|
|
||||||
WebKit-based clients to show a "missing image" icon which may mess up
|
|
||||||
the layout.
|
|
||||||
- The no-such-domain template is used for DNS resolution
|
|
||||||
problems with FEATURE_IPV6_SUPPORT enabled. Previously the
|
|
||||||
connect-failed template was used. Reported by 'zebul666'.
|
|
||||||
- Accepts quoted expiration dates even though RFC 2109 10.1.2
|
|
||||||
doesn't seem to allow them. Reported anonymously.
|
|
||||||
- Don't try to forget connections if connection sharing is disabled.
|
|
||||||
This wasn't a real problem but caused an unnecessary log message.
|
|
||||||
- The still undocumented --enable-extended-host-patterns configure
|
|
||||||
option has a better description.
|
|
||||||
- Fixed an error message that would claim a write to the server
|
|
||||||
failed when actually writing to the client failed.
|
|
||||||
- Log the crunch reason before trying to write to the client.
|
|
||||||
The log is easier to read that way.
|
|
||||||
- Several log messages about client connections also mention
|
|
||||||
the socket number.
|
|
||||||
- handle-as-empty-document no longer depends on the image blocking
|
|
||||||
code being enabled.
|
|
||||||
- Privoxy-Log-Parser is roughly 40% faster in highlighting mode.
|
|
||||||
- uagen, a Firefox User-Agent generator for Privoxy and Mozilla
|
|
||||||
browsers has been imported and is available in the tarball's
|
|
||||||
tools directory.
|
|
||||||
- The scripts in the tools directory treat unknown parameters
|
|
||||||
as fatal errors.
|
|
||||||
|
|
||||||
*** Version 3.0.15 Beta ***
|
|
||||||
|
|
||||||
- In case of missing server data, no error message is send to the
|
|
||||||
client if the request arrived on a reused connection. The client
|
|
||||||
is then supposed to silently retry the request without bothering
|
|
||||||
the user. This should significantly reduce the frequency of the
|
|
||||||
"No server or forwarder data received" error message many users
|
|
||||||
reported.
|
|
||||||
- More reliable detection of prematurely closed client sockets
|
|
||||||
with keep-alive enabled.
|
|
||||||
- FEATURE_CONNECTION_KEEP_ALIVE is decoupled from
|
|
||||||
FEATURE_CONNECTION_SHARING and now available on
|
|
||||||
all platforms.
|
|
||||||
- Improved handling of POST requests on reused connections.
|
|
||||||
Should fix problems with stalled connections after submitting
|
|
||||||
form data with some browser configurations.
|
|
||||||
- Fixed various latency calculation issues.
|
|
||||||
- Allows the client to pass NTLM authentication requests to a
|
|
||||||
forwarding proxy. This was already assumed and hinted to work
|
|
||||||
in 3.0.13 beta but actually didn't. Now it's confirmed to work
|
|
||||||
with IE, Firefox and Chrome.
|
|
||||||
Thanks to Francois Botha and Wan-Teh Chang
|
|
||||||
- Fixed a calculation problem if receiving the server headers
|
|
||||||
takes more than two reads, that could cause Privoxy to terminate
|
|
||||||
the connection prematurely. Reported by Oliver.
|
|
||||||
- Compiles again on platforms such as OpenBSD and systems
|
|
||||||
using earlier glibc version that don't support AI_ADDRCONFIG.
|
|
||||||
Anonymously submitted in #2872591.
|
|
||||||
- A bunch of MS VC project files and Suse and Redhat RPM spec
|
|
||||||
files have been removed as they were no longer maintained for
|
|
||||||
quite some time.
|
|
||||||
- Overly long action lines are properly rejected with a proper
|
|
||||||
error message. Previously they would be either rejected as
|
|
||||||
invalid or cause a core dump through abort().
|
|
||||||
- Already timed-out connections are no longer temporarily remembered.
|
|
||||||
They weren't reused anyway, but wasted a socket slot.
|
|
||||||
- len refers to the number of bytes actually read which might
|
|
||||||
differ from the ones received. Adjust log messages accordingly.
|
|
||||||
- The optional JavaScript on the CGI page uses encodeURIComponent()
|
|
||||||
instead of escape() which doesn't encode all characters that matter.
|
|
||||||
Anonymously reported in #2832722.
|
|
||||||
- Fix gcc45 warnings in decompress_iob().
|
|
||||||
- Various log message improvements.
|
|
||||||
- Privoxy-Regression-Test supports redirect tests.
|
|
||||||
- Privoxy-Log-Parser can gather some connection statistics.
|
|
||||||
|
|
||||||
*** Version 3.0.14 Beta ***
|
|
||||||
|
|
||||||
- The latency is taken into account when evaluating whether or not to
|
|
||||||
reuse a connection. This should significantly reduce the number of
|
|
||||||
connections problems several users reported.
|
|
||||||
- If the server doesn't specify how long the connection stays alive,
|
|
||||||
Privoxy errs on the safe side of caution and assumes it's only a second.
|
|
||||||
- The error pages for connection timeouts or missing server data use a
|
|
||||||
Last-Modified date in the past. Retry attempts are detected and Privoxy
|
|
||||||
removes the If-Modified-Since header to prevent the server from responding
|
|
||||||
with status code 304 in which case the client would reuse the error message.
|
|
||||||
- Setting keep-alive-timeout to 0 disables keep-alive support. Previously
|
|
||||||
Privoxy would claim to allow persistence but not reuse the connection.
|
|
||||||
- Pipelined requests are less likely to be mistaken for the request
|
|
||||||
body of the previous request. Note that Privoxy still has no real
|
|
||||||
pipeline support and will either serialize pipelined requests or
|
|
||||||
drop them in which case the client has to resent them.
|
|
||||||
- Fixed a crash on some Windows versions when header randomization
|
|
||||||
is enabled and the date couldn't be parsed.
|
|
||||||
- Privoxy's keep-alive timeout for the current connection is reduced
|
|
||||||
to the one specified in the client's Keep-Alive header.
|
|
||||||
- For HTTP/1.1 requests, Privoxy implies keep-alive support by not
|
|
||||||
setting any Connection header instead of using 'Connection: keep-alive'.
|
|
||||||
- If the socket isn't reusable, Privoxy doesn't temporarily waste
|
|
||||||
a socket slot to remember the connection.
|
|
||||||
- If keep-alive support is disabled but compiled in, the client's
|
|
||||||
Keep-Alive header is removed.
|
|
||||||
- Fixed a bug on mingw32 where downloading large files failed if
|
|
||||||
keep-alive support was enabled.
|
|
||||||
- Fixed a bug that (at least theoretically) could cause log
|
|
||||||
timestamps to be occasionally off by about a second.
|
|
||||||
- No Proxy-Connection header if added if there already is one.
|
|
||||||
- The configure script respects the $PATH variable when searching
|
|
||||||
for groups and id.
|
|
||||||
|
|
||||||
*** Version 3.0.13 Beta ***
|
|
||||||
|
|
||||||
- Added IPv6 support. Thanks to Petr Pisar who not only provided
|
|
||||||
the initial patch but also helped a lot with the integration.
|
|
||||||
- Added client-side keep-alive support.
|
|
||||||
- The connection sharing code is only used if the connection-sharing
|
|
||||||
option is enabled.
|
|
||||||
- The max-client-connections option has been added to restrict
|
|
||||||
the number of client connections below a value enforced by
|
|
||||||
the operating system.
|
|
||||||
- Fixed a regression reintroduced in 3.0.12 that could cause
|
|
||||||
crashes on mingw32 if header date randomization was enabled.
|
|
||||||
- Compressed content with extra fields couldn't be decompressed
|
|
||||||
and would get passed to the client unfiltered. This problem
|
|
||||||
has only be detected through statical analysis with clang as
|
|
||||||
nobody seems to be using extra fields anyway.
|
|
||||||
- If the server resets the Connection after sending only the headers
|
|
||||||
Privoxy forwards what it got to the client. Previously Privoxy
|
|
||||||
would deliver an error message instead.
|
|
||||||
- Error messages in case of connection timeouts use the right
|
|
||||||
HTTP status code.
|
|
||||||
- If spawning a child to handle a request fails, the client
|
|
||||||
gets an error message and Privoxy continues to listen for
|
|
||||||
new requests right away.
|
|
||||||
- The error messages in case of server-connection timeouts or
|
|
||||||
prematurely closed server connections are now template-based.
|
|
||||||
- If zlib support isn't compiled in, Privoxy no longer tries to
|
|
||||||
filter compressed content unless explicitly asked to do so.
|
|
||||||
- In case of connections that are denied based on ACL directives,
|
|
||||||
the memory used for the client IP is no longer leaked.
|
|
||||||
- Fixed another small memory leak if the client request times out
|
|
||||||
while waiting for client headers other than the request line.
|
|
||||||
- The client socket is kept open until the server socket has
|
|
||||||
been marked as unused. This should increase the chances that
|
|
||||||
the still-open connection will be reused for the client's next
|
|
||||||
request to the same destination. Note that this only matters
|
|
||||||
if connection-sharing is enabled.
|
|
||||||
- A TODO list has been added to the source tarball to give potential
|
|
||||||
volunteers a better idea of what the current goals are. Donations
|
|
||||||
are still welcome too: http://www.privoxy.org/faq/general.html#DONATE
|
|
||||||
|
|
||||||
*** Version 3.0.12 ***
|
|
||||||
|
|
||||||
- The socket-timeout option now also works on platforms whose
|
- The socket-timeout option now also works on platforms whose
|
||||||
select() implementation modifies the timeout structure.
|
select() implementation modifies the timeout structure.
|
||||||
|
@ -742,7 +36,7 @@ ChangeLog for Privoxy
|
||||||
skip reason.
|
skip reason.
|
||||||
|
|
||||||
*** Version 3.0.11 ***
|
*** Version 3.0.11 ***
|
||||||
|
|
||||||
- On most platforms, outgoing connections can be kept alive and
|
- On most platforms, outgoing connections can be kept alive and
|
||||||
reused if the server supports it. Whether or not this improves
|
reused if the server supports it. Whether or not this improves
|
||||||
things depends on the connection.
|
things depends on the connection.
|
||||||
|
@ -957,7 +251,7 @@ ChangeLog for Privoxy
|
||||||
forbidden characters like dots.
|
forbidden characters like dots.
|
||||||
- New trust entries are saved with a comment that contains the
|
- New trust entries are saved with a comment that contains the
|
||||||
trusted referring URL (Suggested by Daniel Griscom).
|
trusted referring URL (Suggested by Daniel Griscom).
|
||||||
- Filter descriptions are HTML encoded automatically.
|
- Filter descriptions are HTML encoded automatically.
|
||||||
- New config option "split-large-forms" to work
|
- New config option "split-large-forms" to work
|
||||||
around a browser bug that caused IE6 and IE7 to ignore
|
around a browser bug that caused IE6 and IE7 to ignore
|
||||||
the Submit button on the edit-actions-for-url CGI page.
|
the Submit button on the edit-actions-for-url CGI page.
|
||||||
|
@ -996,11 +290,11 @@ ChangeLog for Privoxy
|
||||||
Privoxy detection "attack". Note that detecting Privoxy is
|
Privoxy detection "attack". Note that detecting Privoxy is
|
||||||
still possible through other ways and Privoxy was never intended
|
still possible through other ways and Privoxy was never intended
|
||||||
to be invisible anyway.
|
to be invisible anyway.
|
||||||
- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
|
- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
|
||||||
- The show-url-info CGI page displays a warning if Privoxy
|
- The show-url-info CGI page displays a warning if Privoxy
|
||||||
is currently toggled off.
|
is currently toggled off.
|
||||||
- The show-status CGI page suppresses the edit button
|
- The show-status CGI page suppresses the edit button
|
||||||
for action files if Privoxy has no write access.
|
for action files if Privoxy has no write access.
|
||||||
- Most CGI error pages react properly to HEAD requests.
|
- Most CGI error pages react properly to HEAD requests.
|
||||||
- Requests with RFC 3253 HTTP methods (used by Subversion)
|
- Requests with RFC 3253 HTTP methods (used by Subversion)
|
||||||
are accepted. (Patch provided by Petr Kadlec)
|
are accepted. (Patch provided by Petr Kadlec)
|
||||||
|
@ -1075,18 +369,18 @@ ChangeLog for Privoxy
|
||||||
- Improved the filters img-reorder, js-annoyances, webbugs,
|
- Improved the filters img-reorder, js-annoyances, webbugs,
|
||||||
banners-by-size, banners-by-link and ie-exploits to make them
|
banners-by-size, banners-by-link and ie-exploits to make them
|
||||||
less likely to break anything.
|
less likely to break anything.
|
||||||
- Removed outdated URL patterns in default.action and added new ones.
|
- Removed outdated URL patterns in default.action and added new ones.
|
||||||
- Added redirection from http://p.p/user-manual to http://p.p/user-manual/
|
- Added redirection from http://p.p/user-manual to http://p.p/user-manual/
|
||||||
- Changed webinterface default values for hide-user-agent, hide-referrer
|
- Changed webinterface default values for hide-user-agent, hide-referrer
|
||||||
and set-image-blocker.
|
and set-image-blocker.
|
||||||
|
|
||||||
*** Version 3.0.5 Beta ***
|
*** Version 3.0.5 Beta ***
|
||||||
|
|
||||||
- Windows version can be installed/started as a service.
|
- Windows version can be installed/started as a service.
|
||||||
- Windows icon stays blue when Privoxy is idle, green when busy.
|
- Windows icon stays blue when Privoxy is idle, green when busy.
|
||||||
- Integrated Fabian Keil's extensive patch. See:
|
- Integrated Fabian Keil's extensive patch. See:
|
||||||
http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
|
http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
|
||||||
following new or significantly improved actions (among many
|
following new or significantly improved actions (among many
|
||||||
other improvements):
|
other improvements):
|
||||||
|
|
||||||
content-type-overwrite{}
|
content-type-overwrite{}
|
||||||
|
@ -1114,17 +408,17 @@ ChangeLog for Privoxy
|
||||||
- Added jpeg filtering to defend against MS jpeg vulnerability MS04-028
|
- Added jpeg filtering to defend against MS jpeg vulnerability MS04-028
|
||||||
with the new inspect-jpegs action.
|
with the new inspect-jpegs action.
|
||||||
- Removed the "arbitrary" 1000 filter limit - addresses tracker #911950
|
- Removed the "arbitrary" 1000 filter limit - addresses tracker #911950
|
||||||
- Thanks to Jindrich Makovicka for a race condition fix for the log
|
- Thanks to Jindrich Makovicka for a race condition fix for the log
|
||||||
file. The race condition remains for non-pthread implementations.
|
file. The race condition remains for non-pthread implementations.
|
||||||
Reference patch #1175720. Various other logging enhancements.
|
Reference patch #1175720. Various other logging enhancements.
|
||||||
- A pile of assorted bug fixes, memory leaks, enhancements, etc.
|
- A pile of assorted bug fixes, memory leaks, enhancements, etc.
|
||||||
- Moved Actions file reporting mechanism to SF tracker.
|
- Moved Actions file reporting mechanism to SF tracker.
|
||||||
- Two new options for config: enable-remote-http-toggle and
|
- Two new options for config: enable-remote-http-toggle and
|
||||||
forwarded-connect-retries.
|
forwarded-connect-retries.
|
||||||
- Trap unsupported FTP requests.
|
- Trap unsupported FTP requests.
|
||||||
- Let text/xml be filtered.
|
- Let text/xml be filtered.
|
||||||
- Numerous updates to default.action
|
- Numerous updates to default.action
|
||||||
- Increase the compiled in limit of trusted referrers from 64 to 512
|
- Increase the compiled in limit of trusted referrers from 64 to 512
|
||||||
(for trustfile users).
|
(for trustfile users).
|
||||||
|
|
||||||
*** Version 3.0.3 ***
|
*** Version 3.0.3 ***
|
||||||
|
@ -1141,15 +435,15 @@ ChangeLog for Privoxy
|
||||||
- Workarounds for client (iTunes etc) and server (PHP < 4.2.3) bugs
|
- Workarounds for client (iTunes etc) and server (PHP < 4.2.3) bugs
|
||||||
including the notorious "blank page" problem.
|
including the notorious "blank page" problem.
|
||||||
- Various filter improvements; most notably the unsolicited-popups
|
- Various filter improvements; most notably the unsolicited-popups
|
||||||
filter became less destructive
|
filter became less destructive
|
||||||
- Major revamp of the actions file
|
- Major revamp of the actions file
|
||||||
|
|
||||||
*** Version 3.0.2 ***
|
*** Version 3.0.2 ***
|
||||||
|
|
||||||
- Fixed two memory leaks, one serious
|
- Fixed two memory leaks, one serious
|
||||||
- Fixed bug in pcrs which could cause crashes with user-defined filters
|
- Fixed bug in pcrs which could cause crashes with user-defined filters
|
||||||
- Fixed bug in domain name matching
|
- Fixed bug in domain name matching
|
||||||
- Assorted small fixes (Win32 menu, CGI URL editor, ..)
|
- Assorted small fixes (Win32 menu, CGI URL editor, ..)
|
||||||
- Added basic support for the OPTIONS and TRACE http methods
|
- Added basic support for the OPTIONS and TRACE http methods
|
||||||
- Added workaround for Bug in Mac OSX that made Privoxy crash occasionally
|
- Added workaround for Bug in Mac OSX that made Privoxy crash occasionally
|
||||||
- Refined the default action file through >400 items of user feedback
|
- Refined the default action file through >400 items of user feedback
|
||||||
|
@ -1160,7 +454,7 @@ ChangeLog for Privoxy
|
||||||
- Replaced filter "popups" by choice between two modes:
|
- Replaced filter "popups" by choice between two modes:
|
||||||
- "unsolicited-popups" tries to catch only the unsolicited ones
|
- "unsolicited-popups" tries to catch only the unsolicited ones
|
||||||
- "all-popups" tries to kill them all (as before)
|
- "all-popups" tries to kill them all (as before)
|
||||||
- New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
|
- New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
|
||||||
- New filter "jumping-windows" that prevents windows from resizing
|
- New filter "jumping-windows" that prevents windows from resizing
|
||||||
and moving themselves
|
and moving themselves
|
||||||
- New filter "demoronizer" which fixes MS's abuse of std charsets
|
- New filter "demoronizer" which fixes MS's abuse of std charsets
|
||||||
|
@ -1184,7 +478,7 @@ ChangeLog for Privoxy
|
||||||
- Added quicktime-kioskmode filter and improved frameset-borders
|
- Added quicktime-kioskmode filter and improved frameset-borders
|
||||||
- Updated default.action based on latest feedback
|
- Updated default.action based on latest feedback
|
||||||
- New PDF doc build process
|
- New PDF doc build process
|
||||||
- Add a user contrib module to cvs:
|
- Add a user contrib module to cvs:
|
||||||
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/
|
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/
|
||||||
|
|
||||||
*** Version 2.9.18 ***
|
*** Version 2.9.18 ***
|
||||||
|
@ -1194,7 +488,7 @@ ChangeLog for Privoxy
|
||||||
- Three filters fixed (again!)
|
- Three filters fixed (again!)
|
||||||
- Assorted small fixes and doc enhancements
|
- Assorted small fixes and doc enhancements
|
||||||
|
|
||||||
*** Version 2.9.16 ***
|
*** Version 2.9.16 ***
|
||||||
|
|
||||||
- Major revamp of default.action to get rid of years of cruft.
|
- Major revamp of default.action to get rid of years of cruft.
|
||||||
- Same for default.filter
|
- Same for default.filter
|
||||||
|
@ -1206,11 +500,11 @@ ChangeLog for Privoxy
|
||||||
- user-manual directive added to config for help links from within CGI
|
- user-manual directive added to config for help links from within CGI
|
||||||
editor.
|
editor.
|
||||||
- Multiple actions files can now be specified in config.
|
- Multiple actions files can now be specified in config.
|
||||||
- Actions files are changed to: default.action, standard.action, and
|
- Actions files are changed to: default.action, standard.action, and
|
||||||
user.action. user.action is for personal/local configuration.
|
user.action. user.action is for personal/local configuration.
|
||||||
- The usual many small and miscellaneous bug and security fixes.
|
- The usual many small and miscellaneous bug and security fixes.
|
||||||
|
|
||||||
*** Version 2.9.14 Beta ***
|
*** Version 2.9.14 Beta ***
|
||||||
|
|
||||||
- Fix Solaris compile problem (gateway.h and filters.h)
|
- Fix Solaris compile problem (gateway.h and filters.h)
|
||||||
- Makefile fixes for Solaris, FreeBSD (?)
|
- Makefile fixes for Solaris, FreeBSD (?)
|
||||||
|
@ -1224,30 +518,30 @@ ChangeLog for Privoxy
|
||||||
- #include mechansim for common text in templates
|
- #include mechansim for common text in templates
|
||||||
- Various other minor fixes.
|
- Various other minor fixes.
|
||||||
|
|
||||||
*** Version 2.9.13 Beta ***
|
*** Version 2.9.13 Beta ***
|
||||||
|
|
||||||
- *NEWS*: The project has been renamed to Privoxy! The new name is
|
- *NEWS*: The project has been renamed to Privoxy! The new name is
|
||||||
reflected throughout (file locations, etc).
|
reflected throughout (file locations, etc).
|
||||||
- ijb.action is now default.action. re_filterfile is now
|
- ijb.action is now default.action. re_filterfile is now
|
||||||
default.filter.
|
default.filter.
|
||||||
- http://i.j.b/ is now http://p.p/
|
- http://i.j.b/ is now http://p.p/
|
||||||
- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
|
- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
|
||||||
(checkerboard) is now the default.
|
(checkerboard) is now the default.
|
||||||
- RPM spec file make over.
|
- RPM spec file make over.
|
||||||
|
|
||||||
|
|
||||||
*** Version 2.9.12 Beta ***
|
*** Version 2.9.12 Beta ***
|
||||||
|
|
||||||
- **READ**: The default listening PORT is NOW 8118!!! Changed from
|
- **READ**: The default listening PORT is NOW 8118!!! Changed from
|
||||||
8000 due to conflict with NAS (Network Audio Server, whatever that
|
8000 due to conflict with NAS (Network Audio Server, whatever that
|
||||||
is.)
|
is.)
|
||||||
- More CGI actions editor fixes and improvements.
|
- More CGI actions editor fixes and improvements.
|
||||||
- Win32 command line fix ups.
|
- Win32 command line fix ups.
|
||||||
- re_filterfile now has modular sections that can be activated on a
|
- re_filterfile now has modular sections that can be activated on a
|
||||||
per site basis. Some new goodies there too.
|
per site basis. Some new goodies there too.
|
||||||
- +filter now takes arguments to match FILTER sections in re_filterfile
|
- +filter now takes arguments to match FILTER sections in re_filterfile
|
||||||
for even more flexibility.
|
for even more flexibility.
|
||||||
- Added a new image blocker option: +image-blocker{pattern}, which
|
- Added a new image blocker option: +image-blocker{pattern}, which
|
||||||
displays a checkerboard patthern and scales better than the logo.
|
displays a checkerboard patthern and scales better than the logo.
|
||||||
- PNG images will be used in place of GIF for JB built-in images
|
- PNG images will be used in place of GIF for JB built-in images
|
||||||
if configured with --enable-no-gif.
|
if configured with --enable-no-gif.
|
||||||
|
@ -1260,14 +554,14 @@ ChangeLog for Privoxy
|
||||||
- CGI Editor works on OS/2 now.
|
- CGI Editor works on OS/2 now.
|
||||||
- Fix restart failure where sockets were in TIME_WAIT.
|
- Fix restart failure where sockets were in TIME_WAIT.
|
||||||
- Fixes for actions cgi editor, make sure we have right file.
|
- Fixes for actions cgi editor, make sure we have right file.
|
||||||
- A --pidfile command line option now, in addition to --help,
|
- A --pidfile command line option now, in addition to --help,
|
||||||
--version, --no-daemon, --user and configfile. --no-daemon replaces
|
--version, --no-daemon, --user and configfile. --no-daemon replaces
|
||||||
the former -d option and _DEBUG define. --user will drop privileges
|
the former -d option and _DEBUG define. --user will drop privileges
|
||||||
to the specified user.
|
to the specified user.
|
||||||
- Signal handling cleanups (*nix).
|
- Signal handling cleanups (*nix).
|
||||||
- CGI actions editor improvements and fixes.
|
- CGI actions editor improvements and fixes.
|
||||||
- Error handling improvements, especially out of memory.
|
- Error handling improvements, especially out of memory.
|
||||||
- Default re_filterfile fix that caused spurious IJB logos
|
- Default re_filterfile fix that caused spurious IJB logos
|
||||||
(instead of 'blank').
|
(instead of 'blank').
|
||||||
- configure.in threading fixes for Solaris.
|
- configure.in threading fixes for Solaris.
|
||||||
- Various other minor fixes.
|
- Various other minor fixes.
|
||||||
|
@ -1275,14 +569,14 @@ ChangeLog for Privoxy
|
||||||
|
|
||||||
*** Version 2.9.11 Beta Changes ***
|
*** Version 2.9.11 Beta Changes ***
|
||||||
|
|
||||||
- Add "session" cookie concept where cookies exist for the life
|
- Add "session" cookie concept where cookies exist for the life
|
||||||
of that browser session only (ie never goes to disk).
|
of that browser session only (ie never goes to disk).
|
||||||
- Checks for correct header length.
|
- Checks for correct header length.
|
||||||
- Fix user:pass@host.domain.com auth bug.
|
- Fix user:pass@host.domain.com auth bug.
|
||||||
- Better signal handling on *nix.
|
- Better signal handling on *nix.
|
||||||
- Fix CFLAGS hard-coded in configure.in
|
- Fix CFLAGS hard-coded in configure.in
|
||||||
- Fix threading bug re: gethostbyname() that caused random
|
- Fix threading bug re: gethostbyname() that caused random
|
||||||
URLs to fail in some cases.
|
URLs to fail in some cases.
|
||||||
|
|
||||||
|
|
||||||
*** Version 2.9.11 Alpha Changes ***
|
*** Version 2.9.11 Alpha Changes ***
|
||||||
|
@ -1322,7 +616,7 @@ The only other URLs left are the GNU GPL:
|
||||||
and the home page:
|
and the home page:
|
||||||
http://ijbswa.sourceforge.net/
|
http://ijbswa.sourceforge.net/
|
||||||
... and various URLs which will be intercepted by Junkbuster anyway.
|
... and various URLs which will be intercepted by Junkbuster anyway.
|
||||||
TODO: Still need to do something with the URLs in Junkbuster Corp's
|
TODO: Still need to do something with the URLs in Junkbuster Corp's
|
||||||
copyright/trademark notice on the bottom of the show-proxy-args page.
|
copyright/trademark notice on the bottom of the show-proxy-args page.
|
||||||
- PCRE or GNU Regex is now a #define option.
|
- PCRE or GNU Regex is now a #define option.
|
||||||
|
|
||||||
|
@ -1346,7 +640,7 @@ parsers.c (again). They obviously got lost in our current
|
||||||
patch war ;-)
|
patch war ;-)
|
||||||
- Cut the credit for the §-referrer-option from the config file,
|
- Cut the credit for the §-referrer-option from the config file,
|
||||||
that Stefan had placed there.
|
that Stefan had placed there.
|
||||||
- Improved the re_filterfile
|
- Improved the re_filterfile
|
||||||
|
|
||||||
|
|
||||||
*** Version 2.9.0 pre-Alpha Changes ***
|
*** Version 2.9.0 pre-Alpha Changes ***
|
||||||
|
@ -1354,9 +648,9 @@ that Stefan had placed there.
|
||||||
- Now use PCRE, not GNU REGEX. I have not yet had chance to check the
|
- Now use PCRE, not GNU REGEX. I have not yet had chance to check the
|
||||||
syntax of the block/image/cookie file to ensure that they match what
|
syntax of the block/image/cookie file to ensure that they match what
|
||||||
is expected - however they seem to work.
|
is expected - however they seem to work.
|
||||||
- Replaced "configure" script with one generated by "autoconf". Also
|
- Replaced "configure" script with one generated by "autoconf". Also
|
||||||
use a header "config.h" (was ijbconfig.h in my previous release) for
|
use a header "config.h" (was ijbconfig.h in my previous release) for
|
||||||
the #defines. "config.h" is now generated with "autoheader" from
|
the #defines. "config.h" is now generated with "autoheader" from
|
||||||
"acconfig.h" and "configure.in". (Note that to install you do not
|
"acconfig.h" and "configure.in". (Note that to install you do not
|
||||||
need autoconf or autoheader - just run "./configure".)
|
need autoconf or autoheader - just run "./configure".)
|
||||||
To see command-line options, run "./configure --help".
|
To see command-line options, run "./configure --help".
|
||||||
|
@ -1369,7 +663,7 @@ apply all of these, since I had already independently done conditional
|
||||||
popup file, conditional image file, and integration of popup code.
|
popup file, conditional image file, and integration of popup code.
|
||||||
- ACL, Jar and trust files conditionally compiled.
|
- ACL, Jar and trust files conditionally compiled.
|
||||||
- New source file headers.
|
- New source file headers.
|
||||||
- Various cosmetic changes. (But I have not consistently ordered the
|
- Various cosmetic changes. (But I have not consistently ordered the
|
||||||
config files - I think that's worthwhile, but it's 1am and I want to
|
config files - I think that's worthwhile, but it's 1am and I want to
|
||||||
get this released!)
|
get this released!)
|
||||||
- RCS tags on .h files.
|
- RCS tags on .h files.
|
||||||
|
@ -1395,15 +689,16 @@ being a mix of "U.S. English", "U.K. English" and "Irish English".
|
||||||
- Version number changes to 2.9.0
|
- Version number changes to 2.9.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Copyright : Written by and Copyright (C) 2001-2010 the
|
Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
|
||||||
Privoxy team. http://www.privoxy.org/
|
Privoxy team. http://www.privoxy.org/
|
||||||
|
|
||||||
Based on the Internet Junkbuster originally written
|
Based on the Internet Junkbuster originally written
|
||||||
by and Copyright (C) 1997 Anonymous Coders and
|
by and Copyright (C) 1997 Anonymous Coders and
|
||||||
Junkbusters Corporation. http://www.junkbusters.com/
|
Junkbusters Corporation. http://www.junkbusters.com/
|
||||||
|
|
||||||
This program is free software; you can redistribute it
|
This program is free software; you can redistribute it
|
||||||
and/or modify it under the terms of the GNU General
|
and/or modify it under the terms of the GNU General
|
||||||
Public License as published by the Free Software
|
Public License as published by the Free Software
|
||||||
Foundation; either version 2 of the License, or (at
|
Foundation; either version 2 of the License, or (at
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -8,10 +8,10 @@
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -26,8 +26,8 @@
|
||||||
* The GNU General Public License should be included with
|
* The GNU General Public License should be included with
|
||||||
* this file. If not, you can view it at
|
* this file. If not, you can view it at
|
||||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
* or write to the Free Software Foundation, Inc.,
|
* or write to the Free Software Foundation, Inc.,
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
@ -40,8 +40,9 @@ compiler like gcc are required.
|
||||||
|
|
||||||
When building from a source tarball, first unpack the source:
|
When building from a source tarball, first unpack the source:
|
||||||
|
|
||||||
tar xzvf privoxy-3.0.19-stable-src.tar.gz
|
tar xzvf privoxy-3.0.12-stable-src.tar.gz
|
||||||
cd privoxy-3.0.19-stable
|
cd privoxy-3.0.12-stable
|
||||||
|
|
||||||
|
|
||||||
For retrieving the current CVS sources, you'll need a CVS client installed.
|
For retrieving the current CVS sources, you'll need a CVS client installed.
|
||||||
Note that sources from CVS are typically development quality, and may not be
|
Note that sources from CVS are typically development quality, and may not be
|
||||||
|
@ -52,6 +53,7 @@ documentation, which might give commands like:
|
||||||
cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
|
cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
|
||||||
cd current
|
cd current
|
||||||
|
|
||||||
|
|
||||||
This will create a directory named current/, which will contain the source
|
This will create a directory named current/, which will contain the source
|
||||||
tree.
|
tree.
|
||||||
|
|
||||||
|
@ -68,10 +70,12 @@ adduser, but the command syntax may vary from platform to platform).
|
||||||
|
|
||||||
privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell
|
privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell
|
||||||
|
|
||||||
|
|
||||||
And then /etc/group, like:
|
And then /etc/group, like:
|
||||||
|
|
||||||
privoxy:*:7777:
|
privoxy:*:7777:
|
||||||
|
|
||||||
|
|
||||||
Some binary packages may do this for you.
|
Some binary packages may do this for you.
|
||||||
|
|
||||||
Then, to build from either unpacked tarball or CVS source:
|
Then, to build from either unpacked tarball or CVS source:
|
||||||
|
@ -84,11 +88,13 @@ Then, to build from either unpacked tarball or CVS source:
|
||||||
make -n install # (to see where all the files will go)
|
make -n install # (to see where all the files will go)
|
||||||
make -s install # (to really install, -s to silence output)
|
make -s install # (to really install, -s to silence output)
|
||||||
|
|
||||||
|
|
||||||
Using GNU make, you can have the first four steps automatically done for you by
|
Using GNU make, you can have the first four steps automatically done for you by
|
||||||
just typing:
|
just typing:
|
||||||
|
|
||||||
make
|
make
|
||||||
|
|
||||||
|
|
||||||
in the freshly downloaded or unpacked source directory.
|
in the freshly downloaded or unpacked source directory.
|
||||||
|
|
||||||
To build an executable with security enhanced features so that users cannot
|
To build an executable with security enhanced features so that users cannot
|
||||||
|
@ -97,6 +103,7 @@ configurations, configure like this:
|
||||||
|
|
||||||
./configure --disable-toggle --disable-editor --disable-force
|
./configure --disable-toggle --disable-editor --disable-force
|
||||||
|
|
||||||
|
|
||||||
Then build as above. In Privoxy 3.0.7 and later, all of these options can also
|
Then build as above. In Privoxy 3.0.7 and later, all of these options can also
|
||||||
be disabled through the configuration file.
|
be disabled through the configuration file.
|
||||||
|
|
||||||
|
@ -117,6 +124,7 @@ sure both already exist:
|
||||||
|
|
||||||
make -s install USER=privoxy GROUP=privoxy
|
make -s install USER=privoxy GROUP=privoxy
|
||||||
|
|
||||||
|
|
||||||
The default installation path for make install is /usr/local. This may of
|
The default installation path for make install is /usr/local. This may of
|
||||||
course be customized with the various ./configure path options. If you are
|
course be customized with the various ./configure path options. If you are
|
||||||
doing an install to anywhere besides /usr/local, be sure to set the appropriate
|
doing an install to anywhere besides /usr/local, be sure to set the appropriate
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
*
|
*
|
||||||
* Purpose : README file to give a short intro.
|
* Purpose : README file to give a short intro.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2011 the
|
* Copyright : Written by and Copyright (C) 2001-2009 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -26,13 +26,13 @@
|
||||||
* The GNU General Public License should be included with
|
* The GNU General Public License should be included with
|
||||||
* this file. If not, you can view it at
|
* this file. If not, you can view it at
|
||||||
* http://www.gnu.org/copyleft/gpl.html
|
* http://www.gnu.org/copyleft/gpl.html
|
||||||
* or write to the Free Software Foundation, Inc.,
|
* or write to the Free Software Foundation, Inc.,
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
This README is included with Privoxy 3.0.19. See http://www.privoxy.org/ for
|
This README is included with Privoxy 3.0.12. See http://www.privoxy.org/ for
|
||||||
more information. The current code maturity level is "stable".
|
more information. The current code maturity level is "stable".
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
@ -44,22 +44,36 @@ flexible configuration and can be customized to suit individual needs and
|
||||||
tastes. It has application for both stand-alone systems and multi-user
|
tastes. It has application for both stand-alone systems and multi-user
|
||||||
networks.
|
networks.
|
||||||
|
|
||||||
Privoxy is Free Software and licensed under the GNU GPLv2.
|
Privoxy is Free Software and licensed under the GPL2.
|
||||||
|
|
||||||
Privoxy is an associated project of Software in the Public Interest (SPI).
|
Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||||
|
Donations are welcome.
|
||||||
Helping hands and donations are welcome:
|
|
||||||
|
|
||||||
* http://www.privoxy.org/faq/general.html#PARTICIPATE
|
|
||||||
|
|
||||||
* http://www.privoxy.org/faq/general.html#DONATE
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
1. CHANGES
|
1. IMPORTANT CHANGES
|
||||||
|
|
||||||
For a list of changes in this release, please have a look at the "ChangeLog",
|
March 2009, Privoxy 3.0.12 is released.
|
||||||
the "What's New" section or the "Upgrader's Notes" in the User Manual.
|
|
||||||
|
This is primarily a bug fix release. See the "ChangeLog", and the "What's New"
|
||||||
|
section and the "Upgrader's Notes" in the User Manual for details.
|
||||||
|
|
||||||
|
February 2009, Privoxy 3.0.11 is released.
|
||||||
|
|
||||||
|
As usual there are changes that effect the configuration. See the "ChangeLog",
|
||||||
|
and the "What's New" section and the "Upgrader's Notes" in the User Manual for
|
||||||
|
details and specifics.
|
||||||
|
|
||||||
|
This is a stable release, and marks a departure for Privoxy development.
|
||||||
|
|
||||||
|
Previously, odd numbered releases were considered beta versions and were only
|
||||||
|
released at the end of the development cycle when the code was already believed
|
||||||
|
to be stable. Usually it was, so the stable release contained pretty much the
|
||||||
|
same code, but got a higher version number. In the future we intend to release
|
||||||
|
several snapshots between stable releases. There will probably still be about
|
||||||
|
two stable releases per year, but hopefully about six snapshots instead of the
|
||||||
|
two betas we have now. The intentions is to make testing without CVS access
|
||||||
|
easier.
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -82,6 +96,10 @@ If no config_file is specified on the command line, Privoxy will look for a
|
||||||
file named 'config' in the current directory (except Win32 which will look for
|
file named 'config' in the current directory (except Win32 which will look for
|
||||||
'config.txt'). If no config_file is found, Privoxy will fail to start.
|
'config.txt'). If no config_file is found, Privoxy will fail to start.
|
||||||
|
|
||||||
|
Or for Red Hat and Fedora based distributions: /etc/rc.d/init.d/privoxy start
|
||||||
|
|
||||||
|
Or Debian and Ubuntu: /etc/init.d/privoxy start
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
4. CONFIGURATION
|
4. CONFIGURATION
|
||||||
|
@ -98,7 +116,7 @@ www.privoxy.org/user-manual/.
|
||||||
|
|
||||||
Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or whatever
|
Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or whatever
|
||||||
you specify in the config file under 'listen-address'. DEFAULT is
|
you specify in the config file under 'listen-address'. DEFAULT is
|
||||||
127.0.0.1:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not
|
localhost:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not
|
||||||
try it with FTP or other protocols for the simple reason it does not work.
|
try it with FTP or other protocols for the simple reason it does not work.
|
||||||
|
|
||||||
The actions list can be configured via the web interface accessed via http://
|
The actions list can be configured via the web interface accessed via http://
|
||||||
|
@ -140,13 +158,6 @@ list, where the developers also hang around.
|
||||||
Please don't sent private support requests to individual Privoxy developers,
|
Please don't sent private support requests to individual Privoxy developers,
|
||||||
either use the mailing lists or the support trackers.
|
either use the mailing lists or the support trackers.
|
||||||
|
|
||||||
If you have to contact a Privoxy developer directly for other reasons, please
|
|
||||||
send a real mail and do not bother with SourceForge's messaging system. Answers
|
|
||||||
to SourceForge messages are usually bounced by SourceForge's mail server in
|
|
||||||
which case the developer wasted time writing a response you don't get. From
|
|
||||||
your point of view it will look like your message has been completely ignored,
|
|
||||||
so this is frustrating for all parties involved.
|
|
||||||
|
|
||||||
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||||
addresses have to be accepted manually by a moderator. This may cause a delay
|
addresses have to be accepted manually by a moderator. This may cause a delay
|
||||||
of several days and if you use a subject that doesn't clearly mention Privoxy
|
of several days and if you use a subject that doesn't clearly mention Privoxy
|
||||||
|
@ -235,49 +246,16 @@ Please be sure to provide the following information:
|
||||||
|
|
||||||
* Any other pertinent information to help identify the problem such as config
|
* Any other pertinent information to help identify the problem such as config
|
||||||
or log file excerpts (yes, you should have log file entries for each action
|
or log file excerpts (yes, you should have log file entries for each action
|
||||||
taken). To get a meaningful logfile, please make sure that the logfile
|
taken).
|
||||||
directive is being used and the following debug options are enabled:
|
|
||||||
|
|
||||||
debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.
|
You don't have to tell us your actual name when filing a problem report, but
|
||||||
debug 2 # show each connection status
|
please use a nickname so we can differentiate between your messages and the
|
||||||
debug 4 # show I/O status
|
ones entered by other "anonymous" users that may respond to your request if
|
||||||
debug 8 # show header parsing
|
they have the same problem or already found a solution.
|
||||||
debug 128 # debug redirects
|
|
||||||
debug 256 # debug GIF de-animation
|
|
||||||
debug 512 # Common Log Format
|
|
||||||
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
|
|
||||||
debug 4096 # Startup banner and warnings.
|
|
||||||
debug 8192 # Non-fatal errors
|
|
||||||
|
|
||||||
If you are having trouble with a filter, please additionally enable
|
|
||||||
|
|
||||||
debug 64 # debug regular expression filters
|
|
||||||
|
|
||||||
If you are using Privoxy 3.0.17 or later and suspect that it interprets the
|
|
||||||
request or the response incorrectly, please enable
|
|
||||||
|
|
||||||
debug 32768 # log all data read from the network
|
|
||||||
|
|
||||||
Note that Privoxy log files may contain sensitive information so please
|
|
||||||
don't submit any logfiles you didn't read first. You can mask sensitive
|
|
||||||
information as long as it's clear that you removed something.
|
|
||||||
|
|
||||||
You don't have to tell us your actual name when filing a problem report, but if
|
|
||||||
you don't, please use a nickname so we can differentiate between your messages
|
|
||||||
and the ones entered by other "anonymous" users that may respond to your
|
|
||||||
request if they have the same problem or already found a solution. Note that
|
|
||||||
due to spam the trackers may not always allow to post without being logged into
|
|
||||||
SourceForge. If that's the case, you are still free to create a login that
|
|
||||||
isn't directly linked to your name, though.
|
|
||||||
|
|
||||||
Please also check the status of your request a few days after submitting it, as
|
Please also check the status of your request a few days after submitting it, as
|
||||||
we may request additional information. If you use a SF id, you should
|
we may request additional information. If you use a SF id, you should
|
||||||
automatically get a mail when someone responds to your request. Please don't
|
automatically get a mail when someone responds to your request.
|
||||||
bother to add an email address when using the tracker. If you prefer to
|
|
||||||
communicate through email, just use one of the mailing lists directly.
|
|
||||||
|
|
||||||
If you are new to reporting problems, you might be interested in How to Report
|
|
||||||
Bugs Effectively.
|
|
||||||
|
|
||||||
The appendix of the Privoxy User Manual also has helpful information on
|
The appendix of the Privoxy User Manual also has helpful information on
|
||||||
understanding actions, and action debugging.
|
understanding actions, and action debugging.
|
||||||
|
@ -292,13 +270,11 @@ tracker/?atid=361118&group_id=11118.
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
6.4. Mailing Lists
|
6.4. Other
|
||||||
|
|
||||||
If you prefer to communicate through email, instead of using a web interface,
|
For any other issues, feel free to use the mailing lists. Technically
|
||||||
feel free to use one of the mailing lists. To discuss issues that haven't been
|
interested users and people who wish to contribute to the project are also
|
||||||
completely diagnosed yet, please use the Privoxy users list. Technically
|
welcome on the developers list! You can find an overview of all Privoxy-related
|
||||||
interested users and people who wish to contribute to the project are always
|
|
||||||
welcome on the developers list. You can find an overview of all Privoxy-related
|
|
||||||
mailing lists, including list archives, at: http://sourceforge.net/mail/?
|
mailing lists, including list archives, at: http://sourceforge.net/mail/?
|
||||||
group_id=11118.
|
group_id=11118.
|
||||||
|
|
||||||
|
|
|
@ -5,19 +5,19 @@
|
||||||
* File : $Source: /cvsroot/ijbswa/current/acconfig.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/acconfig.h,v $
|
||||||
*
|
*
|
||||||
* Purpose : This file should be the first thing included in every
|
* Purpose : This file should be the first thing included in every
|
||||||
* .c file. (Before even system headers). It contains
|
* .c file. (Before even system headers). It contains
|
||||||
* #define statements for various features. It was
|
* #define statements for various features. It was
|
||||||
* introduced because the compile command line started
|
* introduced because the compile command line started
|
||||||
* getting ludicrously long with feature defines.
|
* getting ludicrously long with feature defines.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -35,8 +35,211 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: acconfig.h,v $
|
||||||
|
* Revision 1.36 2008/10/18 11:17:52 fabiankeil
|
||||||
|
* Connection keep-alive support is ready for testing,
|
||||||
|
* allow enabling it through the configure script.
|
||||||
|
*
|
||||||
|
* Revision 1.35 2008/04/06 15:18:33 fabiankeil
|
||||||
|
* Oh well, rename the --enable-pcre-host-patterns option to
|
||||||
|
* --enable-extended-host-patterns as it's not really PCRE syntax.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2008/04/06 14:54:26 fabiankeil
|
||||||
|
* Use PCRE syntax in host patterns when configured
|
||||||
|
* with --enable-pcre-host-patterns.
|
||||||
|
*
|
||||||
|
* Revision 1.33 2006/12/17 19:15:26 fabiankeil
|
||||||
|
* Added ./configure switch for FEATURE_GRACEFUL_TERMINATION.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.27.2.4 2003/12/17 16:34:40 oes
|
||||||
|
* Cosmetics
|
||||||
|
*
|
||||||
|
* Revision 1.27.2.3 2003/03/27 16:03:19 oes
|
||||||
|
* Another shot at Bug #707467
|
||||||
|
*
|
||||||
|
* Revision 1.27.2.2 2003/03/21 14:39:12 oes
|
||||||
|
* Presumably fixed Bug #707467 by defining unix ifdef __unix__
|
||||||
|
*
|
||||||
|
* Revision 1.27.2.1 2002/08/10 11:22:31 oes
|
||||||
|
* - Add two AC_DEFINEs that indicate if the pcre*.h headers
|
||||||
|
* are located in a pcre/ subdir to the include path.
|
||||||
|
*
|
||||||
|
* Revision 1.27 2002/04/25 19:13:57 morcego
|
||||||
|
* Removed RPM release number declaration on configure.in
|
||||||
|
* Changed makefile to use given value for RPM_PACKAGEV when on uploading
|
||||||
|
* targets (will produce an error, explaining who to do it, if no value
|
||||||
|
* if provided).
|
||||||
|
*
|
||||||
|
* Revision 1.26 2002/04/11 11:00:21 oes
|
||||||
|
* Applied Moritz' fix for socklen_t on Solaris
|
||||||
|
*
|
||||||
|
* Revision 1.25 2002/04/06 20:38:01 jongfoster
|
||||||
|
* Renaming VC++ versions of config.h
|
||||||
|
*
|
||||||
|
* Revision 1.24 2002/04/04 00:36:36 gliptak
|
||||||
|
* always use pcre for matching
|
||||||
|
*
|
||||||
|
* Revision 1.23 2002/04/03 22:28:03 gliptak
|
||||||
|
* Removed references to gnu_regex
|
||||||
|
*
|
||||||
|
* Revision 1.22 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.21 2002/03/24 14:31:08 swa
|
||||||
|
* remove more crappy files. set RPM
|
||||||
|
* release version correctly.
|
||||||
|
*
|
||||||
|
* Revision 1.20 2002/03/24 13:46:44 swa
|
||||||
|
* name change related issue.
|
||||||
|
*
|
||||||
|
* Revision 1.19 2002/03/24 13:25:42 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.18 2002/03/08 16:40:28 oes
|
||||||
|
* Added FEATURE_NO_GIFS
|
||||||
|
*
|
||||||
|
* Revision 1.17 2002/03/04 17:52:44 oes
|
||||||
|
* Deleted PID_FILE_PATH
|
||||||
|
*
|
||||||
|
* Revision 1.16 2002/01/10 12:36:18 oes
|
||||||
|
* Moved HAVE_*_R to acconfig.h, where they belong.
|
||||||
|
*
|
||||||
|
* Revision 1.15 2001/12/30 14:07:31 steudten
|
||||||
|
* - Add signal handling (unix)
|
||||||
|
* - Add SIGHUP handler (unix)
|
||||||
|
* - Add creation of pidfile (unix)
|
||||||
|
* - Add action 'top' in rc file (RH)
|
||||||
|
* - Add entry 'SIGNALS' to manpage
|
||||||
|
* - Add exit message to logfile (unix)
|
||||||
|
*
|
||||||
|
* Revision 1.14 2001/10/23 21:24:09 jongfoster
|
||||||
|
* Support for FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
*
|
||||||
|
* Revision 1.13 2001/10/07 15:30:41 oes
|
||||||
|
* Removed FEATURE_DENY_GZIP
|
||||||
|
*
|
||||||
|
* Revision 1.12 2001/09/13 19:56:37 jongfoster
|
||||||
|
* Reverting to revision 1.10 - previous checking was majorly broken.
|
||||||
|
*
|
||||||
|
* Revision 1.10 2001/07/30 22:08:36 jongfoster
|
||||||
|
* Tidying up #defines:
|
||||||
|
* - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
* - Permanently turned off WIN_GUI_EDIT
|
||||||
|
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/07/29 19:08:52 jongfoster
|
||||||
|
* Changing _CONFIG_H to CONFIG_H_INCLUDED.
|
||||||
|
* Also added protection against using a MinGW32 or CygWin version of
|
||||||
|
* config.h from within MS Visual C++
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/07/29 17:09:17 jongfoster
|
||||||
|
* Major changes to build system in order to fix these bugs:
|
||||||
|
* - pthreads under Linux was broken - changed -lpthread to -pthread
|
||||||
|
* - Compiling in MinGW32 mode under CygWin now correctly detects
|
||||||
|
* which shared libraries are available
|
||||||
|
* - Solaris support (?) (Not tested under Solaris yet)
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/07/25 22:53:59 jongfoster
|
||||||
|
* Will #error if pthreads is enabled under BeOs
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/07/15 17:54:29 jongfoster
|
||||||
|
* Renaming #define STATIC to STATIC_PCRE
|
||||||
|
* Adding new #define FEATURE_PTHREAD that will be used to enable
|
||||||
|
* POSIX threads support.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/07/13 13:48:37 oes
|
||||||
|
* - (Fix:) Copied CODE_STATUS #define from config.h.in
|
||||||
|
* - split REGEX #define into REGEX_GNU and REGEX_PCRE
|
||||||
|
* and removed PCRE.
|
||||||
|
* (REGEX = REGEX_GNU || REGEX_PCRE per project.h)
|
||||||
|
* - Moved STATIC (for pcre) here from Makefile.in
|
||||||
|
* - Introduced STATIC_PCRS #define to allow for dynaimc linking with
|
||||||
|
* libpcrs
|
||||||
|
* - Removed PCRS #define, since pcrs is now needed for CGI anyway
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/05/29 09:50:24 jongfoster
|
||||||
|
* Unified blocklist/imagelist/permissionslist.
|
||||||
|
* File format is still under discussion, but the internal changes
|
||||||
|
* are (mostly) done.
|
||||||
|
*
|
||||||
|
* Also modified interceptor behaviour:
|
||||||
|
* - We now intercept all URLs beginning with one of the following
|
||||||
|
* prefixes (and *only* these prefixes):
|
||||||
|
* * http://i.j.b/
|
||||||
|
* * http://ijbswa.sf.net/config/
|
||||||
|
* * http://ijbswa.sourceforge.net/config/
|
||||||
|
* - New interceptors "home page" - go to http://i.j.b/ to see it.
|
||||||
|
* - Internal changes so that intercepted and fast redirect pages
|
||||||
|
* are not replaced with an image.
|
||||||
|
* - Interceptors now have the option to send a binary page direct
|
||||||
|
* to the client. (i.e. ijb-send-banner uses this)
|
||||||
|
* - Implemented show-url-info interceptor. (Which is why I needed
|
||||||
|
* the above interceptors changes - a typical URL is
|
||||||
|
* "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
|
||||||
|
* The previous mechanism would not have intercepted that, and
|
||||||
|
* if it had been intercepted then it then it would have replaced
|
||||||
|
* it with an image.)
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/05/26 01:26:34 jongfoster
|
||||||
|
* New #define, WIN_GUI_EDIT, enables the (embryonic) Win32 GUI editor.
|
||||||
|
* This #define cannot be set from ./configure - there's no point, it
|
||||||
|
* doesn't work yet. See feature request # 425722
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/22 17:43:35 oes
|
||||||
|
*
|
||||||
|
* - Enabled filtering banners by size rather than URL
|
||||||
|
* by adding patterns that replace all standard banner
|
||||||
|
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||||
|
*
|
||||||
|
* - Enabled filtering WebBugs by providing a pattern
|
||||||
|
* which kills all 1x1 images
|
||||||
|
*
|
||||||
|
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||||
|
* which is selected by the (nonstandard and therefore
|
||||||
|
* capital) letter 'U' in the option string.
|
||||||
|
* It causes the quantifiers to be ungreedy by default.
|
||||||
|
* Appending a ? turns back to greedy (!).
|
||||||
|
*
|
||||||
|
* - Added a new interceptor ijb-send-banner, which
|
||||||
|
* sends back the "Junkbuster" gif. Without imagelist or
|
||||||
|
* MSIE detection support, or if tinygif = 1, or the
|
||||||
|
* URL isn't recognized as an imageurl, a lame HTML
|
||||||
|
* explanation is sent instead.
|
||||||
|
*
|
||||||
|
* - Added new feature, which permits blocking remote
|
||||||
|
* script redirects and firing back a local redirect
|
||||||
|
* to the browser.
|
||||||
|
* The feature is conditionally compiled, i.e. it
|
||||||
|
* can be disabled with --disable-fast-redirects,
|
||||||
|
* plus it must be activated by a "fast-redirects"
|
||||||
|
* line in the config file, has its own log level
|
||||||
|
* and of course wants to be displayed by show-proxy-args
|
||||||
|
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||||
|
* all the fumbling with configure.in and acconfig.h
|
||||||
|
* were *way* more work than the feature itself :-(
|
||||||
|
*
|
||||||
|
* - Because a generic redirect template was needed for
|
||||||
|
* this, tinygif = 3 now uses the same.
|
||||||
|
*
|
||||||
|
* - Moved GIFs, and other static HTTP response templates
|
||||||
|
* to project.h
|
||||||
|
*
|
||||||
|
* - Many minor fixes
|
||||||
|
*
|
||||||
|
* - Removed some >400 CRs again (Jon, you really worked
|
||||||
|
* a lot! ;-)
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:45 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
@TOP@
|
@TOP@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -64,7 +267,7 @@
|
||||||
*/
|
*/
|
||||||
#undef CODE_STATUS
|
#undef CODE_STATUS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Should pcre be statically built in instead of linkling with libpcre?
|
* Should pcre be statically built in instead of linkling with libpcre?
|
||||||
* (This is determined by configure depending on the availiability of
|
* (This is determined by configure depending on the availiability of
|
||||||
* libpcre and user preferences). The name is ugly, but pcre needs it.
|
* libpcre and user preferences). The name is ugly, but pcre needs it.
|
||||||
|
@ -72,7 +275,7 @@
|
||||||
*/
|
*/
|
||||||
#undef STATIC_PCRE
|
#undef STATIC_PCRE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Should pcrs be statically built in instead of linkling with libpcrs?
|
* Should pcrs be statically built in instead of linkling with libpcrs?
|
||||||
* (This is determined by configure depending on the availiability of
|
* (This is determined by configure depending on the availiability of
|
||||||
* libpcrs and user preferences).
|
* libpcrs and user preferences).
|
||||||
|
@ -85,11 +288,6 @@
|
||||||
*/
|
*/
|
||||||
#undef FEATURE_ACL
|
#undef FEATURE_ACL
|
||||||
|
|
||||||
/*
|
|
||||||
* Allow Privoxy to use accf_http(9) if supported.
|
|
||||||
*/
|
|
||||||
#undef FEATURE_ACCEPT_FILTER
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enables the web-based configuration (actionsfile) editor. If you
|
* Enables the web-based configuration (actionsfile) editor. If you
|
||||||
* have a shared proxy, you might want to turn this off.
|
* have a shared proxy, you might want to turn this off.
|
||||||
|
@ -136,14 +334,14 @@
|
||||||
* User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
|
* User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
|
||||||
* Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *
|
* Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *
|
||||||
*
|
*
|
||||||
* And no, I haven't got that backwards - IE is being weird.
|
* And no, I haven't got that backwards - IE is being wierd.
|
||||||
*
|
*
|
||||||
* Known limitations:
|
* Known limitations:
|
||||||
* 1) If you press shift-reload on a blocked HTML page, you get
|
* 1) If you press shift-reload on a blocked HTML page, you get
|
||||||
* the image "blocked" page, not the HTML "blocked" page.
|
* the image "blocked" page, not the HTML "blocked" page.
|
||||||
* 2) Once an image "blocked" page has been sent, viewing it
|
* 2) Once an image "blocked" page has been sent, viewing it
|
||||||
* in it's own browser window *should* bring up the HTML
|
* in it's own browser window *should* bring up the HTML
|
||||||
* "blocked" page, but it doesn't. You need to clear the
|
* "blocked" page, but it doesn't. You need to clear the
|
||||||
* browser cache to get the HTML version again.
|
* browser cache to get the HTML version again.
|
||||||
*
|
*
|
||||||
* These limitations are due to IE making inconsistent choices
|
* These limitations are due to IE making inconsistent choices
|
||||||
|
@ -151,6 +349,11 @@
|
||||||
*/
|
*/
|
||||||
#undef FEATURE_IMAGE_DETECT_MSIE
|
#undef FEATURE_IMAGE_DETECT_MSIE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Kills JavaScript popups - window.open, onunload, etc.
|
||||||
|
*/
|
||||||
|
#undef FEATURE_KILL_POPUPS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Use PNG instead of GIF for built-in images
|
* Use PNG instead of GIF for built-in images
|
||||||
*/
|
*/
|
||||||
|
@ -167,15 +370,10 @@
|
||||||
#undef FEATURE_EXTENDED_HOST_PATTERNS
|
#undef FEATURE_EXTENDED_HOST_PATTERNS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keep connections alive if possible.
|
* Keep outgoing connections alive if possible.
|
||||||
*/
|
*/
|
||||||
#undef FEATURE_CONNECTION_KEEP_ALIVE
|
#undef FEATURE_CONNECTION_KEEP_ALIVE
|
||||||
|
|
||||||
/*
|
|
||||||
* Allow to share outgoing connections between incoming connections.
|
|
||||||
*/
|
|
||||||
#undef FEATURE_CONNECTION_SHARING
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Use POSIX threads instead of native threads.
|
* Use POSIX threads instead of native threads.
|
||||||
*/
|
*/
|
||||||
|
@ -237,7 +435,7 @@
|
||||||
#undef HAVE_GMTIME_R
|
#undef HAVE_GMTIME_R
|
||||||
#undef HAVE_LOCALTIME_R
|
#undef HAVE_LOCALTIME_R
|
||||||
|
|
||||||
/* Define to 'int' if <sys/socket.h> doesn't have it.
|
/* Define to 'int' if <sys/socket.h> doesn't have it.
|
||||||
*/
|
*/
|
||||||
#undef socklen_t
|
#undef socklen_t
|
||||||
|
|
||||||
|
@ -287,7 +485,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* It's too easy to accidentally use a Cygwin or MinGW32 version of config.h
|
* It's too easy to accidentally use a Cygwin or MinGW32 version of config.h
|
||||||
* under VC++, and it usually gives many weird error messages. Let's make
|
* under VC++, and it usually gives many wierd error messages. Let's make
|
||||||
* the error messages understandable, by bailing out now.
|
* the error messages understandable, by bailing out now.
|
||||||
*/
|
*/
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
|
@ -12,14 +12,14 @@
|
||||||
* DEFINE_ACTION_BOOL()
|
* DEFINE_ACTION_BOOL()
|
||||||
* DEFINE_ACTION_ALIAS
|
* DEFINE_ACTION_ALIAS
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2008 the
|
* Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -37,8 +37,156 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: actionlist.h,v $
|
||||||
|
* Revision 1.36 2008/09/20 10:04:33 fabiankeil
|
||||||
|
* Remove hide-forwarded-for-headers action which has
|
||||||
|
* been obsoleted by change-x-forwarded-for{block}.
|
||||||
|
*
|
||||||
|
* Revision 1.35 2008/09/19 15:43:54 fabiankeil
|
||||||
|
* Fix sorting.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2008/09/19 15:26:28 fabiankeil
|
||||||
|
* Add change-x-forwarded-for{} action to block or add
|
||||||
|
* X-Forwarded-For headers. Mostly based on code removed
|
||||||
|
* before 3.0.7.
|
||||||
|
*
|
||||||
|
* Revision 1.33 2008/03/29 12:13:45 fabiankeil
|
||||||
|
* Remove send-wafer and send-vanilla-wafer actions.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2008/03/28 15:13:42 fabiankeil
|
||||||
|
* Remove inspect-jpegs action.
|
||||||
|
*
|
||||||
|
* Revision 1.31 2008/03/27 18:27:20 fabiankeil
|
||||||
|
* Remove kill-popups action.
|
||||||
|
*
|
||||||
|
* Revision 1.30 2008/03/04 18:30:34 fabiankeil
|
||||||
|
* Remove the treat-forbidden-connects-like-blocks action. We now
|
||||||
|
* use the "blocked" page for forbidden CONNECT requests by default.
|
||||||
|
*
|
||||||
|
* Revision 1.29 2008/03/01 14:00:43 fabiankeil
|
||||||
|
* Let the block action take the reason for the block
|
||||||
|
* as argument and show it on the "blocked" page.
|
||||||
|
*
|
||||||
|
* Revision 1.28 2007/12/11 21:08:29 fabiankeil
|
||||||
|
* Let the CGI editor suggest a forward-override
|
||||||
|
* parameter whose syntax is actually valid.
|
||||||
|
*
|
||||||
|
* Revision 1.27 2007/11/10 15:04:08 fabiankeil
|
||||||
|
* Tell the CGI editor about +hide-referrer{conditional-forge}.
|
||||||
|
*
|
||||||
|
* Revision 1.26 2007/06/01 16:54:28 fabiankeil
|
||||||
|
* Add forward-override{} to change the forwarding settings through
|
||||||
|
* action sections. This is mainly interesting to forward different
|
||||||
|
* clients differently (for example based on User-Agent or request
|
||||||
|
* origin).
|
||||||
|
*
|
||||||
|
* Revision 1.25 2007/04/15 16:39:20 fabiankeil
|
||||||
|
* Introduce tags as alternative way to specify which
|
||||||
|
* actions apply to a request. At the moment tags can be
|
||||||
|
* created based on client and server headers.
|
||||||
|
*
|
||||||
|
* Revision 1.24 2007/03/20 15:16:34 fabiankeil
|
||||||
|
* Use dedicated header filter actions instead of abusing "filter".
|
||||||
|
* Replace "filter-client-headers" and "filter-client-headers"
|
||||||
|
* with "server-header-filter" and "client-header-filter".
|
||||||
|
*
|
||||||
|
* Revision 1.23 2006/10/09 10:26:18 fabiankeil
|
||||||
|
* Changed the path in set-image-blocker's redirection default to
|
||||||
|
* "send-banner?type=pattern" instead of "show-banner?type=pattern"
|
||||||
|
* which isn't caught by Privoxy. Fixes BR 1573468.
|
||||||
|
*
|
||||||
|
* Changed hide-user-agent's default value to "Privoxy VERSION".
|
||||||
|
*
|
||||||
|
* Changed hide-referrer's default fake value to "http://www.privoxy.org/".
|
||||||
|
* A static referrer is obviously fake anyway, so we might as well
|
||||||
|
* advertise ourselves.
|
||||||
|
*
|
||||||
|
* Revision 1.22 2006/09/01 17:14:18 hal9
|
||||||
|
* Re-ordered the actions list so that they display in the actions editor in
|
||||||
|
* alphabetical order. Some of the new actions were "out of order".
|
||||||
|
*
|
||||||
|
* Revision 1.21 2006/08/14 08:25:19 fabiankeil
|
||||||
|
* Split filter-headers{} into filter-client-headers{}
|
||||||
|
* and filter-server-headers{}.
|
||||||
|
* Added parse_header_time() to share some code.
|
||||||
|
* Replaced timegm() with mktime().
|
||||||
|
*
|
||||||
|
* Revision 1.20 2006/08/03 02:46:41 david__schmidt
|
||||||
|
* Incorporate Fabian Keil's patch work:
http://www.fabiankeil.de/sourcecode/privoxy/
|
||||||
|
*
|
||||||
|
* Revision 1.19 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.17.2.3 2004/10/03 12:53:32 david__schmidt
|
||||||
|
* Add the ability to check jpeg images for invalid
|
||||||
|
* lengths of comment blocks. Defensive strategy
|
||||||
|
* against the exploit:
|
||||||
|
* Microsoft Security Bulletin MS04-028
|
||||||
|
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||||
|
* Allow Code Execution (833987)
|
||||||
|
* Enabled with +inspect-jpegs in actions files.
|
||||||
|
*
|
||||||
|
* Revision 1.17.2.2 2002/09/25 15:25:25 oes
|
||||||
|
* Added more aliases for prehistoric action names
|
||||||
|
*
|
||||||
|
* Revision 1.17.2.1 2002/08/02 12:50:47 oes
|
||||||
|
* Consistency with docs: Change default name for action from hide-referer to hide-referrer
|
||||||
|
*
|
||||||
|
* Revision 1.17 2002/05/14 21:25:55 oes
|
||||||
|
* Renamed prevent-(setting/reading)-cookies to crunch-(incoming/outgoing)-cookies
|
||||||
|
*
|
||||||
|
* Revision 1.16 2002/04/24 02:15:18 oes
|
||||||
|
* Renamed actions as discussed, Aliased old action names to new ones.
|
||||||
|
*
|
||||||
|
* Revision 1.15 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.14 2002/03/24 16:32:08 jongfoster
|
||||||
|
* Removing logo option
|
||||||
|
*
|
||||||
|
* Revision 1.13 2002/03/24 15:23:33 jongfoster
|
||||||
|
* Name changes
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/03/12 01:42:49 oes
|
||||||
|
* Introduced modular filters
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/03/08 18:19:14 jongfoster
|
||||||
|
* Adding +image-blocker{pattern} option to edit interface
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/11/22 21:58:41 jongfoster
|
||||||
|
* Adding action +no-cookies-keep
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/10/10 16:42:52 oes
|
||||||
|
* Fixed a bug, Added +limit-connect string action
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/10/07 15:33:59 oes
|
||||||
|
* Introduced a +no-compression action
|
||||||
|
* Introduced a +downgrade action
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/09/16 15:47:37 jongfoster
|
||||||
|
* First version of CGI-based edit interface. This is very much a
|
||||||
|
* work-in-progress, and you can't actually use it to edit anything
|
||||||
|
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||||
|
* to have any effect.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/07/18 12:27:03 oes
|
||||||
|
* Changed deanimate-gifs to string action
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/07/13 13:52:12 oes
|
||||||
|
* - Formatting
|
||||||
|
* - Introduced new action ACTION_DEANIMATE
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/06/07 23:03:56 jongfoster
|
||||||
|
* Added standard comment at top of file.
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#if !(defined(DEFINE_ACTION_BOOL) && defined(DEFINE_ACTION_MULTI) && defined(DEFINE_ACTION_STRING))
|
#if !(defined(DEFINE_ACTION_BOOL) && defined(DEFINE_ACTION_MULTI) && defined(DEFINE_ACTION_STRING))
|
||||||
#error Please define lots of macros before including "actionlist.h".
|
#error Please define lots of macros before including "actionlist.h".
|
||||||
|
@ -71,11 +219,9 @@ DEFINE_ACTION_STRING ("deanimate-gifs", ACTION_DEANIMATE,
|
||||||
DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "first", 0)
|
DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "first", 0)
|
||||||
DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "last", 1)
|
DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "last", 1)
|
||||||
DEFINE_ACTION_BOOL ("downgrade-http-version", ACTION_DOWNGRADE)
|
DEFINE_ACTION_BOOL ("downgrade-http-version", ACTION_DOWNGRADE)
|
||||||
#ifdef FEATURE_FAST_REDIRECTS
|
|
||||||
DEFINE_ACTION_STRING ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS)
|
DEFINE_ACTION_STRING ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS)
|
||||||
DEFINE_CGI_PARAM_RADIO ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS, "simple-check", 0)
|
DEFINE_CGI_PARAM_RADIO ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS, "simple-check", 0)
|
||||||
DEFINE_CGI_PARAM_RADIO ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS, "check-decoded-url", 1)
|
DEFINE_CGI_PARAM_RADIO ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS, "check-decoded-url", 1)
|
||||||
#endif /* def FEATURE_FAST_REDIRECTS */
|
|
||||||
DEFINE_ACTION_MULTI ("filter", ACTION_MULTI_FILTER)
|
DEFINE_ACTION_MULTI ("filter", ACTION_MULTI_FILTER)
|
||||||
DEFINE_ACTION_BOOL ("force-text-mode", ACTION_FORCE_TEXT_MODE)
|
DEFINE_ACTION_BOOL ("force-text-mode", ACTION_FORCE_TEXT_MODE)
|
||||||
DEFINE_ACTION_STRING ("forward-override", ACTION_FORWARD_OVERRIDE, ACTION_STRING_FORWARD_OVERRIDE)
|
DEFINE_ACTION_STRING ("forward-override", ACTION_FORWARD_OVERRIDE, ACTION_STRING_FORWARD_OVERRIDE)
|
||||||
|
@ -121,19 +267,19 @@ DEFINE_CGI_PARAM_CUSTOM ("set-image-blocker", ACTION_IMAGE_BLOCKER,
|
||||||
|
|
||||||
#if DEFINE_ACTION_ALIAS
|
#if DEFINE_ACTION_ALIAS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Alternative spellings
|
* Alternative spellings
|
||||||
*/
|
*/
|
||||||
DEFINE_ACTION_STRING ("hide-referer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER)
|
DEFINE_ACTION_STRING ("hide-referer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER)
|
||||||
DEFINE_ACTION_BOOL ("prevent-keeping-cookies", ACTION_NO_COOKIE_KEEP)
|
DEFINE_ACTION_BOOL ("prevent-keeping-cookies", ACTION_NO_COOKIE_KEEP)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pre-3.0.7 (pseudo) compatibility
|
* Pre-3.0.7 (pseudo) compatibility
|
||||||
*/
|
*/
|
||||||
DEFINE_ACTION_MULTI ("filter-client-headers", ACTION_MULTI_CLIENT_HEADER_FILTER)
|
DEFINE_ACTION_MULTI ("filter-client-headers", ACTION_MULTI_CLIENT_HEADER_FILTER)
|
||||||
DEFINE_ACTION_MULTI ("filter-server-headers", ACTION_MULTI_SERVER_HEADER_FILTER)
|
DEFINE_ACTION_MULTI ("filter-server-headers", ACTION_MULTI_SERVER_HEADER_FILTER)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pre-3.0 compatibility
|
* Pre-3.0 compatibility
|
||||||
*/
|
*/
|
||||||
DEFINE_ACTION_BOOL ("no-cookie-read", ACTION_NO_COOKIE_READ)
|
DEFINE_ACTION_BOOL ("no-cookie-read", ACTION_NO_COOKIE_READ)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const char actions_rcs[] = "$Id: actions.c,v 1.73 2011/09/18 14:43:07 fabiankeil Exp $";
|
const char actions_rcs[] = "$Id: actions.c,v 1.56 2009/03/08 14:19:21 fabiankeil Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/actions.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/actions.c,v $
|
||||||
|
@ -6,7 +6,7 @@ const char actions_rcs[] = "$Id: actions.c,v 1.73 2011/09/18 14:43:07 fabiankeil
|
||||||
* Purpose : Declares functions to work with actions files
|
* Purpose : Declares functions to work with actions files
|
||||||
* Functions declared include: FIXME
|
* Functions declared include: FIXME
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2011 the
|
* Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
|
@ -31,8 +31,259 @@ const char actions_rcs[] = "$Id: actions.c,v 1.73 2011/09/18 14:43:07 fabiankeil
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: actions.c,v $
|
||||||
|
* Revision 1.56 2009/03/08 14:19:21 fabiankeil
|
||||||
|
* Fix justified (but harmless) compiler warnings
|
||||||
|
* on platforms where sizeof(int) < sizeof(long).
|
||||||
|
*
|
||||||
|
* Revision 1.55 2008/12/04 18:18:56 fabiankeil
|
||||||
|
* Fix some cparser warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.54 2008/09/20 10:04:33 fabiankeil
|
||||||
|
* Remove hide-forwarded-for-headers action which has
|
||||||
|
* been obsoleted by change-x-forwarded-for{block}.
|
||||||
|
*
|
||||||
|
* Revision 1.53 2008/05/26 16:04:04 fabiankeil
|
||||||
|
* s@memorey@memory@
|
||||||
|
*
|
||||||
|
* Revision 1.52 2008/04/27 16:26:59 fabiankeil
|
||||||
|
* White space fix for the last commit.
|
||||||
|
*
|
||||||
|
* Revision 1.51 2008/04/27 16:20:19 fabiankeil
|
||||||
|
* Complain about every block action without reason found.
|
||||||
|
*
|
||||||
|
* Revision 1.50 2008/03/30 14:52:00 fabiankeil
|
||||||
|
* Rename load_actions_file() and load_re_filterfile()
|
||||||
|
* as they load multiple files "now".
|
||||||
|
*
|
||||||
|
* Revision 1.49 2008/03/29 12:13:45 fabiankeil
|
||||||
|
* Remove send-wafer and send-vanilla-wafer actions.
|
||||||
|
*
|
||||||
|
* Revision 1.48 2008/03/28 18:17:14 fabiankeil
|
||||||
|
* In action_used_to_be_valid(), loop through an array of formerly
|
||||||
|
* valid actions instead of using an OR-chain of strcmpic() calls.
|
||||||
|
*
|
||||||
|
* Revision 1.47 2008/03/28 15:13:37 fabiankeil
|
||||||
|
* Remove inspect-jpegs action.
|
||||||
|
*
|
||||||
|
* Revision 1.46 2008/03/27 18:27:20 fabiankeil
|
||||||
|
* Remove kill-popups action.
|
||||||
|
*
|
||||||
|
* Revision 1.45 2008/03/24 11:21:02 fabiankeil
|
||||||
|
* Share the action settings for multiple patterns in the same
|
||||||
|
* section so we waste less memory for gigantic block lists
|
||||||
|
* (and load them slightly faster). Reported by Franz Schwartau.
|
||||||
|
*
|
||||||
|
* Revision 1.44 2008/03/04 18:30:34 fabiankeil
|
||||||
|
* Remove the treat-forbidden-connects-like-blocks action. We now
|
||||||
|
* use the "blocked" page for forbidden CONNECT requests by default.
|
||||||
|
*
|
||||||
|
* Revision 1.43 2008/03/01 14:00:43 fabiankeil
|
||||||
|
* Let the block action take the reason for the block
|
||||||
|
* as argument and show it on the "blocked" page.
|
||||||
|
*
|
||||||
|
* Revision 1.42 2008/02/09 15:15:38 fabiankeil
|
||||||
|
* List active and inactive actions in the show-url-info's
|
||||||
|
* "Final results" section separately. Patch submitted by Lee
|
||||||
|
* in #1830056, modified to list active actions first.
|
||||||
|
*
|
||||||
|
* Revision 1.41 2008/01/28 20:17:40 fabiankeil
|
||||||
|
* - Mark some parameters as immutable.
|
||||||
|
* - Hide update_action_bits_for_all_tags() while it's unused.
|
||||||
|
*
|
||||||
|
* Revision 1.40 2007/05/21 10:26:50 fabiankeil
|
||||||
|
* - Use strlcpy() instead of strcpy().
|
||||||
|
* - Provide a reason why loading the actions
|
||||||
|
* file might have failed.
|
||||||
|
*
|
||||||
|
* Revision 1.39 2007/04/17 18:21:45 fabiankeil
|
||||||
|
* Split update_action_bits() into
|
||||||
|
* update_action_bits_for_all_tags()
|
||||||
|
* and update_action_bits_for_tag().
|
||||||
|
*
|
||||||
|
* Revision 1.38 2007/04/15 16:39:20 fabiankeil
|
||||||
|
* Introduce tags as alternative way to specify which
|
||||||
|
* actions apply to a request. At the moment tags can be
|
||||||
|
* created based on client and server headers.
|
||||||
|
*
|
||||||
|
* Revision 1.37 2007/03/11 15:56:12 fabiankeil
|
||||||
|
* Add kludge to log unknown aliases and actions before exiting.
|
||||||
|
*
|
||||||
|
* Revision 1.36 2006/12/28 17:15:42 fabiankeil
|
||||||
|
* Fix gcc43 conversion warning.
|
||||||
|
*
|
||||||
|
* Revision 1.35 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.32.2.6 2006/01/29 23:10:56 david__schmidt
|
||||||
|
* Multiple filter file support
|
||||||
|
*
|
||||||
|
* Revision 1.32.2.5 2005/06/09 01:18:41 david__schmidt
|
||||||
|
* Tweaks to conditionally include pthread.h if FEATURE_PTHREAD is enabled -
|
||||||
|
* this becomes important when jcc.h gets included later down the line.
|
||||||
|
*
|
||||||
|
* Revision 1.32.2.4 2003/12/03 10:33:11 oes
|
||||||
|
* - Implemented Privoxy version requirement through
|
||||||
|
* for-privoxy-version= statement in {{settings}}
|
||||||
|
* block
|
||||||
|
* - Fix for unchecked out-of-memory condition
|
||||||
|
*
|
||||||
|
* Revision 1.32.2.3 2003/02/28 12:52:10 oes
|
||||||
|
* Fixed memory leak reported by Dan Price in Bug #694713
|
||||||
|
*
|
||||||
|
* Revision 1.32.2.2 2002/11/20 14:36:55 oes
|
||||||
|
* Extended unload_current_actions_file() to multiple AFs.
|
||||||
|
* Thanks to Oliver Stoeneberg for the hint.
|
||||||
|
*
|
||||||
|
* Revision 1.32.2.1 2002/05/26 12:13:16 roro
|
||||||
|
* Change unsigned to unsigned long in actions_name struct. This closes
|
||||||
|
* SourceForge Bug #539284.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2002/05/12 21:36:29 jongfoster
|
||||||
|
* Correcting function comments
|
||||||
|
*
|
||||||
|
* Revision 1.31 2002/05/06 07:56:50 oes
|
||||||
|
* Made actions_to_html independent of FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
*
|
||||||
|
* Revision 1.30 2002/04/30 11:14:52 oes
|
||||||
|
* Made csp the first parameter in *action_to_html
|
||||||
|
*
|
||||||
|
* Revision 1.29 2002/04/26 19:30:54 jongfoster
|
||||||
|
* - current_action_to_html(): Adding help link for the "-" form of
|
||||||
|
* one-string actions.
|
||||||
|
* - Some actions had "<br>-", some "<br> -" (note the space).
|
||||||
|
* Standardizing on no space.
|
||||||
|
* - Greatly simplifying some of the code by using string_join()
|
||||||
|
* where appropriate.
|
||||||
|
*
|
||||||
|
* Revision 1.28 2002/04/26 12:53:15 oes
|
||||||
|
* - CGI AF editor now writes action lines split into
|
||||||
|
* single lines with line continuation
|
||||||
|
* - actions_to_html now embeds each action name in
|
||||||
|
* link to chapter
|
||||||
|
* - current_action_to_text is now called current_action_to_html
|
||||||
|
* and acts like actions_to_html
|
||||||
|
*
|
||||||
|
* Revision 1.27 2002/04/24 02:10:31 oes
|
||||||
|
* - Jon's patch for multiple AFs:
|
||||||
|
* - split load_actions_file, add load_one_actions_file
|
||||||
|
* - make csp->actions_list files an array
|
||||||
|
* - remember file id with each action
|
||||||
|
* - Copy_action now frees dest action before copying
|
||||||
|
*
|
||||||
|
* Revision 1.26 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.25 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.24 2002/03/16 23:54:06 jongfoster
|
||||||
|
* Adding graceful termination feature, to help look for memory leaks.
|
||||||
|
* If you enable this (which, by design, has to be done by hand
|
||||||
|
* editing config.h) and then go to http://i.j.b/die, then the program
|
||||||
|
* will exit cleanly after the *next* request. It should free all the
|
||||||
|
* memory that was used.
|
||||||
|
*
|
||||||
|
* Revision 1.23 2002/03/07 03:46:16 oes
|
||||||
|
* Fixed compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.22 2002/01/21 00:27:02 jongfoster
|
||||||
|
* Allowing free_action(NULL).
|
||||||
|
* Moving the functions that #include actionlist.h to the end of the file,
|
||||||
|
* because the Visual C++ 97 debugger gets extremely confused if you try
|
||||||
|
* to debug any code that comes after them in the file.
|
||||||
|
*
|
||||||
|
* Revision 1.21 2002/01/17 20:54:44 jongfoster
|
||||||
|
* Renaming free_url to free_url_spec, since it frees a struct url_spec.
|
||||||
|
*
|
||||||
|
* Revision 1.20 2001/11/22 21:56:49 jongfoster
|
||||||
|
* Making action_spec->flags into an unsigned long rather than just an
|
||||||
|
* unsigned int.
|
||||||
|
* Fixing a bug in the display of -add-header and -wafer
|
||||||
|
*
|
||||||
|
* Revision 1.19 2001/11/13 00:14:07 jongfoster
|
||||||
|
* Fixing stupid bug now I've figured out what || means.
|
||||||
|
* (It always returns 0 or 1, not one of it's paramaters.)
|
||||||
|
*
|
||||||
|
* Revision 1.18 2001/11/07 00:06:06 steudten
|
||||||
|
* Add line number in error output for lineparsing for
|
||||||
|
* actionsfile.
|
||||||
|
*
|
||||||
|
* Revision 1.17 2001/10/25 03:40:47 david__schmidt
|
||||||
|
* Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
|
||||||
|
* threads to call select() simultaneously. So, it's time to do a real, live,
|
||||||
|
* native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
|
||||||
|
* (native). Both versions will work, but using __OS2__ offers multi-threading.
|
||||||
|
*
|
||||||
|
* Revision 1.16 2001/10/23 21:30:30 jongfoster
|
||||||
|
* Adding error-checking to selected functions.
|
||||||
|
*
|
||||||
|
* Revision 1.15 2001/10/14 21:58:22 jongfoster
|
||||||
|
* Adding support for the CGI-based editor:
|
||||||
|
* - Exported get_actions()
|
||||||
|
* - Added new function free_alias_list()
|
||||||
|
* - Added support for {{settings}} and {{description}} blocks
|
||||||
|
* in the actions file. They are currently ignored.
|
||||||
|
* - Added restriction to only one {{alias}} block which must appear
|
||||||
|
* first in the file, to simplify the editor's rewriting rules.
|
||||||
|
* - Note that load_actions_file() is no longer used by the CGI-based
|
||||||
|
* editor, but some of the other routines in this file are.
|
||||||
|
*
|
||||||
|
* Revision 1.14 2001/09/22 16:36:59 jongfoster
|
||||||
|
* Removing unused parameter fs from read_config_line()
|
||||||
|
*
|
||||||
|
* Revision 1.13 2001/09/16 15:47:37 jongfoster
|
||||||
|
* First version of CGI-based edit interface. This is very much a
|
||||||
|
* work-in-progress, and you can't actually use it to edit anything
|
||||||
|
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||||
|
* to have any effect.
|
||||||
|
*
|
||||||
|
* Revision 1.12 2001/09/16 13:21:27 jongfoster
|
||||||
|
* Changes to use new list functions.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2001/09/14 00:17:32 jongfoster
|
||||||
|
* Tidying up memory allocation. New function init_action().
|
||||||
|
*
|
||||||
|
* Revision 1.10 2001/09/10 10:14:34 oes
|
||||||
|
* Removing unused variable
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/07/30 22:08:36 jongfoster
|
||||||
|
* Tidying up #defines:
|
||||||
|
* - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
* - Permanently turned off WIN_GUI_EDIT
|
||||||
|
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/06/29 13:19:52 oes
|
||||||
|
* Removed logentry from cancelled commit
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/06/09 10:55:28 jongfoster
|
||||||
|
* Changing BUFSIZ ==> BUFFER_SIZE
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/06/07 23:04:34 jongfoster
|
||||||
|
* Made get_actions() static.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/06/03 19:11:48 oes
|
||||||
|
* adapted to new enlist_unique arg format
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/06/01 20:03:42 jongfoster
|
||||||
|
* Better memory management - current_action->strings[] now
|
||||||
|
* contains copies of the strings, not the original.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/06/01 18:49:17 jongfoster
|
||||||
|
* Replaced "list_share" with "list" - the tiny memory gain was not
|
||||||
|
* worth the extra complexity.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/31 21:40:00 jongfoster
|
||||||
|
* Removing some commented out, obsolete blocks of code.
|
||||||
|
*
|
||||||
|
* Revision 1.1 2001/05/31 21:16:46 jongfoster
|
||||||
|
* Moved functions to process the action list into this new file.
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -434,7 +685,7 @@ jb_err get_action_token(char **line, char **name, char **value)
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
static int action_used_to_be_valid(const char *action)
|
static int action_used_to_be_valid(const char *action)
|
||||||
{
|
{
|
||||||
static const char * const formerly_valid_actions[] = {
|
static const char *formerly_valid_actions[] = {
|
||||||
"inspect-jpegs",
|
"inspect-jpegs",
|
||||||
"kill-popups",
|
"kill-popups",
|
||||||
"send-vanilla-wafer",
|
"send-vanilla-wafer",
|
||||||
|
@ -522,7 +773,7 @@ jb_err get_actions(char *line,
|
||||||
|
|
||||||
if ((value == NULL) || (*value == '\0'))
|
if ((value == NULL) || (*value == '\0'))
|
||||||
{
|
{
|
||||||
if (0 == strcmpic(action->name, "+block"))
|
if (0 != strcmpic(action->name, "block"))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* XXX: Temporary backwards compatibility hack.
|
* XXX: Temporary backwards compatibility hack.
|
||||||
|
@ -879,7 +1130,7 @@ int update_action_bits_for_tag(struct client_state *csp, const char *tag)
|
||||||
* Returns : N/A
|
* Returns : N/A
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
void free_current_action(struct current_action_spec *src)
|
void free_current_action (struct current_action_spec *src)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1033,108 +1284,6 @@ int load_action_files(struct client_state *csp)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
|
||||||
*
|
|
||||||
* Function : referenced_filters_are_missing
|
|
||||||
*
|
|
||||||
* Description : Checks if any filters of a certain type referenced
|
|
||||||
* in an action spec are missing.
|
|
||||||
*
|
|
||||||
* Parameters :
|
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
|
||||||
* 2 : cur_action = The action spec to check.
|
|
||||||
* 3 : multi_index = The index where to look for the filter.
|
|
||||||
* 4 : filter_type = The filter type the caller is interested in.
|
|
||||||
*
|
|
||||||
* Returns : 0 => All referenced filters exists, everything else is an error.
|
|
||||||
*
|
|
||||||
*********************************************************************/
|
|
||||||
static int referenced_filters_are_missing(const struct client_state *csp,
|
|
||||||
const struct action_spec *cur_action, int multi_index, enum filter_type filter_type)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
struct file_list *fl;
|
|
||||||
struct re_filterfile_spec *b;
|
|
||||||
struct list_entry *filtername;
|
|
||||||
|
|
||||||
for (filtername = cur_action->multi_add[multi_index]->first;
|
|
||||||
filtername; filtername = filtername->next)
|
|
||||||
{
|
|
||||||
int filter_found = 0;
|
|
||||||
for (i = 0; i < MAX_AF_FILES; i++)
|
|
||||||
{
|
|
||||||
fl = csp->rlist[i];
|
|
||||||
if ((NULL == fl) || (NULL == fl->f))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (b = fl->f; b; b = b->next)
|
|
||||||
{
|
|
||||||
if (b->type != filter_type)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (strcmp(b->name, filtername->str) == 0)
|
|
||||||
{
|
|
||||||
filter_found = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!filter_found)
|
|
||||||
{
|
|
||||||
log_error(LOG_LEVEL_ERROR, "Missing filter '%s'", filtername->str);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
|
||||||
*
|
|
||||||
* Function : action_spec_is_valid
|
|
||||||
*
|
|
||||||
* Description : Should eventually figure out if an action spec
|
|
||||||
* is valid, but currently only checks that the
|
|
||||||
* referenced filters are accounted for.
|
|
||||||
*
|
|
||||||
* Parameters :
|
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
|
||||||
* 2 : cur_action = The action spec to check.
|
|
||||||
*
|
|
||||||
* Returns : 0 => No problems detected, everything else is an error.
|
|
||||||
*
|
|
||||||
*********************************************************************/
|
|
||||||
static int action_spec_is_valid(struct client_state *csp, const struct action_spec *cur_action)
|
|
||||||
{
|
|
||||||
struct {
|
|
||||||
int multi_index;
|
|
||||||
enum filter_type filter_type;
|
|
||||||
} filter_map[] = {
|
|
||||||
{ACTION_MULTI_FILTER, FT_CONTENT_FILTER},
|
|
||||||
{ACTION_MULTI_CLIENT_HEADER_FILTER, FT_CLIENT_HEADER_FILTER},
|
|
||||||
{ACTION_MULTI_SERVER_HEADER_FILTER, FT_SERVER_HEADER_FILTER},
|
|
||||||
{ACTION_MULTI_CLIENT_HEADER_TAGGER, FT_CLIENT_HEADER_TAGGER},
|
|
||||||
{ACTION_MULTI_SERVER_HEADER_TAGGER, FT_SERVER_HEADER_TAGGER}
|
|
||||||
};
|
|
||||||
int errors = 0;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < SZ(filter_map); i++)
|
|
||||||
{
|
|
||||||
errors += referenced_filters_are_missing(csp, cur_action,
|
|
||||||
filter_map[i].multi_index, filter_map[i].filter_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
return errors;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : load_one_actions_file
|
* Function : load_one_actions_file
|
||||||
|
@ -1157,24 +1306,23 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
* Note: Keep these in the order they occur in the file, they are
|
* Note: Keep these in the order they occur in the file, they are
|
||||||
* sometimes tested with <=
|
* sometimes tested with <=
|
||||||
*/
|
*/
|
||||||
enum {
|
#define MODE_START_OF_FILE 1
|
||||||
MODE_START_OF_FILE = 1,
|
#define MODE_SETTINGS 2
|
||||||
MODE_SETTINGS = 2,
|
#define MODE_DESCRIPTION 3
|
||||||
MODE_DESCRIPTION = 3,
|
#define MODE_ALIAS 4
|
||||||
MODE_ALIAS = 4,
|
#define MODE_ACTIONS 5
|
||||||
MODE_ACTIONS = 5
|
|
||||||
} mode;
|
int mode = MODE_START_OF_FILE;
|
||||||
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
struct url_actions *last_perm;
|
struct url_actions *last_perm;
|
||||||
struct url_actions *perm;
|
struct url_actions *perm;
|
||||||
char *buf;
|
char buf[BUFFER_SIZE];
|
||||||
struct file_list *fs;
|
struct file_list *fs;
|
||||||
struct action_spec * cur_action = NULL;
|
struct action_spec * cur_action = NULL;
|
||||||
int cur_action_used = 0;
|
int cur_action_used = 0;
|
||||||
struct action_alias * alias_list = NULL;
|
struct action_alias * alias_list = NULL;
|
||||||
unsigned long linenum = 0;
|
unsigned long linenum = 0;
|
||||||
mode = MODE_START_OF_FILE;
|
|
||||||
|
|
||||||
if (!check_file_changed(current_actions_file[fileid], csp->config->actions_file[fileid], &fs))
|
if (!check_file_changed(current_actions_file[fileid], csp->config->actions_file[fileid], &fs))
|
||||||
{
|
{
|
||||||
|
@ -1205,9 +1353,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
|
||||||
log_error(LOG_LEVEL_INFO, "Loading actions file: %s", csp->config->actions_file[fileid]);
|
while (read_config_line(buf, sizeof(buf), fp, &linenum) != NULL)
|
||||||
|
|
||||||
while (read_config_line(fp, &linenum, &buf) != NULL)
|
|
||||||
{
|
{
|
||||||
if (*buf == '{')
|
if (*buf == '{')
|
||||||
{
|
{
|
||||||
|
@ -1223,7 +1369,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
/* too short */
|
/* too short */
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
log_error(LOG_LEVEL_FATAL,
|
log_error(LOG_LEVEL_FATAL,
|
||||||
"can't load actions file '%s': invalid line (%lu): %s",
|
"can't load actions file '%s': invalid line (%lu): %s",
|
||||||
csp->config->actions_file[fileid], linenum, buf);
|
csp->config->actions_file[fileid], linenum, buf);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
@ -1324,11 +1470,11 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
{
|
{
|
||||||
/* It's an actions block */
|
/* It's an actions block */
|
||||||
|
|
||||||
char *actions_buf;
|
char actions_buf[BUFFER_SIZE];
|
||||||
char * end;
|
char * end;
|
||||||
|
|
||||||
/* set mode */
|
/* set mode */
|
||||||
mode = MODE_ACTIONS;
|
mode = MODE_ACTIONS;
|
||||||
|
|
||||||
/* free old action */
|
/* free old action */
|
||||||
if (cur_action)
|
if (cur_action)
|
||||||
|
@ -1351,23 +1497,8 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
}
|
}
|
||||||
init_action(cur_action);
|
init_action(cur_action);
|
||||||
|
|
||||||
/*
|
/* trim { */
|
||||||
* Copy the buffer before messing with it as we may need the
|
strlcpy(actions_buf, buf + 1, sizeof(actions_buf));
|
||||||
* unmodified version in for the fatal error messages. Given
|
|
||||||
* that this is not a common event, we could instead simply
|
|
||||||
* read the line again.
|
|
||||||
*
|
|
||||||
* buf + 1 to skip the leading '{'
|
|
||||||
*/
|
|
||||||
actions_buf = strdup(buf + 1);
|
|
||||||
if (actions_buf == NULL)
|
|
||||||
{
|
|
||||||
fclose(fp);
|
|
||||||
log_error(LOG_LEVEL_FATAL,
|
|
||||||
"can't load actions file '%s': out of memory",
|
|
||||||
csp->config->actions_file[fileid]);
|
|
||||||
return 1; /* never get here */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* check we have a trailing } and then trim it */
|
/* check we have a trailing } and then trim it */
|
||||||
end = actions_buf + strlen(actions_buf) - 1;
|
end = actions_buf + strlen(actions_buf) - 1;
|
||||||
|
@ -1375,9 +1506,8 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
{
|
{
|
||||||
/* No closing } */
|
/* No closing } */
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
freez(actions_buf);
|
log_error(LOG_LEVEL_FATAL,
|
||||||
log_error(LOG_LEVEL_FATAL, "can't load actions file '%s': "
|
"can't load actions file '%s': invalid line (%lu): %s",
|
||||||
"Missing trailing '}' in action section starting at line (%lu): %s",
|
|
||||||
csp->config->actions_file[fileid], linenum, buf);
|
csp->config->actions_file[fileid], linenum, buf);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
@ -1390,21 +1520,11 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
{
|
{
|
||||||
/* error */
|
/* error */
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
freez(actions_buf);
|
log_error(LOG_LEVEL_FATAL,
|
||||||
log_error(LOG_LEVEL_FATAL, "can't load actions file '%s': "
|
"can't load actions file '%s': invalid line (%lu): %s",
|
||||||
"can't completely parse the action section starting at line (%lu): %s",
|
|
||||||
csp->config->actions_file[fileid], linenum, buf);
|
csp->config->actions_file[fileid], linenum, buf);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (action_spec_is_valid(csp, cur_action))
|
|
||||||
{
|
|
||||||
log_error(LOG_LEVEL_ERROR, "Invalid action section in file '%s', "
|
|
||||||
"starting at line %lu: %s",
|
|
||||||
csp->config->actions_file[fileid], linenum, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
freez(actions_buf);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (mode == MODE_SETTINGS)
|
else if (mode == MODE_SETTINGS)
|
||||||
|
@ -1428,8 +1548,8 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
csp->config->actions_file[fileid]);
|
csp->config->actions_file[fileid]);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
|
||||||
num_fields = ssplit(version_string, ".", fields, SZ(fields), TRUE, FALSE);
|
num_fields = ssplit(version_string, ".", fields, 3, TRUE, FALSE);
|
||||||
|
|
||||||
if (num_fields < 1 || atoi(fields[0]) == 0)
|
if (num_fields < 1 || atoi(fields[0]) == 0)
|
||||||
{
|
{
|
||||||
|
@ -1538,7 +1658,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
}
|
}
|
||||||
else if (mode == MODE_ACTIONS)
|
else if (mode == MODE_ACTIONS)
|
||||||
{
|
{
|
||||||
/* it's an URL pattern */
|
/* it's a URL pattern */
|
||||||
|
|
||||||
/* allocate a new node */
|
/* allocate a new node */
|
||||||
if ((perm = zalloc(sizeof(*perm))) == NULL)
|
if ((perm = zalloc(sizeof(*perm))) == NULL)
|
||||||
|
@ -1558,7 +1678,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
{
|
{
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
log_error(LOG_LEVEL_FATAL,
|
log_error(LOG_LEVEL_FATAL,
|
||||||
"can't load actions file '%s': line %lu: cannot create URL or TAG pattern from: %s",
|
"can't load actions file '%s': line %lu: cannot create URL pattern from: %s",
|
||||||
csp->config->actions_file[fileid], linenum, buf);
|
csp->config->actions_file[fileid], linenum, buf);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
@ -1572,7 +1692,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
/* oops - please have a {} line as 1st line in file. */
|
/* oops - please have a {} line as 1st line in file. */
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
log_error(LOG_LEVEL_FATAL,
|
log_error(LOG_LEVEL_FATAL,
|
||||||
"can't load actions file '%s': line %lu should begin with a '{': %s",
|
"can't load actions file '%s': first needed line (%lu) is invalid: %s",
|
||||||
csp->config->actions_file[fileid], linenum, buf);
|
csp->config->actions_file[fileid], linenum, buf);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
|
@ -1585,7 +1705,6 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
csp->config->actions_file[fileid], mode);
|
csp->config->actions_file[fileid], mode);
|
||||||
return 1; /* never get here */
|
return 1; /* never get here */
|
||||||
}
|
}
|
||||||
freez(buf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
@ -1619,7 +1738,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
|
||||||
*
|
*
|
||||||
* Description : Converts a actionsfile entry from the internal
|
* Description : Converts a actionsfile entry from the internal
|
||||||
* structure into a text line. The output is split
|
* structure into a text line. The output is split
|
||||||
* into one line for each action with line continuation.
|
* into one line for each action with line continuation.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : action = The action to format.
|
* 1 : action = The action to format.
|
||||||
|
@ -1704,7 +1823,7 @@ char * actions_to_text(const struct action_spec *action)
|
||||||
* Function : actions_to_html
|
* Function : actions_to_html
|
||||||
*
|
*
|
||||||
* Description : Converts a actionsfile entry from numeric form
|
* Description : Converts a actionsfile entry from numeric form
|
||||||
* ("mask" and "add") to a <br>-separated HTML string
|
* ("mask" and "add") to a <br>-seperated HTML string
|
||||||
* in which each action is linked to its chapter in
|
* in which each action is linked to its chapter in
|
||||||
* the user manual.
|
* the user manual.
|
||||||
*
|
*
|
||||||
|
@ -1810,12 +1929,12 @@ char * actions_to_html(const struct client_state *csp,
|
||||||
*
|
*
|
||||||
* Function : current_actions_to_html
|
* Function : current_actions_to_html
|
||||||
*
|
*
|
||||||
* Description : Converts a curren action spec to a <br> separated HTML
|
* Description : Converts a curren action spec to a <br> seperated HTML
|
||||||
* text in which each action is linked to its chapter in
|
* text in which each action is linked to its chapter in
|
||||||
* the user manual.
|
* the user manual.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : csp = Client state (for config)
|
* 1 : csp = Client state (for config)
|
||||||
* 2 : action = Current action spec to be converted
|
* 2 : action = Current action spec to be converted
|
||||||
*
|
*
|
||||||
* Returns : A string. Caller must free it.
|
* Returns : A string. Caller must free it.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef ACTIONS_H_INCLUDED
|
#ifndef ACTIONS_H_INCLUDED
|
||||||
#define ACTIONS_H_INCLUDED
|
#define ACTIONS_H_INCLUDED
|
||||||
#define ACTIONS_H_VERSION "$Id: actions.h,v 1.20 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define ACTIONS_H_VERSION "$Id: actions.h,v 1.18 2008/03/30 14:52:00 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/actions.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/actions.h,v $
|
||||||
|
@ -12,10 +12,10 @@
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -33,8 +33,87 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: actions.h,v $
|
||||||
|
* Revision 1.18 2008/03/30 14:52:00 fabiankeil
|
||||||
|
* Rename load_actions_file() and load_re_filterfile()
|
||||||
|
* as they load multiple files "now".
|
||||||
|
*
|
||||||
|
* Revision 1.17 2008/01/28 20:17:40 fabiankeil
|
||||||
|
* - Mark some parameters as immutable.
|
||||||
|
* - Hide update_action_bits_for_all_tags() while it's unused.
|
||||||
|
*
|
||||||
|
* Revision 1.16 2007/04/17 18:21:45 fabiankeil
|
||||||
|
* Split update_action_bits() into
|
||||||
|
* update_action_bits_for_all_tags()
|
||||||
|
* and update_action_bits_for_tag().
|
||||||
|
*
|
||||||
|
* Revision 1.15 2007/04/15 16:39:20 fabiankeil
|
||||||
|
* Introduce tags as alternative way to specify which
|
||||||
|
* actions apply to a request. At the moment tags can be
|
||||||
|
* created based on client and server headers.
|
||||||
|
*
|
||||||
|
* Revision 1.14 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/05/06 07:56:50 oes
|
||||||
|
* Made actions_to_html independent of FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/04/30 11:14:52 oes
|
||||||
|
* Made csp the first parameter in *action_to_html
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/04/26 12:53:33 oes
|
||||||
|
* - actions_to_html signature change
|
||||||
|
* - current_action_to_text: renamed to current_action_to_html
|
||||||
|
* and signature change
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/16 23:54:06 jongfoster
|
||||||
|
* Adding graceful termination feature, to help look for memory leaks.
|
||||||
|
* If you enable this (which, by design, has to be done by hand
|
||||||
|
* editing config.h) and then go to http://i.j.b/die, then the program
|
||||||
|
* will exit cleanly after the *next* request. It should free all the
|
||||||
|
* memory that was used.
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/10/23 21:30:30 jongfoster
|
||||||
|
* Adding error-checking to selected functions.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/10/14 21:58:22 jongfoster
|
||||||
|
* Adding support for the CGI-based editor:
|
||||||
|
* - Exported get_actions()
|
||||||
|
* - Added new function free_alias_list()
|
||||||
|
* - Added support for {{settings}} and {{description}} blocks
|
||||||
|
* in the actions file. They are currently ignored.
|
||||||
|
* - Added restriction to only one {{alias}} block which must appear
|
||||||
|
* first in the file, to simplify the editor's rewriting rules.
|
||||||
|
* - Note that load_actions_file() is no longer used by the CGI-based
|
||||||
|
* editor, but some of the other routines in this file are.
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/09/16 15:47:37 jongfoster
|
||||||
|
* First version of CGI-based edit interface. This is very much a
|
||||||
|
* work-in-progress, and you can't actually use it to edit anything
|
||||||
|
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||||
|
* to have any effect.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/09/14 00:17:32 jongfoster
|
||||||
|
* Tidying up memory allocation. New function init_action().
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/07/29 19:01:11 jongfoster
|
||||||
|
* Changed _FILENAME_H to FILENAME_H_INCLUDED.
|
||||||
|
* Added forward declarations for needed structures.
|
||||||
|
*
|
||||||
|
* Revision 1.1 2001/05/31 21:16:46 jongfoster
|
||||||
|
* Moved functions to process the action list into this new file.
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -56,27 +135,27 @@ struct action_alias
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
extern jb_err get_actions (char *line,
|
extern jb_err get_actions (char *line,
|
||||||
struct action_alias * alias_list,
|
struct action_alias * alias_list,
|
||||||
struct action_spec *cur_action);
|
struct action_spec *cur_action);
|
||||||
extern void free_alias_list(struct action_alias *alias_list);
|
extern void free_alias_list(struct action_alias *alias_list);
|
||||||
|
|
||||||
extern void init_action(struct action_spec *dest);
|
extern void init_action(struct action_spec *dest);
|
||||||
extern void free_action(struct action_spec *src);
|
extern void free_action(struct action_spec *src);
|
||||||
extern jb_err merge_actions (struct action_spec *dest,
|
extern jb_err merge_actions (struct action_spec *dest,
|
||||||
const struct action_spec *src);
|
const struct action_spec *src);
|
||||||
#if 0
|
#if 0
|
||||||
extern int update_action_bits_for_all_tags(struct client_state *csp);
|
extern int update_action_bits_for_all_tags(struct client_state *csp);
|
||||||
#endif
|
#endif
|
||||||
extern int update_action_bits_for_tag(struct client_state *csp, const char *tag);
|
extern int update_action_bits_for_tag(struct client_state *csp, const char *tag);
|
||||||
extern jb_err copy_action (struct action_spec *dest,
|
extern jb_err copy_action (struct action_spec *dest,
|
||||||
const struct action_spec *src);
|
const struct action_spec *src);
|
||||||
extern char * actions_to_text (const struct action_spec *action);
|
extern char * actions_to_text (const struct action_spec *action);
|
||||||
extern char * actions_to_html (const struct client_state *csp,
|
extern char * actions_to_html (const struct client_state *csp,
|
||||||
const struct action_spec *action);
|
const struct action_spec *action);
|
||||||
extern void init_current_action (struct current_action_spec *dest);
|
extern void init_current_action (struct current_action_spec *dest);
|
||||||
extern void free_current_action (struct current_action_spec *src);
|
extern void free_current_action (struct current_action_spec *src);
|
||||||
extern jb_err merge_current_action (struct current_action_spec *dest,
|
extern jb_err merge_current_action (struct current_action_spec *dest,
|
||||||
const struct action_spec *src);
|
const struct action_spec *src);
|
||||||
extern char * current_action_to_html(const struct client_state *csp,
|
extern char * current_action_to_html(const struct client_state *csp,
|
||||||
const struct current_action_spec *action);
|
const struct current_action_spec *action);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const char amiga_rcs[] = "$Id: amiga.c,v 1.14 2011/09/04 11:10:56 fabiankeil Exp $";
|
const char amiga_rcs[] = "$Id: amiga.c,v 1.12 2007/01/07 07:40:52 joergs Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/amiga.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/amiga.c,v $
|
||||||
|
@ -8,7 +8,7 @@ const char amiga_rcs[] = "$Id: amiga.c,v 1.14 2011/09/04 11:10:56 fabiankeil Exp
|
||||||
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -26,8 +26,66 @@ const char amiga_rcs[] = "$Id: amiga.c,v 1.14 2011/09/04 11:10:56 fabiankeil Exp
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: amiga.c,v $
|
||||||
|
* Revision 1.12 2007/01/07 07:40:52 joergs
|
||||||
|
* Added AmigaOS4 support and made it work on AmigaOS 3.x with current sources.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/25 19:32:15 joergs
|
||||||
|
* Name in version string changed from junkbuster to Privoxy.
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/09 20:03:52 jongfoster
|
||||||
|
* - Making various functions return int rather than size_t.
|
||||||
|
* (Undoing a recent change). Since size_t is unsigned on
|
||||||
|
* Windows, functions like read_socket that return -1 on
|
||||||
|
* error cannot return a size_t.
|
||||||
|
*
|
||||||
|
* THIS WAS A MAJOR BUG - it caused frequent, unpredictable
|
||||||
|
* crashes, and also frequently caused JB to jump to 100%
|
||||||
|
* CPU and stay there. (Because it thought it had just
|
||||||
|
* read ((unsigned)-1) == 4Gb of data...)
|
||||||
|
*
|
||||||
|
* - The signature of write_socket has changed, it now simply
|
||||||
|
* returns success=0/failure=nonzero.
|
||||||
|
*
|
||||||
|
* - Trying to get rid of a few warnings --with-debug on
|
||||||
|
* Windows, I've introduced a new type "jb_socket". This is
|
||||||
|
* used for the socket file descriptors. On Windows, this
|
||||||
|
* is SOCKET (a typedef for unsigned). Everywhere else, it's
|
||||||
|
* an int. The error value can't be -1 any more, so it's
|
||||||
|
* now JB_INVALID_SOCKET (which is -1 on UNIX, and in
|
||||||
|
* Windows it maps to the #define INVALID_SOCKET.)
|
||||||
|
*
|
||||||
|
* - The signature of bind_port has changed.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/03/03 09:18:03 joergs
|
||||||
|
* Made jumbjuster work on AmigaOS again.
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/10/07 15:35:13 oes
|
||||||
|
* Replaced 6 boolean members of csp with one bitmap (csp->flags)
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/09/12 22:54:51 joergs
|
||||||
|
* Stacksize of main thread increased.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/23 00:13:58 joergs
|
||||||
|
* AmigaOS support fixed.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:46 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifdef AMIGA
|
#ifdef AMIGA
|
||||||
#ifndef AMIGA_H_INCLUDED
|
#ifndef AMIGA_H_INCLUDED
|
||||||
#define AMIGA_H_INCLUDED
|
#define AMIGA_H_INCLUDED
|
||||||
#define AMIGA_H_VERSION "$Id: amiga.h,v 1.14 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define AMIGA_H_VERSION "$Id: amiga.h,v 1.12 2007/01/07 07:40:52 joergs Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/amiga.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/amiga.h,v $
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -29,8 +29,47 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: amiga.h,v $
|
||||||
|
* Revision 1.12 2007/01/07 07:40:52 joergs
|
||||||
|
* Added AmigaOS4 support and made it work on AmigaOS 3.x with current sources.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/03 09:18:03 joergs
|
||||||
|
* Made jumbjuster work on AmigaOS again.
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/10/13 12:46:08 joergs
|
||||||
|
* Added #undef EINTR to avoid warnings
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/07/29 18:43:08 jongfoster
|
||||||
|
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||||
|
* ANSI C rules.
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/05/29 20:05:06 joergs
|
||||||
|
* Fixed exit() macro not exiting if called before InitAmiga()
|
||||||
|
* (junkbuster --help and --version).
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/05/25 21:53:27 jongfoster
|
||||||
|
* Fixing indentation
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/23 00:13:58 joergs
|
||||||
|
* AmigaOS support fixed.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:46 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#define _KERNEL
|
#define _KERNEL
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,24 @@
|
||||||
#ifndef CGI_H_INCLUDED
|
#ifndef CGI_H_INCLUDED
|
||||||
#define CGI_H_INCLUDED
|
#define CGI_H_INCLUDED
|
||||||
#define CGI_H_VERSION "$Id: cgi.h,v 1.41 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define CGI_H_VERSION "$Id: cgi.h,v 1.35 2008/05/21 15:24:37 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/cgi.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/cgi.h,v $
|
||||||
*
|
*
|
||||||
* Purpose : Declares functions to intercept request, generate
|
* Purpose : Declares functions to intercept request, generate
|
||||||
* html or gif answers, and to compose HTTP resonses.
|
* html or gif answers, and to compose HTTP resonses.
|
||||||
*
|
*
|
||||||
* Functions declared include:
|
* Functions declared include:
|
||||||
|
*
|
||||||
*
|
*
|
||||||
*
|
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
|
||||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -36,8 +36,161 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: cgi.h,v $
|
||||||
|
* Revision 1.35 2008/05/21 15:24:37 fabiankeil
|
||||||
|
* Mark csp as immutable for a bunch of functions.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2008/04/17 14:40:48 fabiankeil
|
||||||
|
* Provide get_http_time() with the buffer size so it doesn't
|
||||||
|
* have to blindly assume that the buffer is big enough.
|
||||||
|
*
|
||||||
|
* Revision 1.33 2007/01/28 13:41:17 fabiankeil
|
||||||
|
* - Add HEAD support to finish_http_response.
|
||||||
|
* - Add error favicon to internal HTML error messages.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2006/12/17 17:53:39 fabiankeil
|
||||||
|
* Suppress the toggle link if remote toggling is disabled.
|
||||||
|
*
|
||||||
|
* Revision 1.31 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.29.2.2 2004/02/17 13:30:23 oes
|
||||||
|
* Moved cgi_error_disabled() from cgiedit.c to
|
||||||
|
* cgi.c to re-enable build with --disable-editor.
|
||||||
|
* Fixes Bug #892744. Thanks to Matthew Fischer
|
||||||
|
* for spotting.
|
||||||
|
*
|
||||||
|
* Revision 1.29.2.1 2003/12/17 16:33:28 oes
|
||||||
|
* Added prototype of new function cgi_redirect
|
||||||
|
*
|
||||||
|
* Revision 1.29 2002/05/19 11:33:21 jongfoster
|
||||||
|
* If a CGI error was not handled, and propogated back to
|
||||||
|
* dispatch_known_cgi(), then it was assumed to be "out of memory".
|
||||||
|
* This gave a very misleading error message.
|
||||||
|
*
|
||||||
|
* Now other errors will cause a simple message giving the error
|
||||||
|
* number and asking the user to report a bug.
|
||||||
|
*
|
||||||
|
* Bug report:
|
||||||
|
* http://sourceforge.net/tracker/index.php?func=detail
|
||||||
|
* &aid=557905&group_id=11118&atid=111118
|
||||||
|
*
|
||||||
|
* Revision 1.28 2002/04/26 12:54:03 oes
|
||||||
|
* New function add_help_link
|
||||||
|
*
|
||||||
|
* Revision 1.27 2002/04/24 02:16:51 oes
|
||||||
|
* Moved get_char_param, get_string_param and get_number_param here from cgiedit.c
|
||||||
|
*
|
||||||
|
* Revision 1.26 2002/04/10 13:38:35 oes
|
||||||
|
* load_template signature changed
|
||||||
|
*
|
||||||
|
* Revision 1.25 2002/04/08 20:50:25 swa
|
||||||
|
* fixed JB spelling
|
||||||
|
*
|
||||||
|
* Revision 1.24 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.23 2002/03/24 16:18:15 jongfoster
|
||||||
|
* Removing old logo
|
||||||
|
*
|
||||||
|
* Revision 1.22 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.21 2002/03/07 03:48:38 oes
|
||||||
|
* - Changed built-in images from GIF to PNG
|
||||||
|
* (with regard to Unisys patent issue)
|
||||||
|
* - Added a 4x4 pattern PNG which is less intrusive
|
||||||
|
* than the logo but also clearly marks the deleted banners
|
||||||
|
*
|
||||||
|
* Revision 1.20 2002/03/04 17:53:22 oes
|
||||||
|
* Fixed compiled warning
|
||||||
|
*
|
||||||
|
* Revision 1.19 2002/01/21 00:33:52 jongfoster
|
||||||
|
* Adding map_block_keep() to save a few bytes in the edit-actions-list HTML.
|
||||||
|
*
|
||||||
|
* Revision 1.18 2001/11/16 00:46:31 jongfoster
|
||||||
|
* Fixing compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.17 2001/10/23 21:48:19 jongfoster
|
||||||
|
* Cleaning up error handling in CGI functions - they now send back
|
||||||
|
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||||
|
* potential source of "denial of service" attacks).
|
||||||
|
*
|
||||||
|
* CGI actions file editor that works and is actually useful.
|
||||||
|
*
|
||||||
|
* Ability to toggle Junkbuster remotely using a CGI call.
|
||||||
|
*
|
||||||
|
* You can turn off both the above features in the main configuration
|
||||||
|
* file, e.g. if you are running a multi-user proxy.
|
||||||
|
*
|
||||||
|
* Revision 1.16 2001/09/16 17:08:54 jongfoster
|
||||||
|
* Moving simple CGI functions from cgi.c to new file cgisimple.c
|
||||||
|
*
|
||||||
|
* Revision 1.15 2001/09/16 15:02:35 jongfoster
|
||||||
|
* Adding i.j.b/robots.txt.
|
||||||
|
* Inlining add_stats() since it's only ever called from one place.
|
||||||
|
*
|
||||||
|
* Revision 1.14 2001/09/16 11:38:02 jongfoster
|
||||||
|
* Splitting fill_template() into 2 functions:
|
||||||
|
* template_load() loads the file
|
||||||
|
* template_fill() performs the PCRS regexps.
|
||||||
|
* This is because the CGI edit interface has a "table row"
|
||||||
|
* template which is used many times in the page - this
|
||||||
|
* change means it's only loaded from disk once.
|
||||||
|
*
|
||||||
|
* Revision 1.13 2001/09/16 11:00:10 jongfoster
|
||||||
|
* New function alloc_http_response, for symmetry with free_http_response
|
||||||
|
*
|
||||||
|
* Revision 1.12 2001/09/13 23:31:25 jongfoster
|
||||||
|
* Moving image data to cgi.c rather than cgi.h.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2001/08/05 16:06:20 jongfoster
|
||||||
|
* Modifiying "struct map" so that there are now separate header and
|
||||||
|
* "map_entry" structures. This means that functions which modify a
|
||||||
|
* map no longer need to return a pointer to the modified map.
|
||||||
|
* Also, it no longer reverses the order of the entries (which may be
|
||||||
|
* important with some advanced template substitutions).
|
||||||
|
*
|
||||||
|
* Revision 1.10 2001/08/01 21:19:22 jongfoster
|
||||||
|
* Moving file version information to a separate CGI page.
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/08/01 00:17:54 jongfoster
|
||||||
|
* Adding prototype for map_conditional
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/07/30 22:08:36 jongfoster
|
||||||
|
* Tidying up #defines:
|
||||||
|
* - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
* - Permanently turned off WIN_GUI_EDIT
|
||||||
|
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/07/29 18:43:08 jongfoster
|
||||||
|
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||||
|
* ANSI C rules.
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/06/29 21:45:41 oes
|
||||||
|
* Indentation, CRLF->LF, Tab-> Space
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/06/29 13:22:44 oes
|
||||||
|
* - Cleaned up
|
||||||
|
* - Added new functions: default_exports(), make_menu(),
|
||||||
|
* error_response() etc, ranamed others and changed
|
||||||
|
* param and return types.
|
||||||
|
* - Removed HTTP/HTML snipplets
|
||||||
|
* - Removed logentry from cancelled commit
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/06/09 10:50:58 jongfoster
|
||||||
|
* Changing "show URL info" handler to new style.
|
||||||
|
* Adding "extern" to some function prototypes.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/06/03 19:12:16 oes
|
||||||
|
* introduced new cgi handling
|
||||||
|
*
|
||||||
|
* No revisions before 1.3
|
||||||
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "project.h"
|
#include "project.h"
|
||||||
|
|
||||||
|
@ -51,8 +204,9 @@ extern "C" {
|
||||||
extern struct http_response *dispatch_cgi(struct client_state *csp);
|
extern struct http_response *dispatch_cgi(struct client_state *csp);
|
||||||
|
|
||||||
/* Not exactly a CGI */
|
/* Not exactly a CGI */
|
||||||
extern struct http_response *error_response(struct client_state *csp,
|
extern struct http_response * error_response(struct client_state *csp,
|
||||||
const char *templatename);
|
const char *templatename,
|
||||||
|
int err);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CGI support functions
|
* CGI support functions
|
||||||
|
@ -69,7 +223,7 @@ extern jb_err map_block_killer (struct map *exports, const char *name);
|
||||||
extern jb_err map_block_keep (struct map *exports, const char *name);
|
extern jb_err map_block_keep (struct map *exports, const char *name);
|
||||||
extern jb_err map_conditional (struct map *exports, const char *name, int choose_first);
|
extern jb_err map_conditional (struct map *exports, const char *name, int choose_first);
|
||||||
|
|
||||||
extern jb_err template_load(const struct client_state *csp, char ** template_ptr,
|
extern jb_err template_load(const struct client_state *csp, char ** template_ptr,
|
||||||
const char *templatename, int recursive);
|
const char *templatename, int recursive);
|
||||||
extern jb_err template_fill(char ** template_ptr, const struct map *exports);
|
extern jb_err template_fill(char ** template_ptr, const struct map *exports);
|
||||||
extern jb_err template_fill_for_cgi(const struct client_state *csp,
|
extern jb_err template_fill_for_cgi(const struct client_state *csp,
|
||||||
|
@ -101,14 +255,6 @@ extern jb_err get_string_param(const struct map *parameters,
|
||||||
const char **pparam);
|
const char **pparam);
|
||||||
extern char get_char_param(const struct map *parameters,
|
extern char get_char_param(const struct map *parameters,
|
||||||
const char *param_name);
|
const char *param_name);
|
||||||
#ifdef FEATURE_COMPRESSION
|
|
||||||
/*
|
|
||||||
* Minimum length which a buffer has to reach before
|
|
||||||
* we bother to (re-)compress it. Completely arbitrary.
|
|
||||||
*/
|
|
||||||
extern const size_t LOWER_LENGTH_LIMIT_FOR_COMPRESSION;
|
|
||||||
extern char *compress_buffer(char *buffer, size_t *buffer_length, int compression_level);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Text generators
|
* Text generators
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.71 2011/11/18 16:47:08 fabiankeil Exp $";
|
const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.65 2009/03/08 14:19:22 fabiankeil Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/cgiedit.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/cgiedit.c,v $
|
||||||
|
@ -40,8 +40,361 @@ const char cgiedit_rcs[] = "$Id: cgiedit.c,v 1.71 2011/11/18 16:47:08 fabiankeil
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: cgiedit.c,v $
|
||||||
|
* Revision 1.65 2009/03/08 14:19:22 fabiankeil
|
||||||
|
* Fix justified (but harmless) compiler warnings
|
||||||
|
* on platforms where sizeof(int) < sizeof(long).
|
||||||
|
*
|
||||||
|
* Revision 1.64 2009/03/01 18:43:09 fabiankeil
|
||||||
|
* Fix cparser warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.63 2008/12/04 18:15:38 fabiankeil
|
||||||
|
* Fix some cparser warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.62 2008/08/31 15:59:02 fabiankeil
|
||||||
|
* There's no reason to let remote toggling support depend
|
||||||
|
* on FEATURE_CGI_EDIT_ACTIONS, so make sure it doesn't.
|
||||||
|
*
|
||||||
|
* Revision 1.61 2008/03/24 18:12:52 fabiankeil
|
||||||
|
* Use sizeof() more often.
|
||||||
|
*
|
||||||
|
* Revision 1.60 2008/03/15 14:52:35 fabiankeil
|
||||||
|
* Add CGI editor support for the "disable all filters of this type"
|
||||||
|
* directives "-client-header-filter", "-server-header-filter",
|
||||||
|
* "-client-header-tagger" and "-server-header-tagger".
|
||||||
|
*
|
||||||
|
* Revision 1.59 2008/03/08 16:25:56 fabiankeil
|
||||||
|
* After three file modification time mismatches, turn the CGI editor off.
|
||||||
|
*
|
||||||
|
* Revision 1.58 2007/11/28 17:57:01 fabiankeil
|
||||||
|
* Fix double free in cgi_edit_actions_list().
|
||||||
|
* Reported by adlab in BR#1840145.
|
||||||
|
*
|
||||||
|
* Revision 1.57 2007/10/27 13:32:23 fabiankeil
|
||||||
|
* Plug minor 5-year-old memory leak. Spotted by
|
||||||
|
* Valgrind and triggered by Privoxy-Regression-Test.
|
||||||
|
*
|
||||||
|
* Revision 1.56 2007/08/05 13:47:03 fabiankeil
|
||||||
|
* #1763173 from Stefan Huehner: s@const static@static const@.
|
||||||
|
*
|
||||||
|
* Revision 1.55 2007/05/31 11:50:20 fabiankeil
|
||||||
|
* Re-enable support for old-school URLs like
|
||||||
|
* http://config.privoxy.org/edit-actions-list?f=default
|
||||||
|
* in the action editor.
|
||||||
|
*
|
||||||
|
* They are no longer used by the CGI pages, but make it easier
|
||||||
|
* to reach the editor directly, without knowing the requested
|
||||||
|
* file's index in csp->config->actions_file[].
|
||||||
|
*
|
||||||
|
* Revision 1.54 2007/05/14 10:33:51 fabiankeil
|
||||||
|
* - Use strlcpy() and strlcat() instead of strcpy() and strcat().
|
||||||
|
*
|
||||||
|
* Revision 1.53 2007/04/15 16:39:20 fabiankeil
|
||||||
|
* Introduce tags as alternative way to specify which
|
||||||
|
* actions apply to a request. At the moment tags can be
|
||||||
|
* created based on client and server headers.
|
||||||
|
*
|
||||||
|
* Revision 1.52 2007/04/12 10:41:23 fabiankeil
|
||||||
|
* - Don't mistake VC++'s _snprintf() for a snprintf() replacement.
|
||||||
|
* - Move some cgi_edit_actions_for_url() variables into structs.
|
||||||
|
* - Remove bogus comment.
|
||||||
|
*
|
||||||
|
* Revision 1.51 2007/04/08 13:21:05 fabiankeil
|
||||||
|
* Reference action files in CGI URLs by id instead
|
||||||
|
* of using the first part of the file name.
|
||||||
|
* Fixes BR 1694250 and BR 1590556.
|
||||||
|
*
|
||||||
|
* Revision 1.50 2007/03/29 11:40:34 fabiankeil
|
||||||
|
* Divide @filter-params@ into @client-header-filter-params@
|
||||||
|
* @content-filter-params@ and @server-header-filter-params@.
|
||||||
|
*
|
||||||
|
* Revision 1.49 2007/03/20 15:16:34 fabiankeil
|
||||||
|
* Use dedicated header filter actions instead of abusing "filter".
|
||||||
|
* Replace "filter-client-headers" and "filter-client-headers"
|
||||||
|
* with "server-header-filter" and "client-header-filter".
|
||||||
|
*
|
||||||
|
* Revision 1.48 2007/02/13 14:35:25 fabiankeil
|
||||||
|
* Replace hash escaping code to prevent
|
||||||
|
* crashes, memory and file corruption.
|
||||||
|
*
|
||||||
|
* Revision 1.47 2006/12/28 18:04:25 fabiankeil
|
||||||
|
* Fixed gcc43 conversion warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.46 2006/12/27 18:44:52 fabiankeil
|
||||||
|
* Stop shadowing string.h's index().
|
||||||
|
*
|
||||||
|
* Revision 1.45 2006/12/21 12:57:48 fabiankeil
|
||||||
|
* Add config option "split-large-forms"
|
||||||
|
* to work around the browser bug reported
|
||||||
|
* in BR #1570678.
|
||||||
|
*
|
||||||
|
* Revision 1.44 2006/12/09 13:49:16 fabiankeil
|
||||||
|
* Fix configure option --disable-toggle.
|
||||||
|
* Thanks to Peter Thoenen for reporting this.
|
||||||
|
*
|
||||||
|
* Revision 1.43 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.12 2006/01/30 15:16:25 david__schmidt
|
||||||
|
* Remove a little residual debugging info
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.11 2006/01/29 23:10:56 david__schmidt
|
||||||
|
* Multiple filter file support
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.10 2005/07/04 03:13:43 david__schmidt
|
||||||
|
* Undo some damaging memory leak patches
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.9 2005/07/04 00:31:04 david__schmidt
|
||||||
|
* Removing a double free
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.8 2005/05/07 21:50:54 david__schmidt
|
||||||
|
* A few memory leaks plugged (mostly on error paths)
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.7 2004/02/17 13:30:23 oes
|
||||||
|
* Moved cgi_error_disabled() from cgiedit.c to
|
||||||
|
* cgi.c to re-enable build with --disable-editor.
|
||||||
|
* Fixes Bug #892744. Thanks to Matthew Fischer
|
||||||
|
* for spotting.
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.6 2003/12/18 08:13:48 oes
|
||||||
|
* One line lost in last commit
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.5 2003/12/17 16:33:47 oes
|
||||||
|
* - All edit functions that redirect back to the list page
|
||||||
|
* now use cgi_redirect
|
||||||
|
* - All redirects now contain useless parameter "foo", whose
|
||||||
|
* value are raw seconds since epoch, in order to force
|
||||||
|
* Opera and Konqueror to properly reload the list. Closes
|
||||||
|
* bug #859993
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.4 2003/03/11 11:53:59 oes
|
||||||
|
* Cosmetic: Renamed cryptic variable
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.3 2002/11/12 15:01:41 oes
|
||||||
|
* Fix: Don't free uninitialized struct editable_file
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.2 2002/08/05 20:02:59 oes
|
||||||
|
* Bugfix: "Insert new section at top" did not work properly if first non-comment line in file was of type FILE_LINE_ACTION
|
||||||
|
*
|
||||||
|
* Revision 1.41.2.1 2002/08/02 12:43:14 oes
|
||||||
|
* Fixed bug #588514: first_time now set on a per-string basis in actions_from_radio; javascriptify now called on copies
|
||||||
|
*
|
||||||
|
* Revision 1.41 2002/05/21 19:09:45 oes
|
||||||
|
* - Made Add/Edit/Remove URL Submit and Cancel
|
||||||
|
* buttons jump back to relevant section in eal
|
||||||
|
* - Bugfix: remove-url-form needs p export
|
||||||
|
*
|
||||||
|
* Revision 1.40 2002/05/19 11:34:35 jongfoster
|
||||||
|
* Handling read-only actions files better - report the actual
|
||||||
|
* error, not "Out of memory"!
|
||||||
|
*
|
||||||
|
* Bug report:
|
||||||
|
* http://sourceforge.net/tracker/index.php?func=detail
|
||||||
|
* &aid=557905&group_id=11118&atid=111118
|
||||||
|
*
|
||||||
|
* Revision 1.39 2002/05/12 21:39:15 jongfoster
|
||||||
|
* - Adding Doxygen-style comments to structures and #defines.
|
||||||
|
* - Correcting function comments
|
||||||
|
*
|
||||||
|
* Revision 1.38 2002/05/03 23:00:38 jongfoster
|
||||||
|
* Support for templates for "standard actions" buttons.
|
||||||
|
* See bug #549871
|
||||||
|
*
|
||||||
|
* Revision 1.37 2002/04/30 11:14:52 oes
|
||||||
|
* Made csp the first parameter in *action_to_html
|
||||||
|
*
|
||||||
|
* Revision 1.36 2002/04/26 21:53:30 jongfoster
|
||||||
|
* Fixing a memory leak. (Near, but not caused by, my earlier commit).
|
||||||
|
*
|
||||||
|
* Revision 1.35 2002/04/26 21:50:02 jongfoster
|
||||||
|
* Honouring default exports in edit-actions-for-url-filter template.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2002/04/26 12:54:17 oes
|
||||||
|
* Adaptions to changes in actions.c
|
||||||
|
*
|
||||||
|
* Revision 1.33 2002/04/24 02:17:47 oes
|
||||||
|
* - Moved get_char_param, get_string_param and get_number_param to cgi.c
|
||||||
|
* - Comments
|
||||||
|
* - Activated Jon's code for editing multiple AFs
|
||||||
|
* - cgi_edit_list_actions now provides context-sensitive
|
||||||
|
* help, looks up all action sets from standard.action and
|
||||||
|
* makes buttons for them in the catchall section
|
||||||
|
* - cgi_edit_action_submit now honors a p parameter, looks up
|
||||||
|
* the corresponding action set, and sets the catchall pattern's
|
||||||
|
* actions accordingly.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2002/04/19 16:55:31 jongfoster
|
||||||
|
* Fixing newline problems. If we do our own text file newline
|
||||||
|
* mangling, we don't want the library to do any, so we need to
|
||||||
|
* open the files in *binary* mode.
|
||||||
|
*
|
||||||
|
* Revision 1.31 2002/04/18 19:21:08 jongfoster
|
||||||
|
* Added code to detect "conventional" action files, that start
|
||||||
|
* with a set of actions for all URLs (the pattern "/").
|
||||||
|
* These are special-cased in the "edit-actions-list" CGI, so
|
||||||
|
* that a special UI can be written for them.
|
||||||
|
*
|
||||||
|
* Revision 1.30 2002/04/10 13:38:35 oes
|
||||||
|
* load_template signature changed
|
||||||
|
*
|
||||||
|
* Revision 1.29 2002/04/08 16:59:08 oes
|
||||||
|
* Fixed comment
|
||||||
|
*
|
||||||
|
* Revision 1.28 2002/03/27 12:30:29 oes
|
||||||
|
* Deleted unsused variable
|
||||||
|
*
|
||||||
|
* Revision 1.27 2002/03/26 23:06:04 jongfoster
|
||||||
|
* Removing duplicate @ifs on the toggle page
|
||||||
|
*
|
||||||
|
* Revision 1.26 2002/03/26 22:59:17 jongfoster
|
||||||
|
* Fixing /toggle to display status consistently.
|
||||||
|
*
|
||||||
|
* Revision 1.25 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.24 2002/03/24 15:23:33 jongfoster
|
||||||
|
* Name changes
|
||||||
|
*
|
||||||
|
* Revision 1.23 2002/03/24 13:32:41 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.22 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.21 2002/03/22 18:02:48 jongfoster
|
||||||
|
* Fixing remote toggle
|
||||||
|
*
|
||||||
|
* Revision 1.20 2002/03/16 20:28:34 oes
|
||||||
|
* Added descriptions to the filters so users will know what they select in the cgi editor
|
||||||
|
*
|
||||||
|
* Revision 1.19 2002/03/16 18:38:14 jongfoster
|
||||||
|
* Stopping stupid or malicious users from breaking the actions
|
||||||
|
* file using the web-based editor.
|
||||||
|
*
|
||||||
|
* Revision 1.18 2002/03/16 14:57:44 jongfoster
|
||||||
|
* Full support for enabling/disabling modular filters.
|
||||||
|
*
|
||||||
|
* Revision 1.17 2002/03/16 14:26:42 jongfoster
|
||||||
|
* First version of modular filters support - READ ONLY!
|
||||||
|
* Fixing a double-free bug in the out-of-memory handling in map_radio().
|
||||||
|
*
|
||||||
|
* Revision 1.16 2002/03/07 03:46:17 oes
|
||||||
|
* Fixed compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.15 2002/03/06 22:54:35 jongfoster
|
||||||
|
* Automated function-comment nitpicking.
|
||||||
|
*
|
||||||
|
* Revision 1.14 2002/03/05 00:24:51 jongfoster
|
||||||
|
* Patch to always edit the current actions file.
|
||||||
|
*
|
||||||
|
* Revision 1.13 2002/03/04 02:07:59 david__schmidt
|
||||||
|
* Enable web editing of actions file on OS/2 (it had been broken all this time!)
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/03/03 09:18:03 joergs
|
||||||
|
* Made jumbjuster work on AmigaOS again.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/01/23 01:03:31 jongfoster
|
||||||
|
* Fixing gcc [CygWin] compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/01/23 00:22:59 jongfoster
|
||||||
|
* Adding new function cgi_edit_actions_section_swap(), to reorder
|
||||||
|
* the actions file.
|
||||||
|
*
|
||||||
|
* Adding get_url_spec_param() to get a validated URL pattern.
|
||||||
|
*
|
||||||
|
* Moving edit_read_line() out of this file and into loaders.c.
|
||||||
|
*
|
||||||
|
* Adding missing html_encode() to many CGI functions.
|
||||||
|
*
|
||||||
|
* Moving the functions that #include actionlist.h to the end of the file,
|
||||||
|
* because the Visual C++ 97 debugger gets extremely confused if you try
|
||||||
|
* to debug any code that comes after them in the file.
|
||||||
|
*
|
||||||
|
* Major optimizations in cgi_edit_actions_list() to reduce the size of
|
||||||
|
* the generated HTML (down 40% from 550k to 304k), with major side-effects
|
||||||
|
* throughout the editor and templates. In particular, the length of the
|
||||||
|
* URLs throughout the editor has been drastically reduced, by cutting
|
||||||
|
* paramater names down to 1 character and CGI names down to 3-4
|
||||||
|
* characters, by removing all non-essential CGI paramaters even at the
|
||||||
|
* expense of having to re-read the actions file for the most trivial
|
||||||
|
* page, and by using relative rather than absolute URLs. This means
|
||||||
|
* that this (typical example):
|
||||||
|
*
|
||||||
|
* <a href="http://ijbswa.sourceforge.net/config/edit-actions-url-form?
|
||||||
|
* filename=ijb&ver=1011487572&section=12&pattern=13
|
||||||
|
* &oldval=www.oesterhelt.org%2Fdeanimate-demo">
|
||||||
|
*
|
||||||
|
* is now this:
|
||||||
|
*
|
||||||
|
* <a href="eau?f=ijb&v=1011487572&p=13">
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/01/17 20:56:22 jongfoster
|
||||||
|
* Replacing hard references to the URL of the config interface
|
||||||
|
* with #defines from project.h
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/11/30 23:35:51 jongfoster
|
||||||
|
* Renaming actionsfile to ijb.action
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/11/13 00:28:24 jongfoster
|
||||||
|
* - Renaming parameters from edit-actions-for-url so that they only
|
||||||
|
* contain legal JavaScript characters. If we wanted to write
|
||||||
|
* JavaScript that worked with Netscape 4, this is nessacery.
|
||||||
|
* (Note that at the moment the JavaScript doesn't actually work
|
||||||
|
* with Netscape 4, but now this is purely a template issue, not
|
||||||
|
* one affecting code).
|
||||||
|
* - Adding new CGIs for use by non-JavaScript browsers:
|
||||||
|
* edit-actions-url-form
|
||||||
|
* edit-actions-add-url-form
|
||||||
|
* edit-actions-remove-url-form
|
||||||
|
* - Fixing || bug.
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/10/29 03:48:09 david__schmidt
|
||||||
|
* OS/2 native needed a snprintf() routine. Added one to miscutil, brackedted
|
||||||
|
* by and __OS2__ ifdef.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/10/25 03:40:48 david__schmidt
|
||||||
|
* Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
|
||||||
|
* threads to call select() simultaneously. So, it's time to do a real, live,
|
||||||
|
* native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
|
||||||
|
* (native). Both versions will work, but using __OS2__ offers multi-threading.
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/10/23 21:48:19 jongfoster
|
||||||
|
* Cleaning up error handling in CGI functions - they now send back
|
||||||
|
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||||
|
* potential source of "denial of service" attacks).
|
||||||
|
*
|
||||||
|
* CGI actions file editor that works and is actually useful.
|
||||||
|
*
|
||||||
|
* Ability to toggle JunkBuster remotely using a CGI call.
|
||||||
|
*
|
||||||
|
* You can turn off both the above features in the main configuration
|
||||||
|
* file, e.g. if you are running a multi-user proxy.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/10/14 22:12:49 jongfoster
|
||||||
|
* New version of CGI-based actionsfile editor.
|
||||||
|
* Major changes, including:
|
||||||
|
* - Completely new file parser and file output routines
|
||||||
|
* - edit-actions CGI renamed edit-actions-for-url
|
||||||
|
* - All CGIs now need a filename parameter, except for...
|
||||||
|
* - New CGI edit-actions which doesn't need a filename,
|
||||||
|
* to allow you to start the editor up.
|
||||||
|
* - edit-actions-submit now works, and now automatically
|
||||||
|
* redirects you back to the main edit-actions-list handler.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/09/16 17:05:14 jongfoster
|
||||||
|
* Removing unused #include showarg.h
|
||||||
|
*
|
||||||
|
* Revision 1.1 2001/09/16 15:47:37 jongfoster
|
||||||
|
* First version of CGI-based edit interface. This is very much a
|
||||||
|
* work-in-progress, and you can't actually use it to edit anything
|
||||||
|
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||||
|
* to have any effect.
|
||||||
|
*
|
||||||
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -85,10 +438,10 @@ struct file_line
|
||||||
{
|
{
|
||||||
/** Next entry in the linked list */
|
/** Next entry in the linked list */
|
||||||
struct file_line * next;
|
struct file_line * next;
|
||||||
|
|
||||||
/** The raw data, to write out if this line is unmodified. */
|
/** The raw data, to write out if this line is unmodified. */
|
||||||
char * raw;
|
char * raw;
|
||||||
|
|
||||||
/** Comments and/or whitespace to put before this line if it's modified
|
/** Comments and/or whitespace to put before this line if it's modified
|
||||||
and then written out. */
|
and then written out. */
|
||||||
char * prefix;
|
char * prefix;
|
||||||
|
@ -97,7 +450,7 @@ struct file_line
|
||||||
are performed on the data read from file before it's stored here, so
|
are performed on the data read from file before it's stored here, so
|
||||||
it will be a single line of data. */
|
it will be a single line of data. */
|
||||||
char * unprocessed;
|
char * unprocessed;
|
||||||
|
|
||||||
/** The type of data on this line. One of the FILE_LINE_xxx constants. */
|
/** The type of data on this line. One of the FILE_LINE_xxx constants. */
|
||||||
int type;
|
int type;
|
||||||
|
|
||||||
|
@ -321,10 +674,15 @@ static jb_err actions_from_radio(const struct map * parameters,
|
||||||
static jb_err map_copy_parameter_html(struct map *out,
|
static jb_err map_copy_parameter_html(struct map *out,
|
||||||
const struct map *in,
|
const struct map *in,
|
||||||
const char *name);
|
const char *name);
|
||||||
|
#if 0 /* unused function */
|
||||||
|
static jb_err map_copy_parameter_url(struct map *out,
|
||||||
|
const struct map *in,
|
||||||
|
const char *name);
|
||||||
|
#endif /* unused function */
|
||||||
|
|
||||||
static jb_err get_file_name_param(struct client_state *csp,
|
static jb_err get_file_name_param(struct client_state *csp,
|
||||||
const struct map *parameters,
|
const struct map *parameters,
|
||||||
const char *param_name,
|
const char *param_name,
|
||||||
const char **pfilename);
|
const char **pfilename);
|
||||||
|
|
||||||
/* Internal convenience functions */
|
/* Internal convenience functions */
|
||||||
|
@ -428,6 +786,56 @@ static jb_err map_copy_parameter_html(struct map *out,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0 /* unused function */
|
||||||
|
/*********************************************************************
|
||||||
|
*
|
||||||
|
* Function : map_copy_parameter_url
|
||||||
|
*
|
||||||
|
* Description : Copy a CGI parameter from one map to another, URL
|
||||||
|
* encoding it.
|
||||||
|
*
|
||||||
|
* Parameters :
|
||||||
|
* 1 : out = target map
|
||||||
|
* 2 : in = source map
|
||||||
|
* 3 : name = name of cgi parameter to copy
|
||||||
|
*
|
||||||
|
* Returns : JB_ERR_OK on success
|
||||||
|
* JB_ERR_MEMORY on out-of-memory
|
||||||
|
* JB_ERR_CGI_PARAMS if the parameter doesn't exist
|
||||||
|
* in the source map
|
||||||
|
*
|
||||||
|
*********************************************************************/
|
||||||
|
static jb_err map_copy_parameter_url(struct map *out,
|
||||||
|
const struct map *in,
|
||||||
|
const char *name)
|
||||||
|
{
|
||||||
|
const char * value;
|
||||||
|
jb_err err;
|
||||||
|
|
||||||
|
assert(out);
|
||||||
|
assert(in);
|
||||||
|
assert(name);
|
||||||
|
|
||||||
|
value = lookup(in, name);
|
||||||
|
err = map(out, name, 1, url_encode(value), 0);
|
||||||
|
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
/* Out of memory */
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
else if (*value == '\0')
|
||||||
|
{
|
||||||
|
return JB_ERR_CGI_PARAMS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return JB_ERR_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* 0 - unused function */
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : cgi_edit_actions_url_form
|
* Function : cgi_edit_actions_url_form
|
||||||
|
@ -652,7 +1060,7 @@ jb_err cgi_edit_actions_remove_url_form(struct client_state *csp,
|
||||||
if (cur_line->type == FILE_LINE_ACTION)
|
if (cur_line->type == FILE_LINE_ACTION)
|
||||||
{
|
{
|
||||||
section_start_line_number = line_number;
|
section_start_line_number = line_number;
|
||||||
}
|
}
|
||||||
cur_line = cur_line->next;
|
cur_line = cur_line->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1428,7 +1836,7 @@ jb_err edit_read_file_lines(FILE *fp, struct file_line ** pfile, int *newline)
|
||||||
if (rval)
|
if (rval)
|
||||||
{
|
{
|
||||||
/* Out of memory or empty file. */
|
/* Out of memory or empty file. */
|
||||||
/* Note that empty file is not an error we propagate up */
|
/* Note that empty file is not an error we propogate up */
|
||||||
free(cur_line);
|
free(cur_line);
|
||||||
return ((rval == JB_ERR_FILE) ? JB_ERR_OK : rval);
|
return ((rval == JB_ERR_FILE) ? JB_ERR_OK : rval);
|
||||||
}
|
}
|
||||||
|
@ -1533,7 +1941,7 @@ jb_err edit_read_file(struct client_state *csp,
|
||||||
* Probably an old-school URL like
|
* Probably an old-school URL like
|
||||||
* http://config.privoxy.org/edit-actions-list?f=default
|
* http://config.privoxy.org/edit-actions-list?f=default
|
||||||
*/
|
*/
|
||||||
get_file_name_param(csp, parameters, "f", &filename);
|
err = get_file_name_param(csp, parameters, "f", &filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL == filename || stat(filename, statbuf) < 0)
|
if (NULL == filename || stat(filename, statbuf) < 0)
|
||||||
|
@ -1679,7 +2087,7 @@ jb_err edit_read_actions_file(struct client_state *csp,
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_INFO,
|
log_error(LOG_LEVEL_INFO,
|
||||||
"Timestamp mismatch limit reached, turning CGI editor off. "
|
"Timestamp mismatch limit reached, turning CGI editor off. "
|
||||||
"Reload the configuration file to re-enable it.");
|
"Reload the configuration file to reenable it.");
|
||||||
csp->config->feature_flags &= ~RUNTIME_FEATURE_CGI_EDIT_ACTIONS;
|
csp->config->feature_flags &= ~RUNTIME_FEATURE_CGI_EDIT_ACTIONS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2818,7 +3226,7 @@ jb_err cgi_edit_actions_for_url(struct client_state *csp,
|
||||||
if (!err) err = actions_to_radio(exports, cur_line->data.action);
|
if (!err) err = actions_to_radio(exports, cur_line->data.action);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX: Some browsers (at least IE6 and IE7) have an artificial URL
|
* XXX: Some browsers (at least IE6 and IE7) have an artifical URL
|
||||||
* length limitation and ignore clicks on the Submit buttons if
|
* length limitation and ignore clicks on the Submit buttons if
|
||||||
* the resulting GET URL would be longer than their limit.
|
* the resulting GET URL would be longer than their limit.
|
||||||
*
|
*
|
||||||
|
@ -2827,7 +3235,7 @@ jb_err cgi_edit_actions_for_url(struct client_state *csp,
|
||||||
* browsers (BR #1570678).
|
* browsers (BR #1570678).
|
||||||
*
|
*
|
||||||
* The config option split-large-forms works around this browser
|
* The config option split-large-forms works around this browser
|
||||||
* bug (HTTP has no URL length limitation) by deviding the action
|
* bug (HTTP has no URL lenght limitation) by deviding the action
|
||||||
* list form into multiple smaller ones. It means the URLs are shorter
|
* list form into multiple smaller ones. It means the URLs are shorter
|
||||||
* and work in broken browsers as well, but the user can no longer change
|
* and work in broken browsers as well, but the user can no longer change
|
||||||
* all actions with one submit.
|
* all actions with one submit.
|
||||||
|
@ -3360,7 +3768,7 @@ jb_err cgi_edit_actions_url(struct client_state *csp,
|
||||||
if (cur_line->type == FILE_LINE_ACTION)
|
if (cur_line->type == FILE_LINE_ACTION)
|
||||||
{
|
{
|
||||||
section_start_line_number = line_number;
|
section_start_line_number = line_number;
|
||||||
}
|
}
|
||||||
cur_line = cur_line->next;
|
cur_line = cur_line->next;
|
||||||
line_number++;
|
line_number++;
|
||||||
}
|
}
|
||||||
|
@ -4128,7 +4536,7 @@ jb_err cgi_edit_actions_section_swap(struct client_state *csp,
|
||||||
*
|
*
|
||||||
* Description : Converts a string into a form JavaScript will like.
|
* Description : Converts a string into a form JavaScript will like.
|
||||||
*
|
*
|
||||||
* Netscape 4's JavaScript sucks - it doesn't use
|
* Netscape 4's JavaScript sucks - it doesn't use
|
||||||
* "id" parameters, so you have to set the "name"
|
* "id" parameters, so you have to set the "name"
|
||||||
* used to submit a form element to something JavaScript
|
* used to submit a form element to something JavaScript
|
||||||
* will like. (Or access the elements by index in an
|
* will like. (Or access the elements by index in an
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
#ifndef CGIEDIT_H_INCLUDED
|
#ifndef CGIEDIT_H_INCLUDED
|
||||||
#define CGIEDIT_H_INCLUDED
|
#define CGIEDIT_H_INCLUDED
|
||||||
#define CGIEDIT_H_VERSION "$Id: cgiedit.h,v 1.12 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define CGIEDIT_H_VERSION "$Id: cgiedit.h,v 1.10 2008/08/31 15:59:03 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/cgiedit.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/cgiedit.h,v $
|
||||||
*
|
*
|
||||||
* Purpose : CGI-based actionsfile editor.
|
* Purpose : CGI-based actionsfile editor.
|
||||||
*
|
*
|
||||||
* Functions declared include:
|
* Functions declared include:
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -35,8 +35,72 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: cgiedit.h,v $
|
||||||
|
* Revision 1.10 2008/08/31 15:59:03 fabiankeil
|
||||||
|
* There's no reason to let remote toggling support depend
|
||||||
|
* on FEATURE_CGI_EDIT_ACTIONS, so make sure it doesn't.
|
||||||
|
*
|
||||||
|
* Revision 1.9 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.7.2.2 2004/02/17 13:30:23 oes
|
||||||
|
* Moved cgi_error_disabled() from cgiedit.c to
|
||||||
|
* cgi.c to re-enable build with --disable-editor.
|
||||||
|
* Fixes Bug #892744. Thanks to Matthew Fischer
|
||||||
|
* for spotting.
|
||||||
|
*
|
||||||
|
* Revision 1.7.2.1 2002/11/28 18:15:17 oes
|
||||||
|
* Added cgi_error_disabled
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/01/22 23:24:48 jongfoster
|
||||||
|
* Adding edit-actions-section-swap
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/11/13 00:28:51 jongfoster
|
||||||
|
* Adding new CGIs for use by non-JavaScript browsers:
|
||||||
|
* edit-actions-url-form
|
||||||
|
* edit-actions-add-url-form
|
||||||
|
* edit-actions-remove-url-form
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/10/23 21:48:19 jongfoster
|
||||||
|
* Cleaning up error handling in CGI functions - they now send back
|
||||||
|
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||||
|
* potential source of "denial of service" attacks).
|
||||||
|
*
|
||||||
|
* CGI actions file editor that works and is actually useful.
|
||||||
|
*
|
||||||
|
* Ability to toggle JunkBuster remotely using a CGI call.
|
||||||
|
*
|
||||||
|
* You can turn off both the above features in the main configuration
|
||||||
|
* file, e.g. if you are running a multi-user proxy.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/10/14 22:12:49 jongfoster
|
||||||
|
* New version of CGI-based actionsfile editor.
|
||||||
|
* Major changes, including:
|
||||||
|
* - Completely new file parser and file output routines
|
||||||
|
* - edit-actions CGI renamed edit-actions-for-url
|
||||||
|
* - All CGIs now need a filename parameter, except for...
|
||||||
|
* - New CGI edit-actions which doesn't need a filename,
|
||||||
|
* to allow you to start the editor up.
|
||||||
|
* - edit-actions-submit now works, and now automatically
|
||||||
|
* redirects you back to the main edit-actions-list handler.
|
||||||
|
*
|
||||||
|
* Revision 1.1 2001/09/16 15:47:37 jongfoster
|
||||||
|
* First version of CGI-based edit interface. This is very much a
|
||||||
|
* work-in-progress, and you can't actually use it to edit anything
|
||||||
|
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||||
|
* to have any effect.
|
||||||
|
*
|
||||||
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "project.h"
|
#include "project.h"
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.111 2011/09/04 11:10:56 fabiankeil Exp $";
|
const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.91 2009/03/08 14:19:23 fabiankeil Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
|
||||||
*
|
*
|
||||||
* Purpose : Simple CGIs to get information about Privoxy's
|
* Purpose : Simple CGIs to get information about Privoxy's
|
||||||
* status.
|
* status.
|
||||||
*
|
*
|
||||||
* Functions declared include:
|
* Functions declared include:
|
||||||
|
*
|
||||||
*
|
*
|
||||||
*
|
* Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
|
||||||
* Copyright : Written by and Copyright (C) 2001-2011 the
|
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -34,8 +34,415 @@ const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.111 2011/09/04 11:10:56 fabia
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: cgisimple.c,v $
|
||||||
|
* Revision 1.91 2009/03/08 14:19:23 fabiankeil
|
||||||
|
* Fix justified (but harmless) compiler warnings
|
||||||
|
* on platforms where sizeof(int) < sizeof(long).
|
||||||
|
*
|
||||||
|
* Revision 1.90 2009/03/01 18:43:09 fabiankeil
|
||||||
|
* Fix cparser warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.89 2008/10/11 11:31:14 fabiankeil
|
||||||
|
* Add FEATURE_CONNECTION_KEEP_ALIVE to the list
|
||||||
|
* of conditional defines on the show-status page.
|
||||||
|
*
|
||||||
|
* Revision 1.88 2008/08/30 12:03:07 fabiankeil
|
||||||
|
* Remove FEATURE_COOKIE_JAR.
|
||||||
|
*
|
||||||
|
* Revision 1.87 2008/08/29 15:59:22 fabiankeil
|
||||||
|
* Fix two comments.
|
||||||
|
*
|
||||||
|
* Revision 1.86 2008/06/28 14:19:05 fabiankeil
|
||||||
|
* Protocol detection is done case-insensitive, fix assertion
|
||||||
|
* to do the same. Yay for Privoxy-Regression-Test and zzuf.
|
||||||
|
*
|
||||||
|
* Revision 1.85 2008/05/26 17:30:55 fabiankeil
|
||||||
|
* Provide an OpenSearch Description to access the
|
||||||
|
* show-url-info page through "search engine plugins".
|
||||||
|
*
|
||||||
|
* Revision 1.84 2008/05/26 16:16:55 fabiankeil
|
||||||
|
* Spell error correctly.
|
||||||
|
*
|
||||||
|
* Revision 1.83 2008/05/12 14:51:30 fabiankeil
|
||||||
|
* Don't complain about an invalid URL if show-url-info is requested
|
||||||
|
* without parameters. Regression introduced in 1.81 by yours truly.
|
||||||
|
*
|
||||||
|
* Revision 1.82 2008/05/10 20:01:47 fabiankeil
|
||||||
|
* Fix an assertion that could erroneously
|
||||||
|
* trigger in case of memory shortage.
|
||||||
|
*
|
||||||
|
* Revision 1.81 2008/05/05 09:54:39 fabiankeil
|
||||||
|
* In cgi_show_url_info(), make sure ftp URLs are
|
||||||
|
* declared invalid. Also simplify the code that adds
|
||||||
|
* "http://" if no protocol has been specified.
|
||||||
|
*
|
||||||
|
* Revision 1.80 2008/05/04 16:18:32 fabiankeil
|
||||||
|
* Provide parse_http_url() with a third parameter to specify
|
||||||
|
* whether or not URLs without protocol are acceptable.
|
||||||
|
*
|
||||||
|
* Revision 1.79 2008/05/04 13:30:56 fabiankeil
|
||||||
|
* Streamline parse_http_url()'s prototype.
|
||||||
|
*
|
||||||
|
* Revision 1.78 2008/05/03 16:50:11 fabiankeil
|
||||||
|
* Leverage content_filters_enabled() in cgi_show_url_info().
|
||||||
|
*
|
||||||
|
* Revision 1.77 2008/05/02 09:47:48 fabiankeil
|
||||||
|
* In cgi_show_url_info, pass an initialized http structure
|
||||||
|
* to parse_http_url() as that will be required soonish and
|
||||||
|
* assert that https URLs are recognized correctly.
|
||||||
|
*
|
||||||
|
* Revision 1.76 2008/04/28 09:13:30 fabiankeil
|
||||||
|
* In load_file(), remember the error reason and fclose()
|
||||||
|
* and return later on instead of right away.
|
||||||
|
*
|
||||||
|
* Revision 1.75 2008/04/27 13:52:52 fabiankeil
|
||||||
|
* Move CGI file loading code into load_file() and
|
||||||
|
* add checks for unexpected errors.
|
||||||
|
*
|
||||||
|
* Revision 1.74 2008/04/26 15:50:56 fabiankeil
|
||||||
|
* Fix macro name in cgi_show_file() error path.
|
||||||
|
*
|
||||||
|
* Revision 1.73 2008/04/26 12:21:55 fabiankeil
|
||||||
|
* Forget about JB_ERR_PARSE. JB_ERR_CGI_PARAMS to the rescue.
|
||||||
|
*
|
||||||
|
* Revision 1.72 2008/04/26 10:34:15 fabiankeil
|
||||||
|
* If zlib support is unavailable and there are content filters active
|
||||||
|
* but the prevent-compression action is disabled, include a warning
|
||||||
|
* on the show-url-info page that compression might prevent filtering.
|
||||||
|
*
|
||||||
|
* Revision 1.71 2008/04/25 13:33:56 fabiankeil
|
||||||
|
* - Factor cgi_show_file() out of cgi_show_status().
|
||||||
|
* - Adjust cgi_show_status()'s parameter description to match reality.
|
||||||
|
*
|
||||||
|
* Revision 1.70 2008/04/24 16:12:38 fabiankeil
|
||||||
|
* In cgi_show_status(), load the requested file at once.
|
||||||
|
* Using string_join() for every line really doesn't scale.
|
||||||
|
*
|
||||||
|
* Revision 1.69 2008/04/17 14:40:48 fabiankeil
|
||||||
|
* Provide get_http_time() with the buffer size so it doesn't
|
||||||
|
* have to blindly assume that the buffer is big enough.
|
||||||
|
*
|
||||||
|
* Revision 1.68 2008/03/27 18:27:21 fabiankeil
|
||||||
|
* Remove kill-popups action.
|
||||||
|
*
|
||||||
|
* Revision 1.67 2008/03/27 17:00:05 fabiankeil
|
||||||
|
* Turn the favicon blobs into locals.
|
||||||
|
*
|
||||||
|
* Revision 1.66 2008/02/23 16:57:12 fabiankeil
|
||||||
|
* Rename url_actions() to get_url_actions() and let it
|
||||||
|
* use the standard parameter ordering.
|
||||||
|
*
|
||||||
|
* Revision 1.65 2008/02/23 16:33:43 fabiankeil
|
||||||
|
* Let forward_url() use the standard parameter ordering
|
||||||
|
* and mark its second parameter immutable.
|
||||||
|
*
|
||||||
|
* Revision 1.64 2008/02/03 13:56:07 fabiankeil
|
||||||
|
* Add SOCKS5 support for show-url-info CGI page.
|
||||||
|
*
|
||||||
|
* Revision 1.63 2008/02/01 06:04:31 fabiankeil
|
||||||
|
* If edit buttons on the show-url-info CGI page are hidden, explain why.
|
||||||
|
*
|
||||||
|
* Revision 1.62 2008/02/01 05:52:40 fabiankeil
|
||||||
|
* Hide edit buttons on the show-url-info CGI page if enable-edit-action
|
||||||
|
* is disabled. Patch by Lee with additional white space adjustments.
|
||||||
|
*
|
||||||
|
* Revision 1.61 2008/01/26 11:13:25 fabiankeil
|
||||||
|
* If enable-edit-actions is disabled, hide the edit buttons and explain why.
|
||||||
|
*
|
||||||
|
* Revision 1.60 2007/10/27 13:12:13 fabiankeil
|
||||||
|
* Finish 1.49 and check write access before
|
||||||
|
* showing edit buttons on show-url-info page.
|
||||||
|
*
|
||||||
|
* Revision 1.59 2007/10/19 16:42:36 fabiankeil
|
||||||
|
* Plug memory leak I introduced five months ago.
|
||||||
|
* Yay Valgrind and Privoxy-Regression-Test.
|
||||||
|
*
|
||||||
|
* Revision 1.58 2007/07/21 12:19:50 fabiankeil
|
||||||
|
* If show-url-info is called with an URL that Privoxy
|
||||||
|
* would reject as invalid, don't show unresolved forwarding
|
||||||
|
* variables, "final matches" or claim the site's secure.
|
||||||
|
*
|
||||||
|
* Revision 1.57 2007/06/01 16:53:05 fabiankeil
|
||||||
|
* Adjust cgi_show_url_info() to show what forward-override{}
|
||||||
|
* would do with the requested URL (instead of showing how the
|
||||||
|
* request for the CGI page would be forwarded if it wasn't a
|
||||||
|
* CGI request).
|
||||||
|
*
|
||||||
|
* Revision 1.56 2007/05/21 10:50:35 fabiankeil
|
||||||
|
* - Use strlcpy() instead of strcpy().
|
||||||
|
* - Stop treating actions files special. Expect a complete file name
|
||||||
|
* (with or without path) like it's done for the rest of the files.
|
||||||
|
* Closes FR#588084.
|
||||||
|
* - Don't rerun sed() in cgi_show_request().
|
||||||
|
*
|
||||||
|
* Revision 1.55 2007/04/13 13:36:46 fabiankeil
|
||||||
|
* Reference action files in CGI URLs by id instead
|
||||||
|
* of using the first part of the file name.
|
||||||
|
* Fixes BR 1694250 and BR 1590556.
|
||||||
|
*
|
||||||
|
* Revision 1.54 2007/04/09 18:11:35 fabiankeil
|
||||||
|
* Don't mistake VC++'s _snprintf() for a snprintf() replacement.
|
||||||
|
*
|
||||||
|
* Revision 1.53 2007/04/08 13:21:04 fabiankeil
|
||||||
|
* Reference action files in CGI URLs by id instead
|
||||||
|
* of using the first part of the file name.
|
||||||
|
* Fixes BR 1694250 and BR 1590556.
|
||||||
|
*
|
||||||
|
* Revision 1.52 2007/02/13 15:10:26 fabiankeil
|
||||||
|
* Apparently fopen()ing in "binary" mode doesn't require
|
||||||
|
* #ifdefs, it's already done without them in cgiedit.c.
|
||||||
|
*
|
||||||
|
* Revision 1.51 2007/02/10 16:55:22 fabiankeil
|
||||||
|
* - Show forwarding settings on the show-url-info page
|
||||||
|
* - Fix some HTML syntax errors.
|
||||||
|
*
|
||||||
|
* Revision 1.50 2007/01/23 15:51:17 fabiankeil
|
||||||
|
* Add favicon delivery functions.
|
||||||
|
*
|
||||||
|
* Revision 1.49 2007/01/20 16:29:38 fabiankeil
|
||||||
|
* Suppress edit buttons for action files if Privoxy has
|
||||||
|
* no write access. Suggested by Roland in PR 1564026.
|
||||||
|
*
|
||||||
|
* Revision 1.48 2007/01/20 15:31:31 fabiankeil
|
||||||
|
* Display warning if show-url-info CGI page
|
||||||
|
* is used while Privoxy is toggled off.
|
||||||
|
*
|
||||||
|
* Revision 1.47 2007/01/12 15:07:10 fabiankeil
|
||||||
|
* Use zalloc in cgi_send_user_manual.
|
||||||
|
*
|
||||||
|
* Revision 1.46 2007/01/02 12:49:46 fabiankeil
|
||||||
|
* Add FEATURE_ZLIB to the list of conditional
|
||||||
|
* defines at the show-status page.
|
||||||
|
*
|
||||||
|
* Revision 1.45 2006/12/28 18:16:41 fabiankeil
|
||||||
|
* Fixed gcc43 compiler warnings, zero out cgi_send_user_manual's
|
||||||
|
* body memory before using it, replaced sprintf calls with snprintf.
|
||||||
|
*
|
||||||
|
* Revision 1.44 2006/12/22 14:19:27 fabiankeil
|
||||||
|
* Removed checks whether or not AF_FILES have
|
||||||
|
* data structures associated with them in cgi_show_status.
|
||||||
|
* It doesn't matter as we're only interested in the file names.
|
||||||
|
*
|
||||||
|
* For the action files the checks were always true,
|
||||||
|
* but they prevented empty filter files from being
|
||||||
|
* listed. Fixes parts of BR 1619208.
|
||||||
|
*
|
||||||
|
* Revision 1.43 2006/12/17 17:57:56 fabiankeil
|
||||||
|
* - Added FEATURE_GRACEFUL_TERMINATION to the
|
||||||
|
* "conditional #defines" section
|
||||||
|
* - Escaped ampersands in generated HTML.
|
||||||
|
* - Renamed re-filter-filename to re-filter-filenames
|
||||||
|
*
|
||||||
|
* Revision 1.42 2006/11/21 15:43:12 fabiankeil
|
||||||
|
* Add special treatment for WIN32 to make sure
|
||||||
|
* cgi_send_user_manual opens the files in binary mode.
|
||||||
|
* Fixes BR 1600411 and unbreaks image delivery.
|
||||||
|
*
|
||||||
|
* Remove outdated comment.
|
||||||
|
*
|
||||||
|
* Revision 1.41 2006/10/09 19:18:28 roro
|
||||||
|
* Redirect http://p.p/user-manual (without trailing slash) to
|
||||||
|
* http://p.p/user-manual/ (with trailing slash), otherwise links will be broken.
|
||||||
|
*
|
||||||
|
* Revision 1.40 2006/09/09 13:05:33 fabiankeil
|
||||||
|
* Modified cgi_send_user_manual to serve binary
|
||||||
|
* content without destroying it first. Should also be
|
||||||
|
* faster now. Added ".jpg" check for Content-Type guessing.
|
||||||
|
*
|
||||||
|
* Revision 1.39 2006/09/08 09:49:23 fabiankeil
|
||||||
|
* Deliver documents in the user-manual directory
|
||||||
|
* with "Content-Type text/css" if their filename
|
||||||
|
* ends with ".css".
|
||||||
|
*
|
||||||
|
* Revision 1.38 2006/09/06 18:45:03 fabiankeil
|
||||||
|
* Incorporate modified version of Roland Rosenfeld's patch to
|
||||||
|
* optionally access the user-manual via Privoxy. Closes patch 679075.
|
||||||
|
*
|
||||||
|
* Formatting changed to Privoxy style, added call to
|
||||||
|
* cgi_error_no_template if the requested file doesn't
|
||||||
|
* exist and modified check whether or not Privoxy itself
|
||||||
|
* should serve the manual. Should work cross-platform now.
|
||||||
|
*
|
||||||
|
* Revision 1.37 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.7 2006/01/29 23:10:56 david__schmidt
|
||||||
|
* Multiple filter file support
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.6 2005/07/04 03:13:43 david__schmidt
|
||||||
|
* Undo some damaging memory leak patches
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.5 2005/05/07 21:50:55 david__schmidt
|
||||||
|
* A few memory leaks plugged (mostly on error paths)
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.4 2005/04/04 02:21:24 david__schmidt
|
||||||
|
* Another instance of:
|
||||||
|
* Don't show "Edit" buttons #ifndef FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
* Thanks to Magnus Holmgren for the patch
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.3 2003/12/17 16:34:15 oes
|
||||||
|
* - Prevent line wrap beween "View/Edit" link buttons on status page
|
||||||
|
* - Some (mostly irrelevant) fixes for Out-of-mem-case handling
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.2 2003/04/03 13:48:28 oes
|
||||||
|
* Don't show "Edit" buttons #ifndef FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.1 2002/07/04 15:02:38 oes
|
||||||
|
* Added ability to send redirects to send-banner CGI, so that it can completely mimic the image blocking action if called with type=auto
|
||||||
|
*
|
||||||
|
* Revision 1.35.2.1 2002/07/01 17:32:04 morcego
|
||||||
|
* Applying patch from Andreas as provided by Hal on the list.
|
||||||
|
* Message-ID: <20020701121218.V1606@feenix.burgiss.net>
|
||||||
|
*
|
||||||
|
* Revision 1.35 2002/05/12 21:44:44 jongfoster
|
||||||
|
* Adding amiga.[ch] revision information, if on an amiga.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2002/04/30 12:06:12 oes
|
||||||
|
* Deleted unused code from default_cgi
|
||||||
|
*
|
||||||
|
* Revision 1.33 2002/04/30 11:14:52 oes
|
||||||
|
* Made csp the first parameter in *action_to_html
|
||||||
|
*
|
||||||
|
* Revision 1.32 2002/04/26 18:29:13 jongfoster
|
||||||
|
* Fixing this Visual C++ warning:
|
||||||
|
* cgisimple.c(775) : warning C4018: '<' : signed/unsigned mismatch
|
||||||
|
*
|
||||||
|
* Revision 1.31 2002/04/26 12:54:36 oes
|
||||||
|
* - Kill obsolete REDIRECT_URL code
|
||||||
|
* - Error handling fixes
|
||||||
|
* - Style sheet related HTML snipplet changes
|
||||||
|
* - cgi_show_url_info:
|
||||||
|
* - Matches now in table, actions on single lines,
|
||||||
|
* linked to help
|
||||||
|
* - standard.action suppressed
|
||||||
|
* - Buttons to View and Edit AFs
|
||||||
|
*
|
||||||
|
* Revision 1.30 2002/04/24 02:18:08 oes
|
||||||
|
* - show-status is now the starting point for editing
|
||||||
|
* the actions files, generate list of all AFs with buttons
|
||||||
|
* for viewing and editing, new look for file list (Jon:
|
||||||
|
* buttons now aligned ;-P ), view mode now supports multiple
|
||||||
|
* AFs, name changes, no view links for unspecified files,
|
||||||
|
* no edit link for standard.action.
|
||||||
|
*
|
||||||
|
* - Jon's multiple AF patch: cgi_show_url_info now uses all
|
||||||
|
* AFs and marks the output accordingly
|
||||||
|
*
|
||||||
|
* Revision 1.29 2002/04/10 13:38:35 oes
|
||||||
|
* load_template signature changed
|
||||||
|
*
|
||||||
|
* Revision 1.28 2002/04/07 15:42:12 jongfoster
|
||||||
|
* Fixing send-banner?type=auto when the image-blocker is
|
||||||
|
* a redirect to send-banner
|
||||||
|
*
|
||||||
|
* Revision 1.27 2002/04/05 15:50:48 oes
|
||||||
|
* added send-stylesheet CGI
|
||||||
|
*
|
||||||
|
* Revision 1.26 2002/04/04 00:36:36 gliptak
|
||||||
|
* always use pcre for matching
|
||||||
|
*
|
||||||
|
* Revision 1.25 2002/04/03 22:28:03 gliptak
|
||||||
|
* Removed references to gnu_regex
|
||||||
|
*
|
||||||
|
* Revision 1.24 2002/04/02 16:12:47 oes
|
||||||
|
* Fix: moving misplaced lines into #ifdef FEATURE_FORCE
|
||||||
|
*
|
||||||
|
* Revision 1.23 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.22 2002/03/24 16:18:15 jongfoster
|
||||||
|
* Removing old logo
|
||||||
|
*
|
||||||
|
* Revision 1.21 2002/03/24 15:23:33 jongfoster
|
||||||
|
* Name changes
|
||||||
|
*
|
||||||
|
* Revision 1.20 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.19 2002/03/16 23:54:06 jongfoster
|
||||||
|
* Adding graceful termination feature, to help look for memory leaks.
|
||||||
|
* If you enable this (which, by design, has to be done by hand
|
||||||
|
* editing config.h) and then go to http://i.j.b/die, then the program
|
||||||
|
* will exit cleanly after the *next* request. It should free all the
|
||||||
|
* memory that was used.
|
||||||
|
*
|
||||||
|
* Revision 1.18 2002/03/12 01:44:49 oes
|
||||||
|
* Changed default for "blocked" image from jb logo to checkboard pattern
|
||||||
|
*
|
||||||
|
* Revision 1.17 2002/03/08 16:43:18 oes
|
||||||
|
* Added choice beween GIF and PNG built-in images
|
||||||
|
*
|
||||||
|
* Revision 1.16 2002/03/07 03:48:38 oes
|
||||||
|
* - Changed built-in images from GIF to PNG
|
||||||
|
* (with regard to Unisys patent issue)
|
||||||
|
* - Added a 4x4 pattern PNG which is less intrusive
|
||||||
|
* than the logo but also clearly marks the deleted banners
|
||||||
|
*
|
||||||
|
* Revision 1.15 2002/03/06 22:54:35 jongfoster
|
||||||
|
* Automated function-comment nitpicking.
|
||||||
|
*
|
||||||
|
* Revision 1.14 2002/03/02 04:14:50 david__schmidt
|
||||||
|
* Clean up a little CRLF unpleasantness that suddenly appeared
|
||||||
|
*
|
||||||
|
* Revision 1.13 2002/02/21 00:10:37 jongfoster
|
||||||
|
* Adding send-banner?type=auto option
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/01/23 01:03:32 jongfoster
|
||||||
|
* Fixing gcc [CygWin] compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/01/23 00:01:04 jongfoster
|
||||||
|
* Adding cgi_transparent_gif() for http://i.j.b/t
|
||||||
|
* Adding missing html_encode() to many CGI functions.
|
||||||
|
* Adding urlmatch.[ch] to http://i.j.b/show-version
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/01/17 21:10:37 jongfoster
|
||||||
|
* Changes to cgi_show_url_info to use new matching code from urlmatch.c.
|
||||||
|
* Also fixing a problem in the same function with improperly quoted URLs
|
||||||
|
* in output HTML, and adding code to handle https:// URLs correctly.
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/11/30 23:09:15 jongfoster
|
||||||
|
* Now reports on FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
* Removing FEATURE_DENY_GZIP from template
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/11/13 00:14:07 jongfoster
|
||||||
|
* Fixing stupid bug now I've figured out what || means.
|
||||||
|
* (It always returns 0 or 1, not one of it's paramaters.)
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/10/23 21:48:19 jongfoster
|
||||||
|
* Cleaning up error handling in CGI functions - they now send back
|
||||||
|
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||||
|
* potential source of "denial of service" attacks).
|
||||||
|
*
|
||||||
|
* CGI actions file editor that works and is actually useful.
|
||||||
|
*
|
||||||
|
* Ability to toggle JunkBuster remotely using a CGI call.
|
||||||
|
*
|
||||||
|
* You can turn off both the above features in the main configuration
|
||||||
|
* file, e.g. if you are running a multi-user proxy.
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/10/14 22:00:32 jongfoster
|
||||||
|
* Adding support for a 404 error when an invalid CGI page is requested.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/10/07 15:30:41 oes
|
||||||
|
* Removed FEATURE_DENY_GZIP
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/10/02 15:31:12 oes
|
||||||
|
* Introduced show-request cgi
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/09/22 16:34:44 jongfoster
|
||||||
|
* Removing unneeded #includes
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/09/19 18:01:11 oes
|
||||||
|
* Fixed comments; cosmetics
|
||||||
|
*
|
||||||
|
* Revision 1.1 2001/09/16 17:08:54 jongfoster
|
||||||
|
* Moving simple CGI functions from cgi.c to new file cgisimple.c
|
||||||
|
*
|
||||||
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -80,7 +487,7 @@ static jb_err load_file(const char *filename, char **buffer, size_t *length);
|
||||||
* Description : CGI function that is called for the CGI_SITE_1_HOST
|
* Description : CGI function that is called for the CGI_SITE_1_HOST
|
||||||
* and CGI_SITE_2_HOST/CGI_SITE_2_PATH base URLs.
|
* and CGI_SITE_2_HOST/CGI_SITE_2_PATH base URLs.
|
||||||
* Boring - only exports the default exports.
|
* Boring - only exports the default exports.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
* 1 : csp = Current client state (buffers, headers, etc...)
|
||||||
* 2 : rsp = http_response data structure for output
|
* 2 : rsp = http_response data structure for output
|
||||||
|
@ -118,7 +525,7 @@ jb_err cgi_default(struct client_state *csp,
|
||||||
*
|
*
|
||||||
* Description : CGI function that is called if an unknown action was
|
* Description : CGI function that is called if an unknown action was
|
||||||
* given.
|
* given.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
* 1 : csp = Current client state (buffers, headers, etc...)
|
||||||
* 2 : rsp = http_response data structure for output
|
* 2 : rsp = http_response data structure for output
|
||||||
|
@ -127,7 +534,7 @@ jb_err cgi_default(struct client_state *csp,
|
||||||
* CGI Parameters : none
|
* CGI Parameters : none
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_error_404(struct client_state *csp,
|
jb_err cgi_error_404(struct client_state *csp,
|
||||||
|
@ -165,7 +572,7 @@ jb_err cgi_error_404(struct client_state *csp,
|
||||||
* NOTE: Turning this on in a production build
|
* NOTE: Turning this on in a production build
|
||||||
* would be a BAD idea. An EXTREMELY BAD idea.
|
* would be a BAD idea. An EXTREMELY BAD idea.
|
||||||
* In short, don't do it.
|
* In short, don't do it.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
* 1 : csp = Current client state (buffers, headers, etc...)
|
||||||
* 2 : rsp = http_response data structure for output
|
* 2 : rsp = http_response data structure for output
|
||||||
|
@ -174,27 +581,13 @@ jb_err cgi_error_404(struct client_state *csp,
|
||||||
* CGI Parameters : none
|
* CGI Parameters : none
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_die (struct client_state *csp,
|
jb_err cgi_die (struct client_state *csp,
|
||||||
struct http_response *rsp,
|
struct http_response *rsp,
|
||||||
const struct map *parameters)
|
const struct map *parameters)
|
||||||
{
|
{
|
||||||
static const char status[] = "200 OK Privoxy shutdown request received";
|
|
||||||
static const char body[] =
|
|
||||||
"<html>\n"
|
|
||||||
"<head>\n"
|
|
||||||
" <title>Privoxy shutdown request received</title>\n"
|
|
||||||
" <link rel=\"shortcut icon\" href=\"" CGI_PREFIX "error-favicon.ico\" type=\"image/x-icon\">\n"
|
|
||||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"http://config.privoxy.org/send-stylesheet\">\n"
|
|
||||||
"</head>\n"
|
|
||||||
"<body>\n"
|
|
||||||
"<h1>Privoxy shutdown request received</h1>\n"
|
|
||||||
"<p>Privoxy is going to shut down after the next request.</p>\n"
|
|
||||||
"</body>\n"
|
|
||||||
"</html>\n";
|
|
||||||
|
|
||||||
assert(csp);
|
assert(csp);
|
||||||
assert(rsp);
|
assert(rsp);
|
||||||
assert(parameters);
|
assert(parameters);
|
||||||
|
@ -202,21 +595,12 @@ jb_err cgi_die (struct client_state *csp,
|
||||||
/* quit */
|
/* quit */
|
||||||
g_terminate = 1;
|
g_terminate = 1;
|
||||||
|
|
||||||
csp->flags &= ~CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE;
|
/*
|
||||||
|
* I don't really care what gets sent back to the browser.
|
||||||
|
* Take the easy option - "out of memory" page.
|
||||||
|
*/
|
||||||
|
|
||||||
rsp->content_length = 0;
|
return JB_ERR_MEMORY;
|
||||||
rsp->head_length = 0;
|
|
||||||
rsp->is_static = 0;
|
|
||||||
|
|
||||||
rsp->body = strdup(body);
|
|
||||||
rsp->status = strdup(status);
|
|
||||||
|
|
||||||
if ((rsp->body == NULL) || (rsp->status == NULL))
|
|
||||||
{
|
|
||||||
return JB_ERR_MEMORY;
|
|
||||||
}
|
|
||||||
|
|
||||||
return JB_ERR_OK;
|
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_GRACEFUL_TERMINATION */
|
#endif /* def FEATURE_GRACEFUL_TERMINATION */
|
||||||
|
|
||||||
|
@ -227,7 +611,7 @@ jb_err cgi_die (struct client_state *csp,
|
||||||
*
|
*
|
||||||
* Description : Show the client's request and what sed() would have
|
* Description : Show the client's request and what sed() would have
|
||||||
* made of it.
|
* made of it.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
* 1 : csp = Current client state (buffers, headers, etc...)
|
||||||
* 2 : rsp = http_response data structure for output
|
* 2 : rsp = http_response data structure for output
|
||||||
|
@ -236,7 +620,7 @@ jb_err cgi_die (struct client_state *csp,
|
||||||
* CGI Parameters : none
|
* CGI Parameters : none
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_show_request(struct client_state *csp,
|
jb_err cgi_show_request(struct client_state *csp,
|
||||||
|
@ -254,7 +638,7 @@ jb_err cgi_show_request(struct client_state *csp,
|
||||||
{
|
{
|
||||||
return JB_ERR_MEMORY;
|
return JB_ERR_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Repair the damage done to the IOB by get_header()
|
* Repair the damage done to the IOB by get_header()
|
||||||
*/
|
*/
|
||||||
|
@ -289,7 +673,7 @@ jb_err cgi_show_request(struct client_state *csp,
|
||||||
*
|
*
|
||||||
* Function : cgi_send_banner
|
* Function : cgi_send_banner
|
||||||
*
|
*
|
||||||
* Description : CGI function that returns a banner.
|
* Description : CGI function that returns a banner.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : csp = Current client state (buffers, headers, etc...)
|
* 1 : csp = Current client state (buffers, headers, etc...)
|
||||||
|
@ -304,7 +688,7 @@ jb_err cgi_show_request(struct client_state *csp,
|
||||||
* equivalent).
|
* equivalent).
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_send_banner(struct client_state *csp,
|
jb_err cgi_send_banner(struct client_state *csp,
|
||||||
|
@ -317,7 +701,7 @@ jb_err cgi_send_banner(struct client_state *csp,
|
||||||
* If type is auto, then determine the right thing
|
* If type is auto, then determine the right thing
|
||||||
* to do from the set-image-blocker action
|
* to do from the set-image-blocker action
|
||||||
*/
|
*/
|
||||||
if (imagetype == 'a')
|
if (imagetype == 'a')
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Default to pattern
|
* Default to pattern
|
||||||
|
@ -368,14 +752,14 @@ jb_err cgi_send_banner(struct client_state *csp,
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_IMAGE_BLOCKING */
|
#endif /* def FEATURE_IMAGE_BLOCKING */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now imagetype is either the non-auto type we were called with,
|
* Now imagetype is either the non-auto type we were called with,
|
||||||
* or it was auto and has since been determined. In any case, we
|
* or it was auto and has since been determined. In any case, we
|
||||||
* can proceed to actually answering the request by sending a redirect
|
* can proceed to actually answering the request by sending a redirect
|
||||||
* or an image as appropriate:
|
* or an image as appropriate:
|
||||||
*/
|
*/
|
||||||
if (imagetype == 'r')
|
if (imagetype == 'r')
|
||||||
{
|
{
|
||||||
rsp->status = strdup("302 Local Redirect from Privoxy");
|
rsp->status = strdup("302 Local Redirect from Privoxy");
|
||||||
if (rsp->status == NULL)
|
if (rsp->status == NULL)
|
||||||
|
@ -390,7 +774,7 @@ jb_err cgi_send_banner(struct client_state *csp,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((imagetype == 'b') || (imagetype == 't'))
|
if ((imagetype == 'b') || (imagetype == 't'))
|
||||||
{
|
{
|
||||||
rsp->body = bindup(image_blank_data, image_blank_length);
|
rsp->body = bindup(image_blank_data, image_blank_length);
|
||||||
rsp->content_length = image_blank_length;
|
rsp->content_length = image_blank_length;
|
||||||
|
@ -432,7 +816,7 @@ jb_err cgi_send_banner(struct client_state *csp,
|
||||||
* CGI Parameters : None
|
* CGI Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_transparent_image(struct client_state *csp,
|
jb_err cgi_transparent_image(struct client_state *csp,
|
||||||
|
@ -476,7 +860,7 @@ jb_err cgi_transparent_image(struct client_state *csp,
|
||||||
* CGI Parameters : None
|
* CGI Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_send_default_favicon(struct client_state *csp,
|
jb_err cgi_send_default_favicon(struct client_state *csp,
|
||||||
|
@ -537,7 +921,7 @@ jb_err cgi_send_default_favicon(struct client_state *csp,
|
||||||
* CGI Parameters : None
|
* CGI Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_send_error_favicon(struct client_state *csp,
|
jb_err cgi_send_error_favicon(struct client_state *csp,
|
||||||
|
@ -599,7 +983,7 @@ jb_err cgi_send_error_favicon(struct client_state *csp,
|
||||||
* CGI Parameters : None
|
* CGI Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_send_stylesheet(struct client_state *csp,
|
jb_err cgi_send_stylesheet(struct client_state *csp,
|
||||||
|
@ -607,7 +991,7 @@ jb_err cgi_send_stylesheet(struct client_state *csp,
|
||||||
const struct map *parameters)
|
const struct map *parameters)
|
||||||
{
|
{
|
||||||
jb_err err;
|
jb_err err;
|
||||||
|
|
||||||
assert(csp);
|
assert(csp);
|
||||||
assert(rsp);
|
assert(rsp);
|
||||||
|
|
||||||
|
@ -653,7 +1037,7 @@ jb_err cgi_send_stylesheet(struct client_state *csp,
|
||||||
* CGI Parameters : None
|
* CGI Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_send_url_info_osd(struct client_state *csp,
|
jb_err cgi_send_url_info_osd(struct client_state *csp,
|
||||||
|
@ -681,48 +1065,6 @@ jb_err cgi_send_url_info_osd(struct client_state *csp,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
|
||||||
*
|
|
||||||
* Function : get_content_type
|
|
||||||
*
|
|
||||||
* Description : Use the file extension to guess the content type
|
|
||||||
* header we should use to serve the file.
|
|
||||||
*
|
|
||||||
* Parameters :
|
|
||||||
* 1 : filename = Name of the file whose content type
|
|
||||||
* we care about
|
|
||||||
*
|
|
||||||
* Returns : The guessed content type.
|
|
||||||
*
|
|
||||||
*********************************************************************/
|
|
||||||
static const char *get_content_type(const char *filename)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
struct content_type
|
|
||||||
{
|
|
||||||
const char *extension;
|
|
||||||
const char *content_type;
|
|
||||||
};
|
|
||||||
static const struct content_type content_types[] =
|
|
||||||
{
|
|
||||||
{".css", "text/css"},
|
|
||||||
{".jpg", "image/jpeg"},
|
|
||||||
{".jpeg", "image/jpeg"},
|
|
||||||
{".png", "image/png"},
|
|
||||||
};
|
|
||||||
|
|
||||||
for (i = 0; i < SZ(content_types); i++)
|
|
||||||
{
|
|
||||||
if (strstr(filename, content_types[i].extension))
|
|
||||||
{
|
|
||||||
return content_types[i].content_type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* No match by extension, default to html */
|
|
||||||
return "text/html";
|
|
||||||
}
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : cgi_send_user_manual
|
* Function : cgi_send_user_manual
|
||||||
|
@ -739,29 +1081,22 @@ static const char *get_content_type(const char *filename)
|
||||||
* (relative to user-manual from config)
|
* (relative to user-manual from config)
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_send_user_manual(struct client_state *csp,
|
jb_err cgi_send_user_manual(struct client_state *csp,
|
||||||
struct http_response *rsp,
|
struct http_response *rsp,
|
||||||
const struct map *parameters)
|
const struct map *parameters)
|
||||||
{
|
{
|
||||||
const char *filename;
|
const char * filename;
|
||||||
char *full_path;
|
char *full_path;
|
||||||
jb_err err = JB_ERR_OK;
|
jb_err err = JB_ERR_OK;
|
||||||
const char *content_type;
|
size_t length;
|
||||||
|
|
||||||
assert(csp);
|
assert(csp);
|
||||||
assert(rsp);
|
assert(rsp);
|
||||||
assert(parameters);
|
assert(parameters);
|
||||||
|
|
||||||
if (0 == strncmpic(csp->config->usermanual, "http://", 7))
|
|
||||||
{
|
|
||||||
log_error(LOG_LEVEL_CGI, "Request for local user-manual "
|
|
||||||
"received while user-manual delivery is disabled.");
|
|
||||||
return cgi_error_404(csp, rsp, parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!parameters->first)
|
if (!parameters->first)
|
||||||
{
|
{
|
||||||
/* requested http://p.p/user-manual (without trailing slash) */
|
/* requested http://p.p/user-manual (without trailing slash) */
|
||||||
|
@ -769,24 +1104,17 @@ jb_err cgi_send_user_manual(struct client_state *csp,
|
||||||
}
|
}
|
||||||
|
|
||||||
get_string_param(parameters, "file", &filename);
|
get_string_param(parameters, "file", &filename);
|
||||||
if (filename == NULL)
|
/* Check paramter for hack attempts */
|
||||||
|
if (filename && strchr(filename, '/'))
|
||||||
{
|
{
|
||||||
/* It's '/' so serve the index.html if there is one. */
|
return JB_ERR_CGI_PARAMS;
|
||||||
filename = "index.html";
|
|
||||||
}
|
}
|
||||||
else if (NULL != strchr(filename, '/') || NULL != strstr(filename, ".."))
|
if (filename && strstr(filename, ".."))
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* We currently only support a flat file
|
|
||||||
* hierarchy for the documentation.
|
|
||||||
*/
|
|
||||||
log_error(LOG_LEVEL_ERROR,
|
|
||||||
"Rejecting the request to serve '%s' as it contains '/' or '..'",
|
|
||||||
filename);
|
|
||||||
return JB_ERR_CGI_PARAMS;
|
return JB_ERR_CGI_PARAMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
full_path = make_path(csp->config->usermanual, filename);
|
full_path = make_path(csp->config->usermanual, filename ? filename : "index.html");
|
||||||
if (full_path == NULL)
|
if (full_path == NULL)
|
||||||
{
|
{
|
||||||
return JB_ERR_MEMORY;
|
return JB_ERR_MEMORY;
|
||||||
|
@ -805,12 +1133,29 @@ jb_err cgi_send_user_manual(struct client_state *csp,
|
||||||
}
|
}
|
||||||
freez(full_path);
|
freez(full_path);
|
||||||
|
|
||||||
content_type = get_content_type(filename);
|
/* Guess correct Content-Type based on the filename's ending */
|
||||||
log_error(LOG_LEVEL_CGI,
|
if (filename)
|
||||||
"Content-Type guessed for %s: %s", filename, content_type);
|
{
|
||||||
|
length = strlen(filename);
|
||||||
return enlist_unique_header(rsp->headers, "Content-Type", content_type);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
length = 0;
|
||||||
|
}
|
||||||
|
if((length>=4) && !strcmp(&filename[length-4], ".css"))
|
||||||
|
{
|
||||||
|
err = enlist(rsp->headers, "Content-Type: text/css");
|
||||||
|
}
|
||||||
|
else if((length>=4) && !strcmp(&filename[length-4], ".jpg"))
|
||||||
|
{
|
||||||
|
err = enlist(rsp->headers, "Content-Type: image/jpeg");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
err = enlist(rsp->headers, "Content-Type: text/html");
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -829,7 +1174,7 @@ jb_err cgi_send_user_manual(struct client_state *csp,
|
||||||
* CGI Parameters : none
|
* CGI Parameters : none
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_show_version(struct client_state *csp,
|
jb_err cgi_show_version(struct client_state *csp,
|
||||||
|
@ -878,7 +1223,7 @@ jb_err cgi_show_version(struct client_state *csp,
|
||||||
* Default is to show menu and other information.
|
* Default is to show menu and other information.
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_show_status(struct client_state *csp,
|
jb_err cgi_show_status(struct client_state *csp,
|
||||||
|
@ -924,7 +1269,7 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
if (!err) err = map(exports, "options", 1, csp->config->proxy_args, 1);
|
if (!err) err = map(exports, "options", 1, csp->config->proxy_args, 1);
|
||||||
if (!err) err = show_defines(exports);
|
if (!err) err = show_defines(exports);
|
||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
free_map(exports);
|
free_map(exports);
|
||||||
return JB_ERR_MEMORY;
|
return JB_ERR_MEMORY;
|
||||||
|
@ -968,8 +1313,8 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
#else /* ndef FEATURE_STATISTICS */
|
#else /* ndef FEATURE_STATISTICS */
|
||||||
err = err || map_block_killer(exports, "statistics");
|
err = err || map_block_killer(exports, "statistics");
|
||||||
#endif /* ndef FEATURE_STATISTICS */
|
#endif /* ndef FEATURE_STATISTICS */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* List all action files in use, together with view and edit links,
|
* List all action files in use, together with view and edit links,
|
||||||
* except for standard.action, which should only be viewable. (Not
|
* except for standard.action, which should only be viewable. (Not
|
||||||
* enforced in the editor itself)
|
* enforced in the editor itself)
|
||||||
|
@ -1010,7 +1355,7 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
if (!err) err = string_append(&s, "</td></tr>\n");
|
if (!err) err = string_append(&s, "</td></tr>\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (*s != '\0')
|
if (*s != '\0')
|
||||||
{
|
{
|
||||||
if (!err) err = map(exports, "actions-filenames", 1, s, 0);
|
if (!err) err = map(exports, "actions-filenames", 1, s, 0);
|
||||||
}
|
}
|
||||||
|
@ -1019,7 +1364,7 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
if (!err) err = map(exports, "actions-filenames", 1, "<tr><td>None specified</td></tr>", 1);
|
if (!err) err = map(exports, "actions-filenames", 1, "<tr><td>None specified</td></tr>", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* List all re_filterfiles in use, together with view options.
|
* List all re_filterfiles in use, together with view options.
|
||||||
* FIXME: Shouldn't include hardwired HTML here, use line template instead!
|
* FIXME: Shouldn't include hardwired HTML here, use line template instead!
|
||||||
*/
|
*/
|
||||||
|
@ -1036,7 +1381,7 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
if (!err) err = string_append(&s, "</td></tr>\n");
|
if (!err) err = string_append(&s, "</td></tr>\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (*s != '\0')
|
if (*s != '\0')
|
||||||
{
|
{
|
||||||
if (!err) err = map(exports, "re-filter-filenames", 1, s, 0);
|
if (!err) err = map(exports, "re-filter-filenames", 1, s, 0);
|
||||||
}
|
}
|
||||||
|
@ -1076,7 +1421,7 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
return template_fill_for_cgi(csp, "show-status", exports, rsp);
|
return template_fill_for_cgi(csp, "show-status", exports, rsp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : cgi_show_url_info
|
* Function : cgi_show_url_info
|
||||||
|
@ -1097,7 +1442,7 @@ jb_err cgi_show_status(struct client_state *csp,
|
||||||
* the template.
|
* the template.
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_show_url_info(struct client_state *csp,
|
jb_err cgi_show_url_info(struct client_state *csp,
|
||||||
|
@ -1133,7 +1478,7 @@ jb_err cgi_show_url_info(struct client_state *csp,
|
||||||
* 1) "http://" or "https://" prefix present and followed by URL - OK
|
* 1) "http://" or "https://" prefix present and followed by URL - OK
|
||||||
* 2) Only the "http://" or "https://" part is present, no URL - change
|
* 2) Only the "http://" or "https://" part is present, no URL - change
|
||||||
* to empty string so it will be detected later as "no URL".
|
* to empty string so it will be detected later as "no URL".
|
||||||
* 3) Parameter specified but doesn't start with "http(s?)://" - add a
|
* 3) Parameter specified but doesn't contain "http(s?)://" - add a
|
||||||
* "http://" prefix.
|
* "http://" prefix.
|
||||||
* 4) Parameter not specified or is empty string - let this fall through
|
* 4) Parameter not specified or is empty string - let this fall through
|
||||||
* for now, next block of code will handle it.
|
* for now, next block of code will handle it.
|
||||||
|
@ -1160,14 +1505,9 @@ jb_err cgi_show_url_info(struct client_state *csp,
|
||||||
url_param[0] = '\0';
|
url_param[0] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((url_param[0] != '\0')
|
else if ((url_param[0] != '\0') && (NULL == strstr(url_param, "://")))
|
||||||
&& ((NULL == strstr(url_param, "://")
|
|
||||||
|| (strstr(url_param, "://") > strstr(url_param, "/")))))
|
|
||||||
{
|
{
|
||||||
/*
|
/* No prefix - assume http:// */
|
||||||
* No prefix or at least no prefix before
|
|
||||||
* the first slash - assume http://
|
|
||||||
*/
|
|
||||||
char *url_param_prefixed = strdup("http://");
|
char *url_param_prefixed = strdup("http://");
|
||||||
|
|
||||||
if (JB_ERR_OK != string_join(&url_param_prefixed, url_param))
|
if (JB_ERR_OK != string_join(&url_param_prefixed, url_param))
|
||||||
|
@ -1215,7 +1555,7 @@ jb_err cgi_show_url_info(struct client_state *csp,
|
||||||
struct http_request url_to_query[1];
|
struct http_request url_to_query[1];
|
||||||
struct current_action_spec action[1];
|
struct current_action_spec action[1];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (map(exports, "url", 1, html_encode(url_param), 0))
|
if (map(exports, "url", 1, html_encode(url_param), 0))
|
||||||
{
|
{
|
||||||
free(url_param);
|
free(url_param);
|
||||||
|
@ -1503,7 +1843,7 @@ jb_err cgi_show_url_info(struct client_state *csp,
|
||||||
* CGI Parameters : None
|
* CGI Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
jb_err cgi_robots_txt(struct client_state *csp,
|
jb_err cgi_robots_txt(struct client_state *csp,
|
||||||
|
@ -1551,19 +1891,13 @@ jb_err cgi_robots_txt(struct client_state *csp,
|
||||||
* 1 : exports = map to extend
|
* 1 : exports = map to extend
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
static jb_err show_defines(struct map *exports)
|
static jb_err show_defines(struct map *exports)
|
||||||
{
|
{
|
||||||
jb_err err = JB_ERR_OK;
|
jb_err err = JB_ERR_OK;
|
||||||
|
|
||||||
#ifdef FEATURE_ACCEPT_FILTER
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_ACCEPT_FILTER", 1);
|
|
||||||
#else /* ifndef FEATURE_ACCEPT_FILTER */
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_ACCEPT_FILTER", 0);
|
|
||||||
#endif /* ndef FEATURE_ACCEPT_FILTER */
|
|
||||||
|
|
||||||
#ifdef FEATURE_ACL
|
#ifdef FEATURE_ACL
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_ACL", 1);
|
if (!err) err = map_conditional(exports, "FEATURE_ACL", 1);
|
||||||
#else /* ifndef FEATURE_ACL */
|
#else /* ifndef FEATURE_ACL */
|
||||||
|
@ -1576,24 +1910,12 @@ static jb_err show_defines(struct map *exports)
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_CGI_EDIT_ACTIONS", 0);
|
if (!err) err = map_conditional(exports, "FEATURE_CGI_EDIT_ACTIONS", 0);
|
||||||
#endif /* ndef FEATURE_CGI_EDIT_ACTIONS */
|
#endif /* ndef FEATURE_CGI_EDIT_ACTIONS */
|
||||||
|
|
||||||
#ifdef FEATURE_COMPRESSION
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_COMPRESSION", 1);
|
|
||||||
#else /* ifndef FEATURE_COMPRESSION */
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_COMPRESSION", 0);
|
|
||||||
#endif /* ndef FEATURE_COMPRESSION */
|
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_CONNECTION_KEEP_ALIVE", 1);
|
if (!err) err = map_conditional(exports, "FEATURE_CONNECTION_KEEP_ALIVE", 1);
|
||||||
#else /* ifndef FEATURE_CONNECTION_KEEP_ALIVE */
|
#else /* ifndef FEATURE_CGI_EDIT_ACTIONS */
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_CONNECTION_KEEP_ALIVE", 0);
|
if (!err) err = map_conditional(exports, "FEATURE_CONNECTION_KEEP_ALIVE", 0);
|
||||||
#endif /* ndef FEATURE_CONNECTION_KEEP_ALIVE */
|
#endif /* ndef FEATURE_CONNECTION_KEEP_ALIVE */
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_SHARING
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_CONNECTION_SHARING", 1);
|
|
||||||
#else /* ifndef FEATURE_CONNECTION_SHARING */
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_CONNECTION_SHARING", 0);
|
|
||||||
#endif /* ndef FEATURE_CONNECTION_SHARING */
|
|
||||||
|
|
||||||
#ifdef FEATURE_FAST_REDIRECTS
|
#ifdef FEATURE_FAST_REDIRECTS
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_FAST_REDIRECTS", 1);
|
if (!err) err = map_conditional(exports, "FEATURE_FAST_REDIRECTS", 1);
|
||||||
#else /* ifndef FEATURE_FAST_REDIRECTS */
|
#else /* ifndef FEATURE_FAST_REDIRECTS */
|
||||||
|
@ -1626,12 +1948,6 @@ static jb_err show_defines(struct map *exports)
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_IMAGE_DETECT_MSIE", 0);
|
if (!err) err = map_conditional(exports, "FEATURE_IMAGE_DETECT_MSIE", 0);
|
||||||
#endif /* ndef FEATURE_IMAGE_DETECT_MSIE */
|
#endif /* ndef FEATURE_IMAGE_DETECT_MSIE */
|
||||||
|
|
||||||
#ifdef HAVE_RFC2553
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_IPV6_SUPPORT", 1);
|
|
||||||
#else /* ifndef HAVE_RFC2553 */
|
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_IPV6_SUPPORT", 0);
|
|
||||||
#endif /* ndef HAVE_RFC2553 */
|
|
||||||
|
|
||||||
#ifdef FEATURE_NO_GIFS
|
#ifdef FEATURE_NO_GIFS
|
||||||
if (!err) err = map_conditional(exports, "FEATURE_NO_GIFS", 1);
|
if (!err) err = map_conditional(exports, "FEATURE_NO_GIFS", 1);
|
||||||
#else /* ifndef FEATURE_NO_GIFS */
|
#else /* ifndef FEATURE_NO_GIFS */
|
||||||
|
@ -1801,7 +2117,7 @@ static char *show_rcs(void)
|
||||||
* Default is to show menu and other information.
|
* Default is to show menu and other information.
|
||||||
*
|
*
|
||||||
* Returns : JB_ERR_OK on success
|
* Returns : JB_ERR_OK on success
|
||||||
* JB_ERR_MEMORY on out-of-memory error.
|
* JB_ERR_MEMORY on out-of-memory error.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
static jb_err cgi_show_file(struct client_state *csp,
|
static jb_err cgi_show_file(struct client_state *csp,
|
||||||
|
@ -1895,7 +2211,7 @@ static jb_err cgi_show_file(struct client_state *csp,
|
||||||
return JB_ERR_CGI_PARAMS;
|
return JB_ERR_CGI_PARAMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : load_file
|
* Function : load_file
|
||||||
|
@ -1922,7 +2238,6 @@ static jb_err load_file(const char *filename, char **buffer, size_t *length)
|
||||||
fp = fopen(filename, "rb");
|
fp = fopen(filename, "rb");
|
||||||
if (NULL == fp)
|
if (NULL == fp)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_ERROR, "Failed to open %s: %E", filename);
|
|
||||||
return JB_ERR_FILE;
|
return JB_ERR_FILE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
#ifndef CGISIMPLE_H_INCLUDED
|
#ifndef CGISIMPLE_H_INCLUDED
|
||||||
#define CGISIMPLE_H_INCLUDED
|
#define CGISIMPLE_H_INCLUDED
|
||||||
#define CGISIMPLE_H_VERSION "$Id: cgisimple.h,v 1.18 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define CGISIMPLE_H_VERSION "$Id: cgisimple.h,v 1.16 2008/05/26 17:30:55 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/cgisimple.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/cgisimple.h,v $
|
||||||
*
|
*
|
||||||
* Purpose : Declares functions to intercept request, generate
|
* Purpose : Declares functions to intercept request, generate
|
||||||
* html or gif answers, and to compose HTTP resonses.
|
* html or gif answers, and to compose HTTP resonses.
|
||||||
*
|
*
|
||||||
* Functions declared include:
|
* Functions declared include:
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
|
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -36,8 +36,78 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: cgisimple.h,v $
|
||||||
|
* Revision 1.16 2008/05/26 17:30:55 fabiankeil
|
||||||
|
* Provide an OpenSearch Description to access the
|
||||||
|
* show-url-info page through "search engine plugins".
|
||||||
|
*
|
||||||
|
* Revision 1.15 2007/01/23 15:51:17 fabiankeil
|
||||||
|
* Add favicon delivery functions.
|
||||||
|
*
|
||||||
|
* Revision 1.14 2006/09/06 18:45:03 fabiankeil
|
||||||
|
* Incorporate modified version of Roland Rosenfeld's patch to
|
||||||
|
* optionally access the user-manual via Privoxy. Closes patch 679075.
|
||||||
|
*
|
||||||
|
* Formatting changed to Privoxy style, added call to
|
||||||
|
* cgi_error_no_template if the requested file doesn't
|
||||||
|
* exist and modified check whether or not Privoxy itself
|
||||||
|
* should serve the manual. Should work cross-platform now.
|
||||||
|
*
|
||||||
|
* Revision 1.13 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/04/05 15:50:53 oes
|
||||||
|
* added send-stylesheet CGI
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/16 23:54:06 jongfoster
|
||||||
|
* Adding graceful termination feature, to help look for memory leaks.
|
||||||
|
* If you enable this (which, by design, has to be done by hand
|
||||||
|
* editing config.h) and then go to http://i.j.b/die, then the program
|
||||||
|
* will exit cleanly after the *next* request. It should free all the
|
||||||
|
* memory that was used.
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/08 16:43:59 oes
|
||||||
|
* Renamed cgi_transparent_png to cgi_transparent_image
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/07 03:48:59 oes
|
||||||
|
* - Changed built-in images from GIF to PNG
|
||||||
|
* (with regard to Unisys patent issue)
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/01/22 23:26:03 jongfoster
|
||||||
|
* Adding cgi_transparent_gif() for http://i.j.b/t
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/10/23 21:48:19 jongfoster
|
||||||
|
* Cleaning up error handling in CGI functions - they now send back
|
||||||
|
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||||
|
* potential source of "denial of service" attacks).
|
||||||
|
*
|
||||||
|
* CGI actions file editor that works and is actually useful.
|
||||||
|
*
|
||||||
|
* Ability to toggle JunkBuster remotely using a CGI call.
|
||||||
|
*
|
||||||
|
* You can turn off both the above features in the main configuration
|
||||||
|
* file, e.g. if you are running a multi-user proxy.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/10/14 22:00:32 jongfoster
|
||||||
|
* Adding support for a 404 error when an invalid CGI page is requested.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/10/02 15:31:20 oes
|
||||||
|
* Introduced show-request cgi
|
||||||
|
*
|
||||||
|
* Revision 1.1 2001/09/16 17:08:54 jongfoster
|
||||||
|
* Moving simple CGI functions from cgi.c to new file cgisimple.c
|
||||||
|
*
|
||||||
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "project.h"
|
#include "project.h"
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Sample Configuration File for Privoxy v3.0.19
|
# Sample Configuration File for Privoxy v3.0.12
|
||||||
#
|
#
|
||||||
# $Id: config,v 1.98 2011/12/26 17:04:50 fabiankeil Exp $
|
# $Id: config,v 1.76 2009/03/21 11:51:51 fabiankeil Exp $
|
||||||
#
|
#
|
||||||
# Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
|
# Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
#
|
#
|
||||||
####################################################################
|
####################################################################
|
||||||
# #
|
# #
|
||||||
|
@ -113,6 +113,7 @@
|
||||||
#
|
#
|
||||||
# user-manual /usr/share/doc/privoxy/user-manual
|
# user-manual /usr/share/doc/privoxy/user-manual
|
||||||
#
|
#
|
||||||
|
#
|
||||||
# The User Manual is then available to anyone with
|
# The User Manual is then available to anyone with
|
||||||
# access to Privoxy, by following the built-in URL:
|
# access to Privoxy, by following the built-in URL:
|
||||||
# http://config.privoxy.org/user-manual/ (or the shortcut:
|
# http://config.privoxy.org/user-manual/ (or the shortcut:
|
||||||
|
@ -123,6 +124,7 @@
|
||||||
#
|
#
|
||||||
# user-manual http://example.com/privoxy/user-manual/
|
# user-manual http://example.com/privoxy/user-manual/
|
||||||
#
|
#
|
||||||
|
#
|
||||||
# WARNING!!!
|
# WARNING!!!
|
||||||
#
|
#
|
||||||
# If set, this option should be the first option in the config
|
# If set, this option should be the first option in the config
|
||||||
|
@ -414,7 +416,7 @@ actionsfile user.action # User customizations
|
||||||
# separate file, such as user.filter.
|
# separate file, such as user.filter.
|
||||||
#
|
#
|
||||||
filterfile default.filter
|
filterfile default.filter
|
||||||
filterfile user.filter # User customizations
|
#filterfile user.filter # User customizations
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 2.6. logfile
|
# 2.6. logfile
|
||||||
|
@ -558,7 +560,7 @@ logfile logfile
|
||||||
# debug 2 # show each connection status
|
# debug 2 # show each connection status
|
||||||
# debug 4 # show I/O status
|
# debug 4 # show I/O status
|
||||||
# debug 8 # show header parsing
|
# debug 8 # show header parsing
|
||||||
# debug 16 # log all data written to the network
|
# debug 16 # log all data written to the network into the logfile
|
||||||
# debug 32 # debug force feature
|
# debug 32 # debug force feature
|
||||||
# debug 64 # debug regular expression filters
|
# debug 64 # debug regular expression filters
|
||||||
# debug 128 # debug redirects
|
# debug 128 # debug redirects
|
||||||
|
@ -568,16 +570,15 @@ logfile logfile
|
||||||
# debug 2048 # CGI user interface
|
# debug 2048 # CGI user interface
|
||||||
# debug 4096 # Startup banner and warnings.
|
# debug 4096 # Startup banner and warnings.
|
||||||
# debug 8192 # Non-fatal errors
|
# debug 8192 # Non-fatal errors
|
||||||
# debug 32768 # log all data read from the network
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# To select multiple debug levels, you can either add them or
|
# To select multiple debug levels, you can either add them or
|
||||||
# use multiple debug lines.
|
# use multiple debug lines.
|
||||||
#
|
#
|
||||||
# A debug level of 1 is informative because it will show you each
|
# A debug level of 1 is informative because it will show you each
|
||||||
# request as it happens. 1, 1024, 4096 and 8192 are recommended
|
# request as it happens. 1, 4096 and 8192 are recommended so that
|
||||||
# so that you will notice when things go wrong. The other levels
|
# you will notice when things go wrong. The other levels are
|
||||||
# are probably only of interest if you are hunting down a specific
|
# probably only of interest if you are hunting down a specific
|
||||||
# problem. They can produce a hell of an output (especially 16).
|
# problem. They can produce a hell of an output (especially 16).
|
||||||
#
|
#
|
||||||
# Privoxy used to ship with the debug levels recommended above
|
# Privoxy used to ship with the debug levels recommended above
|
||||||
|
@ -681,24 +682,22 @@ logfile logfile
|
||||||
#
|
#
|
||||||
# Specifies:
|
# Specifies:
|
||||||
#
|
#
|
||||||
# The address and TCP port on which Privoxy will listen for
|
# The IP address and TCP port on which Privoxy will listen for
|
||||||
# client requests.
|
# client requests.
|
||||||
#
|
#
|
||||||
# Type of value:
|
# Type of value:
|
||||||
#
|
#
|
||||||
# [IP-Address]:Port
|
# [IP-Address]:Port
|
||||||
#
|
#
|
||||||
# [Hostname]:Port
|
|
||||||
#
|
|
||||||
# Default value:
|
# Default value:
|
||||||
#
|
#
|
||||||
# 127.0.0.1:8118
|
# 127.0.0.1:8118
|
||||||
#
|
#
|
||||||
# Effect if unset:
|
# Effect if unset:
|
||||||
#
|
#
|
||||||
# Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is suitable
|
# Bind to 127.0.0.1 (localhost), port 8118. This is suitable and
|
||||||
# and recommended for home users who run Privoxy on the same
|
# recommended for home users who run Privoxy on the same machine
|
||||||
# machine as their browser.
|
# as their browser.
|
||||||
#
|
#
|
||||||
# Notes:
|
# Notes:
|
||||||
#
|
#
|
||||||
|
@ -709,56 +708,15 @@ logfile logfile
|
||||||
# if you want to serve requests from other machines (e.g. on your
|
# if you want to serve requests from other machines (e.g. on your
|
||||||
# local network) as well, you will need to override the default.
|
# local network) as well, you will need to override the default.
|
||||||
#
|
#
|
||||||
# You can use this statement multiple times to make Privoxy listen
|
# If you leave out the IP address, Privoxy will bind to all
|
||||||
# on more ports or more IP addresses. Suitable if your operating
|
|
||||||
# system does not support sharing IPv6 and IPv4 protocols on the
|
|
||||||
# same socket.
|
|
||||||
#
|
|
||||||
# If a hostname is used instead of an IP address, Privoxy will
|
|
||||||
# try to resolve it to an IP address and if there are multiple,
|
|
||||||
# use the first one returned.
|
|
||||||
#
|
|
||||||
# If the address for the hostname isn't already known on the
|
|
||||||
# system (for example because it's in /etc/hostname), this may
|
|
||||||
# result in DNS traffic.
|
|
||||||
#
|
|
||||||
# If the specified address isn't available on the system, or if
|
|
||||||
# the hostname can't be resolved, Privoxy will fail to start.
|
|
||||||
#
|
|
||||||
# IPv6 addresses containing colons have to be quoted by
|
|
||||||
# brackets. They can only be used if Privoxy has been compiled
|
|
||||||
# with IPv6 support. If you aren't sure if your version supports
|
|
||||||
# it, have a look at http://config.privoxy.org/ show-status.
|
|
||||||
#
|
|
||||||
# Some operating systems will prefer IPv6 to IPv4 addresses even if
|
|
||||||
# the system has no IPv6 connectivity which is usually not expected
|
|
||||||
# by the user. Some even rely on DNS to resolve localhost which
|
|
||||||
# mean the "localhost" address used may not actually be local.
|
|
||||||
#
|
|
||||||
# It is therefore recommended to explicitly configure the intended
|
|
||||||
# IP address instead of relying on the operating system, unless
|
|
||||||
# there's a strong reason not to.
|
|
||||||
#
|
|
||||||
# If you leave out the address, Privoxy will bind to all IPv4
|
|
||||||
# interfaces (addresses) on your machine and may become reachable
|
# interfaces (addresses) on your machine and may become reachable
|
||||||
# from the Internet and/ or the local network. Be aware that
|
# from the Internet. In that case, consider using access control
|
||||||
# some GNU/Linux distributions modify that behaviour without
|
# lists (ACL's, see below), and/or a firewall.
|
||||||
# updating the documentation. Check for non-standard patches if
|
|
||||||
# your Privoxyversion behaves differently.
|
|
||||||
#
|
|
||||||
# If you configure Privoxyto be reachable from the network,
|
|
||||||
# consider using access control lists (ACL's, see below), and/or
|
|
||||||
# a firewall.
|
|
||||||
#
|
#
|
||||||
# If you open Privoxy to untrusted users, you will also
|
# If you open Privoxy to untrusted users, you will also
|
||||||
# want to make sure that the following actions are disabled:
|
# want to make sure that the following actions are disabled:
|
||||||
# enable-edit-actions and enable-remote-toggle
|
# enable-edit-actions and enable-remote-toggle
|
||||||
#
|
#
|
||||||
# With the exception noted above, listening on multiple addresses
|
|
||||||
# is currently not supported by Privoxy directly. It can be done
|
|
||||||
# on most operating systems by letting a packet filter redirect
|
|
||||||
# request for certain addresses to Privoxy, though.
|
|
||||||
#
|
|
||||||
# Example:
|
# Example:
|
||||||
#
|
#
|
||||||
# Suppose you are running Privoxy on a machine which has the
|
# Suppose you are running Privoxy on a machine which has the
|
||||||
|
@ -768,10 +726,6 @@ logfile logfile
|
||||||
#
|
#
|
||||||
# listen-address 192.168.0.1:8118
|
# listen-address 192.168.0.1:8118
|
||||||
#
|
#
|
||||||
# Suppose you are running Privoxy on an IPv6-capable machine and
|
|
||||||
# you want it to listen on the IPv6 address of the loopback device:
|
|
||||||
#
|
|
||||||
# listen-address [::1]:8118
|
|
||||||
#
|
#
|
||||||
listen-address 127.0.0.1:8118
|
listen-address 127.0.0.1:8118
|
||||||
#
|
#
|
||||||
|
@ -988,28 +942,18 @@ enforce-blocks 0
|
||||||
#
|
#
|
||||||
# Type of value:
|
# Type of value:
|
||||||
#
|
#
|
||||||
# src_addr[:port][/src_masklen] [dst_addr[:port][/dst_masklen]]
|
# src_addr[/src_masklen] [dst_addr[/dst_masklen]]
|
||||||
#
|
#
|
||||||
# Where src_addr and dst_addr are IPv4 addresses in dotted
|
# Where src_addr and dst_addr are IP addresses in dotted decimal
|
||||||
# decimal notation or valid DNS names, port is a port number, and
|
# notation or valid DNS names, and src_masklen and dst_masklen are
|
||||||
# src_masklen and dst_masklen are subnet masks in CIDR notation,
|
# subnet masks in CIDR notation, i.e. integer values from 2 to 30
|
||||||
# i.e. integer values from 2 to 30 representing the length
|
# representing the length (in bits) of the network address. The
|
||||||
# (in bits) of the network address. The masks and the whole
|
# masks and the whole destination part are optional.
|
||||||
# destination part are optional.
|
|
||||||
#
|
|
||||||
# If your system implements RFC 3493, then src_addr and dst_addr
|
|
||||||
# can be IPv6 addresses delimeted by brackets, port can be a
|
|
||||||
# number or a service name, and src_masklen and dst_masklen can
|
|
||||||
# be a number from 0 to 128.
|
|
||||||
#
|
#
|
||||||
# Default value:
|
# Default value:
|
||||||
#
|
#
|
||||||
# Unset
|
# Unset
|
||||||
#
|
#
|
||||||
# If no port is specified, any port will match. If no src_masklen
|
|
||||||
# or src_masklen is given, the complete IP address has to match
|
|
||||||
# (i.e. 32 bits for IPv4 and 128 bits for IPv6).
|
|
||||||
#
|
|
||||||
# Effect if unset:
|
# Effect if unset:
|
||||||
#
|
#
|
||||||
# Don't restrict access further than implied by listen-address
|
# Don't restrict access further than implied by listen-address
|
||||||
|
@ -1045,12 +989,6 @@ enforce-blocks 0
|
||||||
# names. If a DNS name resolves to multiple IP addresses, only
|
# names. If a DNS name resolves to multiple IP addresses, only
|
||||||
# the first one is used.
|
# the first one is used.
|
||||||
#
|
#
|
||||||
# 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). Privoxy can handle it
|
|
||||||
# and maps such ACL addresses automatically.
|
|
||||||
#
|
|
||||||
# Denying access to particular sites by ACL may have undesired
|
# Denying access to particular sites by ACL may have undesired
|
||||||
# side effects if the site in question is hosted on a machine
|
# side effects if the site in question is hosted on a machine
|
||||||
# which also hosts other sites (most sites are).
|
# which also hosts other sites (most sites are).
|
||||||
|
@ -1078,16 +1016,6 @@ enforce-blocks 0
|
||||||
# permit-access 192.168.45.64/26
|
# permit-access 192.168.45.64/26
|
||||||
# deny-access 192.168.45.73 www.dirty-stuff.example.com
|
# deny-access 192.168.45.73 www.dirty-stuff.example.com
|
||||||
#
|
#
|
||||||
# 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):
|
|
||||||
#
|
|
||||||
# permit-access 192.0.2.0/24
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# This is equivalent to the following line even if listening on
|
|
||||||
# an IPv4 address (not supported on all platforms):
|
|
||||||
#
|
|
||||||
# permit-access [::ffff:192.0.2.0]/120
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 4.8. buffer-limit
|
# 4.8. buffer-limit
|
||||||
|
@ -1165,7 +1093,7 @@ buffer-limit 4096
|
||||||
# to denote "all URLs". http_parent[:port] is the DNS name or
|
# to denote "all URLs". http_parent[:port] is the DNS name or
|
||||||
# IP address of the parent HTTP proxy through which the requests
|
# IP address of the parent HTTP proxy through which the requests
|
||||||
# should be forwarded, optionally followed by its listening port
|
# should be forwarded, optionally followed by its listening port
|
||||||
# (default: 8000). Use a single dot (.) to denote "no forwarding".
|
# (default: 8080). Use a single dot (.) to denote "no forwarding".
|
||||||
#
|
#
|
||||||
# Default value:
|
# Default value:
|
||||||
#
|
#
|
||||||
|
@ -1180,13 +1108,6 @@ buffer-limit 4096
|
||||||
# If http_parent is ".", then requests are not forwarded to
|
# If http_parent is ".", then requests are not forwarded to
|
||||||
# another HTTP proxy but are made directly to the web servers.
|
# another HTTP proxy but are made directly to the web servers.
|
||||||
#
|
#
|
||||||
# http_parent can be a numerical IPv6 address (if RFC 3493 is
|
|
||||||
# implemented). To prevent clashes with the port delimiter,
|
|
||||||
# the whole IP address has to be put into brackets. On the other
|
|
||||||
# hand a target_pattern containing an IPv6 address has to be put
|
|
||||||
# into angle brackets (normal brackets are reserved for regular
|
|
||||||
# expressions already).
|
|
||||||
#
|
|
||||||
# Multiple lines are OK, they are checked in sequence, and the
|
# Multiple lines are OK, they are checked in sequence, and the
|
||||||
# last match wins.
|
# last match wins.
|
||||||
#
|
#
|
||||||
|
@ -1206,16 +1127,6 @@ buffer-limit 4096
|
||||||
# forward .isp.example.net .
|
# forward .isp.example.net .
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Parent proxy specified by an IPv6 address:
|
|
||||||
#
|
|
||||||
# forward / [2001:DB8::1]:8000
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Suppose your parent proxy doesn't support IPv6:
|
|
||||||
#
|
|
||||||
# forward / parent-proxy.example.org:8000
|
|
||||||
# forward ipv6-server.example.org .
|
|
||||||
# forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> .
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 5.2. forward-socks4, forward-socks4a and forward-socks5
|
# 5.2. forward-socks4, forward-socks4a and forward-socks5
|
||||||
|
@ -1258,13 +1169,6 @@ buffer-limit 4096
|
||||||
# With forward-socks5 the DNS resolution will happen on the remote
|
# With forward-socks5 the DNS resolution will happen on the remote
|
||||||
# server as well.
|
# server as well.
|
||||||
#
|
#
|
||||||
# socks_proxy and http_parent can be a numerical IPv6 address
|
|
||||||
# (if RFC 3493 is implemented). To prevent clashes with the port
|
|
||||||
# delimiter, the whole IP address has to be put into brackets. On
|
|
||||||
# the other hand a target_pattern containing an IPv6 address has
|
|
||||||
# to be put into angle brackets (normal brackets are reserved
|
|
||||||
# for regular expressions already).
|
|
||||||
#
|
|
||||||
# If http_parent is ".", then requests are not forwarded to another
|
# If http_parent is ".", then requests are not forwarded to another
|
||||||
# HTTP proxy but are made (HTTP-wise) directly to the web servers,
|
# HTTP proxy but are made (HTTP-wise) directly to the web servers,
|
||||||
# albeit through a SOCKS proxy.
|
# albeit through a SOCKS proxy.
|
||||||
|
@ -1289,7 +1193,7 @@ buffer-limit 4096
|
||||||
# To chain Privoxy and Tor, both running on the same system,
|
# To chain Privoxy and Tor, both running on the same system,
|
||||||
# you would use something like:
|
# you would use something like:
|
||||||
#
|
#
|
||||||
# forward-socks5 / 127.0.0.1:9050 .
|
# forward-socks4a / 127.0.0.1:9050 .
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# The public Tor network can't be used to reach your local network,
|
# The public Tor network can't be used to reach your local network,
|
||||||
|
@ -1315,6 +1219,7 @@ buffer-limit 4096
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
#
|
||||||
# 5.3. forwarded-connect-retries
|
# 5.3. forwarded-connect-retries
|
||||||
# ===============================
|
# ===============================
|
||||||
#
|
#
|
||||||
|
@ -1355,9 +1260,6 @@ buffer-limit 4096
|
||||||
# manually. Start with a small value and check Privoxy's logfile
|
# manually. Start with a small value and check Privoxy's logfile
|
||||||
# from time to time, to see how many retries are usually needed.
|
# from time to time, to see how many retries are usually needed.
|
||||||
#
|
#
|
||||||
# Due to a bug, this option currently also causes Privoxy to
|
|
||||||
# retry in case of certain problems with direct connections.
|
|
||||||
#
|
|
||||||
# Examples:
|
# Examples:
|
||||||
#
|
#
|
||||||
# forwarded-connect-retries 1
|
# forwarded-connect-retries 1
|
||||||
|
@ -1365,10 +1267,7 @@ buffer-limit 4096
|
||||||
forwarded-connect-retries 0
|
forwarded-connect-retries 0
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 6. MISCELLANEOUS
|
# 5.4. accept-intercepted-requests
|
||||||
# =================
|
|
||||||
#
|
|
||||||
# 6.1. accept-intercepted-requests
|
|
||||||
# =================================
|
# =================================
|
||||||
#
|
#
|
||||||
# Specifies:
|
# Specifies:
|
||||||
|
@ -1407,7 +1306,7 @@ forwarded-connect-retries 0
|
||||||
accept-intercepted-requests 0
|
accept-intercepted-requests 0
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 6.2. allow-cgi-request-crunching
|
# 5.5. allow-cgi-request-crunching
|
||||||
# =================================
|
# =================================
|
||||||
#
|
#
|
||||||
# Specifies:
|
# Specifies:
|
||||||
|
@ -1445,7 +1344,7 @@ accept-intercepted-requests 0
|
||||||
allow-cgi-request-crunching 0
|
allow-cgi-request-crunching 0
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 6.3. split-large-forms
|
# 5.6. split-large-forms
|
||||||
# =======================
|
# =======================
|
||||||
#
|
#
|
||||||
# Specifies:
|
# Specifies:
|
||||||
|
@ -1487,7 +1386,7 @@ allow-cgi-request-crunching 0
|
||||||
split-large-forms 0
|
split-large-forms 0
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 6.4. keep-alive-timeout
|
# 5.7. keep-alive-timeout
|
||||||
# ========================
|
# ========================
|
||||||
#
|
#
|
||||||
# Specifies:
|
# Specifies:
|
||||||
|
@ -1505,168 +1404,36 @@ split-large-forms 0
|
||||||
#
|
#
|
||||||
# Effect if unset:
|
# Effect if unset:
|
||||||
#
|
#
|
||||||
# Connections are not kept alive.
|
# Connections are not reused.
|
||||||
#
|
#
|
||||||
# Notes:
|
# Notes:
|
||||||
#
|
#
|
||||||
# This option allows clients to keep the connection to Privoxy
|
|
||||||
# alive. If the server supports it, Privoxy will keep the
|
|
||||||
# connection to the server alive as well. Under certain
|
|
||||||
# circumstances this may result in speed-ups.
|
|
||||||
#
|
|
||||||
# By default, Privoxy 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 connection-sharing option.
|
|
||||||
#
|
|
||||||
# This option has no effect if Privoxy has been compiled without
|
# This option has no effect if Privoxy has been compiled without
|
||||||
# keep-alive support.
|
# keep-alive support.
|
||||||
#
|
#
|
||||||
# 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 "grabbing" all the connections the browser allows,
|
|
||||||
# which means connections to other websites can't be opened until
|
|
||||||
# the connections currently in use time out.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
#
|
|
||||||
# keep-alive-timeout 300
|
|
||||||
#
|
|
||||||
keep-alive-timeout 5
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 6.5. default-server-timeout
|
|
||||||
# ============================
|
|
||||||
#
|
|
||||||
# Specifies:
|
|
||||||
#
|
|
||||||
# Assumed server-side keep-alive timeout if not specified by
|
|
||||||
# the server.
|
|
||||||
#
|
|
||||||
# Type of value:
|
|
||||||
#
|
|
||||||
# Time in seconds.
|
|
||||||
#
|
|
||||||
# Default value:
|
|
||||||
#
|
|
||||||
# None
|
|
||||||
#
|
|
||||||
# Effect if unset:
|
|
||||||
#
|
|
||||||
# Connections for which the server didn't specify the keep-alive
|
|
||||||
# timeout are not reused.
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
#
|
|
||||||
# Enabling this option significantly increases the number of
|
|
||||||
# connections that are reused, provided the keep-alive-timeout
|
|
||||||
# option is also enabled.
|
|
||||||
#
|
|
||||||
# While it also increases the number of connections problems when
|
|
||||||
# Privoxy tries to reuse a connection that already has been closed
|
|
||||||
# on the server side, or is closed while Privoxy 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, Privoxy will simply close the
|
|
||||||
# connection and the client is supposed to retry the request
|
|
||||||
# without bothering the user.
|
|
||||||
#
|
|
||||||
# Enabling this option is therefore only recommended if the
|
|
||||||
# connection-sharing option is disabled.
|
|
||||||
#
|
|
||||||
# It is an error to specify a value larger than the
|
|
||||||
# keep-alive-timeout value.
|
|
||||||
#
|
|
||||||
# This option has no effect if Privoxy has been compiled without
|
|
||||||
# keep-alive support.
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
#
|
|
||||||
# default-server-timeout 60
|
|
||||||
#
|
|
||||||
#default-server-timeout 60
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 6.6. connection-sharing
|
|
||||||
# ========================
|
|
||||||
#
|
|
||||||
# Specifies:
|
|
||||||
#
|
|
||||||
# Whether or not outgoing connections that have been kept alive
|
|
||||||
# should be shared between different incoming connections.
|
|
||||||
#
|
|
||||||
# Type of value:
|
|
||||||
#
|
|
||||||
# 0 or 1
|
|
||||||
#
|
|
||||||
# Default value:
|
|
||||||
#
|
|
||||||
# None
|
|
||||||
#
|
|
||||||
# Effect if unset:
|
|
||||||
#
|
|
||||||
# Connections are not shared.
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
#
|
|
||||||
# This option has no effect if Privoxy has been compiled without
|
|
||||||
# keep-alive support, or if it's disabled.
|
|
||||||
#
|
|
||||||
# Notes:
|
# Notes:
|
||||||
#
|
#
|
||||||
# Note that reusing connections doesn't necessary cause
|
# Note that reusing connections doesn't necessary cause
|
||||||
# speedups. There are also a few privacy implications you should
|
# speedups. There are also a few privacy implications you should
|
||||||
# be aware of.
|
# be aware of.
|
||||||
#
|
#
|
||||||
# If this option is effective, outgoing connections are shared
|
# Outgoing connections are shared between clients (if there are
|
||||||
# between clients (if there are more than one) and closing the
|
# more than one) and closing the client that initiated the outgoing
|
||||||
# browser that initiated the outgoing connection does no longer
|
# connection does not affect the connection between Privoxy and
|
||||||
# affect the connection between Privoxy and the server unless
|
# the server unless the client's request hasn't been completed
|
||||||
# the client's request hasn't been completed yet.
|
# yet. If the outgoing connection is idle, it will not be closed
|
||||||
#
|
# until either Privoxy's or the server's timeout is reached. While
|
||||||
# If the outgoing connection is idle, it will not be closed until
|
|
||||||
# either Privoxy's or the server's timeout is reached. While
|
|
||||||
# it's open, the server knows that the system running Privoxy is
|
# it's open, the server knows that the system running Privoxy is
|
||||||
# still there.
|
# still there.
|
||||||
#
|
#
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# 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 Privoxy to keep
|
|
||||||
# outgoing connections alive even if the client itself doesn't
|
|
||||||
# support it.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# This option should only be used by experienced users who
|
|
||||||
# understand the risks and can weight them against the benefits.
|
|
||||||
#
|
|
||||||
# Examples:
|
# Examples:
|
||||||
#
|
#
|
||||||
# connection-sharing 1
|
# keep-alive-timeout 300
|
||||||
#
|
#
|
||||||
#connection-sharing 1
|
keep-alive-timeout 300
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 6.7. socket-timeout
|
# 5.8. socket-timeout
|
||||||
# ====================
|
# ====================
|
||||||
#
|
#
|
||||||
# Specifies:
|
# Specifies:
|
||||||
|
@ -1699,187 +1466,7 @@ keep-alive-timeout 5
|
||||||
socket-timeout 300
|
socket-timeout 300
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# 6.8. max-client-connections
|
# 6. WINDOWS GUI OPTIONS
|
||||||
# ============================
|
|
||||||
#
|
|
||||||
# Specifies:
|
|
||||||
#
|
|
||||||
# Maximum number of client connections that will be served.
|
|
||||||
#
|
|
||||||
# Type of value:
|
|
||||||
#
|
|
||||||
# Positive number.
|
|
||||||
#
|
|
||||||
# Default value:
|
|
||||||
#
|
|
||||||
# None
|
|
||||||
#
|
|
||||||
# Effect if unset:
|
|
||||||
#
|
|
||||||
# Connections are served until a resource limit is reached.
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
#
|
|
||||||
# Privoxy creates one thread (or process) for every incoming
|
|
||||||
# client connection that isn't rejected based on the access
|
|
||||||
# control settings.
|
|
||||||
#
|
|
||||||
# If the system is powerful enough, Privoxy 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 Privoxy would require under heavy load.
|
|
||||||
#
|
|
||||||
# Configuring Privoxy 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 Privoxy isn't the only
|
|
||||||
# application running on the system, you may actually want to
|
|
||||||
# limit the resources used by Privoxy.
|
|
||||||
#
|
|
||||||
# If Privoxy 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 Privoxy.
|
|
||||||
#
|
|
||||||
# Obviously using this option only makes sense if you choose a
|
|
||||||
# limit below the one enforced by the operating system.
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
#
|
|
||||||
# max-client-connections 256
|
|
||||||
#
|
|
||||||
#max-client-connections 256
|
|
||||||
|
|
||||||
#
|
|
||||||
# 6.9. handle-as-empty-doc-returns-ok
|
|
||||||
# ====================================
|
|
||||||
#
|
|
||||||
# Specifies:
|
|
||||||
#
|
|
||||||
# The status code Privoxy returns for pages blocked with
|
|
||||||
# +handle-as-empty-document.
|
|
||||||
#
|
|
||||||
# Type of value:
|
|
||||||
#
|
|
||||||
# 0 or 1
|
|
||||||
#
|
|
||||||
# Default value:
|
|
||||||
#
|
|
||||||
# 0
|
|
||||||
#
|
|
||||||
# Effect if unset:
|
|
||||||
#
|
|
||||||
# Privoxy returns a status 403(forbidden) for all blocked pages.
|
|
||||||
#
|
|
||||||
# Effect if set:
|
|
||||||
#
|
|
||||||
# Privoxy returns a status 200(OK) for pages blocked with
|
|
||||||
# +handle-as-empty-document and a status 403(Forbidden) for all
|
|
||||||
# other blocked pages.
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
#
|
|
||||||
# This is a work-around for Firefox bug 492459: " Websites are no
|
|
||||||
# longer rendered if SSL requests for JavaScripts are blocked by a
|
|
||||||
# proxy. " (https:/ /bugzilla.mozilla.org/show_bug.cgi?id=492459)
|
|
||||||
# As the bug has been fixed for quite some time this option
|
|
||||||
# should no longer be needed and will be removed in a future
|
|
||||||
# release. Please speak up if you have a reason why the option
|
|
||||||
# should be kept around.
|
|
||||||
#
|
|
||||||
#handle-as-empty-doc-returns-ok 1
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 1.6.10. enable-compression
|
|
||||||
#
|
|
||||||
# Specifies:
|
|
||||||
#
|
|
||||||
# Whether or not buffered content is compressed before delivery.
|
|
||||||
#
|
|
||||||
# Type of value:
|
|
||||||
#
|
|
||||||
# 0 or 1
|
|
||||||
#
|
|
||||||
# Default value:
|
|
||||||
#
|
|
||||||
# 0
|
|
||||||
#
|
|
||||||
# Effect if unset:
|
|
||||||
#
|
|
||||||
# Privoxy does not compress buffered content.
|
|
||||||
#
|
|
||||||
# Effect if set:
|
|
||||||
#
|
|
||||||
# Privoxy compresses buffered content before delivering it to
|
|
||||||
# the client, provided the client supports it.
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
#
|
|
||||||
# This directive is only supported if Privoxy has been compiled
|
|
||||||
# with FEATURE_COMPRESSION, which should not to be confused
|
|
||||||
# with FEATURE_ZLIB.
|
|
||||||
#
|
|
||||||
# Compressing buffered content is mainly useful if Privoxy and the
|
|
||||||
# client are running on different systems. If they are running on
|
|
||||||
# the same system, enabling compression is likely to slow things
|
|
||||||
# down. If you didn't measure otherwise, you should assume that
|
|
||||||
# it does and keep this option disabled.
|
|
||||||
#
|
|
||||||
# Privoxy will not compress buffered content below a certain
|
|
||||||
# length.
|
|
||||||
#
|
|
||||||
#enable-compression 1
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 1.6.11. compression-level
|
|
||||||
#
|
|
||||||
# Specifies:
|
|
||||||
#
|
|
||||||
# The compression level that is passed to the zlib library when
|
|
||||||
# compressing buffered content.
|
|
||||||
#
|
|
||||||
# Type of value:
|
|
||||||
#
|
|
||||||
# Positive number ranging from 0 to 9.
|
|
||||||
#
|
|
||||||
# Default value:
|
|
||||||
#
|
|
||||||
# 1
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
#
|
|
||||||
# Compressing the data more takes usually longer than compressing
|
|
||||||
# it less or not compressing it at all. Which level is best
|
|
||||||
# depends on the connection between Privoxy and the client. If
|
|
||||||
# you can't be bothered to benchmark it for yourself, you should
|
|
||||||
# stick with the default and keep compression disabled.
|
|
||||||
#
|
|
||||||
# If compression is disabled, the compression level is irrelevant.
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
#
|
|
||||||
# # Best speed (compared to the other levels)
|
|
||||||
# compression-level 1
|
|
||||||
#
|
|
||||||
# # Best compression
|
|
||||||
# compression-level 9
|
|
||||||
#
|
|
||||||
# # No compression. Only useful for testing as the added header
|
|
||||||
# # slightly increases the amount of data that has to be sent.
|
|
||||||
# # If your benchmark shows that using this compression level
|
|
||||||
# # is superior to using no compression at all, the benchmark
|
|
||||||
# # is likely to be flawed.
|
|
||||||
# compression-level 0
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#compression-level 1
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 7. WINDOWS GUI OPTIONS
|
|
||||||
# =======================
|
# =======================
|
||||||
#
|
#
|
||||||
# Privoxy has a number of options specific to the Windows GUI
|
# Privoxy has a number of options specific to the Windows GUI
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||||
# 2011 Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2011-11-11'
|
timestamp='2008-01-23'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
|
@ -27,16 +27,16 @@ timestamp='2011-11-11'
|
||||||
# the same distribution terms that you use for the rest of that program.
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
|
||||||
# Originally written by Per Bothner. Please send patches (context
|
# Originally written by Per Bothner <per@bothner.com>.
|
||||||
# diff format) to <config-patches@gnu.org> and include a ChangeLog
|
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||||
# entry.
|
# diff and a properly formatted ChangeLog entry.
|
||||||
#
|
#
|
||||||
# This script attempts to guess a canonical system name similar to
|
# This script attempts to guess a canonical system name similar to
|
||||||
# config.sub. If it succeeds, it prints the system name on stdout, and
|
# config.sub. If it succeeds, it prints the system name on stdout, and
|
||||||
# exits with 0. Otherwise, it exits with 1.
|
# exits with 0. Otherwise, it exits with 1.
|
||||||
#
|
#
|
||||||
# You can get the latest version of this script from:
|
# The plan is that this can be called by configure scripts if you
|
||||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
# don't specify an explicit build system type.
|
||||||
|
|
||||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
|
@ -56,9 +56,8 @@ version="\
|
||||||
GNU config.guess ($timestamp)
|
GNU config.guess ($timestamp)
|
||||||
|
|
||||||
Originally written by Per Bothner.
|
Originally written by Per Bothner.
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||||
Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
@ -171,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
| grep -q __ELF__
|
| grep __ELF__ >/dev/null
|
||||||
then
|
then
|
||||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||||
# Return netbsd for either. FIX?
|
# Return netbsd for either. FIX?
|
||||||
|
@ -181,7 +180,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
os=netbsd
|
os=netbsd
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# The OS release
|
# The OS release
|
||||||
|
@ -224,7 +223,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
||||||
;;
|
;;
|
||||||
*5.*)
|
*5.*)
|
||||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# According to Compaq, /usr/sbin/psrinfo has been available on
|
# According to Compaq, /usr/sbin/psrinfo has been available on
|
||||||
|
@ -270,10 +269,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
# A Xn.n version is an unreleased experimental baselevel.
|
# A Xn.n version is an unreleased experimental baselevel.
|
||||||
# 1.2 uses "1.2" for uname -r.
|
# 1.2 uses "1.2" for uname -r.
|
||||||
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||||
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
|
exit ;;
|
||||||
exitcode=$?
|
|
||||||
trap '' 0
|
|
||||||
exit $exitcode ;;
|
|
||||||
Alpha\ *:Windows_NT*:*)
|
Alpha\ *:Windows_NT*:*)
|
||||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||||
# Should we change UNAME_MACHINE based on the output of uname instead
|
# Should we change UNAME_MACHINE based on the output of uname instead
|
||||||
|
@ -299,7 +295,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
echo s390-ibm-zvmoe
|
echo s390-ibm-zvmoe
|
||||||
exit ;;
|
exit ;;
|
||||||
*:OS400:*:*)
|
*:OS400:*:*)
|
||||||
echo powerpc-ibm-os400
|
echo powerpc-ibm-os400
|
||||||
exit ;;
|
exit ;;
|
||||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
||||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
echo arm-acorn-riscix${UNAME_RELEASE}
|
||||||
|
@ -328,33 +324,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
case `/usr/bin/uname -p` in
|
case `/usr/bin/uname -p` in
|
||||||
sparc) echo sparc-icl-nx7; exit ;;
|
sparc) echo sparc-icl-nx7; exit ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
s390x:SunOS:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
||||||
exit ;;
|
|
||||||
sun4H:SunOS:5.*:*)
|
sun4H:SunOS:5.*:*)
|
||||||
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
|
|
||||||
echo i386-pc-auroraux${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||||
eval $set_cc_for_build
|
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
SUN_ARCH="i386"
|
|
||||||
# If there is a compiler, see if it is configured for 64-bit objects.
|
|
||||||
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
|
||||||
# This test works for both compilers.
|
|
||||||
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
|
||||||
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
|
||||||
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
|
||||||
grep IS_64BIT_ARCH >/dev/null
|
|
||||||
then
|
|
||||||
SUN_ARCH="x86_64"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
||||||
exit ;;
|
exit ;;
|
||||||
sun4*:SunOS:6*:*)
|
sun4*:SunOS:6*:*)
|
||||||
# According to config.sub, this is the proper way to canonicalize
|
# According to config.sub, this is the proper way to canonicalize
|
||||||
|
@ -398,23 +375,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
# MiNT. But MiNT is downward compatible to TOS, so this should
|
# MiNT. But MiNT is downward compatible to TOS, so this should
|
||||||
# be no problem.
|
# be no problem.
|
||||||
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||||
echo m68k-atari-mint${UNAME_RELEASE}
|
echo m68k-atari-mint${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||||
echo m68k-atari-mint${UNAME_RELEASE}
|
echo m68k-atari-mint${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
||||||
echo m68k-atari-mint${UNAME_RELEASE}
|
echo m68k-atari-mint${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
||||||
echo m68k-milan-mint${UNAME_RELEASE}
|
echo m68k-milan-mint${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
||||||
echo m68k-hades-mint${UNAME_RELEASE}
|
echo m68k-hades-mint${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
||||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
m68k:machten:*:*)
|
m68k:machten:*:*)
|
||||||
echo m68k-apple-machten${UNAME_RELEASE}
|
echo m68k-apple-machten${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -484,8 +461,8 @@ EOF
|
||||||
echo m88k-motorola-sysv3
|
echo m88k-motorola-sysv3
|
||||||
exit ;;
|
exit ;;
|
||||||
AViiON:dgux:*:*)
|
AViiON:dgux:*:*)
|
||||||
# DG/UX returns AViiON for all architectures
|
# DG/UX returns AViiON for all architectures
|
||||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||||
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
||||||
then
|
then
|
||||||
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
||||||
|
@ -498,7 +475,7 @@ EOF
|
||||||
else
|
else
|
||||||
echo i586-dg-dgux${UNAME_RELEASE}
|
echo i586-dg-dgux${UNAME_RELEASE}
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
||||||
echo m88k-dolphin-sysv3
|
echo m88k-dolphin-sysv3
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -555,7 +532,7 @@ EOF
|
||||||
echo rs6000-ibm-aix3.2
|
echo rs6000-ibm-aix3.2
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
*:AIX:*:[4567])
|
*:AIX:*:[456])
|
||||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||||
IBM_ARCH=rs6000
|
IBM_ARCH=rs6000
|
||||||
|
@ -598,52 +575,52 @@ EOF
|
||||||
9000/[678][0-9][0-9])
|
9000/[678][0-9][0-9])
|
||||||
if [ -x /usr/bin/getconf ]; then
|
if [ -x /usr/bin/getconf ]; then
|
||||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||||
case "${sc_cpu_version}" in
|
case "${sc_cpu_version}" in
|
||||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||||
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||||
532) # CPU_PA_RISC2_0
|
532) # CPU_PA_RISC2_0
|
||||||
case "${sc_kernel_bits}" in
|
case "${sc_kernel_bits}" in
|
||||||
32) HP_ARCH="hppa2.0n" ;;
|
32) HP_ARCH="hppa2.0n" ;;
|
||||||
64) HP_ARCH="hppa2.0w" ;;
|
64) HP_ARCH="hppa2.0w" ;;
|
||||||
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
||||||
esac ;;
|
esac ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if [ "${HP_ARCH}" = "" ]; then
|
if [ "${HP_ARCH}" = "" ]; then
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
|
|
||||||
#define _HPUX_SOURCE
|
#define _HPUX_SOURCE
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int main ()
|
int main ()
|
||||||
{
|
{
|
||||||
#if defined(_SC_KERNEL_BITS)
|
#if defined(_SC_KERNEL_BITS)
|
||||||
long bits = sysconf(_SC_KERNEL_BITS);
|
long bits = sysconf(_SC_KERNEL_BITS);
|
||||||
#endif
|
#endif
|
||||||
long cpu = sysconf (_SC_CPU_VERSION);
|
long cpu = sysconf (_SC_CPU_VERSION);
|
||||||
|
|
||||||
switch (cpu)
|
switch (cpu)
|
||||||
{
|
{
|
||||||
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
||||||
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
||||||
case CPU_PA_RISC2_0:
|
case CPU_PA_RISC2_0:
|
||||||
#if defined(_SC_KERNEL_BITS)
|
#if defined(_SC_KERNEL_BITS)
|
||||||
switch (bits)
|
switch (bits)
|
||||||
{
|
{
|
||||||
case 64: puts ("hppa2.0w"); break;
|
case 64: puts ("hppa2.0w"); break;
|
||||||
case 32: puts ("hppa2.0n"); break;
|
case 32: puts ("hppa2.0n"); break;
|
||||||
default: puts ("hppa2.0"); break;
|
default: puts ("hppa2.0"); break;
|
||||||
} break;
|
} break;
|
||||||
#else /* !defined(_SC_KERNEL_BITS) */
|
#else /* !defined(_SC_KERNEL_BITS) */
|
||||||
puts ("hppa2.0"); break;
|
puts ("hppa2.0"); break;
|
||||||
#endif
|
#endif
|
||||||
default: puts ("hppa1.0"); break;
|
default: puts ("hppa1.0"); break;
|
||||||
}
|
}
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
||||||
test -z "$HP_ARCH" && HP_ARCH=hppa
|
test -z "$HP_ARCH" && HP_ARCH=hppa
|
||||||
|
@ -663,7 +640,7 @@ EOF
|
||||||
# => hppa64-hp-hpux11.23
|
# => hppa64-hp-hpux11.23
|
||||||
|
|
||||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||||
grep -q __LP64__
|
grep __LP64__ >/dev/null
|
||||||
then
|
then
|
||||||
HP_ARCH="hppa2.0w"
|
HP_ARCH="hppa2.0w"
|
||||||
else
|
else
|
||||||
|
@ -734,22 +711,22 @@ EOF
|
||||||
exit ;;
|
exit ;;
|
||||||
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
||||||
echo c1-convex-bsd
|
echo c1-convex-bsd
|
||||||
exit ;;
|
exit ;;
|
||||||
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
||||||
if getsysinfo -f scalar_acc
|
if getsysinfo -f scalar_acc
|
||||||
then echo c32-convex-bsd
|
then echo c32-convex-bsd
|
||||||
else echo c2-convex-bsd
|
else echo c2-convex-bsd
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
||||||
echo c34-convex-bsd
|
echo c34-convex-bsd
|
||||||
exit ;;
|
exit ;;
|
||||||
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
||||||
echo c38-convex-bsd
|
echo c38-convex-bsd
|
||||||
exit ;;
|
exit ;;
|
||||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||||
echo c4-convex-bsd
|
echo c4-convex-bsd
|
||||||
exit ;;
|
exit ;;
|
||||||
CRAY*Y-MP:*:*:*)
|
CRAY*Y-MP:*:*:*)
|
||||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -773,14 +750,14 @@ EOF
|
||||||
exit ;;
|
exit ;;
|
||||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||||
exit ;;
|
exit ;;
|
||||||
5000:UNIX_System_V:4.*:*)
|
5000:UNIX_System_V:4.*:*)
|
||||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
||||||
|
@ -792,12 +769,13 @@ EOF
|
||||||
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
*:FreeBSD:*:*)
|
*:FreeBSD:*:*)
|
||||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
case ${UNAME_MACHINE} in
|
||||||
case ${UNAME_PROCESSOR} in
|
pc98)
|
||||||
|
echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||||
amd64)
|
amd64)
|
||||||
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||||
*)
|
*)
|
||||||
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||||
esac
|
esac
|
||||||
exit ;;
|
exit ;;
|
||||||
i*:CYGWIN*:*)
|
i*:CYGWIN*:*)
|
||||||
|
@ -806,22 +784,19 @@ EOF
|
||||||
*:MINGW*:*)
|
*:MINGW*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-mingw32
|
echo ${UNAME_MACHINE}-pc-mingw32
|
||||||
exit ;;
|
exit ;;
|
||||||
i*:MSYS*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-msys
|
|
||||||
exit ;;
|
|
||||||
i*:windows32*:*)
|
i*:windows32*:*)
|
||||||
# uname -m includes "-pc" on this system.
|
# uname -m includes "-pc" on this system.
|
||||||
echo ${UNAME_MACHINE}-mingw32
|
echo ${UNAME_MACHINE}-mingw32
|
||||||
exit ;;
|
exit ;;
|
||||||
i*:PW*:*)
|
i*:PW*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-pw32
|
echo ${UNAME_MACHINE}-pc-pw32
|
||||||
exit ;;
|
exit ;;
|
||||||
*:Interix*:*)
|
*:Interix*:[3456]*)
|
||||||
case ${UNAME_MACHINE} in
|
case ${UNAME_MACHINE} in
|
||||||
x86)
|
x86)
|
||||||
echo i586-pc-interix${UNAME_RELEASE}
|
echo i586-pc-interix${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
authenticamd | genuineintel | EM64T)
|
EM64T | authenticamd)
|
||||||
echo x86_64-unknown-interix${UNAME_RELEASE}
|
echo x86_64-unknown-interix${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
IA64)
|
IA64)
|
||||||
|
@ -831,9 +806,6 @@ EOF
|
||||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||||
echo i${UNAME_MACHINE}-pc-mks
|
echo i${UNAME_MACHINE}-pc-mks
|
||||||
exit ;;
|
exit ;;
|
||||||
8664:Windows_NT:*)
|
|
||||||
echo x86_64-pc-mks
|
|
||||||
exit ;;
|
|
||||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||||
|
@ -863,20 +835,6 @@ EOF
|
||||||
i*86:Minix:*:*)
|
i*86:Minix:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-minix
|
echo ${UNAME_MACHINE}-pc-minix
|
||||||
exit ;;
|
exit ;;
|
||||||
alpha:Linux:*:*)
|
|
||||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
||||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
|
||||||
EV56) UNAME_MACHINE=alphaev56 ;;
|
|
||||||
PCA56) UNAME_MACHINE=alphapca56 ;;
|
|
||||||
PCA57) UNAME_MACHINE=alphapca56 ;;
|
|
||||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
|
||||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
|
||||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
|
||||||
esac
|
|
||||||
objdump --private-headers /bin/sh | grep -q ld.so.1
|
|
||||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
|
||||||
exit ;;
|
|
||||||
arm*:Linux:*:*)
|
arm*:Linux:*:*)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
@ -884,13 +842,7 @@ EOF
|
||||||
then
|
then
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
else
|
else
|
||||||
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||||
| grep -q __ARM_PCS_VFP
|
|
||||||
then
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
|
||||||
else
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
avr32*:Linux:*:*)
|
avr32*:Linux:*:*)
|
||||||
|
@ -903,21 +855,7 @@ EOF
|
||||||
echo crisv32-axis-linux-gnu
|
echo crisv32-axis-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
frv:Linux:*:*)
|
frv:Linux:*:*)
|
||||||
echo frv-unknown-linux-gnu
|
echo frv-unknown-linux-gnu
|
||||||
exit ;;
|
|
||||||
hexagon:Linux:*:*)
|
|
||||||
echo hexagon-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
i*86:Linux:*:*)
|
|
||||||
LIBC=gnu
|
|
||||||
eval $set_cc_for_build
|
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
|
||||||
#ifdef __dietlibc__
|
|
||||||
LIBC=dietlibc
|
|
||||||
#endif
|
|
||||||
EOF
|
|
||||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
|
||||||
exit ;;
|
exit ;;
|
||||||
ia64:Linux:*:*)
|
ia64:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
@ -928,33 +866,74 @@ EOF
|
||||||
m68*:Linux:*:*)
|
m68*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
mips:Linux:*:* | mips64:Linux:*:*)
|
mips:Linux:*:*)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
#undef CPU
|
#undef CPU
|
||||||
#undef ${UNAME_MACHINE}
|
#undef mips
|
||||||
#undef ${UNAME_MACHINE}el
|
#undef mipsel
|
||||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||||
CPU=${UNAME_MACHINE}el
|
CPU=mipsel
|
||||||
#else
|
#else
|
||||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||||
CPU=${UNAME_MACHINE}
|
CPU=mips
|
||||||
#else
|
#else
|
||||||
CPU=
|
CPU=
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
|
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||||
|
/^CPU/{
|
||||||
|
s: ::g
|
||||||
|
p
|
||||||
|
}'`"
|
||||||
|
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||||
|
;;
|
||||||
|
mips64:Linux:*:*)
|
||||||
|
eval $set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
|
#undef CPU
|
||||||
|
#undef mips64
|
||||||
|
#undef mips64el
|
||||||
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||||
|
CPU=mips64el
|
||||||
|
#else
|
||||||
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||||
|
CPU=mips64
|
||||||
|
#else
|
||||||
|
CPU=
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||||
|
/^CPU/{
|
||||||
|
s: ::g
|
||||||
|
p
|
||||||
|
}'`"
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||||
;;
|
;;
|
||||||
or32:Linux:*:*)
|
or32:Linux:*:*)
|
||||||
echo or32-unknown-linux-gnu
|
echo or32-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
padre:Linux:*:*)
|
ppc:Linux:*:*)
|
||||||
echo sparc-unknown-linux-gnu
|
echo powerpc-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
ppc64:Linux:*:*)
|
||||||
echo hppa64-unknown-linux-gnu
|
echo powerpc64-unknown-linux-gnu
|
||||||
|
exit ;;
|
||||||
|
alpha:Linux:*:*)
|
||||||
|
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||||
|
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||||
|
EV56) UNAME_MACHINE=alphaev56 ;;
|
||||||
|
PCA56) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
PCA57) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||||
|
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||||
|
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||||
|
esac
|
||||||
|
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
||||||
|
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||||
exit ;;
|
exit ;;
|
||||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||||
# Look for CPU level
|
# Look for CPU level
|
||||||
|
@ -964,17 +943,14 @@ EOF
|
||||||
*) echo hppa-unknown-linux-gnu ;;
|
*) echo hppa-unknown-linux-gnu ;;
|
||||||
esac
|
esac
|
||||||
exit ;;
|
exit ;;
|
||||||
ppc64:Linux:*:*)
|
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
||||||
echo powerpc64-unknown-linux-gnu
|
echo hppa64-unknown-linux-gnu
|
||||||
exit ;;
|
|
||||||
ppc:Linux:*:*)
|
|
||||||
echo powerpc-unknown-linux-gnu
|
|
||||||
exit ;;
|
exit ;;
|
||||||
s390:Linux:*:* | s390x:Linux:*:*)
|
s390:Linux:*:* | s390x:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-ibm-linux
|
echo ${UNAME_MACHINE}-ibm-linux
|
||||||
exit ;;
|
exit ;;
|
||||||
sh64*:Linux:*:*)
|
sh64*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
sh*:Linux:*:*)
|
sh*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
@ -982,9 +958,6 @@ EOF
|
||||||
sparc:Linux:*:* | sparc64:Linux:*:*)
|
sparc:Linux:*:* | sparc64:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
tile*:Linux:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
vax:Linux:*:*)
|
vax:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-dec-linux-gnu
|
echo ${UNAME_MACHINE}-dec-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -992,8 +965,71 @@ EOF
|
||||||
echo x86_64-unknown-linux-gnu
|
echo x86_64-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
xtensa*:Linux:*:*)
|
xtensa*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
|
i*86:Linux:*:*)
|
||||||
|
# The BFD linker knows what the default object file format is, so
|
||||||
|
# first see if it will tell us. cd to the root directory to prevent
|
||||||
|
# problems with other programs or directories called `ld' in the path.
|
||||||
|
# Set LC_ALL=C to ensure ld outputs messages in English.
|
||||||
|
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
||||||
|
| sed -ne '/supported targets:/!d
|
||||||
|
s/[ ][ ]*/ /g
|
||||||
|
s/.*supported targets: *//
|
||||||
|
s/ .*//
|
||||||
|
p'`
|
||||||
|
case "$ld_supported_targets" in
|
||||||
|
elf32-i386)
|
||||||
|
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||||
|
;;
|
||||||
|
a.out-i386-linux)
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||||
|
exit ;;
|
||||||
|
coff-i386)
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||||
|
exit ;;
|
||||||
|
"")
|
||||||
|
# Either a pre-BFD a.out linker (linux-gnuoldld) or
|
||||||
|
# one that does not give us useful --help.
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
|
||||||
|
exit ;;
|
||||||
|
esac
|
||||||
|
# Determine whether the default compiler is a.out or elf
|
||||||
|
eval $set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
|
#include <features.h>
|
||||||
|
#ifdef __ELF__
|
||||||
|
# ifdef __GLIBC__
|
||||||
|
# if __GLIBC__ >= 2
|
||||||
|
LIBC=gnu
|
||||||
|
# else
|
||||||
|
LIBC=gnulibc1
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
LIBC=gnulibc1
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
||||||
|
LIBC=gnu
|
||||||
|
#else
|
||||||
|
LIBC=gnuaout
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef __dietlibc__
|
||||||
|
LIBC=dietlibc
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||||
|
/^LIBC/{
|
||||||
|
s: ::g
|
||||||
|
p
|
||||||
|
}'`"
|
||||||
|
test x"${LIBC}" != x && {
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
|
||||||
|
;;
|
||||||
i*86:DYNIX/ptx:4*:*)
|
i*86:DYNIX/ptx:4*:*)
|
||||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||||
# earlier versions are messed up and put the nodename in both
|
# earlier versions are messed up and put the nodename in both
|
||||||
|
@ -1001,11 +1037,11 @@ EOF
|
||||||
echo i386-sequent-sysv4
|
echo i386-sequent-sysv4
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:UNIX_SV:4.2MP:2.*)
|
i*86:UNIX_SV:4.2MP:2.*)
|
||||||
# Unixware is an offshoot of SVR4, but it has its own version
|
# Unixware is an offshoot of SVR4, but it has its own version
|
||||||
# number series starting with 2...
|
# number series starting with 2...
|
||||||
# I am not positive that other SVR4 systems won't match this,
|
# I am not positive that other SVR4 systems won't match this,
|
||||||
# I just have to hope. -- rms.
|
# I just have to hope. -- rms.
|
||||||
# Use sysv4.2uw... so that sysv4* matches it.
|
# Use sysv4.2uw... so that sysv4* matches it.
|
||||||
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
|
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:OS/2:*:*)
|
i*86:OS/2:*:*)
|
||||||
|
@ -1022,7 +1058,7 @@ EOF
|
||||||
i*86:syllable:*:*)
|
i*86:syllable:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-syllable
|
echo ${UNAME_MACHINE}-pc-syllable
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
||||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
echo i386-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:*DOS:*:*)
|
i*86:*DOS:*:*)
|
||||||
|
@ -1037,7 +1073,7 @@ EOF
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:*:5:[678]*)
|
i*86:*:5:[678]*)
|
||||||
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
||||||
case `/bin/uname -X | grep "^Machine"` in
|
case `/bin/uname -X | grep "^Machine"` in
|
||||||
*486*) UNAME_MACHINE=i486 ;;
|
*486*) UNAME_MACHINE=i486 ;;
|
||||||
*Pentium) UNAME_MACHINE=i586 ;;
|
*Pentium) UNAME_MACHINE=i586 ;;
|
||||||
|
@ -1065,13 +1101,10 @@ EOF
|
||||||
exit ;;
|
exit ;;
|
||||||
pc:*:*:*)
|
pc:*:*:*)
|
||||||
# Left here for compatibility:
|
# Left here for compatibility:
|
||||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||||
# the processor, so we play safe by assuming i586.
|
# the processor, so we play safe by assuming i386.
|
||||||
# Note: whatever this is, it MUST be the same as what config.sub
|
echo i386-pc-msdosdjgpp
|
||||||
# prints for the "djgpp" host, or else GDB configury will decide that
|
exit ;;
|
||||||
# this is a cross-build.
|
|
||||||
echo i586-pc-msdosdjgpp
|
|
||||||
exit ;;
|
|
||||||
Intel:Mach:3*:*)
|
Intel:Mach:3*:*)
|
||||||
echo i386-pc-mach3
|
echo i386-pc-mach3
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1106,18 +1139,8 @@ EOF
|
||||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
||||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||||
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
|
||||||
OS_REL='.3'
|
|
||||||
test -r /etc/.relid \
|
|
||||||
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
|
||||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
|
||||||
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
|
|
||||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
|
||||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
|
|
||||||
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
|
|
||||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
|
||||||
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1130,7 +1153,7 @@ EOF
|
||||||
rs6000:LynxOS:2.*:*)
|
rs6000:LynxOS:2.*:*)
|
||||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
||||||
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
SM[BE]S:UNIX_SV:*:*)
|
SM[BE]S:UNIX_SV:*:*)
|
||||||
|
@ -1150,10 +1173,10 @@ EOF
|
||||||
echo ns32k-sni-sysv
|
echo ns32k-sni-sysv
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||||
echo i586-unisys-sysv4
|
echo i586-unisys-sysv4
|
||||||
exit ;;
|
exit ;;
|
||||||
*:UNIX_System_V:4*:FTX*)
|
*:UNIX_System_V:4*:FTX*)
|
||||||
# From Gerald Hewes <hewes@openmarket.com>.
|
# From Gerald Hewes <hewes@openmarket.com>.
|
||||||
# How about differentiating between stratus architectures? -djm
|
# How about differentiating between stratus architectures? -djm
|
||||||
|
@ -1179,11 +1202,11 @@ EOF
|
||||||
exit ;;
|
exit ;;
|
||||||
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
||||||
if [ -d /usr/nec ]; then
|
if [ -d /usr/nec ]; then
|
||||||
echo mips-nec-sysv${UNAME_RELEASE}
|
echo mips-nec-sysv${UNAME_RELEASE}
|
||||||
else
|
else
|
||||||
echo mips-unknown-sysv${UNAME_RELEASE}
|
echo mips-unknown-sysv${UNAME_RELEASE}
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
|
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
|
||||||
echo powerpc-be-beos
|
echo powerpc-be-beos
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1193,9 +1216,6 @@ EOF
|
||||||
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
||||||
echo i586-pc-beos
|
echo i586-pc-beos
|
||||||
exit ;;
|
exit ;;
|
||||||
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
|
||||||
echo i586-pc-haiku
|
|
||||||
exit ;;
|
|
||||||
SX-4:SUPER-UX:*:*)
|
SX-4:SUPER-UX:*:*)
|
||||||
echo sx4-nec-superux${UNAME_RELEASE}
|
echo sx4-nec-superux${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1223,16 +1243,6 @@ EOF
|
||||||
*:Darwin:*:*)
|
*:Darwin:*:*)
|
||||||
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
||||||
case $UNAME_PROCESSOR in
|
case $UNAME_PROCESSOR in
|
||||||
i386)
|
|
||||||
eval $set_cc_for_build
|
|
||||||
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
|
||||||
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
|
||||||
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
|
||||||
grep IS_64BIT_ARCH >/dev/null
|
|
||||||
then
|
|
||||||
UNAME_PROCESSOR="x86_64"
|
|
||||||
fi
|
|
||||||
fi ;;
|
|
||||||
unknown) UNAME_PROCESSOR=powerpc ;;
|
unknown) UNAME_PROCESSOR=powerpc ;;
|
||||||
esac
|
esac
|
||||||
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
||||||
|
@ -1248,9 +1258,6 @@ EOF
|
||||||
*:QNX:*:4*)
|
*:QNX:*:4*)
|
||||||
echo i386-pc-qnx
|
echo i386-pc-qnx
|
||||||
exit ;;
|
exit ;;
|
||||||
NEO-?:NONSTOP_KERNEL:*:*)
|
|
||||||
echo neo-tandem-nsk${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
NSE-?:NONSTOP_KERNEL:*:*)
|
NSE-?:NONSTOP_KERNEL:*:*)
|
||||||
echo nse-tandem-nsk${UNAME_RELEASE}
|
echo nse-tandem-nsk${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1296,13 +1303,13 @@ EOF
|
||||||
echo pdp10-unknown-its
|
echo pdp10-unknown-its
|
||||||
exit ;;
|
exit ;;
|
||||||
SEI:*:*:SEIUX)
|
SEI:*:*:SEIUX)
|
||||||
echo mips-sei-seiux${UNAME_RELEASE}
|
echo mips-sei-seiux${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
*:DragonFly:*:*)
|
*:DragonFly:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
*:*VMS:*:*)
|
*:*VMS:*:*)
|
||||||
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||||
case "${UNAME_MACHINE}" in
|
case "${UNAME_MACHINE}" in
|
||||||
A*) echo alpha-dec-vms ; exit ;;
|
A*) echo alpha-dec-vms ; exit ;;
|
||||||
I*) echo ia64-dec-vms ; exit ;;
|
I*) echo ia64-dec-vms ; exit ;;
|
||||||
|
@ -1317,9 +1324,6 @@ EOF
|
||||||
i*86:rdos:*:*)
|
i*86:rdos:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-rdos
|
echo ${UNAME_MACHINE}-pc-rdos
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:AROS:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-aros
|
|
||||||
exit ;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||||
|
@ -1342,11 +1346,11 @@ main ()
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
printf ("m68k-sony-newsos%s\n",
|
printf ("m68k-sony-newsos%s\n",
|
||||||
#ifdef NEWSOS4
|
#ifdef NEWSOS4
|
||||||
"4"
|
"4"
|
||||||
#else
|
#else
|
||||||
""
|
""
|
||||||
#endif
|
#endif
|
||||||
); exit (0);
|
); exit (0);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||||
# 2011 Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2011-11-11'
|
timestamp='2008-02-05'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is (in principle) common to ALL GNU software.
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# The presence of a machine in this file suggests that SOME GNU software
|
||||||
|
@ -32,16 +32,13 @@ timestamp='2011-11-11'
|
||||||
|
|
||||||
|
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||||
# diff and a properly formatted GNU ChangeLog entry.
|
# diff and a properly formatted ChangeLog entry.
|
||||||
#
|
#
|
||||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||||
# Supply the specified configuration type as an argument.
|
# Supply the specified configuration type as an argument.
|
||||||
# If it is invalid, we print an error message on stderr and exit with code 1.
|
# If it is invalid, we print an error message on stderr and exit with code 1.
|
||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
# You can get the latest version of this script from:
|
|
||||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
# This file is supposed to be the same for all GNU packages
|
||||||
# and recognize all the CPU types, system types and aliases
|
# and recognize all the CPU types, system types and aliases
|
||||||
# that are meaningful with *any* GNU software.
|
# that are meaningful with *any* GNU software.
|
||||||
|
@ -75,9 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
|
||||||
version="\
|
version="\
|
||||||
GNU config.sub ($timestamp)
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||||
Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
@ -124,10 +120,8 @@ esac
|
||||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||||
case $maybe_os in
|
case $maybe_os in
|
||||||
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||||
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||||
knetbsd*-gnu* | netbsd*-gnu* | \
|
|
||||||
kopensolaris*-gnu* | \
|
|
||||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||||
os=-$maybe_os
|
os=-$maybe_os
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||||
|
@ -154,13 +148,10 @@ case $os in
|
||||||
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
||||||
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
||||||
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
||||||
-apple | -axis | -knuth | -cray | -microblaze)
|
-apple | -axis | -knuth | -cray)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
;;
|
;;
|
||||||
-bluegene*)
|
|
||||||
os=-cnk
|
|
||||||
;;
|
|
||||||
-sim | -cisco | -oki | -wec | -winbond)
|
-sim | -cisco | -oki | -wec | -winbond)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
|
@ -175,10 +166,10 @@ case $os in
|
||||||
os=-chorusos
|
os=-chorusos
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
;;
|
;;
|
||||||
-chorusrdb)
|
-chorusrdb)
|
||||||
os=-chorusrdb
|
os=-chorusrdb
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
;;
|
;;
|
||||||
-hiux*)
|
-hiux*)
|
||||||
os=-hiuxwe2
|
os=-hiuxwe2
|
||||||
;;
|
;;
|
||||||
|
@ -251,20 +242,15 @@ case $basic_machine in
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||||
| am33_2.0 \
|
| am33_2.0 \
|
||||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
||||||
| be32 | be64 \
|
|
||||||
| bfin \
|
| bfin \
|
||||||
| c4x | clipper \
|
| c4x | clipper \
|
||||||
| d10v | d30v | dlx | dsp16xx \
|
| d10v | d30v | dlx | dsp16xx \
|
||||||
| epiphany \
|
|
||||||
| fido | fr30 | frv \
|
| fido | fr30 | frv \
|
||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
| hexagon \
|
|
||||||
| i370 | i860 | i960 | ia64 \
|
| i370 | i860 | i960 | ia64 \
|
||||||
| ip2k | iq2000 \
|
| ip2k | iq2000 \
|
||||||
| le32 | le64 \
|
|
||||||
| lm32 \
|
|
||||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||||
| maxq | mb | microblaze | mcore | mep | metag \
|
| maxq | mb | microblaze | mcore | mep \
|
||||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||||
| mips16 \
|
| mips16 \
|
||||||
| mips64 | mips64el \
|
| mips64 | mips64el \
|
||||||
|
@ -284,42 +270,28 @@ case $basic_machine in
|
||||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
| mipstx39 | mipstx39el \
|
| mipstx39 | mipstx39el \
|
||||||
| mn10200 | mn10300 \
|
| mn10200 | mn10300 \
|
||||||
| moxie \
|
|
||||||
| mt \
|
| mt \
|
||||||
| msp430 \
|
| msp430 \
|
||||||
| nds32 | nds32le | nds32be \
|
|
||||||
| nios | nios2 \
|
| nios | nios2 \
|
||||||
| ns16k | ns32k \
|
| ns16k | ns32k \
|
||||||
| open8 \
|
|
||||||
| or32 \
|
| or32 \
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
| rl78 | rx \
|
|
||||||
| score \
|
| score \
|
||||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||||
| sh64 | sh64le \
|
| sh64 | sh64le \
|
||||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||||
| spu \
|
| spu | strongarm \
|
||||||
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
|
| tahoe | thumb | tic4x | tic80 | tron \
|
||||||
| ubicom32 \
|
| v850 | v850e \
|
||||||
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
|
||||||
| we32k \
|
| we32k \
|
||||||
| x86 | xc16x | xstormy16 | xtensa \
|
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||||
| z8k | z80)
|
| z8k)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
c54x)
|
m6811 | m68hc11 | m6812 | m68hc12)
|
||||||
basic_machine=tic54x-unknown
|
|
||||||
;;
|
|
||||||
c55x)
|
|
||||||
basic_machine=tic55x-unknown
|
|
||||||
;;
|
|
||||||
c6x)
|
|
||||||
basic_machine=tic6x-unknown
|
|
||||||
;;
|
|
||||||
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
|
||||||
# Motorola 68HC11/12.
|
# Motorola 68HC11/12.
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
os=-none
|
os=-none
|
||||||
|
@ -330,18 +302,6 @@ case $basic_machine in
|
||||||
basic_machine=mt-unknown
|
basic_machine=mt-unknown
|
||||||
;;
|
;;
|
||||||
|
|
||||||
strongarm | thumb | xscale)
|
|
||||||
basic_machine=arm-unknown
|
|
||||||
;;
|
|
||||||
|
|
||||||
xscaleeb)
|
|
||||||
basic_machine=armeb-unknown
|
|
||||||
;;
|
|
||||||
|
|
||||||
xscaleel)
|
|
||||||
basic_machine=armel-unknown
|
|
||||||
;;
|
|
||||||
|
|
||||||
# We use `pc' rather than `unknown'
|
# We use `pc' rather than `unknown'
|
||||||
# because (1) that's what they normally are, and
|
# because (1) that's what they normally are, and
|
||||||
# (2) the word "unknown" tends to confuse beginning users.
|
# (2) the word "unknown" tends to confuse beginning users.
|
||||||
|
@ -361,23 +321,19 @@ case $basic_machine in
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||||
| avr-* | avr32-* \
|
| avr-* | avr32-* \
|
||||||
| be32-* | be64-* \
|
|
||||||
| bfin-* | bs2000-* \
|
| bfin-* | bs2000-* \
|
||||||
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
||||||
| clipper-* | craynv-* | cydra-* \
|
| clipper-* | craynv-* | cydra-* \
|
||||||
| d10v-* | d30v-* | dlx-* \
|
| d10v-* | d30v-* | dlx-* \
|
||||||
| elxsi-* \
|
| elxsi-* \
|
||||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||||
| h8300-* | h8500-* \
|
| h8300-* | h8500-* \
|
||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||||
| hexagon-* \
|
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
| i*86-* | i860-* | i960-* | ia64-* \
|
||||||
| ip2k-* | iq2000-* \
|
| ip2k-* | iq2000-* \
|
||||||
| le32-* | le64-* \
|
|
||||||
| lm32-* \
|
|
||||||
| m32c-* | m32r-* | m32rle-* \
|
| m32c-* | m32r-* | m32rle-* \
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
|
| m88110-* | m88k-* | maxq-* | mcore-* \
|
||||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||||
| mips16-* \
|
| mips16-* \
|
||||||
| mips64-* | mips64el-* \
|
| mips64-* | mips64el-* \
|
||||||
|
@ -399,32 +355,27 @@ case $basic_machine in
|
||||||
| mmix-* \
|
| mmix-* \
|
||||||
| mt-* \
|
| mt-* \
|
||||||
| msp430-* \
|
| msp430-* \
|
||||||
| nds32-* | nds32le-* | nds32be-* \
|
|
||||||
| nios-* | nios2-* \
|
| nios-* | nios2-* \
|
||||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||||
| open8-* \
|
|
||||||
| orion-* \
|
| orion-* \
|
||||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||||
| pyramid-* \
|
| pyramid-* \
|
||||||
| rl78-* | romp-* | rs6000-* | rx-* \
|
| romp-* | rs6000-* \
|
||||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||||
| sparclite-* \
|
| sparclite-* \
|
||||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
|
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||||
| tahoe-* \
|
| tahoe-* | thumb-* \
|
||||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||||
| tile*-* \
|
|
||||||
| tron-* \
|
| tron-* \
|
||||||
| ubicom32-* \
|
| v850-* | v850e-* | vax-* \
|
||||||
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
|
||||||
| vax-* \
|
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||||
| xstormy16-* | xtensa*-* \
|
| xstormy16-* | xtensa*-* \
|
||||||
| ymp-* \
|
| ymp-* \
|
||||||
| z8k-* | z80-*)
|
| z8k-*)
|
||||||
;;
|
;;
|
||||||
# Recognize the basic CPU types without company name, with glob match.
|
# Recognize the basic CPU types without company name, with glob match.
|
||||||
xtensa*)
|
xtensa*)
|
||||||
|
@ -446,7 +397,7 @@ case $basic_machine in
|
||||||
basic_machine=a29k-amd
|
basic_machine=a29k-amd
|
||||||
os=-udi
|
os=-udi
|
||||||
;;
|
;;
|
||||||
abacus)
|
abacus)
|
||||||
basic_machine=abacus-unknown
|
basic_machine=abacus-unknown
|
||||||
;;
|
;;
|
||||||
adobe68k)
|
adobe68k)
|
||||||
|
@ -492,10 +443,6 @@ case $basic_machine in
|
||||||
basic_machine=m68k-apollo
|
basic_machine=m68k-apollo
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
aros)
|
|
||||||
basic_machine=i386-pc
|
|
||||||
os=-aros
|
|
||||||
;;
|
|
||||||
aux)
|
aux)
|
||||||
basic_machine=m68k-apple
|
basic_machine=m68k-apple
|
||||||
os=-aux
|
os=-aux
|
||||||
|
@ -512,27 +459,10 @@ case $basic_machine in
|
||||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
bluegene*)
|
|
||||||
basic_machine=powerpc-ibm
|
|
||||||
os=-cnk
|
|
||||||
;;
|
|
||||||
c54x-*)
|
|
||||||
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
c55x-*)
|
|
||||||
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
c6x-*)
|
|
||||||
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
c90)
|
c90)
|
||||||
basic_machine=c90-cray
|
basic_machine=c90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
cegcc)
|
|
||||||
basic_machine=arm-unknown
|
|
||||||
os=-cegcc
|
|
||||||
;;
|
|
||||||
convex-c1)
|
convex-c1)
|
||||||
basic_machine=c1-convex
|
basic_machine=c1-convex
|
||||||
os=-bsd
|
os=-bsd
|
||||||
|
@ -561,7 +491,7 @@ case $basic_machine in
|
||||||
basic_machine=craynv-cray
|
basic_machine=craynv-cray
|
||||||
os=-unicosmp
|
os=-unicosmp
|
||||||
;;
|
;;
|
||||||
cr16 | cr16-*)
|
cr16)
|
||||||
basic_machine=cr16-unknown
|
basic_machine=cr16-unknown
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
|
@ -600,10 +530,6 @@ case $basic_machine in
|
||||||
basic_machine=m88k-motorola
|
basic_machine=m88k-motorola
|
||||||
os=-sysv3
|
os=-sysv3
|
||||||
;;
|
;;
|
||||||
dicos)
|
|
||||||
basic_machine=i686-pc
|
|
||||||
os=-dicos
|
|
||||||
;;
|
|
||||||
djgpp)
|
djgpp)
|
||||||
basic_machine=i586-pc
|
basic_machine=i586-pc
|
||||||
os=-msdosdjgpp
|
os=-msdosdjgpp
|
||||||
|
@ -777,9 +703,6 @@ case $basic_machine in
|
||||||
basic_machine=ns32k-utek
|
basic_machine=ns32k-utek
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
microblaze)
|
|
||||||
basic_machine=microblaze-xilinx
|
|
||||||
;;
|
|
||||||
mingw32)
|
mingw32)
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-mingw32
|
os=-mingw32
|
||||||
|
@ -816,18 +739,10 @@ case $basic_machine in
|
||||||
ms1-*)
|
ms1-*)
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||||
;;
|
;;
|
||||||
msys)
|
|
||||||
basic_machine=i386-pc
|
|
||||||
os=-msys
|
|
||||||
;;
|
|
||||||
mvs)
|
mvs)
|
||||||
basic_machine=i370-ibm
|
basic_machine=i370-ibm
|
||||||
os=-mvs
|
os=-mvs
|
||||||
;;
|
;;
|
||||||
nacl)
|
|
||||||
basic_machine=le32-unknown
|
|
||||||
os=-nacl
|
|
||||||
;;
|
|
||||||
ncr3000)
|
ncr3000)
|
||||||
basic_machine=i486-ncr
|
basic_machine=i486-ncr
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
|
@ -892,12 +807,6 @@ case $basic_machine in
|
||||||
np1)
|
np1)
|
||||||
basic_machine=np1-gould
|
basic_machine=np1-gould
|
||||||
;;
|
;;
|
||||||
neo-tandem)
|
|
||||||
basic_machine=neo-tandem
|
|
||||||
;;
|
|
||||||
nse-tandem)
|
|
||||||
basic_machine=nse-tandem
|
|
||||||
;;
|
|
||||||
nsr-tandem)
|
nsr-tandem)
|
||||||
basic_machine=nsr-tandem
|
basic_machine=nsr-tandem
|
||||||
;;
|
;;
|
||||||
|
@ -980,10 +889,9 @@ case $basic_machine in
|
||||||
;;
|
;;
|
||||||
power) basic_machine=power-ibm
|
power) basic_machine=power-ibm
|
||||||
;;
|
;;
|
||||||
ppc | ppcbe) basic_machine=powerpc-unknown
|
ppc) basic_machine=powerpc-unknown
|
||||||
;;
|
;;
|
||||||
ppc-* | ppcbe-*)
|
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
;;
|
||||||
ppcle | powerpclittle | ppc-le | powerpc-little)
|
ppcle | powerpclittle | ppc-le | powerpc-little)
|
||||||
basic_machine=powerpcle-unknown
|
basic_machine=powerpcle-unknown
|
||||||
|
@ -1077,9 +985,6 @@ case $basic_machine in
|
||||||
basic_machine=i860-stratus
|
basic_machine=i860-stratus
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
;;
|
;;
|
||||||
strongarm-* | thumb-*)
|
|
||||||
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
sun2)
|
sun2)
|
||||||
basic_machine=m68000-sun
|
basic_machine=m68000-sun
|
||||||
;;
|
;;
|
||||||
|
@ -1136,8 +1041,20 @@ case $basic_machine in
|
||||||
basic_machine=t90-cray
|
basic_machine=t90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
|
tic54x | c54x*)
|
||||||
|
basic_machine=tic54x-unknown
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
|
tic55x | c55x*)
|
||||||
|
basic_machine=tic55x-unknown
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
|
tic6x | c6x*)
|
||||||
|
basic_machine=tic6x-unknown
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
tile*)
|
tile*)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=tile-unknown
|
||||||
os=-linux-gnu
|
os=-linux-gnu
|
||||||
;;
|
;;
|
||||||
tx39)
|
tx39)
|
||||||
|
@ -1207,9 +1124,6 @@ case $basic_machine in
|
||||||
xps | xps100)
|
xps | xps100)
|
||||||
basic_machine=xps100-honeywell
|
basic_machine=xps100-honeywell
|
||||||
;;
|
;;
|
||||||
xscale-* | xscalee[bl]-*)
|
|
||||||
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
|
|
||||||
;;
|
|
||||||
ymp)
|
ymp)
|
||||||
basic_machine=ymp-cray
|
basic_machine=ymp-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
|
@ -1218,10 +1132,6 @@ case $basic_machine in
|
||||||
basic_machine=z8k-unknown
|
basic_machine=z8k-unknown
|
||||||
os=-sim
|
os=-sim
|
||||||
;;
|
;;
|
||||||
z80-*-coff)
|
|
||||||
basic_machine=z80-unknown
|
|
||||||
os=-sim
|
|
||||||
;;
|
|
||||||
none)
|
none)
|
||||||
basic_machine=none-none
|
basic_machine=none-none
|
||||||
os=-none
|
os=-none
|
||||||
|
@ -1260,7 +1170,7 @@ case $basic_machine in
|
||||||
we32k)
|
we32k)
|
||||||
basic_machine=we32k-att
|
basic_machine=we32k-att
|
||||||
;;
|
;;
|
||||||
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||||
basic_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||||
|
@ -1307,12 +1217,9 @@ esac
|
||||||
if [ x"$os" != x"" ]
|
if [ x"$os" != x"" ]
|
||||||
then
|
then
|
||||||
case $os in
|
case $os in
|
||||||
# First match some system type aliases
|
# First match some system type aliases
|
||||||
# that might get confused with valid system types.
|
# that might get confused with valid system types.
|
||||||
# -solaris* is a basic system type, with this one exception.
|
# -solaris* is a basic system type, with this one exception.
|
||||||
-auroraux)
|
|
||||||
os=-auroraux
|
|
||||||
;;
|
|
||||||
-solaris1 | -solaris1.*)
|
-solaris1 | -solaris1.*)
|
||||||
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
||||||
;;
|
;;
|
||||||
|
@ -1333,11 +1240,10 @@ case $os in
|
||||||
# Each alternative MUST END IN A *, to match a version number.
|
# Each alternative MUST END IN A *, to match a version number.
|
||||||
# -sysv* is not here because it comes later, after sysvr4.
|
# -sysv* is not here because it comes later, after sysvr4.
|
||||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
||||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
||||||
| -sym* | -kopensolaris* \
|
|
||||||
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
| -aos* | -aros* \
|
| -aos* \
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||||
|
@ -1346,10 +1252,9 @@ case $os in
|
||||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
| -chorusos* | -chorusrdb* \
|
||||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||||
| -mingw32* | -linux-gnu* | -linux-android* \
|
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||||
| -linux-newlib* | -linux-uclibc* \
|
|
||||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||||
|
@ -1357,7 +1262,7 @@ case $os in
|
||||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
|
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
|
@ -1396,7 +1301,7 @@ case $os in
|
||||||
-opened*)
|
-opened*)
|
||||||
os=-openedition
|
os=-openedition
|
||||||
;;
|
;;
|
||||||
-os400*)
|
-os400*)
|
||||||
os=-os400
|
os=-os400
|
||||||
;;
|
;;
|
||||||
-wince*)
|
-wince*)
|
||||||
|
@ -1445,7 +1350,7 @@ case $os in
|
||||||
-sinix*)
|
-sinix*)
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
;;
|
;;
|
||||||
-tpf*)
|
-tpf*)
|
||||||
os=-tpf
|
os=-tpf
|
||||||
;;
|
;;
|
||||||
-triton*)
|
-triton*)
|
||||||
|
@ -1487,11 +1392,6 @@ case $os in
|
||||||
-zvmoe)
|
-zvmoe)
|
||||||
os=-zvmoe
|
os=-zvmoe
|
||||||
;;
|
;;
|
||||||
-dicos*)
|
|
||||||
os=-dicos
|
|
||||||
;;
|
|
||||||
-nacl*)
|
|
||||||
;;
|
|
||||||
-none)
|
-none)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -1514,10 +1414,10 @@ else
|
||||||
# system, and we'll never get to this point.
|
# system, and we'll never get to this point.
|
||||||
|
|
||||||
case $basic_machine in
|
case $basic_machine in
|
||||||
score-*)
|
score-*)
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
spu-*)
|
spu-*)
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
*-acorn)
|
*-acorn)
|
||||||
|
@ -1529,17 +1429,8 @@ case $basic_machine in
|
||||||
arm*-semi)
|
arm*-semi)
|
||||||
os=-aout
|
os=-aout
|
||||||
;;
|
;;
|
||||||
c4x-* | tic4x-*)
|
c4x-* | tic4x-*)
|
||||||
os=-coff
|
os=-coff
|
||||||
;;
|
|
||||||
tic54x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
tic55x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
tic6x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
;;
|
||||||
# This must come before the *-dec entry.
|
# This must come before the *-dec entry.
|
||||||
pdp10-*)
|
pdp10-*)
|
||||||
|
@ -1566,7 +1457,7 @@ case $basic_machine in
|
||||||
m68*-cisco)
|
m68*-cisco)
|
||||||
os=-aout
|
os=-aout
|
||||||
;;
|
;;
|
||||||
mep-*)
|
mep-*)
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
mips*-cisco)
|
mips*-cisco)
|
||||||
|
@ -1593,7 +1484,7 @@ case $basic_machine in
|
||||||
*-ibm)
|
*-ibm)
|
||||||
os=-aix
|
os=-aix
|
||||||
;;
|
;;
|
||||||
*-knuth)
|
*-knuth)
|
||||||
os=-mmixware
|
os=-mmixware
|
||||||
;;
|
;;
|
||||||
*-wec)
|
*-wec)
|
||||||
|
@ -1698,7 +1589,7 @@ case $basic_machine in
|
||||||
-sunos*)
|
-sunos*)
|
||||||
vendor=sun
|
vendor=sun
|
||||||
;;
|
;;
|
||||||
-cnk*|-aix*)
|
-aix*)
|
||||||
vendor=ibm
|
vendor=ibm
|
||||||
;;
|
;;
|
||||||
-beos*)
|
-beos*)
|
||||||
|
|
|
@ -1,38 +1,572 @@
|
||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
dnl
|
dnl
|
||||||
dnl $Id: configure.in,v 1.166 2011/12/26 17:03:31 fabiankeil Exp $
|
dnl $Id: configure.in,v 1.126 2009/03/21 10:45:06 fabiankeil Exp $
|
||||||
dnl
|
dnl
|
||||||
dnl Written by and Copyright (C) 2001-2010 the
|
dnl Written by and Copyright (C) 2001-2009 the
|
||||||
dnl Privoxy team. http://www.privoxy.org/
|
dnl Privoxy team. http://www.privoxy.org/
|
||||||
dnl
|
dnl
|
||||||
dnl Based on the Internet Junkbuster originally written
|
dnl Based on the Internet Junkbuster originally written
|
||||||
dnl by and Copyright (C) 1997 Anonymous Coders and
|
dnl by and Copyright (C) 1997 Anonymous Coders and
|
||||||
dnl Junkbusters Corporation. http://www.junkbusters.com
|
dnl Junkbusters Corporation. http://www.junkbusters.com
|
||||||
dnl
|
dnl
|
||||||
dnl This program is free software; you can redistribute it
|
dnl This program is free software; you can redistribute it
|
||||||
dnl and/or modify it under the terms of the GNU General
|
dnl and/or modify it under the terms of the GNU General
|
||||||
dnl Public License as published by the Free Software
|
dnl Public License as published by the Free Software
|
||||||
dnl Foundation; either version 2 of the License, or (at
|
dnl Foundation; either version 2 of the License, or (at
|
||||||
dnl your option) any later version.
|
dnl your option) any later version.
|
||||||
dnl
|
dnl
|
||||||
dnl This program is distributed in the hope that it will
|
dnl This program is distributed in the hope that it will
|
||||||
dnl be useful, but WITHOUT ANY WARRANTY; without even the
|
dnl be useful, but WITHOUT ANY WARRANTY; without even the
|
||||||
dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
|
dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
dnl PARTICULAR PURPOSE. See the GNU General Public
|
dnl PARTICULAR PURPOSE. See the GNU General Public
|
||||||
dnl License for more details.
|
dnl License for more details.
|
||||||
dnl
|
dnl
|
||||||
dnl The GNU General Public License should be included with
|
dnl The GNU General Public License should be included with
|
||||||
dnl this file. If not, you can view it at
|
dnl this file. If not, you can view it at
|
||||||
dnl http://www.gnu.org/copyleft/gpl.html
|
dnl http://www.gnu.org/copyleft/gpl.html
|
||||||
dnl or write to the Free Software Foundation, Inc., 59
|
dnl or write to the Free Software Foundation, Inc., 59
|
||||||
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
dnl
|
||||||
|
dnl $Log: configure.in,v $
|
||||||
|
dnl Revision 1.126 2009/03/21 10:45:06 fabiankeil
|
||||||
|
dnl Declare the code stable.
|
||||||
dnl
|
dnl
|
||||||
|
dnl Revision 1.125 2009/02/25 16:58:03 fabiankeil
|
||||||
|
dnl And the journey continues. Bump version to 3.0.12 UNRELEASED.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.124 2009/02/12 15:42:00 fabiankeil
|
||||||
|
dnl Declare the code stable.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.123 2009/02/06 18:17:32 fabiankeil
|
||||||
|
dnl Boldly enable keep-alive support where possible.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.122 2008/10/18 11:17:52 fabiankeil
|
||||||
|
dnl Connection keep-alive support is ready for testing,
|
||||||
|
dnl allow enabling it through the configure script.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.121 2008/08/30 12:03:07 fabiankeil
|
||||||
|
dnl Remove FEATURE_COOKIE_JAR.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.120 2008/08/21 17:19:50 fabiankeil
|
||||||
|
dnl Change version to 3.0.11 UNRELEASED.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.119 2008/08/13 16:53:50 fabiankeil
|
||||||
|
dnl Change version to 3.0.10 stable.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.118 2008/06/27 12:50:44 fabiankeil
|
||||||
|
dnl Here's looking at you, Gentoo Linux: Show a warning if
|
||||||
|
dnl --disable-pthread is used even though pthreads are available.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.117 2008/06/14 12:47:30 fabiankeil
|
||||||
|
dnl Set CODE_STATUS to beta.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.116 2008/06/08 11:55:09 fabiankeil
|
||||||
|
dnl - Show a warning if the soon-to-be-removed static PCRE code is used.
|
||||||
|
dnl - Hide the "using built-in static pcrs" message. With dynamic linking
|
||||||
|
dnl against PCRS disabled, the message isn't particularly useful.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.115 2008/05/25 15:50:14 fabiankeil
|
||||||
|
dnl Try to use zlib by default, but just show a warning if it's
|
||||||
|
dnl unavailable. Remove --enable-zlib, add --disable-zlib.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.114 2008/04/06 15:18:33 fabiankeil
|
||||||
|
dnl Oh well, rename the --enable-pcre-host-patterns option to
|
||||||
|
dnl --enable-extended-host-patterns as it's not really PCRE syntax.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.113 2008/04/06 14:54:26 fabiankeil
|
||||||
|
dnl Use PCRE syntax in host patterns when configured
|
||||||
|
dnl with --enable-pcre-host-patterns.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.112 2008/03/27 18:27:22 fabiankeil
|
||||||
|
dnl Remove kill-popups action.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.111 2008/02/03 14:40:47 fabiankeil
|
||||||
|
dnl Remove unused OSX_DARWIN macro. Reported by Mark Miller in #1852529.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.110 2008/01/26 10:52:13 fabiankeil
|
||||||
|
dnl Change version to 3.0.9 UNRELEASED.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.109 2008/01/20 14:07:09 fabiankeil
|
||||||
|
dnl Set CODE_STATUS to stable.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.108 2007/12/10 02:30:00 hal9
|
||||||
|
dnl Change versioning for > 3.0.7 && < 3.0.8
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.107 2007/11/15 02:50:14 hal9
|
||||||
|
dnl Setting to "beta" (for doc builds, etc).
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.106 2007/05/11 11:49:41 fabiankeil
|
||||||
|
dnl Check for strlcat().
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.105 2007/04/09 17:34:58 fabiankeil
|
||||||
|
dnl Check for snprintf().
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.104 2007/03/31 13:35:11 fabiankeil
|
||||||
|
dnl Add checks for gettimeofday() and strlcpy().
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.103 2007/01/20 16:29:38 fabiankeil
|
||||||
|
dnl Suppress edit buttons for action files if Privoxy has
|
||||||
|
dnl no write access. Suggested by Roland in PR 1564026.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.102 2007/01/18 14:55:45 fabiankeil
|
||||||
|
dnl Check for tzset() and putenv() to make sure the
|
||||||
|
dnl replacement timegm() isn't included on systems
|
||||||
|
dnl where it fails to compile.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.101 2007/01/12 15:20:17 fabiankeil
|
||||||
|
dnl Temporarily ignore external libpcrs to prevent
|
||||||
|
dnl problems that are fixed in Privoxy's own version.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.100 2007/01/07 07:38:10 joergs
|
||||||
|
dnl Disabled -pipe for AmigaOS4.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.99 2007/01/01 19:36:37 fabiankeil
|
||||||
|
dnl Integrate a modified version of Wil Mahan's
|
||||||
|
dnl zlib patch (PR #895531).
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.98 2006/12/17 19:15:26 fabiankeil
|
||||||
|
dnl Added ./configure switch for FEATURE_GRACEFUL_TERMINATION.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.97 2006/11/21 18:32:46 hal9
|
||||||
|
dnl Setting version to 3.0.7 UNRELEASED for lack of a better setting.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.96 2006/11/18 14:42:51 fabiankeil
|
||||||
|
dnl Mark as stable.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.95 2006/11/14 02:08:59 hal9
|
||||||
|
dnl Setting version string to 3.0.6 UNRELEASED. This needs to be reset to 3.0.6
|
||||||
|
dnl stable just before CVS is tagged for release.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.94 2006/11/13 19:05:50 fabiankeil
|
||||||
|
dnl Make pthread mutex locking more generic. Instead of
|
||||||
|
dnl checking for OSX and OpenBSD, check for FEATURE_PTHREAD
|
||||||
|
dnl and use mutex locking unless there is an _r function
|
||||||
|
dnl available. Better safe than sorry.
|
||||||
|
dnl
|
||||||
|
dnl Fixes "./configure --disable-pthread" and should result
|
||||||
|
dnl in less threading-related problems on pthread-using platforms,
|
||||||
|
dnl but it still doesn't fix BR#1122404.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.93 2006/09/22 01:26:20 hal9
|
||||||
|
dnl Set version to 3.0.5 BETA for hopefully release this weekend.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.92 2006/08/17 17:09:49 fabiankeil
|
||||||
|
dnl Added check for timegm().
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.91 2006/08/13 22:01:51 fabiankeil
|
||||||
|
dnl Added checks for strptime() and random()
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt
|
||||||
|
dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
dnl with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes
|
||||||
|
dnl Resetting version info to 0.0.0 UNRELEASED
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes
|
||||||
|
dnl Added docbook paths for debian sarge; set status for release
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes
|
||||||
|
dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland!
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt
|
||||||
|
dnl Update to remain buildable on OS/2 - remove the failures
|
||||||
|
dnl due to missing unixisms
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes
|
||||||
|
dnl Marked as 0.0.0 UNRELEASED
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes
|
||||||
|
dnl Bump version for 3.0.2
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
|
||||||
|
dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
|
||||||
|
dnl Set version info for 3.0.1 release
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
|
||||||
|
dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
|
||||||
|
dnl Fixed minor shell syntax bug
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
|
||||||
|
dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
|
||||||
|
dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
|
||||||
|
dnl Fixed broken handling of pre-set CFLAGS
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
|
||||||
|
dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
|
||||||
|
dnl support, and other related changes. Update related docs.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
|
||||||
|
dnl Marking as non-release
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
|
||||||
|
dnl Getting ready for 3.0 release.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
|
||||||
|
dnl - Set Version to 2.9.20 (beta)
|
||||||
|
dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
|
||||||
|
dnl are located in a pcre/ subdir to the include path.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
|
||||||
|
dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
|
||||||
|
dnl Bump version to 2.9.17.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
|
||||||
|
dnl Bumped version number for 2.9.16 freeze
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
|
||||||
|
dnl Detect if the compiler supports -pthread.
|
||||||
|
dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
|
||||||
|
dnl machine to test this!)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.67 2002/05/03 14:33:59 oes
|
||||||
|
dnl Generate doc/soucre/ldp.dsl
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.66 2002/05/03 00:41:56 oes
|
||||||
|
dnl Set version to 2.9.15 to comply with new versioning scheme
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.65 2002/04/25 19:13:57 morcego
|
||||||
|
dnl Removed RPM release number declaration on configure.in
|
||||||
|
dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
|
||||||
|
dnl targets (will produce an error, explaining who to do it, if no value
|
||||||
|
dnl if provided).
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.64 2002/04/22 16:32:31 morcego
|
||||||
|
dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
|
||||||
|
dnl -rh.spec: uid and gid are now macros
|
||||||
|
dnl -suse.spec: Changing the header Copyright to License (Copyright is
|
||||||
|
dnl deprecable)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.63 2002/04/11 11:00:21 oes
|
||||||
|
dnl Applied Moritz' fix for socklen_t on Solaris
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.62 2002/04/11 10:09:20 oes
|
||||||
|
dnl Version 2.9.14
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.61 2002/04/10 18:14:45 morcego
|
||||||
|
dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
|
||||||
|
dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.60 2002/04/09 16:38:49 oes
|
||||||
|
dnl Added detection of missing config.h.in
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
|
||||||
|
dnl Removing unnessacery tests (C++, ranlib)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.58 2002/04/04 20:49:20 swa
|
||||||
|
dnl attempt to consolidate the
|
||||||
|
dnl different dokbook versions.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.57 2002/04/04 00:36:36 gliptak
|
||||||
|
dnl always use pcre for matching
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.56 2002/04/03 22:28:03 gliptak
|
||||||
|
dnl Removed references to gnu_regex
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.55 2002/04/03 03:54:38 gliptak
|
||||||
|
dnl Checking pcre version
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.54 2002/04/01 00:54:24 gliptak
|
||||||
|
dnl More changes needed around regex support.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.53 2002/03/29 20:09:01 swa
|
||||||
|
dnl al's patch
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.52 2002/03/29 19:51:40 gliptak
|
||||||
|
dnl Correcting compile problem with Debian
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.51 2002/03/28 20:43:00 swa
|
||||||
|
dnl set make correctly
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.50 2002/03/27 03:03:45 hal9
|
||||||
|
dnl Add test for man2html
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
|
||||||
|
dnl More Mac OSX support:
|
||||||
|
dnl - Get rid of extraneous, noisy -pthread warnings
|
||||||
|
dnl - Define unix so we get oes' unix-tagged changes
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.48 2002/03/26 22:29:54 swa
|
||||||
|
dnl we have a new homepage!
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.47 2002/03/26 16:41:00 hal9
|
||||||
|
dnl Upped RPM Release to 3 (need to build new RH packages)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
|
||||||
|
dnl Making Docbook work under Windows
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.45 2002/03/24 14:19:55 swa
|
||||||
|
dnl set rpm package release in configure.in. nowhere else.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.44 2002/03/24 13:25:43 swa
|
||||||
|
dnl name change related issues
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.43 2002/03/24 12:56:21 swa
|
||||||
|
dnl name change related issues.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
|
||||||
|
dnl Bumping version number to 2.9.12
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.41 2002/03/19 19:30:04 morcego
|
||||||
|
dnl - Fixing stylesheet checking on configure. If it is found, no further checks
|
||||||
|
dnl should be done
|
||||||
|
dnl
|
||||||
|
dnl - configure will now check for db2html or docbook2html (should work now
|
||||||
|
dnl on SuSe without the docbktls package)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.40 2002/03/09 14:33:30 oes
|
||||||
|
dnl Fixing the (harmless) AC_CHECK_FILE warnings
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.39 2002/03/08 16:46:13 oes
|
||||||
|
dnl Added --enable-no-gifs
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.38 2002/03/08 14:13:50 morcego
|
||||||
|
dnl Fixing configure, to remove a command not found error.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.37 2002/03/08 12:58:21 oes
|
||||||
|
dnl Tiny bugfix in AC_ARG_WITH(debug)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.36 2002/03/06 23:50:36 morcego
|
||||||
|
dnl Will not test for a text browser if we are not using docbook.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.35 2002/03/06 21:55:52 morcego
|
||||||
|
dnl New configure option: --with-docbook=(yes|no|directory)
|
||||||
|
dnl Preliminary new platform detection code included. Will work with the
|
||||||
|
dnl old one for now. No use just trowing it away
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.34 2002/03/06 20:57:00 morcego
|
||||||
|
dnl Fixing detection of stylesheets on SuSe.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.33 2002/03/05 17:31:11 morcego
|
||||||
|
dnl Search for docbook.dsl. Should solve portability problems for SuSe.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.32 2002/03/05 14:07:43 morcego
|
||||||
|
dnl configure now detects rpm topdir, and change GNUmakefile acordingly
|
||||||
|
dnl (based on sugestion by Sarantis Paskalis)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.31 2002/03/05 13:43:28 morcego
|
||||||
|
dnl Checking for text browser, so redhat-dok can work.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.30 2002/03/04 17:58:01 oes
|
||||||
|
dnl Deleted _DEBUG and PID_FILE_PATH
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.29 2002/02/28 14:20:53 oes
|
||||||
|
dnl Fixed detection of gethost*_r functions on Solaris
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.28 2002/02/27 15:02:38 oes
|
||||||
|
dnl Incremented version number
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.27 2002/01/10 12:35:18 oes
|
||||||
|
dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
|
||||||
|
dnl to silence autoconf warnings. Numbers are for Intel/Linux.
|
||||||
|
dnl Is there a better way?
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.26 2002/01/09 14:29:49 oes
|
||||||
|
dnl - Added AC_CHECK_FUNC tests for the availability of
|
||||||
|
dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
|
||||||
|
dnl localtime_r, as well as AC_TRY_COMPILE tests to
|
||||||
|
dnl determine their signatures.
|
||||||
|
dnl
|
||||||
|
dnl - Fixed a bug with the init of CFLAGS that was
|
||||||
|
dnl reported by barsnick
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.25 2002/01/04 15:27:18 oes
|
||||||
|
dnl Changed quoting of CODE_STATUS for use in make
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.24 2001/12/30 14:07:31 steudten
|
||||||
|
dnl - Add signal handling (unix)
|
||||||
|
dnl - Add SIGHUP handler (unix)
|
||||||
|
dnl - Add creation of pidfile (unix)
|
||||||
|
dnl - Add action 'top' in rc file (RH)
|
||||||
|
dnl - Add entry 'SIGNALS' to manpage
|
||||||
|
dnl - Add exit message to logfile (unix)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
|
||||||
|
dnl Change from "alpha" to "beta" in configure.in
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
|
||||||
|
dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
|
||||||
|
dnl make break in a more obvious way.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
|
||||||
|
dnl Bumping version number to 2.9.10
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
|
||||||
|
dnl Support for FEATURE_CGI_EDIT_ACTIONS
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.19 2001/10/07 15:33:14 oes
|
||||||
|
dnl Removed FEATURE_DENY_GZIP
|
||||||
|
dnl Bumped up version number
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.18 2001/09/13 13:10:24 steudten
|
||||||
|
dnl
|
||||||
|
dnl PreWork for Debug Interface.
|
||||||
|
dnl Add new option "--with-debug" to enable debugging (flags aso.)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
|
||||||
|
dnl Mac OSX (Darwin) support added.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.16 2001/09/12 22:55:45 joergs
|
||||||
|
dnl AmigaOS support added.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
|
||||||
|
dnl
|
||||||
|
dnl OS/2 port: update autoconf'd support for the platform.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
|
||||||
|
dnl Fixing Solaris build (I hope) and tidying up #defines:
|
||||||
|
dnl - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
dnl - Permanently turned off WIN_GUI_EDIT
|
||||||
|
dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
|
||||||
|
dnl Major changes to build system in order to fix these bugs:
|
||||||
|
dnl - pthreads under Linux was broken - changed -lpthread to -pthread
|
||||||
|
dnl - Compiling in MinGW32 mode under CygWin now correctly detects
|
||||||
|
dnl which shared libraries are available
|
||||||
|
dnl - Solaris support (?) (Not tested under Solaris yet)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.12 2001/07/25 19:16:27 oes
|
||||||
|
dnl Bumping version number to 2.9.8
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
|
||||||
|
dnl Bumping version number to 2.9.7
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.10 2001/07/18 17:25:04 oes
|
||||||
|
dnl Fixed a typo
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
|
||||||
|
dnl Added support for linking with POSIX threads library
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
|
||||||
|
dnl Renaming #define STATIC to STATIC_PCRE
|
||||||
|
dnl Adding new #define FEATURE_PTHREAD that will be used to enable
|
||||||
|
dnl POSIX threads support.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.7 2001/07/13 13:58:05 oes
|
||||||
|
dnl Completely reorganized the selection scheme for
|
||||||
|
dnl pcre, pcreposix, pcrs and gnu_regex:
|
||||||
|
dnl
|
||||||
|
dnl The presence of shared pcre, pcreposix or pcrs
|
||||||
|
dnl libraried is now autodetected. Additionally, the
|
||||||
|
dnl user can enforce using the built-in static variants
|
||||||
|
dnl by specifying --disable-dynamic-(pcre|pcrs).
|
||||||
|
dnl Care is taken to avoid that pcre is dyn, while pcreposix
|
||||||
|
dnl is static, if both are used and that pcrs is static if
|
||||||
|
dnl pcrs is.
|
||||||
|
dnl
|
||||||
|
dnl The choice between pcre, gnu or no regex for actionsfile
|
||||||
|
dnl URL matching is now via
|
||||||
|
dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
|
||||||
|
dnl default being pcre.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.6 2001/06/29 21:56:40 oes
|
||||||
|
dnl Version -> 2.9.5
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.5 2001/06/29 13:26:27 oes
|
||||||
|
dnl Introduced #define CODE_STATUS
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
|
||||||
|
dnl Unified blocklist/imagelist/permissionslist.
|
||||||
|
dnl File format is still under discussion, but the internal changes
|
||||||
|
dnl are (mostly) done.
|
||||||
|
dnl
|
||||||
|
dnl Also modified interceptor behaviour:
|
||||||
|
dnl - We now intercept all URLs beginning with one of the following
|
||||||
|
dnl prefixes (and *only* these prefixes):
|
||||||
|
dnl * http://i.j.b/
|
||||||
|
dnl * http://ijbswa.sf.net/config/
|
||||||
|
dnl * http://ijbswa.sourceforge.net/config/
|
||||||
|
dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
|
||||||
|
dnl - Internal changes so that intercepted and fast redirect pages
|
||||||
|
dnl are not replaced with an image.
|
||||||
|
dnl - Interceptors now have the option to send a binary page direct
|
||||||
|
dnl to the client. (i.e. ijb-send-banner uses this)
|
||||||
|
dnl - Implemented show-url-info interceptor. (Which is why I needed
|
||||||
|
dnl the above interceptors changes - a typical URL is
|
||||||
|
dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
|
||||||
|
dnl The previous mechanism would not have intercepted that, and
|
||||||
|
dnl if it had been intercepted then it then it would have replaced
|
||||||
|
dnl it with an image.)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.3 2001/05/22 18:46:04 oes
|
||||||
|
dnl
|
||||||
|
dnl - Enabled filtering banners by size rather than URL
|
||||||
|
dnl by adding patterns that replace all standard banner
|
||||||
|
dnl sizes with the "Junkbuster" gif to the re_filterfile
|
||||||
|
dnl
|
||||||
|
dnl - Enabled filtering WebBugs by providing a pattern
|
||||||
|
dnl which kills all 1x1 images
|
||||||
|
dnl
|
||||||
|
dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||||
|
dnl which is selected by the (nonstandard and therefore
|
||||||
|
dnl capital) letter 'U' in the option string.
|
||||||
|
dnl It causes the quantifiers to be ungreedy by default.
|
||||||
|
dnl Appending a ? turns back to greedy (!).
|
||||||
|
dnl
|
||||||
|
dnl - Added a new interceptor ijb-send-banner, which
|
||||||
|
dnl sends back the "Junkbuster" gif. Without imagelist or
|
||||||
|
dnl MSIE detection support, or if tinygif = 1, or the
|
||||||
|
dnl URL isn't recognized as an imageurl, a lame HTML
|
||||||
|
dnl explanation is sent instead.
|
||||||
|
dnl
|
||||||
|
dnl - Added new feature, which permits blocking remote
|
||||||
|
dnl script redirects and firing back a local redirect
|
||||||
|
dnl to the browser.
|
||||||
|
dnl The feature is conditionally compiled, i.e. it
|
||||||
|
dnl can be disabled with --disable-fast-redirects,
|
||||||
|
dnl plus it must be activated by a "fast-redirects"
|
||||||
|
dnl line in the config file, has its own log level
|
||||||
|
dnl and of course wants to be displayed by show-proxy-args
|
||||||
|
dnl Note: Boy, all the #ifdefs in 1001 locations and
|
||||||
|
dnl all the fumbling with configure.in and acconfig.h
|
||||||
|
dnl were *way* more work than the feature itself :-(
|
||||||
|
dnl
|
||||||
|
dnl - Because a generic redirect template was needed for
|
||||||
|
dnl this, tinygif = 3 now uses the same.
|
||||||
|
dnl
|
||||||
|
dnl - Moved GIFs, and other static HTTP response templates
|
||||||
|
dnl to project.h
|
||||||
|
dnl
|
||||||
|
dnl - Some minor fixes
|
||||||
|
dnl
|
||||||
|
dnl - Removed some >400 CRs again (Jon, you really worked
|
||||||
|
dnl a lot! ;-)
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
|
||||||
|
dnl Version 2.9.4 checkin.
|
||||||
|
dnl - Merged popupfile and cookiefile, and added control over PCRS
|
||||||
|
dnl filtering, in new "permissionsfile".
|
||||||
|
dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
|
||||||
|
dnl file error you now get a message box (in the Win32 GUI) rather
|
||||||
|
dnl than the program exiting with no explanation.
|
||||||
|
dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
|
||||||
|
dnl skipping.
|
||||||
|
dnl - Removed tabs from "config"
|
||||||
|
dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
|
||||||
|
dnl - Bumped up version number.
|
||||||
|
dnl
|
||||||
|
dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
|
||||||
|
dnl Initial import of version 2.9.3 source tree
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
|
||||||
|
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl AutoConf Initialization
|
dnl AutoConf Initialization
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
|
|
||||||
AC_REVISION($Revision: 1.166 $)
|
AC_REVISION($Revision: 1.126 $)
|
||||||
AC_INIT(jcc.c)
|
AC_INIT(jcc.c)
|
||||||
|
|
||||||
if test ! -f config.h.in; then
|
if test ! -f config.h.in; then
|
||||||
|
@ -44,7 +578,7 @@ if test ! -f config.h.in; then
|
||||||
else
|
else
|
||||||
autoheader
|
autoheader
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_CONFIG_HEADER([config.h])
|
AC_CONFIG_HEADER([config.h])
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
@ -52,13 +586,13 @@ AC_CANONICAL_HOST
|
||||||
dodk=auto
|
dodk=auto
|
||||||
DKPREFIX=none
|
DKPREFIX=none
|
||||||
AC_ARG_WITH(docbook, dnl
|
AC_ARG_WITH(docbook, dnl
|
||||||
--with-docbook=[[yes|no|directory]]
|
--with-docbook=[[yes|no|directory]]
|
||||||
Enable docbook documentation creation
|
Enable docbook documentation creation
|
||||||
(default = yes, for gnu and linux),[dnl
|
(default = yes, for gnu and linux),[dnl
|
||||||
case "$with_docbook" in
|
case "$with_docbook" in
|
||||||
yes) dodk=yes;;
|
yes) dodk=yes;;
|
||||||
no) dodk=no;;
|
no) dodk=no;;
|
||||||
*)
|
*)
|
||||||
dodk=yes
|
dodk=yes
|
||||||
DKPREFIX=$withval
|
DKPREFIX=$withval
|
||||||
;;
|
;;
|
||||||
|
@ -78,13 +612,12 @@ dnl =================================================================
|
||||||
|
|
||||||
VERSION_MAJOR=3
|
VERSION_MAJOR=3
|
||||||
VERSION_MINOR=0
|
VERSION_MINOR=0
|
||||||
VERSION_POINT=19
|
VERSION_POINT=12
|
||||||
CODE_STATUS="stable"
|
CODE_STATUS="stable"
|
||||||
|
|
||||||
dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED",
|
dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
|
||||||
dnl and will be used for CGI output. Increment version number and
|
dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
|
||||||
dnl set status to "UNRELEASED" whenever CVS differs from the last
|
dnl whenever CVS in a stable branch differs from the last release.
|
||||||
dnl release and no new release is near.
|
|
||||||
|
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl Substitute the version numbers
|
dnl Substitute the version numbers
|
||||||
|
@ -119,13 +652,13 @@ AC_PROG_MAKE_SET
|
||||||
AC_PROG_AWK
|
AC_PROG_AWK
|
||||||
|
|
||||||
AC_CHECK_PROG(GDB,gdb,yes,no)
|
AC_CHECK_PROG(GDB,gdb,yes,no)
|
||||||
AC_PATH_PROG(BGROUPS,groups,no,$PATH:/bin:/usr/bin:/usr/local/bin)
|
AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
|
||||||
AC_PATH_PROG(ID,id,no,$PATH:/bin:/usr/bin:/usr/local/bin)
|
AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
|
||||||
AC_SUBST(ID)
|
AC_SUBST(ID)
|
||||||
AC_SUBST(BGROUPS)
|
AC_SUBST(BGROUPS)
|
||||||
|
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl debug, gcc and gdb support
|
dnl debug, gcc and gdb support
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
|
|
||||||
AC_ARG_WITH(debug,
|
AC_ARG_WITH(debug,
|
||||||
|
@ -203,7 +736,7 @@ else
|
||||||
AC_MSG_CHECKING([for group])
|
AC_MSG_CHECKING([for group])
|
||||||
AC_ARG_WITH(group,
|
AC_ARG_WITH(group,
|
||||||
[ --with-group=privoxy Set group for privoxy],
|
[ --with-group=privoxy Set group for privoxy],
|
||||||
[
|
[
|
||||||
if test "x$withval" != "xyes"; then
|
if test "x$withval" != "xyes"; then
|
||||||
if test $BGROUPS = no ; then
|
if test $BGROUPS = no ; then
|
||||||
AC_MSG_ERROR(There is no 'groups' program on this system)
|
AC_MSG_ERROR(There is no 'groups' program on this system)
|
||||||
|
@ -242,7 +775,7 @@ fi
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl additional gcc flags
|
dnl additional gcc flags
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl
|
dnl
|
||||||
if test "$GCC"; then
|
if test "$GCC"; then
|
||||||
if test "$host" != "powerpc-unknown-amigaos"; then
|
if test "$host" != "powerpc-unknown-amigaos"; then
|
||||||
CFLAGS="-pipe $CFLAGS"
|
CFLAGS="-pipe $CFLAGS"
|
||||||
|
@ -260,7 +793,7 @@ dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
|
||||||
dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
|
dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
|
||||||
dnl the compiler will use completely different sets of library
|
dnl the compiler will use completely different sets of library
|
||||||
dnl and include files.
|
dnl and include files.
|
||||||
dnl
|
dnl
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
|
|
||||||
AC_MINGW32
|
AC_MINGW32
|
||||||
|
@ -299,7 +832,6 @@ fi])
|
||||||
|
|
||||||
if test $target_type = mingw; then
|
if test $target_type = mingw; then
|
||||||
WIN_ONLY=
|
WIN_ONLY=
|
||||||
CFLAGS="$CFLAGS -DWINVER=0x501"
|
|
||||||
SPECIAL_CFLAGS="-mwindows -mno-cygwin"
|
SPECIAL_CFLAGS="-mwindows -mno-cygwin"
|
||||||
PTHREAD_LIB=-lpthreadGC
|
PTHREAD_LIB=-lpthreadGC
|
||||||
echo "Using mingw32 (Win32 GUI)"
|
echo "Using mingw32 (Win32 GUI)"
|
||||||
|
@ -316,7 +848,7 @@ else
|
||||||
fi
|
fi
|
||||||
AC_SUBST(WIN_ONLY)
|
AC_SUBST(WIN_ONLY)
|
||||||
|
|
||||||
dnl Checking which text html browser we have available
|
dnl Checking which text html browser we have avaliable
|
||||||
if test $dodk != no; then
|
if test $dodk != no; then
|
||||||
AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
|
AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
|
||||||
if test "$WDUMP" = false; then
|
if test "$WDUMP" = false; then
|
||||||
|
@ -324,7 +856,7 @@ if test $dodk != no; then
|
||||||
fi
|
fi
|
||||||
if test $DB2HTML = false; then
|
if test $DB2HTML = false; then
|
||||||
dnl We need to clean the variable, otherwise AC_CHECK_PROGS
|
dnl We need to clean the variable, otherwise AC_CHECK_PROGS
|
||||||
dnl will fail
|
dnl will fail
|
||||||
DB2HTML=""
|
DB2HTML=""
|
||||||
AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
|
AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
|
||||||
fi
|
fi
|
||||||
|
@ -400,13 +932,6 @@ fi
|
||||||
AC_SUBST(JADECAT)
|
AC_SUBST(JADECAT)
|
||||||
AC_SUBST(DKPREFIX)
|
AC_SUBST(DKPREFIX)
|
||||||
|
|
||||||
AC_ARG_ENABLE(large-file-support,
|
|
||||||
[ --enable-large-file-support Define _LARGE_FILES and friends.
|
|
||||||
Required by some systems to support files larger then 2GB.],
|
|
||||||
[if test $enableval = yes; then
|
|
||||||
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1"
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
|
dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
|
||||||
old_CFLAGS_nospecial=$CFLAGS
|
old_CFLAGS_nospecial=$CFLAGS
|
||||||
CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
|
CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
|
||||||
|
@ -430,7 +955,7 @@ AC_ARG_ENABLE(pthread,
|
||||||
[if test $enableval = no; then
|
[if test $enableval = no; then
|
||||||
# Disable pthreads
|
# Disable pthreads
|
||||||
if test $have_pthread = yes; then
|
if test $have_pthread = yes; then
|
||||||
AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.])
|
AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.])
|
||||||
AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.])
|
AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.])
|
||||||
fi
|
fi
|
||||||
have_pthread=no
|
have_pthread=no
|
||||||
|
@ -648,10 +1173,10 @@ AC_SUBST(SOCKET_LIB)
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl Mac OSX specific
|
dnl Mac OSX specific
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
|
|
||||||
case "$host" in
|
case "$host" in
|
||||||
*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
|
*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
|
@ -701,63 +1226,19 @@ dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
|
||||||
AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
|
AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
|
||||||
|
|
||||||
dnl Checks for library functions.
|
dnl Checks for library functions.
|
||||||
dnl bcopy is for PCRE
|
dnl AC_TYPE_SIGNAL
|
||||||
AC_CHECK_FUNCS([bcopy])
|
dnl AC_CHECK_FUNC(strstr)
|
||||||
|
dnl bcopy and memmove are for PCRE
|
||||||
|
AC_CHECK_FUNCS([strerror bcopy memmove])
|
||||||
AC_PROG_GCC_TRADITIONAL
|
AC_PROG_GCC_TRADITIONAL
|
||||||
|
dnl uncommenting does not work for swa. suse linux
|
||||||
|
dnl AC_FUNC_MALLOC
|
||||||
|
AC_FUNC_SETPGRP
|
||||||
AC_TYPE_SIGNAL
|
AC_TYPE_SIGNAL
|
||||||
|
dnl uncommenting does not work for swa. suse linux
|
||||||
|
dnl AC_FUNC_STAT
|
||||||
AC_CHECK_FUNCS([access atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r gettimeofday inet_ntoa localtime_r memchr memmove memset poll putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset])
|
AC_CHECK_FUNCS([access atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r gettimeofday inet_ntoa localtime_r memchr memmove memset poll putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset])
|
||||||
|
|
||||||
dnl Checks for RFC 2553 resolver and socket functions
|
|
||||||
AC_ARG_ENABLE(ipv6-support,
|
|
||||||
[ --disable-ipv6-support Disable IPv6 support and other RFC-2554-related improvements],
|
|
||||||
[if test $enableval = yes; then
|
|
||||||
enable_ipv6_support=yes
|
|
||||||
fi], enable_ipv6_support=yes)
|
|
||||||
|
|
||||||
if test $enable_ipv6_support != yes; then
|
|
||||||
AC_MSG_WARN([Skipping checks for IPv6 support and other RFC-2554-related improvements.
|
|
||||||
Due to lock contention, this may result in slower DNS resolution for IPv4 setups, too.])
|
|
||||||
elif test $target_type = mingw; then
|
|
||||||
AC_CHECK_LIB(ws2_32, main)
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(getaddrinfo in ws2_32)
|
|
||||||
AC_TRY_LINK(
|
|
||||||
[
|
|
||||||
#include<windows.h>
|
|
||||||
#include<ws2tcpip.h>
|
|
||||||
],
|
|
||||||
[getaddrinfo(0,0,0,0)],
|
|
||||||
have_ws2_32_getaddrinfo=yes
|
|
||||||
)
|
|
||||||
AC_MSG_RESULT($have_ws2_32_getaddrinfo)
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(getnameinfo in ws2_32)
|
|
||||||
AC_TRY_LINK(
|
|
||||||
[
|
|
||||||
#include<windows.h>
|
|
||||||
#include<ws2tcpip.h>
|
|
||||||
],
|
|
||||||
[getnameinfo(0,0,0,0,0,0,0)],
|
|
||||||
have_ws2_32_getnameinfo=yes
|
|
||||||
)
|
|
||||||
AC_MSG_RESULT($have_ws2_32_getnameinfo)
|
|
||||||
|
|
||||||
if test $have_ws2_32_getaddrinfo ; then
|
|
||||||
if test $have_ws2_32_getnameinfo ; then
|
|
||||||
AC_DEFINE([HAVE_RFC2553], [1],
|
|
||||||
[Define if RFC 2553 resolver functions like getaddrinfo(3) and
|
|
||||||
getnameinfo(3) present])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
AC_CHECK_FUNC([getaddrinfo],
|
|
||||||
[AC_CHECK_FUNC([getnameinfo],
|
|
||||||
[AC_DEFINE([HAVE_RFC2553], [1],
|
|
||||||
[Define if RFC 2553 resolver functions like getaddrinfo(3) and
|
|
||||||
getnameinfo(3) present])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
dnl Checks for libraries.
|
dnl Checks for libraries.
|
||||||
|
@ -774,7 +1255,7 @@ AC_CHECK_LIB(pcre, pcre_compile, [
|
||||||
], [have_pcre=no])
|
], [have_pcre=no])
|
||||||
])
|
])
|
||||||
], [have_pcre=no])
|
], [have_pcre=no])
|
||||||
|
|
||||||
AC_CHECK_LIB(pcreposix, regcomp, [
|
AC_CHECK_LIB(pcreposix, regcomp, [
|
||||||
AC_CHECK_HEADER(pcreposix.h, [
|
AC_CHECK_HEADER(pcreposix.h, [
|
||||||
AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
|
AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
|
||||||
|
@ -783,7 +1264,7 @@ AC_CHECK_LIB(pcreposix, regcomp, [
|
||||||
AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
|
AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
|
||||||
], [have_pcreposix=no])
|
], [have_pcreposix=no])
|
||||||
])
|
])
|
||||||
], [have_pcreposix=no], -lpcre)
|
], [have_pcreposix=no], -lpcre)
|
||||||
|
|
||||||
dnl ================================================================
|
dnl ================================================================
|
||||||
dnl libpcrs is temporarily disabled.
|
dnl libpcrs is temporarily disabled.
|
||||||
|
@ -838,15 +1319,15 @@ AC_ARG_ENABLE(ie-images,
|
||||||
fi],)
|
fi],)
|
||||||
|
|
||||||
AC_ARG_ENABLE(image-blocking,
|
AC_ARG_ENABLE(image-blocking,
|
||||||
[ --disable-image-blocking Don't try to figure out whether a request is
|
[ --disable-image-blocking Don't try to figure out whether a request is
|
||||||
for an image or HTML - assume HTML.],
|
for an image or HTML - assume HTML.],
|
||||||
[if test $enableval = yes; then
|
[if test $enableval = yes; then
|
||||||
AC_DEFINE(FEATURE_IMAGE_BLOCKING)
|
AC_DEFINE(FEATURE_IMAGE_BLOCKING)
|
||||||
fi],
|
fi],
|
||||||
AC_DEFINE(FEATURE_IMAGE_BLOCKING))
|
AC_DEFINE(FEATURE_IMAGE_BLOCKING))
|
||||||
|
|
||||||
AC_ARG_ENABLE(acl-support,
|
AC_ARG_ENABLE(acl-files,
|
||||||
[ --disable-acl-support Prevents the use of ACLs to control access to
|
[ --disable-acl-files Prevents the use of ACL files to control access to
|
||||||
Privoxy by IP address.],
|
Privoxy by IP address.],
|
||||||
[if test $enableval = yes; then
|
[if test $enableval = yes; then
|
||||||
AC_DEFINE(FEATURE_ACL)
|
AC_DEFINE(FEATURE_ACL)
|
||||||
|
@ -882,23 +1363,11 @@ AC_ARG_ENABLE(graceful-termination,
|
||||||
fi])
|
fi])
|
||||||
|
|
||||||
AC_ARG_ENABLE(extended-host-patterns,
|
AC_ARG_ENABLE(extended-host-patterns,
|
||||||
[ --enable-extended-host-patterns Enable and require PCRE syntax in host patterns. This feature hasn't
|
[ --enable-extended-host-patterns Allow extended regular expressions in host patterns.],
|
||||||
been announced yet and it's not clear if it's a good idea. It's expected
|
|
||||||
to work, but undocumented. You should only enable it if you know what
|
|
||||||
PCRE is and are sure that you need it for your host patterns. You can
|
|
||||||
use tools/url-pattern-translator.pl to convert existing action files to
|
|
||||||
use PCRE host patterns. Please don't enable this option when creating
|
|
||||||
packages for others that may not be expecting it.],
|
|
||||||
[if test $enableval = yes; then
|
[if test $enableval = yes; then
|
||||||
AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
|
AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
|
||||||
fi])
|
fi])
|
||||||
|
|
||||||
AC_ARG_ENABLE(accept-filter,
|
|
||||||
[ --enable-accept-filter Try to use accf_http(9) if supported.],
|
|
||||||
[if test $enableval = yes; then
|
|
||||||
AC_DEFINE(FEATURE_ACCEPT_FILTER)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl pcre/pcrs is needed for CGI anyway, so
|
dnl pcre/pcrs is needed for CGI anyway, so
|
||||||
dnl the choice is only between static and
|
dnl the choice is only between static and
|
||||||
dnl dynamic:
|
dnl dynamic:
|
||||||
|
@ -928,25 +1397,12 @@ if test $enableval2 = yes; then
|
||||||
AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"])
|
AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"])
|
||||||
if test $have_zlib = "yes"; then
|
if test $have_zlib = "yes"; then
|
||||||
LIBS="$LIBS -lz"
|
LIBS="$LIBS -lz"
|
||||||
AC_DEFINE(FEATURE_ZLIB,1,[Define to 1 to use zlib to decompress data before filtering.])
|
AC_DEFINE(FEATURE_ZLIB,1,[Define to 1 to use compression through the zlib library.])
|
||||||
else
|
else
|
||||||
AC_MSG_WARN([No zlib found.
|
AC_MSG_WARN([No zlib found.
|
||||||
Privoxy will not be able to filter compressed content.
|
Privoxy will not be able to filter compressed content.
|
||||||
This may become a fatal error in the future.])
|
This may become a fatal error in the future.])
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(compression,
|
|
||||||
[ --enable-compression Allow Privoxy to compress buffered content if the client supports it. Requires zlib support.],
|
|
||||||
[enableval2=$enableval],
|
|
||||||
[enableval2=no])
|
|
||||||
if test $enableval2 = yes; then
|
|
||||||
if test $have_zlib = "yes"; then
|
|
||||||
echo Enabling compression support.
|
|
||||||
AC_DEFINE(FEATURE_COMPRESSION,1,[Define to 1 to use compression through the zlib library.])
|
|
||||||
else
|
|
||||||
AC_MSG_WARN([No zlib found. Privoxy will not be able to (re-)compressed buffered content.])
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -960,18 +1416,16 @@ if test $have_pcre = "yes"; then
|
||||||
STATIC_PCRE_ONLY=#
|
STATIC_PCRE_ONLY=#
|
||||||
LIBS="$LIBS -lpcre -lpcreposix"
|
LIBS="$LIBS -lpcre -lpcreposix"
|
||||||
else
|
else
|
||||||
AC_MSG_WARN([You are using the static PCRE code which is out of date and scheduled for removal, for details see:
|
AC_MSG_WARN([You are using the static PCRE code which is scheduled for removal, for details see:
|
||||||
http://sourceforge.net/mailarchive/forum.php?thread_name=20080511195555.2dc6cfdc%40fabiankeil.de&forum_name=ijbswa-developers])
|
https://sourceforge.net/mailarchive/message.php?msg_id=20080511195555.2dc6cfdc%40fabiankeil.de])
|
||||||
pcre_dyn=no
|
pcre_dyn=no
|
||||||
AC_DEFINE(STATIC_PCRE)
|
AC_DEFINE(STATIC_PCRE)
|
||||||
STATIC_PCRE_ONLY=
|
STATIC_PCRE_ONLY=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
|
|
||||||
|
|
||||||
if test $have_pthread = "yes" -o $target_type = "mingw"; then
|
if test $have_pthread = "yes" -o $target_type = "mingw"; then
|
||||||
echo Enabling connection-sharing support.
|
echo Enabling keep-alive support for outgoing connections.
|
||||||
AC_DEFINE(FEATURE_CONNECTION_SHARING)
|
AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl =================================================
|
dnl =================================================
|
||||||
|
@ -999,7 +1453,7 @@ dnl =================================================================
|
||||||
dnl Final cleanup and output
|
dnl Final cleanup and output
|
||||||
dnl =================================================================
|
dnl =================================================================
|
||||||
|
|
||||||
dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it separately
|
dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
|
||||||
dnl in the Makefile
|
dnl in the Makefile
|
||||||
CFLAGS=$old_CFLAGS_nospecial
|
CFLAGS=$old_CFLAGS_nospecial
|
||||||
AC_SUBST(SPECIAL_CFLAGS)
|
AC_SUBST(SPECIAL_CFLAGS)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef CYGWIN_H_INCLUDED
|
#ifndef CYGWIN_H_INCLUDED
|
||||||
#define CYGWIN_H_INCLUDED
|
#define CYGWIN_H_INCLUDED
|
||||||
#define CYGWIN_H_VERSION "$Id: cygwin.h,v 1.8 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define CYGWIN_H_VERSION "$Id: cygwin.h,v 1.6 2006/07/18 14:48:45 david__schmidt Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/cygwin.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/cygwin.h,v $
|
||||||
|
@ -13,10 +13,10 @@
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -34,6 +34,26 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: cygwin.h,v $
|
||||||
|
* Revision 1.6 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.4 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.3 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/07/29 18:43:08 jongfoster
|
||||||
|
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||||
|
* ANSI C rules.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
/* Conditionally include this whole file. */
|
/* Conditionally include this whole file. */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabiankeil Exp $";
|
const char deanimate_rcs[] = "$Id: deanimate.c,v 1.19 2008/05/21 15:29:35 fabiankeil Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/deanimate.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/deanimate.c,v $
|
||||||
|
@ -6,7 +6,7 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
|
||||||
* Purpose : Declares functions to manipulate binary images on the
|
* Purpose : Declares functions to manipulate binary images on the
|
||||||
* fly. High-level functions include:
|
* fly. High-level functions include:
|
||||||
* - Deanimation of GIF images
|
* - Deanimation of GIF images
|
||||||
*
|
*
|
||||||
* Functions declared include: gif_deanimate, buf_free,
|
* Functions declared include: gif_deanimate, buf_free,
|
||||||
* buf_copy, buf_getbyte, gif_skip_data_block
|
* buf_copy, buf_getbyte, gif_skip_data_block
|
||||||
* and gif_extract_image
|
* and gif_extract_image
|
||||||
|
@ -19,7 +19,7 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
|
||||||
* and ideas from the Image::DeAnim Perl module by
|
* and ideas from the Image::DeAnim Perl module by
|
||||||
* Ken MacFarlane, <ksm+cpan@universal.dca.net>
|
* Ken MacFarlane, <ksm+cpan@universal.dca.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -37,8 +37,77 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: deanimate.c,v $
|
||||||
|
* Revision 1.19 2008/05/21 15:29:35 fabiankeil
|
||||||
|
* Fix gcc43 warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.18 2008/03/28 15:13:38 fabiankeil
|
||||||
|
* Remove inspect-jpegs action.
|
||||||
|
*
|
||||||
|
* Revision 1.17 2007/08/05 13:42:22 fabiankeil
|
||||||
|
* #1763173 from Stefan Huehner: declare some more functions static.
|
||||||
|
*
|
||||||
|
* Revision 1.16 2007/07/14 08:01:58 fabiankeil
|
||||||
|
* s@failiure@failure@
|
||||||
|
*
|
||||||
|
* Revision 1.15 2007/01/03 14:39:19 fabiankeil
|
||||||
|
* Fix a gcc43 warning and mark the binbuffer
|
||||||
|
* as immutable for buf_getbyte().
|
||||||
|
*
|
||||||
|
* Revision 1.14 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.12.2.1 2004/10/03 12:53:32 david__schmidt
|
||||||
|
* Add the ability to check jpeg images for invalid
|
||||||
|
* lengths of comment blocks. Defensive strategy
|
||||||
|
* against the exploit:
|
||||||
|
* Microsoft Security Bulletin MS04-028
|
||||||
|
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||||
|
* Allow Code Execution (833987)
|
||||||
|
* Enabled with +inspect-jpegs in actions files.
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/05/12 21:36:29 jongfoster
|
||||||
|
* Correcting function comments
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/03/13 00:27:04 jongfoster
|
||||||
|
* Killing warnings
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/09 19:42:47 jongfoster
|
||||||
|
* Fixing more warnings
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/08 17:46:04 jongfoster
|
||||||
|
* Fixing int/size_t warnings
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/07 03:46:17 oes
|
||||||
|
* Fixed compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/09/10 10:16:06 oes
|
||||||
|
* Silenced compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/07/18 12:28:49 oes
|
||||||
|
* - Added feature for extracting the first frame
|
||||||
|
* to gif_deanimate
|
||||||
|
* - Separated image buffer extension into buf_extend
|
||||||
|
* - Extended gif deanimation to GIF87a (untested!)
|
||||||
|
* - Cosmetics
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/07/15 13:57:50 jongfoster
|
||||||
|
* Adding #includes string.h and miscutil.h
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/07/13 13:46:20 oes
|
||||||
|
* Introduced GIF deanimation feature
|
||||||
|
*
|
||||||
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -53,7 +122,7 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
|
||||||
const char deanimate_h_rcs[] = DEANIMATE_H_VERSION;
|
const char deanimate_h_rcs[] = DEANIMATE_H_VERSION;
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : buf_free
|
* Function : buf_free
|
||||||
*
|
*
|
||||||
* Description : Safely frees a struct binbuffer
|
* Description : Safely frees a struct binbuffer
|
||||||
|
@ -79,7 +148,7 @@ void buf_free(struct binbuffer *buf)
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : buf_extend
|
* Function : buf_extend
|
||||||
*
|
*
|
||||||
* Description : Ensure that a given binbuffer can hold a given amount
|
* Description : Ensure that a given binbuffer can hold a given amount
|
||||||
|
@ -90,7 +159,7 @@ void buf_free(struct binbuffer *buf)
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : buf = Pointer to the binbuffer
|
* 1 : buf = Pointer to the binbuffer
|
||||||
* 2 : length = Desired minimum size
|
* 2 : length = Desired minimum size
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Returns : 0 on success, 1 on failure.
|
* Returns : 0 on success, 1 on failure.
|
||||||
*
|
*
|
||||||
|
@ -121,7 +190,7 @@ static int buf_extend(struct binbuffer *buf, size_t length)
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : buf_copy
|
* Function : buf_copy
|
||||||
*
|
*
|
||||||
* Description : Safely copies a given amount of bytes from one
|
* Description : Safely copies a given amount of bytes from one
|
||||||
|
@ -142,7 +211,7 @@ static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
|
||||||
/*
|
/*
|
||||||
* Sanity check: Can't copy more data than we have
|
* Sanity check: Can't copy more data than we have
|
||||||
*/
|
*/
|
||||||
if (src->offset + length > src->size)
|
if (src->offset + length > src->size)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -150,7 +219,7 @@ static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
|
||||||
/*
|
/*
|
||||||
* Ensure that dst can hold the new data
|
* Ensure that dst can hold the new data
|
||||||
*/
|
*/
|
||||||
if (buf_extend(dst, length))
|
if (buf_extend(dst, length))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -169,7 +238,7 @@ static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : buf_getbyte
|
* Function : buf_getbyte
|
||||||
*
|
*
|
||||||
* Description : Safely gets a byte from a given binbuffer at a
|
* Description : Safely gets a byte from a given binbuffer at a
|
||||||
|
@ -197,7 +266,7 @@ static unsigned char buf_getbyte(const struct binbuffer *src, size_t offset)
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : gif_skip_data_block
|
* Function : gif_skip_data_block
|
||||||
*
|
*
|
||||||
* Description : Safely advances the offset of a given struct binbuffer
|
* Description : Safely advances the offset of a given struct binbuffer
|
||||||
|
@ -215,7 +284,7 @@ static int gif_skip_data_block(struct binbuffer *buf)
|
||||||
{
|
{
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Data blocks are sequences of chunks, which are headed
|
* Data blocks are sequences of chunks, which are headed
|
||||||
* by a one-byte length field, with the last chunk having
|
* by a one-byte length field, with the last chunk having
|
||||||
* zero length.
|
* zero length.
|
||||||
|
@ -236,12 +305,12 @@ static int gif_skip_data_block(struct binbuffer *buf)
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : gif_extract_image
|
* Function : gif_extract_image
|
||||||
*
|
*
|
||||||
* Description : Safely extracts an image data block from a given
|
* Description : Safely extracts an image data block from a given
|
||||||
* struct binbuffer that contains a GIF image and whose
|
* struct binbuffer that contains a GIF image and whose
|
||||||
* offset is positioned at the start of a data block
|
* offset is positioned at the start of a data block
|
||||||
* into a given destination binbuffer.
|
* into a given destination binbuffer.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
|
@ -279,7 +348,7 @@ static int gif_extract_image(struct binbuffer *src, struct binbuffer *dst)
|
||||||
if (buf_copy(src, dst, (size_t)map_length))
|
if (buf_copy(src, dst, (size_t)map_length))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (buf_copy(src, dst, 1)) return 1;
|
if (buf_copy(src, dst, 1)) return 1;
|
||||||
|
|
||||||
|
@ -304,7 +373,7 @@ static int gif_extract_image(struct binbuffer *src, struct binbuffer *dst)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : gif_deanimate
|
* Function : gif_deanimate
|
||||||
*
|
*
|
||||||
* Description : Deanimate a given GIF image, i.e. given a GIF with
|
* Description : Deanimate a given GIF image, i.e. given a GIF with
|
||||||
|
@ -336,9 +405,9 @@ int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_im
|
||||||
c = buf_getbyte(src, 10);
|
c = buf_getbyte(src, 10);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check & copy GIF header
|
* Check & copy GIF header
|
||||||
*/
|
*/
|
||||||
if (strncmp(src->buffer, "GIF89a", 6) && strncmp(src->buffer, "GIF87a", 6))
|
if (strncmp(src->buffer, "GIF89a", 6) && strncmp(src->buffer, "GIF87a", 6))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -390,7 +459,7 @@ int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_im
|
||||||
case 0x3b:
|
case 0x3b:
|
||||||
goto write;
|
goto write;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Image block: Extract to current image buffer.
|
* Image block: Extract to current image buffer.
|
||||||
*/
|
*/
|
||||||
case 0x2c:
|
case 0x2c:
|
||||||
|
@ -450,13 +519,13 @@ int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_im
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
goto failed;
|
goto failed;
|
||||||
|
|
||||||
}
|
}
|
||||||
} /* -END- while src */
|
} /* -END- while src */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Either we got here by goto, or because the GIF is
|
* Either we got here by goto, or because the GIF is
|
||||||
* bogus and EOF was reached before an end-of-gif marker
|
* bogus and EOF was reached before an end-of-gif marker
|
||||||
* was found.
|
* was found.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef DEANIMATE_H_INCLUDED
|
#ifndef DEANIMATE_H_INCLUDED
|
||||||
#define DEANIMATE_H_INCLUDED
|
#define DEANIMATE_H_INCLUDED
|
||||||
#define DEANIMATE_H_VERSION "$Id: deanimate.h,v 1.14 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define DEANIMATE_H_VERSION "$Id: deanimate.h,v 1.12 2008/03/28 15:13:39 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/deanimate.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/deanimate.h,v $
|
||||||
|
@ -8,9 +8,9 @@
|
||||||
* Purpose : Declares functions to manipulate binary images on the
|
* Purpose : Declares functions to manipulate binary images on the
|
||||||
* fly. High-level functions include:
|
* fly. High-level functions include:
|
||||||
* - Deanimation of GIF images
|
* - Deanimation of GIF images
|
||||||
*
|
*
|
||||||
* Functions declared include: gif_deanimate and buf_free.
|
* Functions declared include: gif_deanimate and buf_free.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001 - 2004 by the the
|
* Copyright : Written by and Copyright (C) 2001 - 2004 by the the
|
||||||
* SourceForge Privoxy team. http://www.privoxy.org/
|
* SourceForge Privoxy team. http://www.privoxy.org/
|
||||||
|
@ -19,10 +19,10 @@
|
||||||
* Ken MacFarlane, <ksm+cpan@universal.dca.net>
|
* Ken MacFarlane, <ksm+cpan@universal.dca.net>
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -40,8 +40,51 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: deanimate.h,v $
|
||||||
|
* Revision 1.12 2008/03/28 15:13:39 fabiankeil
|
||||||
|
* Remove inspect-jpegs action.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2007/01/12 15:41:00 fabiankeil
|
||||||
|
* Remove some white space at EOL.
|
||||||
|
*
|
||||||
|
* Revision 1.10 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.8.2.1 2004/10/03 12:53:32 david__schmidt
|
||||||
|
* Add the ability to check jpeg images for invalid
|
||||||
|
* lengths of comment blocks. Defensive strategy
|
||||||
|
* against the exploit:
|
||||||
|
* Microsoft Security Bulletin MS04-028
|
||||||
|
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||||
|
* Allow Code Execution (833987)
|
||||||
|
* Enabled with +inspect-jpegs in actions files.
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/08 17:46:04 jongfoster
|
||||||
|
* Fixing int/size_t warnings
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/03/07 03:46:17 oes
|
||||||
|
* Fixed compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/07/29 18:50:04 jongfoster
|
||||||
|
* Fixing "extern C" block, and renaming #define _DEANIMATE_H
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/07/18 12:29:05 oes
|
||||||
|
* Updated prototype for gif_deanimate
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/07/13 13:46:20 oes
|
||||||
|
* Introduced GIF deanimation feature
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -64,7 +107,7 @@ struct binbuffer
|
||||||
extern int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_image);
|
extern int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_image);
|
||||||
extern void buf_free(struct binbuffer *buf);
|
extern void buf_free(struct binbuffer *buf);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Revision control strings from this header and associated .c file
|
* Revision control strings from this header and associated .c file
|
||||||
*/
|
*/
|
||||||
extern const char deanimate_rcs[];
|
extern const char deanimate_rcs[];
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# File : $Source: /cvsroot/ijbswa/current/default.action.master,v $
|
# File : $Source: /cvsroot/ijbswa/current/default.action.master,v $
|
||||||
#
|
#
|
||||||
# $Id: default.action.master,v 1.242 2011/10/16 13:13:50 fabiankeil Exp $
|
# $Id: default.action.master,v 1.170 2009/03/04 15:05:00 ler762 Exp $
|
||||||
#
|
#
|
||||||
# Requires : This version requires Privoxy v3.0.11 or later due to
|
# Requires : This version requires Privoxy v3.0.11 or later due to
|
||||||
# syntax changes.
|
# syntax changes.
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
# and enhancements are better placed in user.action,
|
# and enhancements are better placed in user.action,
|
||||||
# the match-all section has been moved to match-all.action.
|
# the match-all section has been moved to match-all.action.
|
||||||
#
|
#
|
||||||
# Copyright : Written by and Copyright (C) 2001-2010 the
|
# Copyright : Written by and Copyright (C) 2001-2009 the
|
||||||
# Privoxy team. http://www.privoxy.org/
|
# Privoxy team. http://www.privoxy.org/
|
||||||
#
|
#
|
||||||
# Note: Updated versions of this file will be made available from time
|
# Note: Updated versions of this file will be made available from time
|
||||||
|
@ -545,7 +545,7 @@ for-privoxy-version=3.0.11
|
||||||
# These aliases define combinations of actions
|
# These aliases define combinations of actions
|
||||||
# that are useful for certain types of sites:
|
# that are useful for certain types of sites:
|
||||||
#
|
#
|
||||||
fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referer
|
fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referer -prevent-compression
|
||||||
shop = -crunch-all-cookies allow-popups
|
shop = -crunch-all-cookies allow-popups
|
||||||
|
|
||||||
# Your favourite blend of filters:
|
# Your favourite blend of filters:
|
||||||
|
@ -563,8 +563,6 @@ allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
|
||||||
#
|
#
|
||||||
{ \
|
{ \
|
||||||
+change-x-forwarded-for{block} \
|
+change-x-forwarded-for{block} \
|
||||||
+client-header-tagger{css-requests} \
|
|
||||||
+client-header-tagger{image-requests} \
|
|
||||||
+hide-from-header{block} \
|
+hide-from-header{block} \
|
||||||
+set-image-blocker{pattern} \
|
+set-image-blocker{pattern} \
|
||||||
}
|
}
|
||||||
|
@ -576,8 +574,6 @@ standard.Cautious
|
||||||
#
|
#
|
||||||
{ \
|
{ \
|
||||||
+change-x-forwarded-for{block} \
|
+change-x-forwarded-for{block} \
|
||||||
+client-header-tagger{css-requests} \
|
|
||||||
+client-header-tagger{image-requests} \
|
|
||||||
+deanimate-gifs{last} \
|
+deanimate-gifs{last} \
|
||||||
+filter{refresh-tags} \
|
+filter{refresh-tags} \
|
||||||
+filter{img-reorder} \
|
+filter{img-reorder} \
|
||||||
|
@ -644,16 +640,6 @@ standard.Advanced
|
||||||
{-handle-as-image}
|
{-handle-as-image}
|
||||||
/.*\.(js|php|css|.?html?)
|
/.*\.(js|php|css|.?html?)
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
# These belong to multimedia files of which Firefox occasionally only
|
|
||||||
# requests parts. #2816708
|
|
||||||
#############################################################################
|
|
||||||
{-filter -deanimate-gifs}
|
|
||||||
# Sticky Actions = -filter -deanimate-gifs
|
|
||||||
# URL = http://www.example.org/foo/bar.ogg
|
|
||||||
# URL = http://www.example.net/bar.ogv
|
|
||||||
/.*\.og[gv]$
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Generic block patterns by host:
|
# Generic block patterns by host:
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
@ -681,7 +667,6 @@ metrics.
|
||||||
# Generic unblockers by host:
|
# Generic unblockers by host:
|
||||||
#############################################################################
|
#############################################################################
|
||||||
{-block}
|
{-block}
|
||||||
# Sticky Actions = -block
|
|
||||||
adsl.
|
adsl.
|
||||||
ad[udmw]*.
|
ad[udmw]*.
|
||||||
adbl*.
|
adbl*.
|
||||||
|
@ -698,11 +683,6 @@ adventure*.
|
||||||
.*[epu]ad*.
|
.*[epu]ad*.
|
||||||
county*.
|
county*.
|
||||||
countr*.
|
countr*.
|
||||||
#MASTER# REMARKS: We still like tor
|
|
||||||
# URL = http://metrics.torproject.org/consensus-graphs.html
|
|
||||||
metrics.torproject.org/
|
|
||||||
# URL = http://linuxcounter.net/
|
|
||||||
linuxcounter.net/
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Generic block patterns by path:
|
# Generic block patterns by path:
|
||||||
|
@ -728,8 +708,6 @@ linuxcounter.net/
|
||||||
/.*(lo|thre|he|d|gr|l|ro|re|squ|class(ified)?)ads
|
/.*(lo|thre|he|d|gr|l|ro|re|squ|class(ified)?)ads
|
||||||
/.*account
|
/.*account
|
||||||
support./(.*/)?track
|
support./(.*/)?track
|
||||||
# URL = http://repo.or.cz/r/vlc.git/objects/ad/1d316efd83157217fdf9b5d417dddca54bbf41
|
|
||||||
/.*\.git/objects/
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Exceptions for academia and non-profits
|
# Exceptions for academia and non-profits
|
||||||
|
@ -759,152 +737,6 @@ support./(.*/)?track
|
||||||
#MASTER# REMARKS: Added "text" 20070730 as per http://www.pcworld.com/textad?Keywords=System Resources Tune-Up.&type=pcworld_downloads_search&count=3&ord=906010128&serveUrl=http%3A%2F%2Fwww.pcworld.com%2Fdownloads%2Ffile%2Ffid%2C7661-order%2C1-page%2C1-c%2Csystemresourcestuneup%2Fdescription.html Adam Piggott
|
#MASTER# REMARKS: Added "text" 20070730 as per http://www.pcworld.com/textad?Keywords=System Resources Tune-Up.&type=pcworld_downloads_search&count=3&ord=906010128&serveUrl=http%3A%2F%2Fwww.pcworld.com%2Fdownloads%2Ffile%2Ffid%2C7661-order%2C1-page%2C1-c%2Csystemresourcestuneup%2Fdescription.html Adam Piggott
|
||||||
/.*(top|bottom|left|right|text)_?ad
|
/.*(top|bottom|left|right|text)_?ad
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
# Catch-all exceptions
|
|
||||||
#############################################################################
|
|
||||||
{-block}
|
|
||||||
# Sticky Actions = -block
|
|
||||||
|
|
||||||
#MASTER# REMARKS: Actionsfile feedback item #2933856 2010-01-17 16:59
|
|
||||||
#MASTER# REMARKS: Allow URLs containing DektopAdmin (matches .*top_?ad)
|
|
||||||
# URL = http://support.apple.com/downloads/DL985/en_US/RemoteDesktopAdmin332.dmg
|
|
||||||
/.*desktopadmin
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# Misc Web-bugs, JS and just plain Junk. Images here aren't normal images.
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
{+block{Might be a web-bug.} +handle-as-empty-document -handle-as-image}
|
|
||||||
#MASTER# REMARKS: signature for user tracking nytimes, cnn.com,latimes.com and many others. 10/06/06
|
|
||||||
/b/ss/.+
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.thesun.co.uk/article/0,,11071-10784,00.html
|
|
||||||
#MASTER# REMARKS: widespread hitbox signature 10/06/06
|
|
||||||
/HG\?hc=
|
|
||||||
#MASTER# BLOCK-REFERRER: http://macaddict.com 10/06/06
|
|
||||||
.visistat.com
|
|
||||||
#MASTER# REMARKS: See <http://www.google.com/analytics/> for user tracking.
|
|
||||||
#MASTER# REMARKS: There is a ssl.google-analytics as well.
|
|
||||||
.google-analytics./
|
|
||||||
#MASTER# REMARKS: Below Moved here from -handle-as-image 10/16/06 ##########
|
|
||||||
#MASTER# BLOCK-REFERRER: http://forums2.gardenweb.com/forums/orchids/ 09/25/06
|
|
||||||
#MASTER# REMARKS: Mostly JS and plain text stuff
|
|
||||||
.overture.
|
|
||||||
#MASTER# PROBLEM-URL: http://www.linuxtoday.com/
|
|
||||||
#MASTER# REMARKS: /adi has HTML snipplets for use in IFRAMEs 10/15/06
|
|
||||||
.doubleclick.net/adi
|
|
||||||
.doubleclick.net/(.*/)?adj/
|
|
||||||
#MASTER# PROBLEM-URL: http://maps.yahoo.com/
|
|
||||||
#MASTER# REMARKS: /AVE/iview has HTML snipplets for use in IFRAMEs 10/15/06
|
|
||||||
view.atdmt.com/(.*/)?iview/
|
|
||||||
#MASTER# REMARKS: Above Moved here from -handle-as-image 10/16/06 ##########
|
|
||||||
#MASTER# REMARKS: Generic, re: tracking.foxnews.com/HG? 10/01/06
|
|
||||||
tracking.
|
|
||||||
#MASTER# BLOCK-REFERRER: http://netcraft.com and many others 10/22/06
|
|
||||||
/(.*/)?adjs\.php\?
|
|
||||||
#MASTER# BLOCK-REFERRER: http://groups.yahoo.com/group/epdf/ 10/08/06
|
|
||||||
.bc.yahoo.com/b\?P=
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.motherboard.cz 10/30/06
|
|
||||||
x*.alexa.com
|
|
||||||
#MASTER# BLOCK-REFERRER: http://mplayernetwork.com 11/07/06
|
|
||||||
#MASTER# BLOCK-REFERRER: http://eetimes.com 09/26/06
|
|
||||||
/event.ng/
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.homedepot.com/ 11/08/06
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.williams-sonoma.com/ 11/08/06
|
|
||||||
/cm\?[tc]
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.snapfiles.com/feedback/ 12/13/06 SF tracker
|
|
||||||
.snapfiles.net/rotation/.*\.asp
|
|
||||||
#MASTER# BLOCK-REFERRER: not provided. SF tracker #1616034 12/16/06
|
|
||||||
#MASTER# COMMENT: JS pop-ups
|
|
||||||
spa.snap.com/
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.gamefaqs.com/computer/doswin/game/914819.html 12/18/06
|
|
||||||
#MASTER# COMMENT: user tracking, and run-away assorted 'junk'
|
|
||||||
#MASTER# BLOCK-REFERRER: http://formwood.com 2007-11-12
|
|
||||||
.insitemetrics.com/
|
|
||||||
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
|
||||||
#MASTER# BLOCK-REFERRER: http://blogblog.com 2007-11-12
|
|
||||||
.extreme-dm.com/
|
|
||||||
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.schillmania.com 2007-11-12
|
|
||||||
stats.reinvigorate.net/
|
|
||||||
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
|
||||||
#MASTER# BLOCK-REFERRER: http://wordpress.com 2007-11-12
|
|
||||||
.getclicky.com/
|
|
||||||
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
|
||||||
#MASTER# BLOCK-REFERRER: http://infoworld.com 2007-11-12
|
|
||||||
.quantserve.com
|
|
||||||
# Blocked URL = http://media.adrevolver.com/adrevolver/trace?sip=123&cpy=123
|
|
||||||
media.adrevolver.com/
|
|
||||||
#MASTER# REMARKS: Actionsfile feedback item #2975895 2010-03-24
|
|
||||||
# Blocked URL = http://static.chartbeat.com/js/chartbeat.js
|
|
||||||
.chartbeat.com/(.*/)?chartbeat\.js$
|
|
||||||
# Blocked URL = http://js.adlink.net/js?lang=de&s=duesseldorf-international.de&z=home&d=1274103403564
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.duesseldorf-international.de/
|
|
||||||
js.adlink.net/
|
|
||||||
# Blocked URL = nl.sitestat.com/rdw/rdw/s?www.nl.voertuigeigenaar.voertuigeigenaar&ns__t=1274099350343
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.rdw.nl/nl/voertuigeigenaar/
|
|
||||||
.sitestat.com/
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.chip.de/artikel/c_artikelunterseite_10423683.html
|
|
||||||
# Blocked URL = http://pagead.googlesyndication.example.com/foo/bar/baz.js
|
|
||||||
pagead*.googlesyndication./.*\.js
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.pcmag.com/ 11/22/06 per SF Tracker # 1601148
|
|
||||||
/js/slider\.js
|
|
||||||
#MASTER# BLOCK-REFERRER: http://floodle.net 2007-01-21 SF tracker
|
|
||||||
scripts.chitika.net/.*\.js
|
|
||||||
#MASTER# BLOCK-REFERRER: via Yahoo groups
|
|
||||||
#MASTER# REMARKS: Actionsfile tracker 1645513 2007-01-26
|
|
||||||
.adinterax.com/.*\.js
|
|
||||||
#MASTER# BLOCK-REFERRER: http://dictionary.reference.com/search?q=privacy&db=*
|
|
||||||
#MASTER# REMARKS: Actionsfile tracker 1650798 2007-02-02
|
|
||||||
# Blocked URL = http://partner.googleadservices.com/gampad/google_service.js
|
|
||||||
# Blocked URL = http://partner.googleadservices.com/gampad/google_ads.js
|
|
||||||
# Blocked URL = http://partner.googleadservices.com/gampad/slotdata.js?callback=_GA_googleAdData.setAdSlotAttributes&client=ca-gam-lexico
|
|
||||||
.googleadservices.com/gampad/.*\.js
|
|
||||||
# Blocked URL = http://richmedia.yimg.com/js/123/personnals_banners/PER_happy_sara1_4_425x600/ad.js?q=123
|
|
||||||
/.*/ad\.js\?
|
|
||||||
# Blocked URL = http://i.cmpnet.com/shared/omniture/s_code_remote.js
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.informationweek.de/
|
|
||||||
/.*omniture.*\.js
|
|
||||||
# Blocked URL = http://gadk.hit.gemius.pl/*/_1274097577014/rexdot.gif?l=30&id=..DlR.vCLZGB56RmfkYNSWZVLSqB3ueYOP.Oec5WWiv.h7&fr=1&fv=WIN%2010%2C0%2C45%2C2&tz=-120&href=http%3A//www.baadgalleri.dk/&ref=&screen=1440x900&col=32
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.baadgalleri.dk/
|
|
||||||
.gemius.pl/
|
|
||||||
|
|
||||||
|
|
||||||
{+block{Might be a web-bug.} -handle-as-empty-document +handle-as-image}
|
|
||||||
#MASTER# BLOCK-REFERRER: http://versiontracker.com and many others. 10/20/06
|
|
||||||
/(.*/)?__utm.gif\?
|
|
||||||
#MASTER# BLOCK-REFERRER: http://washingpost.com and others 10/25/06
|
|
||||||
/.*\.gif\?D=DM
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.washingtonpost.com/
|
|
||||||
#stats.surfaid.ihost.com/(crc/)?images/(bounce/)?uc.GIF
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.ibm.com 10/09/06
|
|
||||||
#MASTER# REMARKS: Similar hostname and paths appear in multiple locations.
|
|
||||||
# Blocked URL = http://stats.surfaid.ihost.com/crc/images/bounce/uc.GIF
|
|
||||||
# Blocked URL = http://stats.surfaid.ihost.com/rc/images/bounce/uc.GIF
|
|
||||||
stats./c?rc/.*/uc.gif
|
|
||||||
#MASTER# BLOCK-REFERRER: http://priceline.com 10/20/06
|
|
||||||
#MASTER# REMARKS: User tracking, webbug stuff
|
|
||||||
/(.*/)?dcs.gif\?&?dcs
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.msnbc.com 10/07/06
|
|
||||||
#MASTER# REMARKS: And MANY others. Webbug stuff.
|
|
||||||
/(.*/)?c(lear)?\.gif\?.
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.investorguide.com 10/08/06
|
|
||||||
#MASTER# BLOCK-REFERRER: http://foodnetwork.com, http://gardenweb.com 10/20/06
|
|
||||||
#MASTER# REMARK: webbug type gif used in MANY places.
|
|
||||||
#MASTER# REMARK: Too many false positives
|
|
||||||
#/(.*/)?(clear|(trans_?1x|blank)?1).gif
|
|
||||||
#MASTER# REMARK: Let's try this way.
|
|
||||||
/(.*/)?(clear|blank|(trans_?|1x)?1).gif\?.
|
|
||||||
#MASTER# BLOCK-REFERRER: http://actorstheatre.org 11/02/06
|
|
||||||
stats./.*\.gif\?
|
|
||||||
# Blocked URL = http://ad.yieldmanager.com/pixel?id=123456&t=2
|
|
||||||
.yieldmanager.com/pixel\?
|
|
||||||
# Blocked URL = http://a.analytics.yahoo.com/p.pl?a=1000226660965&js=no
|
|
||||||
# Blocked URL = http://s.analytics.yahoo.com/fpc.pl?a=1000461640983&v=4.43&enc=utf-8&f=http%3A//www.zoover.nl/nederland/limburg/maasbracht/weer%23tabs&b=Het%20Weer%20in%20Maasbracht.%20Bekijk%20Weersverwachting%20van%20Maasbracht%20%7C%20Zoover%23tabs&flv=WIN%2010%2C0%2C45%2C2&d=Mon%2C%2017%20May%202010%2014%3A09%3A26%20UTC&n=-2&g=nl&h=Y&j=1440x900&k=32&l=true&ittidx=0&fpc=uP04C7j4%7ClaDQjglKaa%7Cfses1000461640983%3D%7CkbSSgv6Jaa%7CuP04C7j4%7Cfvis1000461640983%3DZj1odHRwJTNBLy93d3cuem9vdmVyLm5sLyZiPVpvb3ZlciUyMCU3QyUyMFZha2FudGllYmVvb3JkZWxpbmdlbiUyMHZvb3IlMjBlbiUyMGRvb3IlMjByZWl6aWdlcnM%3D%7C8sHTYo10oM%7C8sHTYo10oM%7C8sHTYo10oM%7CT%7C8sHTYo10oM%7C8sHTYo10oM
|
|
||||||
.analytics.yahoo.com
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.aktivist.pl/
|
|
||||||
# Blocked URL = http://go.idmnet.bbelements.com/please/showit/46/1/1/1/?typkodu=img&keywords=
|
|
||||||
go.idmnet.bbelements.com/please/showit/
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Site-specific block patterns;
|
# Site-specific block patterns;
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
@ -916,10 +748,6 @@ go.idmnet.bbelements.com/please/showit/
|
||||||
landing.trafficz.com/
|
landing.trafficz.com/
|
||||||
# Blocked URL = http://www.searchnut.com/?domain=www.inetcat.org
|
# Blocked URL = http://www.searchnut.com/?domain=www.inetcat.org
|
||||||
.searchnut.com/\?domain
|
.searchnut.com/\?domain
|
||||||
#MASTER# REMARKS: Verizon should know better
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.qwetyhjkl.com
|
|
||||||
# Blocked URL = http://wwwz.websearch.verizon.net/search?qo=www.qwetyhjkl.com
|
|
||||||
wwwz.websearch.verizon.net/search\?qo=
|
|
||||||
|
|
||||||
{+block{Site-specific block pattern matches.}}
|
{+block{Site-specific block pattern matches.}}
|
||||||
#MASTER# BLOCK-REFERRER: http://www.brooksbrothers.com/ 10/18/06
|
#MASTER# BLOCK-REFERRER: http://www.brooksbrothers.com/ 10/18/06
|
||||||
|
@ -1059,52 +887,128 @@ static.lycos-europe.net
|
||||||
#MASTER# BLOCK-REFERRER: http://hitta.se
|
#MASTER# BLOCK-REFERRER: http://hitta.se
|
||||||
# Blocked URL = http://82.99.18.195/media.1/112/9460/146016/150x175_Hitta_FV_Feb08.gif
|
# Blocked URL = http://82.99.18.195/media.1/112/9460/146016/150x175_Hitta_FV_Feb08.gif
|
||||||
82.99.18.195
|
82.99.18.195
|
||||||
#MASTER# REMARKS: Actionsfile feedback item #1888197 and #2975927.
|
#MASTER# REMARKS: Actionsfile feedback item #1888197 2008-02-06
|
||||||
#MASTER# REMARKS: Have a "go there anyway" link for clk.atdmt.com and view.atdmt.com.
|
#MASTER# REMARKS: Have a "go there anyway" link for clk.atdmt.com
|
||||||
#MASTER# BLOCK-REFERRER: http://www.networkworld.com/resourcelibrary/?tid=4&type=special%20report
|
#MASTER# BLOCK-REFERRER: http://www.networkworld.com/resourcelibrary/?tid=4&type=special%20report
|
||||||
# Blocked URL = http://clk.atdmt.com/
|
# Blocked URL = http://clk.atdmt.com/
|
||||||
# Blocked URL = http://view.atdmt.com/action/mrtiwy_FY10Office2010BetaHomeandBiz1_1
|
|
||||||
.atdmt.com/
|
.atdmt.com/
|
||||||
#MASTER# REMARKS: Actionsfile feedback item #2723873 2009-04-01
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.news.software.coop/paralysed-perl-package-problem/602/
|
|
||||||
# Blocked URL = http://www.awin1.com/cread.php?s=123049&v=1983&q=80970&r=79561
|
|
||||||
.awin1.com
|
|
||||||
#MASTER# BLOCK-REFERRER: http://crooksandliars.com/
|
|
||||||
# Blocked URL = http://rotator.adjuggler.com/servlet/ajrotator/616245/0/vh?z=csm&dim=616028
|
|
||||||
.adjuggler.com/servlet/ajrotator/
|
|
||||||
#MASTER# Remark: nothing but "sponsored listings"
|
|
||||||
# Blocked URL = http://bcc.co.uk/
|
|
||||||
bcc.co.uk/
|
|
||||||
# Blocked URL = http://fusion.adtoma.com:80/125AFFE801/1DC59C7801.swf
|
|
||||||
# Blocked URL = http://fusion.adtoma.com/1254D5CC01/1E43C76801.jpg
|
|
||||||
fusion.adtoma.com/
|
|
||||||
#MASTER# Remark: Actionsfile feedback item #2975895 2010-03-24
|
|
||||||
# Blocked URL = http://ping.chartbeat.net/ping?h=uservoice.com&p=%2Fsuggestions%2Fping-chartbeat-net-sucks&u=3
|
|
||||||
.chartbeat.net/(.*/)?ping\?
|
|
||||||
# Blocked URL = http://s.atemda.com/Admeta.js
|
|
||||||
# Blocked URL = http://atemda.com/ClickThrough.ashx?pId=9616&mId=14484&tId=634102151426089505&opS=1&admetac=mR3sJ3%2b9yleq%2bHowITh0hw%3d%3d
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.startpagina.nl
|
|
||||||
.atemda.com/
|
|
||||||
#MASTER# Remark: 2o7.net, omtrdc.net and www91.intel.com are domains used by Omniture
|
|
||||||
# Blocked URL = http://ciscosystemsinc.tt.omtrdc.net/m2/ciscosystemsinc/mbox/standard?mboxHost=www.cisco.com&mboxSession=12
|
|
||||||
.omtrdc.net/
|
|
||||||
# Blocked URL = http://www91.intel.com/b/ss/intelcorp,intelcorpdc/...ONDataProvider.aspx%3FDownloadType%3DDrivers&ot=A&AQE=1
|
|
||||||
www91.intel.com/
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Misc Web-bugs, JS and just plain Junk. Images here aren't normal images.
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
{+block{Might be a web-bug.} +handle-as-empty-document -handle-as-image}
|
||||||
|
#MASTER# REMARKS: signature for user tracking nytimes, cnn.com,latimes.com and many others. 10/06/06
|
||||||
|
/b/ss/.+
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.thesun.co.uk/article/0,,11071-10784,00.html
|
||||||
|
#MASTER# REMARKS: widespread hitbox signature 10/06/06
|
||||||
|
/HG\?hc=
|
||||||
|
#MASTER# BLOCK-REFERRER: http://macaddict.com 10/06/06
|
||||||
|
.visistat.com
|
||||||
|
#MASTER# REMARKS: See <http://www.google.com/analytics/> for user tracking.
|
||||||
|
#MASTER# REMARKS: There is a ssl.google-analytics as well.
|
||||||
|
.google-analytics./
|
||||||
|
#MASTER# BLOCK-REFERRER: http://versiontracker.com and many others. 10/20/06
|
||||||
|
/(.*/)?__utm.gif\?
|
||||||
|
#MASTER# REMARKS: Below Moved here from -handle-as-image 10/16/06 ##########
|
||||||
|
#MASTER# BLOCK-REFERRER: http://forums2.gardenweb.com/forums/orchids/ 09/25/06
|
||||||
|
#MASTER# REMARKS: Mostly JS and plain text stuff
|
||||||
|
.overture.
|
||||||
|
#MASTER# PROBLEM-URL: http://www.linuxtoday.com/
|
||||||
|
#MASTER# REMARKS: /adi has HTML snipplets for use in IFRAMEs 10/15/06
|
||||||
|
.doubleclick.net/adi
|
||||||
|
.doubleclick.net/(.*/)?adj/
|
||||||
|
#MASTER# PROBLEM-URL: http://maps.yahoo.com/
|
||||||
|
#MASTER# REMARKS: /AVE/iview has HTML snipplets for use in IFRAMEs 10/15/06
|
||||||
|
view.atdmt.com/(.*/)?iview/
|
||||||
|
#MASTER# REMARKS: Above Moved here from -handle-as-image 10/16/06 ##########
|
||||||
|
#MASTER# REMARKS: Generic, re: tracking.foxnews.com/HG? 10/01/06
|
||||||
|
tracking.
|
||||||
|
#MASTER# BLOCK-REFERRER: http://netcraft.com and many others 10/22/06
|
||||||
|
/(.*/)?adjs\.php\?
|
||||||
|
#MASTER# BLOCK-REFERRER: http://washingpost.com and others 10/25/06
|
||||||
|
/.*\.gif\?D=DM
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.washingtonpost.com/
|
||||||
|
#stats.surfaid.ihost.com/(crc/)?images/(bounce/)?uc.GIF
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.ibm.com 10/09/06
|
||||||
|
#MASTER# REMARKS: Similar hostname and paths appear in multiple locations.
|
||||||
|
# Blocked URL = http://stats.surfaid.ihost.com/crc/images/bounce/uc.GIF
|
||||||
|
# Blocked URL = http://stats.surfaid.ihost.com/rc/images/bounce/uc.GIF
|
||||||
|
stats./c?rc/.*/uc.gif
|
||||||
|
#MASTER# BLOCK-REFERRER: http://priceline.com 10/20/06
|
||||||
|
#MASTER# REMARKS: User tracking, webbug stuff
|
||||||
|
/(.*/)?dcs.gif\?&?dcs
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.msnbc.com 10/07/06
|
||||||
|
#MASTER# REMARKS: And MANY others. Webbug stuff.
|
||||||
|
/(.*/)?c(lear)?\.gif\?.
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.investorguide.com 10/08/06
|
||||||
|
#MASTER# BLOCK-REFERRER: http://foodnetwork.com, http://gardenweb.com 10/20/06
|
||||||
|
#MASTER# REMARK: webbug type gif used in MANY places.
|
||||||
|
#MASTER# REMARK: Too many false positives
|
||||||
|
#/(.*/)?(clear|(trans_?1x|blank)?1).gif
|
||||||
|
#MASTER# REMARK: Let's try this way.
|
||||||
|
/(.*/)?(clear|blank|(trans_?|1x)?1).gif\?.
|
||||||
|
#MASTER# BLOCK-REFERRER: http://groups.yahoo.com/group/epdf/ 10/08/06
|
||||||
|
.bc.yahoo.com/b\?P=
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.motherboard.cz 10/30/06
|
||||||
|
x*.alexa.com
|
||||||
|
#MASTER# BLOCK-REFERRER: http://actorstheatre.org 11/02/06
|
||||||
|
stats./.*\.gif\?
|
||||||
|
#MASTER# BLOCK-REFERRER: http://mplayernetwork.com 11/07/06
|
||||||
|
#MASTER# BLOCK-REFERRER: http://eetimes.com 09/26/06
|
||||||
|
/event.ng/
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.homedepot.com/ 11/08/06
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.williams-sonoma.com/ 11/08/06
|
||||||
|
/cm\?[tc]
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.snapfiles.com/feedback/ 12/13/06 SF tracker
|
||||||
|
.snapfiles.net/rotation/.*\.asp
|
||||||
|
#MASTER# BLOCK-REFERRER: not provided. SF tracker #1616034 12/16/06
|
||||||
|
#MASTER# COMMENT: JS pop-ups
|
||||||
|
spa.snap.com/
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.gamefaqs.com/computer/doswin/game/914819.html 12/18/06
|
||||||
|
#MASTER# COMMENT: user tracking, and run-away assorted 'junk'
|
||||||
|
#MASTER# BLOCK-REFERRER: http://formwood.com 2007-11-12
|
||||||
|
.insitemetrics.com/
|
||||||
|
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
||||||
|
#MASTER# BLOCK-REFERRER: http://blogblog.com 2007-11-12
|
||||||
|
.extreme-dm.com/
|
||||||
|
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.schillmania.com 2007-11-12
|
||||||
|
stats.reinvigorate.net/
|
||||||
|
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
||||||
|
#MASTER# BLOCK-REFERRER: http://wordpress.com 2007-11-12
|
||||||
|
.getclicky.com/
|
||||||
|
#MASTER# COMMENT: user tracking, and assorted 'junk'
|
||||||
|
#MASTER# BLOCK-REFERRER: http://infoworld.com 2007-11-12
|
||||||
|
.quantserve.com
|
||||||
|
# Blocked URL = http://media.adrevolver.com/adrevolver/trace?sip=123&cpy=123
|
||||||
|
media.adrevolver.com/
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# JavaScripts and Texts for ad and popup generation
|
# JavaScripts and Texts for ad and popup generation
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.chip.de/artikel/c_artikelunterseite_10423683.html
|
||||||
|
# Blocked URL = http://pagead.googlesyndication.example.com/foo/bar/baz.js
|
||||||
|
pagead*.googlesyndication./.*\.js
|
||||||
#MASTER# REMARKS: broadening scope from a.tfag.de/js.ng/ 10/23/06
|
#MASTER# REMARKS: broadening scope from a.tfag.de/js.ng/ 10/23/06
|
||||||
# Blocked URL = http://a.tfag.de/js.ng/
|
# Blocked URL = http://a.tfag.de/js.ng/
|
||||||
/js\.ng/
|
/js\.ng/
|
||||||
#MASTER# BLOCK-REFERRER: http://www.britannica.com/ 10/23/06
|
#MASTER# BLOCK-REFERRER: http://www.britannica.com/ 10/23/06
|
||||||
/popunder
|
/popunder
|
||||||
|
#MASTER# BLOCK-REFERRER: http://www.pcmag.com/ 11/22/06 per SF Tracker # 1601148
|
||||||
|
/js/slider\.js
|
||||||
#MASTER# BLOCK-REFERRER: http://www.earthcore.com/ feedback item #1605385 12/14/06
|
#MASTER# BLOCK-REFERRER: http://www.earthcore.com/ feedback item #1605385 12/14/06
|
||||||
/t\.php\?cat=.*&kw=.*&sc=
|
/t\.php\?cat=.*&kw=.*&sc=
|
||||||
|
#MASTER# BLOCK-REFERRER: http://floodle.net 2007-01-21 SF tracker
|
||||||
|
scripts.chitika.net/.*\.js
|
||||||
#MASTER# REMARKS: Actionsfile tracker #1674363 2007-03-05, text ads
|
#MASTER# REMARKS: Actionsfile tracker #1674363 2007-03-05, text ads
|
||||||
#MASTER# BLOCK-REFERRER: http://www.securityfocus.com/archive/1/461489/30/0/threaded
|
#MASTER# BLOCK-REFERRER: http://www.securityfocus.com/archive/1/461489/30/0/threaded
|
||||||
jlinks.industrybrains.com/
|
jlinks.industrybrains.com/
|
||||||
|
#MASTER# BLOCK-REFERRER: via Yahoo groups
|
||||||
|
#MASTER# REMARKS: Actionsfile tracker 1645513 2007-01-26
|
||||||
|
.adinterax.com/.*\.js
|
||||||
|
#MASTER# BLOCK-REFERRER: http://dictionary.reference.com/search?q=privacy&db=*
|
||||||
|
#MASTER# REMARKS: Actionsfile tracker 1650798 2007-02-02
|
||||||
|
.googleadservices.com/gampad/.*\.js
|
||||||
#MASTER# BLOCK-REFERRER: http://www.linuxworld.com/news/2007/061307-brian-aker-interview.html
|
#MASTER# BLOCK-REFERRER: http://www.linuxworld.com/news/2007/061307-brian-aker-interview.html
|
||||||
#MASTER# REMARKS: Actionsfile feedback item #1736794 2007-06-13
|
#MASTER# REMARKS: Actionsfile feedback item #1736794 2007-06-13
|
||||||
js.adsonar.
|
js.adsonar.
|
||||||
|
@ -1114,7 +1018,10 @@ js.adsonar.
|
||||||
bwp.
|
bwp.
|
||||||
# Blocked URL = http://us.mc123.mail.yahoo.com/mc/stampNonJs
|
# Blocked URL = http://us.mc123.mail.yahoo.com/mc/stampNonJs
|
||||||
.yahoo.com/mc/stampNonJs
|
.yahoo.com/mc/stampNonJs
|
||||||
|
# Blocked URL = http://richmedia.yimg.com/js/123/personnals_banners/PER_happy_sara1_4_425x600/ad.js?q=123
|
||||||
|
/.*/ad\.js\?
|
||||||
|
# Blocked URL = http://ad.yieldmanager.com/st?ad_type=iframe&ad_size=728x90&site=123§ion_code=123
|
||||||
|
/.*\?ad_(type|size)=
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Generic block-as-image patterns:
|
# Generic block-as-image patterns:
|
||||||
|
@ -1145,8 +1052,6 @@ bwp.
|
||||||
# Blocked URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
|
# Blocked URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
|
||||||
# URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
|
# URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
|
||||||
/(.*/)?ads/images/
|
/(.*/)?ads/images/
|
||||||
# Blocked URL = http://ad.yieldmanager.com/st?ad_type=iframe&ad_size=728x90&site=123§ion_code=123
|
|
||||||
/.*\?ad_(type|size)=
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Site-specific block-as-image patterns:
|
# Site-specific block-as-image patterns:
|
||||||
|
@ -1175,20 +1080,15 @@ bwp.
|
||||||
#.yimg.com/a/.*/flash/
|
#.yimg.com/a/.*/flash/
|
||||||
#MASTER# REMARKS: The above replaced with below. Actions file tracker #1645616 2007-01-27
|
#MASTER# REMARKS: The above replaced with below. Actions file tracker #1645616 2007-01-27
|
||||||
.yimg.com/.*\.yimg\.com/a/
|
.yimg.com/.*\.yimg\.com/a/
|
||||||
#MASTER# REMARKS: Yahoo doesn't always have ".yimg.com/a/" in the URL for ads now 2010-02-28
|
|
||||||
#MASTER# BLOCK-REFERRER: various yahoo pages
|
|
||||||
# Blocked URL = http://l.yimg.com/a/a/1-/flash/promotions/l3/intl/100214/300x250mfeyap.jpg
|
|
||||||
# Blocked URL = http://l.yimg.com/a/a/1-/flash/promotions/l3/intl/100219/300x250mfeya.gif
|
|
||||||
.yimg.com/.*/flash/promotions/.*\.(gif|jpg)$
|
|
||||||
bs*.gsanet.com
|
bs*.gsanet.com
|
||||||
bs*.einets.com
|
bs*.einets.com
|
||||||
.qkimg.net
|
.qkimg.net
|
||||||
#MASTER# BLOCK-REFERRER: http://salon.com/ 10/19/06
|
#MASTER# BLOCK-REFERRER: http://salon.com/ 10/19/06
|
||||||
#MASTER# BLOCK-REFERRER: http://maps.yahoo.com/
|
#MASTER# BLOCK-REFERRER: http://maps.yahoo.com/
|
||||||
#MASTER# REMARKS: Banner farms; just exclude their corp. info
|
#MASTER# REMARKS: Banner farms; just exclude their corp. info
|
||||||
#MASTER# REMARKS: and have a "go there anyway" link for clk.atdmt.com and view.atdmt.com
|
#MASTER# REMARKS: and have a "go there anyway" link for clk.atdmt.com
|
||||||
#MASTER# REMARKS: (Actionsfile feedback item #1888197 and #2975927)
|
#MASTER# REMARKS: (Actionsfile feedback item #1888197)
|
||||||
[abd-ux-z]*.atdmt.com/
|
[abd-vx-z]*.atdmt.com/
|
||||||
#MASTER# BLOCK-REFERRER: http://www.exactaudiocopy.de/ 09/11/06
|
#MASTER# BLOCK-REFERRER: http://www.exactaudiocopy.de/ 09/11/06
|
||||||
#MASTER# BLOCK-REFERRER: http://stanford.facebook.com/home.php
|
#MASTER# BLOCK-REFERRER: http://stanford.facebook.com/home.php
|
||||||
# URL = http://www.fastclick.net/
|
# URL = http://www.fastclick.net/
|
||||||
|
@ -1215,7 +1115,7 @@ a.tribalfusion.com/
|
||||||
#MASTER# REMARKS: Pointdexter
|
#MASTER# REMARKS: Pointdexter
|
||||||
.ru4.com/
|
.ru4.com/
|
||||||
#MASTER# BLOCK-REFERRER: http://www.boursorama.com/infos/actualites/detail_actu_marches.phtml?news=1510287
|
#MASTER# BLOCK-REFERRER: http://www.boursorama.com/infos/actualites/detail_actu_marches.phtml?news=1510287
|
||||||
.smartadserver.com/
|
www.smartadserver.com/
|
||||||
#MASTER# BLOCK-REFERRER: http://www.chez.tiscali.fr/ 10/07/06
|
#MASTER# BLOCK-REFERRER: http://www.chez.tiscali.fr/ 10/07/06
|
||||||
admedia.
|
admedia.
|
||||||
#MASTER# REMARKS: Bannerfarm used by Morpheus file sharing software
|
#MASTER# REMARKS: Bannerfarm used by Morpheus file sharing software
|
||||||
|
@ -1305,15 +1205,6 @@ img.directtrack.com
|
||||||
.pclick.yahoo.com/images/
|
.pclick.yahoo.com/images/
|
||||||
# Blocked URL = http://rover.ebay.com/ar/1/2/3?mpt=123&adtype=1&size=728x90
|
# Blocked URL = http://rover.ebay.com/ar/1/2/3?mpt=123&adtype=1&size=728x90
|
||||||
/.*\&adtype=
|
/.*\&adtype=
|
||||||
# Blocked URL = http://resources.parfym.se/tradedoubler/250x360.swf
|
|
||||||
/tradedoubler/.*\.swf
|
|
||||||
# Blocked URL = http://hstse.tradedoubler.com/file/142609/440x220.swf
|
|
||||||
hstse.tradedoubler.com/.*\.swf
|
|
||||||
# Blocked URL = http://www.zdnetasia.com/2007/techguide/network/sponsor/i/logmein_mpu_whitepaper.gif
|
|
||||||
# Blocked URL = http://www.zdnetasia.com/2007/techguide/network/sponsor/sidebar.gif
|
|
||||||
www.zdnetasia.com/.*/sponsor/.*\.gif$
|
|
||||||
# Blocked URL = http://pagead2.googlesyndication.com/pagead/imgad?id=CPjtipDs9taquQEQoAEYwgQyCIvo2PNnQywb
|
|
||||||
.googlesyndication.com/.*/imgad\?
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Cross-site user tracking
|
# Cross-site user tracking
|
||||||
|
@ -1406,19 +1297,6 @@ feeds.feedburner.com/~a/DilbertDailyStrip\?
|
||||||
#MASTER# BLOCK-REFERER: http://www.buch.de/
|
#MASTER# BLOCK-REFERER: http://www.buch.de/
|
||||||
# URL = http://track.webtrekk.de/471497967328727/wt.pl?p=177,de.buch.show.home,1,1024x768,24,1,1218816426275,0,884x653,0&enc1=%FC&enc2=iso-8859-1&st=view&la=en-US&np=Default%20Plugi
|
# URL = http://track.webtrekk.de/471497967328727/wt.pl?p=177,de.buch.show.home,1,1024x768,24,1,1218816426275,0,884x653,0&enc1=%FC&enc2=iso-8859-1&st=view&la=en-US&np=Default%20Plugi
|
||||||
track.webtrekk.de/
|
track.webtrekk.de/
|
||||||
#MASTER# BLOCK-REFERER: https://sourceforge.net/
|
|
||||||
# URL = http://b.scorecardresearch.com/p2?c1=2&c2=6035546&c3=&c4=&c5=&c6=&c15=&cj=1
|
|
||||||
b.scorecardresearch.com/
|
|
||||||
# URL = https://sb.scorecardresearch.com/
|
|
||||||
sb.scorecardresearch.com/
|
|
||||||
#MASTER# BLOCK-REFERRER: http://sourceforge.net/projects/ijbswa/
|
|
||||||
# Blocked URL = http://b.collective-media.net/seg/cm/cm_aa_gn1
|
|
||||||
b.collective-media.net/
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.spiegel.de/
|
|
||||||
# Blocked URL = http://spiegel.ivwbox.de/cgi-bin/ivw/CP/1001;/home/c-18/be-PB64-aG9tZXBhZ2UvY2VudGVy/szwprofil-1001
|
|
||||||
#MASTER# BLOCK-REFERRER: http://www.heise.de/
|
|
||||||
# Blocked URL = http://heise.ivwbox.de/2004/01/survey.js
|
|
||||||
.ivwbox.de/
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Specific counters (see above for generic patterns)
|
# Specific counters (see above for generic patterns)
|
||||||
|
@ -1703,14 +1581,6 @@ tags.gawker.com/.*css$
|
||||||
#MASTER# UNBLOCK-REFERRER: http://idonthateyouall.imeem.com/video/8zH0_f9i/kiley_rilo_pull_me_in_tighter_art_video/
|
#MASTER# UNBLOCK-REFERRER: http://idonthateyouall.imeem.com/video/8zH0_f9i/kiley_rilo_pull_me_in_tighter_art_video/
|
||||||
# URL = http://ad.doubleclick.net/crossdomain.xml
|
# URL = http://ad.doubleclick.net/crossdomain.xml
|
||||||
ad.doubleclick.net/crossdomain\.xml
|
ad.doubleclick.net/crossdomain\.xml
|
||||||
#MASTER# REMARKS: Support request 2838390: 2009-08-16: nfl.com videos not working
|
|
||||||
#MASTER# REMARKS: bbc.co.uk videos references ad.uk.doubleclick.net
|
|
||||||
# URL = http://ad.doubleclick.net/879366/DartShell9_8.swf?adServerHost=http://ad.doubleclick.net
|
|
||||||
# URL = http://ad.doubleclick.net/pfadx/DARTSHELLCONFIGXML;dcmt=text/xml;
|
|
||||||
# URL = http://ad.doubleclick.net/879366/DartShellPlayer9_8_01_00.swf
|
|
||||||
# URL = http://ad.uk.doubleclick.net/879366/DartShell7_7.swf?adServerHost=http://ad.uk.doubleclick.net
|
|
||||||
.doubleclick.net/.*/DartShell.*\.swf
|
|
||||||
.doubleclick.net/.*/DARTSHELLCONFIGXML
|
|
||||||
#MASTER# REMARKS: Actionsfile feedback item #2021509 2008-07-18
|
#MASTER# REMARKS: Actionsfile feedback item #2021509 2008-07-18
|
||||||
#MASTER# REMARKS: Allow realplayer site help popup windows
|
#MASTER# REMARKS: Allow realplayer site help popup windows
|
||||||
#MASTER# UNBLOCK-REFERRER: http://real.custhelp.com/cgi-bin/real.cfg/php/enduser/std_adp.php?p_faqid=4512
|
#MASTER# UNBLOCK-REFERRER: http://real.custhelp.com/cgi-bin/real.cfg/php/enduser/std_adp.php?p_faqid=4512
|
||||||
|
@ -1724,8 +1594,7 @@ fritz.box/
|
||||||
# URL = http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402747&sliceId=1
|
# URL = http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402747&sliceId=1
|
||||||
.adobe.com
|
.adobe.com
|
||||||
# URL = http://qa.debian.org/popcon.php
|
# URL = http://qa.debian.org/popcon.php
|
||||||
# URL = http://qa.debian.org/popcon-png.php?packages=privoxy&show_installed=on&want_legend=on&want_ticks=on&date_fmt=%25Y-%25m&beenhere=1
|
qa.debian.org/popcon\.php
|
||||||
qa.debian.org/popcon
|
|
||||||
#MASTER# REMARKS: Support Requests item #2432535 2008-12-16
|
#MASTER# REMARKS: Support Requests item #2432535 2008-12-16
|
||||||
# URL = http://www.mta.info/bandt/traffic/advmain.htm
|
# URL = http://www.mta.info/bandt/traffic/advmain.htm
|
||||||
.mta.info/.*advmain.htm$
|
.mta.info/.*advmain.htm$
|
||||||
|
@ -1751,65 +1620,6 @@ qa.debian.org/popcon
|
||||||
# URL = http://graphics8.nytimes.com/css/0.1/screen/common/ads.css
|
# URL = http://graphics8.nytimes.com/css/0.1/screen/common/ads.css
|
||||||
# URL = http://graphics8.nytimes.com/css/0.1/screen/homepage/ads.css
|
# URL = http://graphics8.nytimes.com/css/0.1/screen/homepage/ads.css
|
||||||
.nytimes.com/.*/ads\.css$
|
.nytimes.com/.*/ads\.css$
|
||||||
#MASTER# REMARKS: All hosted videos seemingly require this file.
|
|
||||||
#MASTER# UNBLOCK-REFERRER: http://www.cnn.com/video/#/video/showbiz/2009/04/14/dcl.boyle.british.talent.show.cnn
|
|
||||||
# URL = http://i.cdn.turner.com/cnn/.element/js/2.0/video/xmp/AdServiceAdapter.swf
|
|
||||||
.turner.com/cnn/.*/AdServiceAdapter.swf
|
|
||||||
#MASTER# REMARKS: Tracker 2786745 : MySpace music player doesn't work
|
|
||||||
#MASTER# UNBLOCK-REFERRER: www.myspace.com/bandofskulls
|
|
||||||
# URL = http://lads.myspacecdn.com/videos/musicPlayerAssets.swf
|
|
||||||
lads.myspacecdn.com/
|
|
||||||
#MASTER# REMARKS: AF#2789653 iTunes download blocked
|
|
||||||
# URL = http://a957.phobos.apple.com/us/r1000/000/Music/ad/47/56/mzi.gnjsyarh.aac.a.m4p
|
|
||||||
.phobos.apple.com/
|
|
||||||
# URL = http://eas8.emediate.eu/eas?camp=114;ty=ct;EASLink=http://www.jp.dk
|
|
||||||
.emediate.eu/.*EASLink=
|
|
||||||
#MASTER# REMARKS: Actionfile tracker ID: 2838501: 2009-08-16
|
|
||||||
# URL = http://new.meteo.pl/advajax.js
|
|
||||||
.meteo.pl/advajax\.js
|
|
||||||
# URL = http://www.adressa.no/
|
|
||||||
# URL = http://adressa.no/
|
|
||||||
adressa.no/
|
|
||||||
# URL = http://www.adresseavisen.no/
|
|
||||||
# URL = http://adresseavisen.no/
|
|
||||||
adresseavisen.no/
|
|
||||||
# URL = http://apps.facebook.com/onthefarm/track.php?creative=&cat=friendvisit&subcat=weeds&key=a789a971dc687bee4c20c044834fabdd&next=index.php%3Fref%3Dnotif%26visitId%3D898835505
|
|
||||||
.facebook.com/.*/track.php
|
|
||||||
# URL = http://www.ifdb.tads.org/
|
|
||||||
# URL = http://www.tads.org/
|
|
||||||
.tads.org/
|
|
||||||
# URL = http://adtoma.com/
|
|
||||||
adtoma.com/
|
|
||||||
#MASTER# REMARKS: Actionsfile feedback 2859872 2009-09-16 09:58
|
|
||||||
# URL = http://adactio.com/
|
|
||||||
adactio.com/
|
|
||||||
# URL = http://www.peereboom.us/adsuck/
|
|
||||||
www.peereboom.us/adsuck/
|
|
||||||
# URL = http://www.svd.se/template/ver1-0/css/ads.css?v=194
|
|
||||||
.svd.se/.*\.css($|\?)
|
|
||||||
#MASTER# REMARKS: [privoxy-users] Privoxy blocking Ebay item pictures Jan 31, 2010
|
|
||||||
#MASTER# REMARKS: Ebay enlarge picture function doesn't work.
|
|
||||||
# URL = http://include.ebaystatic.com/v4js/en_GB/e637i/SYS-LIGER_Omniture_e637i10177164_5_en_GB.js
|
|
||||||
include.ebaystatic.com/.*omniture.*\.js
|
|
||||||
#MASTER# REMARKS: Allow Yahoo news and mail javascipt pages
|
|
||||||
# URL = http://l.yimg.com/d/combo?news/p/common/generic/news/p/common/generic/popular-searches-min-12622.js&news/p/common/generic/ads-min-11050.js&news/p/common/generic/foundation/popup-min-12622.js
|
|
||||||
.yimg.com/d/combo\?
|
|
||||||
#MASTER# REMARKS: Page formatting problems when .css files are blocked
|
|
||||||
# URL = http://www.networkworld.com/includes/styles/adstyles.css
|
|
||||||
# URL = http://www.sj.se/common/css/pop.css
|
|
||||||
# URL = http://l.yimg.com/d/combo?news/p/common/generic/ads-min-24248.css&news/p/common/generic/widgets-min-10270.css
|
|
||||||
# URL = http://news.zdnet.com/css/z/ads/hs.css
|
|
||||||
/.*\.css$
|
|
||||||
#MASTER# REMARKS:Actionsfile feedback item #2974204 2010-03-21
|
|
||||||
# URL = http://adesklets.sourceforge.net/
|
|
||||||
adesklets.sourceforge.net/
|
|
||||||
#MASTER# REMARKS: Mostly-french political blog
|
|
||||||
# URL = http://adassier.wordpress.com/
|
|
||||||
adassier.wordpress.com/
|
|
||||||
# URL = http://adassier.files.wordpress.com/2010/05/road-to-economic-recovery2.jpg?w=630&h=451
|
|
||||||
adassier.files.wordpress.com
|
|
||||||
# URL = http://adainitiative.org/about-us/
|
|
||||||
adainitiative.org/
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
@ -1831,7 +1641,17 @@ images.apple.com
|
||||||
#MASTER# REMARKS: Actions Tracker 1293057 09/02/06
|
#MASTER# REMARKS: Actions Tracker 1293057 09/02/06
|
||||||
.update.microsoft.com
|
.update.microsoft.com
|
||||||
#MASTER# REMARKS: Various reports 09/16/06. This site also requires pop-ups.
|
#MASTER# REMARKS: Various reports 09/16/06. This site also requires pop-ups.
|
||||||
mail.google.*
|
mail.google.
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Semi-fragile, allow for blocks.
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
{ -crunch-all-cookies -filter -fast-redirects -hide-referer -prevent-compression }
|
||||||
|
#MASTER# REMARKS: Problem URL: adserver.yahoo.com 10/01/06
|
||||||
|
#MASTER# REMARKS: This is much too broad for my taste. It forces me to add
|
||||||
|
#MASTER# REMARKS: a special yahoo section in my user.action file, just to
|
||||||
|
#MASTER# REMARKS: confirm my defaults in default.action. fk 2007-01-19
|
||||||
|
.yahoo.com
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Shopping and banking sites - allow cookies and pop-ups
|
# Shopping and banking sites - allow cookies and pop-ups
|
||||||
|
@ -1844,7 +1664,7 @@ mail.google.*
|
||||||
.dabs.com
|
.dabs.com
|
||||||
.overclockers.co.uk
|
.overclockers.co.uk
|
||||||
.db24.de
|
.db24.de
|
||||||
.ebay.*
|
.ebay.
|
||||||
.mobile.de
|
.mobile.de
|
||||||
www.fondationlejeu.com
|
www.fondationlejeu.com
|
||||||
www.techtv.com
|
www.techtv.com
|
||||||
|
@ -1893,21 +1713,21 @@ i.cnn.net/cnn/.*/clickability/button
|
||||||
# Sticky Actions = -fast-redirects
|
# Sticky Actions = -fast-redirects
|
||||||
www.ukc.ac.uk/cgi-bin/wac\.cgi\?
|
www.ukc.ac.uk/cgi-bin/wac\.cgi\?
|
||||||
#MASTER# PROBLEM-URL: http://www.google.com/search?q=foo
|
#MASTER# PROBLEM-URL: http://www.google.com/search?q=foo
|
||||||
# URL = http://www.google.com/search?q=foo
|
.google.
|
||||||
.google.*
|
|
||||||
#MASTER# PROBLEM-URL: http://de.altavista.com/q?pg=q&q=foo&kl=XX&search.x=28&search.y=8&what=web
|
#MASTER# PROBLEM-URL: http://de.altavista.com/q?pg=q&q=foo&kl=XX&search.x=28&search.y=8&what=web
|
||||||
.altavista.com/(.*(like|url|link):|trans.*urltext=)http
|
.altavista.com/(.*(like|url|link):|trans.*urltext=)http
|
||||||
#MASTER# PROBLEM-URL: http://www.speedfind.de/cgi-bin/search?q=foo&t=STANDARD
|
#MASTER# PROBLEM-URL: http://www.speedfind.de/cgi-bin/search?q=foo&t=STANDARD
|
||||||
.speedfind.de
|
.speedfind.de
|
||||||
#MASTER# PROBLEM-URL: http://www.nytimes.com/
|
#MASTER# PROBLEM-URL: http://www.nytimes.com/
|
||||||
.nytimes.com
|
.nytimes.com
|
||||||
#MASTER# REMARKS: Disable fast-redirects for all of yahoo.com/.
|
#MASTER# REMARKS: Yahoo logout URL after first redirect. fk 2007-01-19
|
||||||
#MASTER# REMARKS: Apparently we can't keep up with maintaining more precise exceptions.
|
#MASTER# REMARKS: Logout fails if we fast-redirect to the URL after "done=".
|
||||||
# URL = http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
|
|
||||||
#MASTER# REMARKS: Reported in support request #1635354.
|
#MASTER# REMARKS: Reported in support request #1635354.
|
||||||
# URL = http://us.rd.yahoo.com/reg/login1/lisu/login/uk/ym/*http://edit.europe.yahoo.com/c onfig/login?.tries=1&.src=ym&.md5=&.hash=&.js=1&.last=&...kP=Y&.done=http://mail .yahoo.com&.pd=ym_ver=0&c=&login=XXX&passwd=XXX&.persistent =&.hash=1&.md5=1.yahoo.com/
|
# URL = http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
|
||||||
|
.yahoo.com/.*done=http
|
||||||
#MASTER# REMARKS: Reported in support request #1802365.
|
#MASTER# REMARKS: Reported in support request #1802365.
|
||||||
.yahoo.com/
|
# URL = http://us.rd.yahoo.com/reg/login1/lisu/login/uk/ym/*http://edit.europe.yahoo.com/c onfig/login?.tries=1&.src=ym&.md5=&.hash=&.js=1&.last=&...kP=Y&.done=http://mail .yahoo.com&.pd=ym_ver=0&c=&login=XXX&passwd=XXX&.persistent =&.hash=1&.md5=1
|
||||||
|
.rd.yahoo.com/reg/login1/
|
||||||
# URL = http://validator.w3.org/check
|
# URL = http://validator.w3.org/check
|
||||||
.w3.org
|
.w3.org
|
||||||
#MASTER# PROBLEM-URL: http://www.ask.com/
|
#MASTER# PROBLEM-URL: http://www.ask.com/
|
||||||
|
@ -1974,23 +1794,6 @@ view.samurajdata.se/ps\.php\?url=
|
||||||
.landsend.de/
|
.landsend.de/
|
||||||
# URL = http://www.youtube.com/swf/l.swf?swf=http%3A//s.ytimg.com/yt/swf/cps-vfl68942.swf&video_id=2cpd6rHIfyA&rel=1&showsearch=1&eurl=&iurl=http%3A//i3.ytimg.com/vi/2cpd6rHIfyA/hqdefault.jpg&sk=5E3I2RCcOLknk1qyI_JgVVnb8FKwgpHzC&use_get_video_info=1&load_modules=1&fs=1&hl=en
|
# URL = http://www.youtube.com/swf/l.swf?swf=http%3A//s.ytimg.com/yt/swf/cps-vfl68942.swf&video_id=2cpd6rHIfyA&rel=1&showsearch=1&eurl=&iurl=http%3A//i3.ytimg.com/vi/2cpd6rHIfyA/hqdefault.jpg&sk=5E3I2RCcOLknk1qyI_JgVVnb8FKwgpHzC&use_get_video_info=1&load_modules=1&fs=1&hl=en
|
||||||
.youtube.com/swf/.*swf=
|
.youtube.com/swf/.*swf=
|
||||||
# URL = http://redbot.org/?uri=http%3A//apache.org/
|
|
||||||
.redbot.org/
|
|
||||||
# URL = http://webcache.googleusercontent.com/custom?hl=en&domains=library.gnome.org&sitesearch=library.gnome.org&q=cache:8yGDJ1YpefcJ:http://library.gnome.org/devel//gtk/2.20/GtkLabel.html+gtk_label_set_text+escape&ct=clnk
|
|
||||||
webcache.googleusercontent.com/
|
|
||||||
# URL = http://webcache.googleusercontent.com/search?q=cache:kZYcDFibjHcJ:https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information+inurl:https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information&hl=en&strip=1
|
|
||||||
.googleusercontent.com/.*=cache:
|
|
||||||
|
|
||||||
{+redirect{s@.*url=@http://@} -block}
|
|
||||||
# Sticky Actions = +redirect -block
|
|
||||||
# URL = http://go.eniro.dk/lg/ni/http:/eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
|
|
||||||
# URL = http://eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
|
|
||||||
# Redirected URL = http://go.eniro.dk/lg/ni/http:/eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
|
|
||||||
# Redirect Destination = http://www.bt.dk
|
|
||||||
# Redirected URL = http://eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
|
|
||||||
# Redirect Destination = http://www.bt.dk
|
|
||||||
go.eniro.dk/.*EASLink=http://.*url=(?!<=http:)
|
|
||||||
.emediate.eu/.*EASLink=http://.*url=(?!<=http:)
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# No filtering for sourcecode or other automatically parsed content
|
# No filtering for sourcecode or other automatically parsed content
|
||||||
|
@ -2135,10 +1938,6 @@ javabog.dk/ijk/
|
||||||
.fsfe.org/
|
.fsfe.org/
|
||||||
# URL = http://www.couchsurfing.com/mapsurf.html
|
# URL = http://www.couchsurfing.com/mapsurf.html
|
||||||
.couchsurfing.com/
|
.couchsurfing.com/
|
||||||
# URL = http://www.couchsurfing.org/mapsurf.html
|
|
||||||
.couchsurfing.org/
|
|
||||||
# URL = http://www.thinkgeek.com/tshirts-apparel/unisex/generic/
|
|
||||||
.thinkgeek.com/
|
|
||||||
|
|
||||||
{-filter{banners-by-link}}
|
{-filter{banners-by-link}}
|
||||||
# Sticky Actions = -filter{banners-by-link}
|
# Sticky Actions = -filter{banners-by-link}
|
||||||
|
@ -2153,6 +1952,9 @@ javabog.dk/ijk/
|
||||||
#MASTER# REMARKS: This section NOT checked 10/18/06 HB
|
#MASTER# REMARKS: This section NOT checked 10/18/06 HB
|
||||||
#MASTER# REMARKS: These are movie clips, linked from http://us.imdb.com
|
#MASTER# REMARKS: These are movie clips, linked from http://us.imdb.com
|
||||||
.totaleclips.com
|
.totaleclips.com
|
||||||
|
#MASTER# REMARKS: Link to download page breaks
|
||||||
|
# URL = http://www.mandrakelinux.com/en/ftp.php3
|
||||||
|
.mandrakelinux.com/en/ftp.php3
|
||||||
#MASTER# REMARKS: Actions Tracker 1313157
|
#MASTER# REMARKS: Actions Tracker 1313157
|
||||||
# URL = http://validator.w3.org/check?uri=referer
|
# URL = http://validator.w3.org/check?uri=referer
|
||||||
validator.w3.org/check\?uri=referer
|
validator.w3.org/check\?uri=referer
|
||||||
|
@ -2271,37 +2073,22 @@ blogs.msdn.com
|
||||||
# URL = http://blogs.msdn.com/wga/archive/2006/07/16/667063.aspx
|
# URL = http://blogs.msdn.com/wga/archive/2006/07/16/667063.aspx
|
||||||
blogs.msdn.com
|
blogs.msdn.com
|
||||||
|
|
||||||
{-filter{jumping-windows}}
|
|
||||||
# Sticky Actions = -filter{jumping-windows}
|
|
||||||
# URL = http://www.openstreetmap.org
|
|
||||||
.openstreetmap.org
|
|
||||||
|
|
||||||
{+fast-redirects{check-decoded-url} -block}
|
{+fast-redirects{check-decoded-url} -block}
|
||||||
# Sticky Actions = +fast-redirects{check-decoded-url} -block
|
# Sticky Actions = +fast-redirects{check-decoded-url} -block
|
||||||
#MASTER# REMARKS: Yahoo search results. Added 2007-01-19 fk
|
#MASTER# REMARKS: Yahoo search results. Added 2007-01-19 fk
|
||||||
#MASTER# REDIRECT-REFERRER: http://search.yahoo.com/search?p=privoxy
|
#MASTER# REDIRECT-REFERRER: http://search.yahoo.com/search?p=privoxy
|
||||||
# URL = http://rds.yahoo.com/_ylt=A0geuryczbBF._YAEmxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11b3qg40n/EXP=1169301276/**http%3a//www.privoxy.org/
|
# URL = http://rds.yahoo.com/_ylt=A0geuryczbBF._YAEmxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11b3qg40n/EXP=1169301276/**http%3a//www.privoxy.org/
|
||||||
rds.yahoo.com/
|
rds.yahoo.com/
|
||||||
# Redirected URL = http://rds.yahoo.com/_ylt=A0geuryczbBF._YAEmxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11b3qg40n/EXP=1169301276/**http%3a//www.privoxy.org/
|
#MASTER# COMMENTS: Verified 2007-01-19 fk
|
||||||
# Redirect Destination = http://www.privoxy.org/
|
|
||||||
#MASTER# REDIRECT-REFERRER: http://www.gamefaqs.com/computer/doswin/game/914819.html
|
#MASTER# REDIRECT-REFERRER: http://www.gamefaqs.com/computer/doswin/game/914819.html
|
||||||
# URL = http://dw.com.com/redir?asid=0&astid=8&siteid=19&edid=107&destCat=33862&destURL=http%3A%2F%2Fdb.gamefaqs.com%2Fcomputer%2Fdoswin%2Ffile%2Fvampire_tmb_b.txt
|
# URL = http://dw.com.com/redir?asid=0&astid=8&siteid=19&edid=107&destCat=33862&destURL=http%3A%2F%2Fdb.gamefaqs.com%2Fcomputer%2Fdoswin%2Ffile%2Fvampire_tmb_b.txt
|
||||||
dw.com.com/redir\?
|
dw.com.com/
|
||||||
# Redirected URL = http://dw.com.com/redir?asid=0&astid=8&siteid=19&edid=107&destCat=33862&destURL=http%3A%2F%2Fdb.gamefaqs.com%2Fcomputer%2Fdoswin%2Ffile%2Fvampire_tmb_b.txt
|
|
||||||
# Redirect Destination = http://db.gamefaqs.com/computer/doswin/file/vampire_tmb_b.txt
|
|
||||||
#MASTER# REMARKS: Action tracker 1593393. Added 2007-01-20.
|
#MASTER# REMARKS: Action tracker 1593393. Added 2007-01-20.
|
||||||
# URL = http://wzus.bloglines.com/r?t=a&d=us&s=bl&c=blen&ti=1&ai=51060&l=dir&o=0&sv=z6f537f5b&ip=971AC44B&u=http%3A%2F%2Fwww.skweezer.net%2Fbloglines%2Fskweeze.aspx%3F%26i%3Dd%26l%3Den%26r%3Dhttp%253A%252F%252Fwww.bloglines.com%252Fmyblogs_display%253Fsub%253D29302699%2526site%253D5382440%26url%3Dhttp%253A%252F%252Fpermalink.gmane.org%252Fgmane.linux.debian.devel.changes.unstable%252F97340
|
# URL = http://wzus.bloglines.com/r?t=a&d=us&s=bl&c=blen&ti=1&ai=51060&l=dir&o=0&sv=z6f537f5b&ip=971AC44B&u=http%3A%2F%2Fwww.skweezer.net%2Fbloglines%2Fskweeze.aspx%3F%26i%3Dd%26l%3Den%26r%3Dhttp%253A%252F%252Fwww.bloglines.com%252Fmyblogs_display%253Fsub%253D29302699%2526site%253D5382440%26url%3Dhttp%253A%252F%252Fpermalink.gmane.org%252Fgmane.linux.debian.devel.changes.unstable%252F97340
|
||||||
# Redirected URL = http://wzus.bloglines.com/r?t=a&d=us&s=bl&c=blen&ti=1&ai=51060&l=dir&o=0&sv=z6f537f5b&ip=971AC44B&u=http%3A%2F%2Fwww.skweezer.net%2Fbloglines%2Fskweeze.aspx%3F%26i%3Dd%26l%3Den%26r%3Dhttp%253A%252F%252Fwww.bloglines.com%252Fmyblogs_display%253Fsub%253D29302699%2526site%253D5382440%26url%3Dhttp%253A%252F%252Fpermalink.gmane.org%252Fgmane.linux.debian.devel.changes.unstable%252F97340
|
|
||||||
# Redirect Destination = http://www.skweezer.net/bloglines/skweeze.aspx?&i=d&l=en&r=http%3A%2F%2Fwww.bloglines.com%2Fmyblogs_display%3Fsub%3D29302699%26site%3D5382440&url=http%3A%2F%2Fpermalink.gmane.org%2Fgmane.linux.debian.devel.changes.unstable%2F97340
|
|
||||||
.bloglines.com/r\?
|
.bloglines.com/r\?
|
||||||
www.skweezer.net/bloglines
|
www.skweezer.net/bloglines
|
||||||
# URL = http://media.fastclick.net/w/get.media?sid=4681&m=5&tp=6&url=http%3A//www.sciam.com/article.cfm%3FchanID%3Dsa003%26articleID%3DC7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB%26ref%3Drss
|
# URL = http://media.fastclick.net/w/get.media?sid=4681&m=5&tp=6&url=http%3A//www.sciam.com/article.cfm%3FchanID%3Dsa003%26articleID%3DC7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB%26ref%3Drss
|
||||||
# Redirected URL = http://media.fastclick.net/w/get.media?sid=4681&m=5&tp=6&url=http%3A//www.sciam.com/article.cfm%3FchanID%3Dsa003%26articleID%3DC7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB%26ref%3Drss
|
|
||||||
# Redirect Destination = http://www.sciam.com/article.cfm?chanID=sa003&articleID=C7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB&ref=rss
|
|
||||||
.fastclick.net/w/get\.media\?
|
.fastclick.net/w/get\.media\?
|
||||||
# Redirected URL = http://www.awin1.com/cread.php?awinmid=2891&awinaffid=43305&clickref=&p=http://www.groupon.co.uk/
|
|
||||||
# Redirect Destination = http://www.groupon.co.uk/
|
|
||||||
.awin1.com/.*=http://
|
|
||||||
|
|
||||||
{+block{Looks like an anti-leech trigger URL.}}
|
{+block{Looks like an anti-leech trigger URL.}}
|
||||||
#MASTER# COMMENTS: This section not checked 10/17/06 HB. Still out there?
|
#MASTER# COMMENTS: This section not checked 10/17/06 HB. Still out there?
|
||||||
|
@ -2309,6 +2096,9 @@ www.skweezer.net/bloglines
|
||||||
#MASTER# REMARKS: Lame attempt at banning ad-blockers. Used by other websites as well.
|
#MASTER# REMARKS: Lame attempt at banning ad-blockers. Used by other websites as well.
|
||||||
/antitheft\.php
|
/antitheft\.php
|
||||||
|
|
||||||
|
{ +prevent-compression }
|
||||||
|
.compusa.com/
|
||||||
|
|
||||||
{+filter{tiny-textforms}}
|
{+filter{tiny-textforms}}
|
||||||
.sourceforge.net/tracker
|
.sourceforge.net/tracker
|
||||||
|
|
||||||
|
@ -2326,8 +2116,6 @@ www.skweezer.net/bloglines
|
||||||
{+redirect{http://config.privoxy.org/}}
|
{+redirect{http://config.privoxy.org/}}
|
||||||
# Sticky Actions = +redirect{http://config.privoxy.org/}
|
# Sticky Actions = +redirect{http://config.privoxy.org/}
|
||||||
# URL = http://www.privoxy.org/config
|
# URL = http://www.privoxy.org/config
|
||||||
# Redirected URL = http://www.privoxy.org/config
|
|
||||||
# Redirect Destination = http://config.privoxy.org/
|
|
||||||
.privoxy.org/config
|
.privoxy.org/config
|
||||||
|
|
||||||
#MASTER# REMARKS: Privoxy's "unsafe" CGI pages check the referrer
|
#MASTER# REMARKS: Privoxy's "unsafe" CGI pages check the referrer
|
||||||
|
@ -2349,28 +2137,8 @@ config.privoxy.org/
|
||||||
# XXX: Privoxy-Regression-Test currently doesn't allow backslashes.
|
# XXX: Privoxy-Regression-Test currently doesn't allow backslashes.
|
||||||
# Sticky Actions = -fast-redirects +redirect
|
# Sticky Actions = -fast-redirects +redirect
|
||||||
# URL = http://us.ard.yahoo.com/SIG=AAAAAAAAA/M=NNNNNN.NNNNNNN.NNNNNNN.NNNNNNN/D=mail/S=NNNNNNNNN:HEADR/Y=YAHOO/EXP=NNNNNNNNNN/A=NNNNNNN/R=N/SIG=AAAAAAAAA/*http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
|
# URL = http://us.ard.yahoo.com/SIG=AAAAAAAAA/M=NNNNNN.NNNNNNN.NNNNNNN.NNNNNNN/D=mail/S=NNNNNNNNN:HEADR/Y=YAHOO/EXP=NNNNNNNNNN/A=NNNNNNN/R=N/SIG=AAAAAAAAA/*http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
|
||||||
# Redirected URL = http://us.ard.yahoo.com/SIG=AAAAAAAAA/M=NNNNNN.NNNNNNN.NNNNNNN.NNNNNNN/D=mail/S=NNNNNNNNN:HEADR/Y=YAHOO/EXP=NNNNNNNNNN/A=NNNNNNN/R=N/SIG=AAAAAAAAA/*http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
|
|
||||||
# Redirect Destination = http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
|
|
||||||
.yahoo./.*http://login.yahoo.com/config/login.*http://
|
.yahoo./.*http://login.yahoo.com/config/login.*http://
|
||||||
|
|
||||||
#MASTER# REMARKS: The next two sections are to get flickr's Ajax interface working
|
|
||||||
#MASTER# REMARKS: with default pre-settings. For more aggressive defaults they additionally
|
|
||||||
#MASTER# REMARKS: need -crunch-incoming-cookies and -crunch-outgoing-cookies.
|
|
||||||
#MASTER# REMARKS: They work with +session-cookies-only, though.
|
|
||||||
{-block -filter}
|
|
||||||
#MASTER# PROBLEM-URL: http://www.flickr.com/
|
|
||||||
# Sticky Actions = -block -filter
|
|
||||||
# URL = http://l.yimg.com/g/combo/1?event-custom/event-custom-min.js&event/event-min.js&j/.H-.K.A.vNKEa&j/.CP-.U-.DE.A.vKEJz&j/.J_.BR_.CA.A.vKYkg&j/.J_.DB.A.vPpBT&j/popup-login.A.vR53Z&dump/dump-min.js&datatype/datatype-xml-min.js&substitute/substitute-min.js&json/json-min.js&queue-promote/queue-promote-min.js&io/io-min.js&j/.J_.DS.A.vQa28&j/.FW-.FX-.GH.A.vP3XB&j/grease.A.vRktP&j/.CC.A.vNiA6&j/.C-.BL.A.vPPj2&j/.CE-.K.A.vNy32&attribute/attribute-base-min.js&base/base-min.js&anim/anim-min.js&cookie/cookie-min.js&j/.B-.C-.F.A.vQ7SZ&j/urls.A.vQtXp&j/.B-.BY.A.vQCXP&j/.H-.BY.A.vQXXx&j/.DS-value-conversions.A.vQpRt&j/.G-.BD.A.vNHSH&event/event-synthetic-min.js&j/.G-.BO.A.vNwR4&j/.CV-.CH.A.vPFSZ&j/.X-.W-.C-.F.A.vKPQa&j/.X-.W-.D.A.vQXXx&j/.Q-.BX-.K.A.vR1kt&j/.DL.A.vLPjD&j/.CF.A.vNC24&j/.CX-.CY.A.vP8ND&event-simulate/event-simulate-min.js&node/node-event-simulate-min.js&j/.B-.T-.CI-.C-.F.A.vPJPF&j/.CM/.BA_2.5.1-.D.A.vPzui&j/bo-.S-.C-.F.A.vNwWe&j/bo-.S-.D.A.vR6Hx&j/.BZ-.D.A.vNstB&j/.B-.L-.C-.F.A.vNxPX&j/.B-.L-.BH.A.vMdVB&j/.CN-.DD.A.vLjJ2&j/.B-.O-.C-.F.A.vPpcK&j/.BM.A.vKPmz&j/.B-.O.A.vQyHg&j/.B-.H-.BB-.C-.F.A.vQvrB&j/.CW-.CU.A.vQ7Rg&j/.Y-.C-.F.A.vNqGa&j/.Y.A.vLKiT&j/.B-.M-.C-.F.A.vQxDc&j/.U-.CG.A.vQ5Tt&j/.B-.M.A.vQXXx&j/.B-.Q-.BQ.A.vQvTt&j/.B-.N-.C-.F.A.vQaRp&j/.CL.A.vN4N6&j/.B-.CL-.BW.A.vPwkx&j/.DR-.DG.A.vMLJr&j/.B-.BE-.C-.F.A.vPHP4&j/.B-.BE-.D.A.vQLQH&j/.BV.A.vm3Uz&j/.Z-.DK-.D.A.vLQEe&j/.Z-.DJ-.BJ.A.vLQEe&j/.B-.I-.C-.F.A.vPKTK&stylesheet/stylesheet-min.js&j/.B-.I.A.vQvDF&j/.CM-.DO.A.vPboD&j/.B-.D.A.vRbv8&j/.B-.H-.BB.A.vQuhn&j/.B-.N.A.vR6Cn&j/.B-.L-.CZ.A.vQmzP&j/.B-.T-.CI.A.vQXXx&j/.B-.I-.CQ-.BK-.C-.F.A.vNwZF&j/.B-.I-.CQ-.BK.A.vLWQR&j/.B-.R-.C-.F.A.vPfwi&j/.B-.R.A.vRhND&j/.DN-.BB-.D-.C-.F.A.vQXZg&j/.DN-.BB-.D.A.vRcXB&j/.BF_.D-.C-.F.A.vPGYM&j/.BF_.D.A.vQxJn&plugin/plugin-min.js&cache/cache-min.js&j/.CB-.C-.F.A.vNwWe&j/.CB-.D.A.vQS6T
|
|
||||||
.yimg.com/g/combo/1\?event-custom/
|
|
||||||
|
|
||||||
{-block -filter{content-cookies}}
|
|
||||||
#MASTER# PROBLEM-URL: http://www.flickr.com/
|
|
||||||
{-filter{content-cookies}}
|
|
||||||
# Sticky Actions = -block
|
|
||||||
# URL = http://www.flickr.com/
|
|
||||||
.flickr.com/
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Sections that modify the action settings based on tags.
|
# Sections that modify the action settings based on tags.
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
#
|
#
|
||||||
# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
|
# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
|
||||||
#
|
#
|
||||||
# $Id: default.filter,v 1.83 2011/10/16 14:01:05 fabiankeil Exp $
|
# $Id: default.filter,v 1.71 2009/03/01 18:33:17 ler762 Exp $
|
||||||
#
|
#
|
||||||
# Purpose : Rules to process the content of web pages
|
# Purpose : Rules to process the content of web pages
|
||||||
#
|
#
|
||||||
# Copyright : Written by and Copyright (C) 2001-2010 the
|
# Copyright : Written by and Copyright (C) 2001-2009 the
|
||||||
# Privoxy team. http://www.privoxy.org/
|
# Privoxy team. http://www.privoxy.org/
|
||||||
#
|
#
|
||||||
# We value your feedback. However, to provide you with the best support,
|
# We value your feedback. However, to provide you with the best support,
|
||||||
|
@ -128,15 +128,15 @@ s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
#
|
#
|
||||||
# js-events: Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
|
# js-events: Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
|
||||||
#
|
#
|
||||||
#################################################################################
|
#################################################################################
|
||||||
FILTER: js-events Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
|
FILTER: js-events Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
|
||||||
|
|
||||||
s/(on|event\.)((mouse(over|out|down|up|move))|(un)?load|contextmenu|selectstart)/never/ig
|
s/(on|event\.)((mouse(over|out|down|up|move))|(un)?load|contextmenu|selectstart)/never/ig
|
||||||
# Not events, but abused on the same type of sites:
|
# Not events, but abused on the same type of sites:
|
||||||
s/(alert|confirm)\s*\(/concat(/ig
|
s/(alert|confirm)\s*\(/concat(/ig
|
||||||
s/set(timeout|interval)\(/concat(/ig
|
s/settimeout\(/concat(/ig
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
#
|
#
|
||||||
|
@ -177,15 +177,15 @@ s|<meta\s+http-equiv=['"]?set-cookie.*>|<!-- ZappedCookie -->|igU
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
#
|
#
|
||||||
# refresh-tags: Kill automatic refresh tags if refresh time is larger than 9 seconds.
|
# refresh-tags: Kill automatic refresh tags (for dial-on-demand setups).
|
||||||
#
|
#
|
||||||
#################################################################################
|
#################################################################################
|
||||||
FILTER: refresh-tags Kill automatic refresh tags if refresh time is larger than 9 seconds.
|
FILTER: refresh-tags Kill automatic refresh tags (for dial-on-demand setups).
|
||||||
|
|
||||||
# Note: Only deactivates refreshes with more than 9 seconds delay to
|
# Note: Only deactivates refreshes with more than 9 seconds delay to
|
||||||
# preserve monster-stupid but common redirections via meta tags.
|
# preserve monster-stupid but common redirections via meta tags.
|
||||||
#
|
#
|
||||||
s@<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;(?:\s*url\s*=\s*)?([^>\2]*))?\2@<link rev="x-refresh" href="$4"@ig
|
s/<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;\s*url\s*=\s*([^>\2]*))?\2/<link rev="x-refresh" href="$4"/iU
|
||||||
|
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
@ -422,7 +422,7 @@ FILTER: fun Text replacements for subversive browsing fun!
|
||||||
|
|
||||||
# SCNR
|
# SCNR
|
||||||
#
|
#
|
||||||
s/microsoft(?!\.[^\s])/MicroSuck/ig
|
s/microsoft(?!.[^\s])/MicroSuck/ig
|
||||||
|
|
||||||
# Buzzword Bingo (example for extended regex syntax)
|
# Buzzword Bingo (example for extended regex syntax)
|
||||||
#
|
#
|
||||||
|
@ -580,9 +580,7 @@ s@</head>@<style type="text/css">\n\
|
||||||
\#fbc, \#fbl, \#ra, .rhh {visibility: hidden !important;}\n\
|
\#fbc, \#fbl, \#ra, .rhh {visibility: hidden !important;}\n\
|
||||||
\#tpa1,\#tpa2,\#tpa3,\#tpa4,\#tpa5,\#tpa5, \#spl, .ch, \#ads,\
|
\#tpa1,\#tpa2,\#tpa3,\#tpa4,\#tpa5,\#tpa5, \#spl, .ch, \#ads,\
|
||||||
\#toolbar, \#google_ads_frame, \#mbEnd {display: none !important;}\n\
|
\#toolbar, \#google_ads_frame, \#mbEnd {display: none !important;}\n\
|
||||||
.main_body, .j, \#res, .med, .hd, .g, .s\n\
|
.main_body, .j {width: 100%}\n</style>\n$0@
|
||||||
{width: 99%; max-width: 100%; margin-left: 0; margin-right: 0;}\n\
|
|
||||||
</style>\n$0@
|
|
||||||
s@<div style=\"padding-top:11px;min-width:500px\">@<div id="main_body">@
|
s@<div style=\"padding-top:11px;min-width:500px\">@<div id="main_body">@
|
||||||
s@(<table cellspacing=0 cellpadding=0 width=25% align=right bgcolor=\#ffffff border=0\
|
s@(<table cellspacing=0 cellpadding=0 width=25% align=right bgcolor=\#ffffff border=0\
|
||||||
|</font></td></tr></tbody></table><table align=\"right\" bgcolor=\"\#ffffff\"\
|
|</font></td></tr></tbody></table><table align=\"right\" bgcolor=\"\#ffffff\"\
|
||||||
|
@ -602,12 +600,9 @@ s@</head>@\n<style type="text/css">\n\
|
||||||
/* Style sheet inserted by Privoxy's yahoo filter. */\n\
|
/* Style sheet inserted by Privoxy's yahoo filter. */\n\
|
||||||
\#symadbn, \#ymadbn, .yschbox, .yschhd, .bbox, \#yschsec, \#sec,\
|
\#symadbn, \#ymadbn, .yschbox, .yschhd, .bbox, \#yschsec, \#sec,\
|
||||||
\#yschanswr, .yschftad, .yschspn, .yschspns, \#ygrp-sponsored-links,\
|
\#yschanswr, .yschftad, .yschspn, .yschspns, \#ygrp-sponsored-links,\
|
||||||
\#nwad, \#MWA2, \#MSCM, \#yregad, \#sponsored-links,\
|
\#nwad, \#MWA2, \#MSCM, \#yregad, \
|
||||||
\#ks-ypn-ads, .ad, \#east, \#ygrp-vital, .ads {display: none !important;}\n\
|
\#ks-ypn-ads, .ad, \#east, \#ygrp-vital {display: none !important;}\n\
|
||||||
\#yschpri, \#yschweb, \#pri, \#web, \#main, .yschttl, .abstr, .res \n\
|
\#yschpri, \#yschweb, \#pri, \#web, \#main {width: 100% !important; max-width: 100% !important;}\n\
|
||||||
{width: 99% !important; max-width: 100% !important;}\n\
|
|
||||||
.yschttl, .res, .res.indent, \#web {padding: 0px; margin: 0px !important;}\n\
|
|
||||||
\#web {padding-left: 0.5em}\n\
|
|
||||||
\#yschqcon, \#yschtg {width: auto !important; /* No useless horizontal scrollbar please */}\n\
|
\#yschqcon, \#yschtg {width: auto !important; /* No useless horizontal scrollbar please */}\n\
|
||||||
\#composebox \#compose_editorArea {width: 70% !important; /* reasonably sized reply textarea please */\n\
|
\#composebox \#compose_editorArea {width: 70% !important; /* reasonably sized reply textarea please */\n\
|
||||||
</style>\n$0\n@
|
</style>\n$0\n@
|
||||||
|
@ -626,15 +621,12 @@ s@</head>@<style type="text/css">\n\
|
||||||
/* Style sheet inserted by Privoxy's msn filter. */\n\
|
/* Style sheet inserted by Privoxy's msn filter. */\n\
|
||||||
.msn_ads, \#at, \#ar, .mktmsg {display: none !important;}\n\
|
.msn_ads, \#at, \#ar, .mktmsg {display: none !important;}\n\
|
||||||
\#results, .flank, .results_area_flank, .results_area_stroke,\n\
|
\#results, .flank, .results_area_flank, .results_area_stroke,\n\
|
||||||
\#results_area, \#content, .sb_tlst, .sa_cc, .sb_ph, \#sw_main,\n\
|
\#results_area, .SearchSection, .not, .sc_rslth1\n\
|
||||||
.content, \#sw_foot, \#bf, \#sw_content, \#sidebar, \#pag\n\
|
.content, \#sw_foot, \#bf, \#sw_content, \#sidebar, \#pag\n\
|
||||||
{width: 99% !important; min-width: 99% !important;\n\
|
{width: 99% !important; min-width: 99% !important;\n\
|
||||||
max-width: 100% !important; /* width:100% sometimes causes horizontal scrollbars */}\n\
|
max-width: 100% !important; /* width:100% sometimes causes horizontal scrollbars */}\n\
|
||||||
/* Remove "suggestions". They are next to worthless but partly overlap with the search results */\n\
|
/* Remove "suggestions". They are next to worthless but partly overlap with the search results */\n\
|
||||||
.suggestion, \#nys_right, \#nys {clear: both; display:none;}\n\
|
.suggestion, \#nys_right, \#nys {clear: both; display:none;}\n\
|
||||||
\#s_notf_div,\n \
|
|
||||||
/* Overlay ads to enable Facebook 'likes' in search results. */\n\
|
|
||||||
.sn_container {display:none !important;}\n\
|
|
||||||
\#content {padding-right: 0;}\n\
|
\#content {padding-right: 0;}\n\
|
||||||
</style>\n$0@
|
</style>\n$0@
|
||||||
# Are these ids still in use?
|
# Are these ids still in use?
|
||||||
|
@ -767,34 +759,6 @@ CLIENT-HEADER-TAGGER: css-requests Tags detected CSS requests as "CSS-REQUEST".
|
||||||
|
|
||||||
s@^Accept:\s*text/css.*@CSS-REQUEST@i
|
s@^Accept:\s*text/css.*@CSS-REQUEST@i
|
||||||
|
|
||||||
#################################################################################
|
|
||||||
#
|
|
||||||
# range-requests: Tags range requests as "RANGE-REQUEST".
|
|
||||||
#
|
|
||||||
# By default Privoxy removes Range headers for requests to
|
|
||||||
# ressources that will be filtered to make sure the filters
|
|
||||||
# get the whole picture. Otherwise Range requests could be
|
|
||||||
# intentionally used to circumvent filters or, less likely,
|
|
||||||
# filtering a partial response may damage it because it matched
|
|
||||||
# a pattern that the ressource as a whole wouldn't.
|
|
||||||
#
|
|
||||||
# Range requests can be useful and save bandwidth so instead
|
|
||||||
# of removing Range headers for requests to ressources that
|
|
||||||
# will be filtered, you may prefer to simply disable filtering
|
|
||||||
# for those requests.
|
|
||||||
#
|
|
||||||
# That's what this tagger is all about. After enabling it,
|
|
||||||
# you can disable filtering for range requests using the following
|
|
||||||
# action section:
|
|
||||||
#
|
|
||||||
# {-filter -deanimate-gifs}
|
|
||||||
# TAG:^RANGE-REQUEST
|
|
||||||
#
|
|
||||||
#################################################################################
|
|
||||||
CLIENT-HEADER-TAGGER: range-requests Tags range requests as "RANGE-REQUEST".
|
|
||||||
|
|
||||||
s@^Range:.*@RANGE-REQUEST@i
|
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
#
|
#
|
||||||
# client-ip-address: Tags the request with the client's IP address.
|
# client-ip-address: Tags the request with the client's IP address.
|
||||||
|
@ -870,3 +834,456 @@ s@^X-Privoxy-Control:\s*@@i
|
||||||
SERVER-HEADER-FILTER: privoxy-control Removes X-Privoxy-Control headers.
|
SERVER-HEADER-FILTER: privoxy-control Removes X-Privoxy-Control headers.
|
||||||
|
|
||||||
s@^X-Privoxy-Control:.*@@i
|
s@^X-Privoxy-Control:.*@@i
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Revisions :
|
||||||
|
# $Log: default.filter,v $
|
||||||
|
# Revision 1.71 2009/03/01 18:33:17 ler762
|
||||||
|
# couple of changes to the yahoo filter
|
||||||
|
# -get a bigger email message reply textarea
|
||||||
|
# -block a few more ads
|
||||||
|
# -remove the now useless northbanner css change
|
||||||
|
#
|
||||||
|
# Revision 1.70 2009/02/21 13:01:51 fabiankeil
|
||||||
|
# Make blogspot's feed magic slightly more reliable.
|
||||||
|
#
|
||||||
|
# Revision 1.69 2009/02/12 15:40:11 ler762
|
||||||
|
# more yahoo email ad blocking
|
||||||
|
#
|
||||||
|
# Revision 1.68 2008/09/19 13:26:04 fabiankeil
|
||||||
|
# s@tounge@tongue@. Anonymously reported in #1648657.
|
||||||
|
#
|
||||||
|
# Revision 1.67 2008/08/06 17:38:06 fabiankeil
|
||||||
|
# In banners-by-size, make sure white-space around the height
|
||||||
|
# attribute is removed as well and replace two spaces with
|
||||||
|
# "\s" so we don't get fooled by tabs. Fixes #2036125.
|
||||||
|
#
|
||||||
|
# Revision 1.66 2008/08/03 17:27:47 fabiankeil
|
||||||
|
# Teach msn filter to catch a few new ad classes.
|
||||||
|
#
|
||||||
|
# Revision 1.65 2008/07/21 13:43:44 fabiankeil
|
||||||
|
# Fix img-reorder regression introduced with my last commit.
|
||||||
|
# Some tags were terminated too soon, letting the browser render
|
||||||
|
# some of their arguments as text. Oops.
|
||||||
|
#
|
||||||
|
# Revision 1.64 2008/07/12 15:49:09 fabiankeil
|
||||||
|
# - Don't let img-reorder touch width attributes
|
||||||
|
# that aren't followed by either whitespace or '>',
|
||||||
|
# as those usually indicate onclick nonsense.
|
||||||
|
# Problem and solution reported by Glenn Washburn in #2014552.
|
||||||
|
# - While at it, don't use more groups than necessary.
|
||||||
|
#
|
||||||
|
# Revision 1.63 2008/06/27 12:53:41 fabiankeil
|
||||||
|
# Make sure the taggers css-requests and image-requests
|
||||||
|
# only match at the beginning of the header.
|
||||||
|
#
|
||||||
|
# Revision 1.62 2008/06/21 17:02:03 fabiankeil
|
||||||
|
# Fix typo.
|
||||||
|
#
|
||||||
|
# Revision 1.61 2008/05/21 18:44:43 fabiankeil
|
||||||
|
# - Let the content-type tagger ignore headers without value.
|
||||||
|
# - Remove a few unused lines at the end of the file.
|
||||||
|
#
|
||||||
|
# Revision 1.60 2008/04/26 10:36:41 fabiankeil
|
||||||
|
# Let the msn filter hide another class.
|
||||||
|
#
|
||||||
|
# Revision 1.59 2008/04/23 16:18:18 fabiankeil
|
||||||
|
# s@declarded@declared@
|
||||||
|
#
|
||||||
|
# Revision 1.58 2008/02/02 15:27:19 fabiankeil
|
||||||
|
# Yet another yahoo update to get the width limitation removal working again.
|
||||||
|
#
|
||||||
|
# Revision 1.57 2008/01/26 15:45:39 fabiankeil
|
||||||
|
# Don't let the less-download-windows filter mess up
|
||||||
|
# "Content-Type: application/x-shockwave-flash" headers.
|
||||||
|
#
|
||||||
|
# Revision 1.56 2008/01/25 19:12:40 fabiankeil
|
||||||
|
# - Add yet another new yahoo ad id.
|
||||||
|
# - Don't let the first banners-by-link job punish URLs for merely
|
||||||
|
# containing the pattern "/jump/" when it should really look for
|
||||||
|
# "doubleclick\.net/jump/".
|
||||||
|
#
|
||||||
|
# Revision 1.55 2007/12/31 19:53:59 fabiankeil
|
||||||
|
# Let the msn filter remove the width limitation again.
|
||||||
|
#
|
||||||
|
# Revision 1.54 2007/12/31 19:11:31 fabiankeil
|
||||||
|
# - Let the yahoo filter remove the width limitation again.
|
||||||
|
# - Teach the blogspot filter to remove useless feed comment
|
||||||
|
# titles that only contain the beginning of the actual comment.
|
||||||
|
#
|
||||||
|
# Revision 1.53 2007/12/23 15:48:12 fabiankeil
|
||||||
|
# - Lo and behold, the CSS fix for the MSN buttons is no longer necessary.
|
||||||
|
# - Add some new selectors the msn filter should hide.
|
||||||
|
# - Add the two yahoo selectors Lee reported in #1856574.
|
||||||
|
# - Add comments that the width limitation fixes stopped
|
||||||
|
# working for the msn and yahoo filter.
|
||||||
|
#
|
||||||
|
# Revision 1.52 2007/11/27 18:35:48 fabiankeil
|
||||||
|
# Update CSS for the yahoo filter.
|
||||||
|
#
|
||||||
|
# Revision 1.51 2007/11/04 16:15:11 fabiankeil
|
||||||
|
# - Add client-header taggers: client-ip-address,
|
||||||
|
# http-method, allow-post, complete-url and user-agent.
|
||||||
|
# - Add server-header tagger: content-type.
|
||||||
|
#
|
||||||
|
# Revision 1.50 2007/11/03 15:05:30 fabiankeil
|
||||||
|
# Consistently use an empty line between the description and the PCRS code
|
||||||
|
# and end descriptions with dots. Patch submitted by Simon Ruderich.
|
||||||
|
#
|
||||||
|
# Revision 1.49 2007/11/03 14:29:41 fabiankeil
|
||||||
|
# Spelling fixes mostly submitted by Simon Ruderich.
|
||||||
|
#
|
||||||
|
# Revision 1.48 2007/10/17 18:11:32 fabiankeil
|
||||||
|
# Add privoxy-control header filters and taggers.
|
||||||
|
#
|
||||||
|
# Revision 1.47 2007/10/06 15:45:25 fabiankeil
|
||||||
|
# Let msn hide sponsored links in #at divs.
|
||||||
|
#
|
||||||
|
# Revision 1.46 2007/10/06 09:54:13 fabiankeil
|
||||||
|
# - Let msn hide sponsored links in #ar divs.
|
||||||
|
# - Teach banners-by-link not to block the graphs for sf's tracker statistics.
|
||||||
|
#
|
||||||
|
# Revision 1.45 2007/08/11 16:54:12 fabiankeil
|
||||||
|
# - Complete the changes from r1.42.
|
||||||
|
# - Make crude-parental less sensitive to the amount of white-space,
|
||||||
|
# add the note that it doesn't work too well again and replace the
|
||||||
|
# DMOZ link with a less confusing explanation.
|
||||||
|
#
|
||||||
|
# Revision 1.44 2007/07/18 11:06:56 hal9
|
||||||
|
# Replace notarget with '' in all popups filter to keep from breaking xhmtl per
|
||||||
|
# report from Siegfried Gipp.
|
||||||
|
#
|
||||||
|
# Revision 1.43 2007/06/01 14:17:04 fabiankeil
|
||||||
|
# Mention possible delimiter conflicts with variables in dynamic pcrs commands.
|
||||||
|
#
|
||||||
|
# Revision 1.42 2007/05/17 15:55:36 fabiankeil
|
||||||
|
# Undo an improperly tested last-minute change
|
||||||
|
# and turn "text-requests" back into "css-requests".
|
||||||
|
#
|
||||||
|
# Revision 1.41 2007/05/17 15:45:41 fabiankeil
|
||||||
|
# - Mention new filter types and the 'D' option.
|
||||||
|
# - Header filters are now case-insensitive and accept a
|
||||||
|
# varying amount of whitespace after the colon.
|
||||||
|
# - Add another selector for yahoo ads.
|
||||||
|
# - New server-header filter: less-download-windows
|
||||||
|
# - New client-header taggers: text-requests and image-requests.
|
||||||
|
#
|
||||||
|
# Revision 1.40 2007/03/20 15:40:00 fabiankeil
|
||||||
|
# Adjust to new world order with dedicated header-filter actions.
|
||||||
|
#
|
||||||
|
# Revision 1.39 2007/02/21 14:10:23 fabiankeil
|
||||||
|
# - Fix a js-annoyances pcrs command that broke
|
||||||
|
# evaluated code. (BR #1124071, thanks to Bor Gergely)
|
||||||
|
# - Have unsolicited-popups and all-popups catch the
|
||||||
|
# wheather.com popup reported in in AF #1640173.
|
||||||
|
#
|
||||||
|
# Revision 1.38 2007/02/19 11:22:48 hal9
|
||||||
|
# Adding back the orginal filter content to offset problems found by Fabian.
|
||||||
|
#
|
||||||
|
# Revision 1.37 2007/02/17 13:29:44 hal9
|
||||||
|
# Updates to the crude parental filter per Feature Requests item #1648657.
|
||||||
|
#
|
||||||
|
# Revision 1.36 2007/02/05 16:47:31 fabiankeil
|
||||||
|
# - Let banners-by-link look for "advert".
|
||||||
|
# - Fix XML systax problems with banners-by-link
|
||||||
|
# and banners-by-size (AF#1651570).
|
||||||
|
#
|
||||||
|
# Revision 1.35 2006/12/21 12:28:12 fabiankeil
|
||||||
|
# Escaping special characters in filter descriptions is no
|
||||||
|
# longer necessary, it's done by Privoxy now.
|
||||||
|
#
|
||||||
|
# Revision 1.34 2006/12/12 17:32:23 fabiankeil
|
||||||
|
# Added id mbEnd to google filter, it's now and then
|
||||||
|
# used for the sponsored links.
|
||||||
|
#
|
||||||
|
# Have js-annoyances try to prevent status bar
|
||||||
|
# modifications where the status bar text is
|
||||||
|
# inside another variable. Fixes 1605710.
|
||||||
|
#
|
||||||
|
# Revision 1.33 2006/11/16 17:10:43 fabiankeil
|
||||||
|
# Removed webbugs debugging comment again.
|
||||||
|
# The apostrophe could break JavaScript and
|
||||||
|
# the comment itself could mess up existing
|
||||||
|
# comments.
|
||||||
|
#
|
||||||
|
# Revision 1.32 2006/11/10 18:04:04 fabiankeil
|
||||||
|
# Have no-ping print the ping warning in red.
|
||||||
|
#
|
||||||
|
# Modified yahoo to keep in sync with recent
|
||||||
|
# CSS changes and to suppress a useless horizontal
|
||||||
|
# scrollbar.
|
||||||
|
#
|
||||||
|
# msn now makes sure that the continue-link boxes
|
||||||
|
# act as links (the original CSS just changes the cursor).
|
||||||
|
#
|
||||||
|
# Changed fun filter regex to leave microsoft links alone.
|
||||||
|
# Fixes BR 1019996.
|
||||||
|
#
|
||||||
|
# Revision 1.31 2006/10/21 13:12:28 fabiankeil
|
||||||
|
# Added no-ping and hide-tor-exit-notation.
|
||||||
|
#
|
||||||
|
# Adjusted jumping-windows to break less.
|
||||||
|
# Fixes BR 1146134.
|
||||||
|
#
|
||||||
|
# Revision 1.30 2006/10/18 12:36:50 fabiankeil
|
||||||
|
# google filter now cleans Google groups as well.
|
||||||
|
#
|
||||||
|
# Revision 1.29 2006/10/11 14:03:17 fabiankeil
|
||||||
|
# Changed img-reorder regex to only move width
|
||||||
|
# attributes if they are following at least one
|
||||||
|
# whitespace. Fixes BR 1328455.
|
||||||
|
#
|
||||||
|
# Revision 1.28 2006/10/11 13:31:13 fabiankeil
|
||||||
|
# Added Anduin Withers' js-annoyances fix
|
||||||
|
# for not messing up escaped quotes. Fixes BR 999765.
|
||||||
|
#
|
||||||
|
# Improved blogspot filter to make it less likely that
|
||||||
|
# the blogspot banner at the top of the page is missed.
|
||||||
|
#
|
||||||
|
# Revision 1.27 2006/10/08 17:00:51 fabiankeil
|
||||||
|
# Modified webbugs filter to create a comment around the offending
|
||||||
|
# image instead of removing it entirely.
|
||||||
|
#
|
||||||
|
# Adjusted regex to only match if there's at least one whitespace
|
||||||
|
# before the width and height attributes. Makes it more likely that
|
||||||
|
# they are indeed attributes, and not part of the value of another attribute.
|
||||||
|
# Solves BR 1035587.
|
||||||
|
#
|
||||||
|
# Thanks to Martin Thomas for diagnosing the cause of the problem.
|
||||||
|
#
|
||||||
|
# Revision 1.26 2006/10/06 18:06:16 fabiankeil
|
||||||
|
# Added header filter x-httpd-php-to-html
|
||||||
|
# and reverted another img-reorder whitespace
|
||||||
|
# problem.
|
||||||
|
#
|
||||||
|
# Revision 1.25 2006/10/06 15:26:09 fabiankeil
|
||||||
|
# Bumped copyright year.
|
||||||
|
#
|
||||||
|
# Reverted parts of the last img-reorder change
|
||||||
|
# which were intended to remove superfluous whitespace
|
||||||
|
# but had the side effect to mess up some tags.
|
||||||
|
#
|
||||||
|
# Modified banners-by-size and banners-by-link to
|
||||||
|
# use border value "0" instead of "\0". Fixes BR 1100065.
|
||||||
|
#
|
||||||
|
# Revision 1.24 2006/10/06 11:25:31 fabiankeil
|
||||||
|
# Taught img-reorder not to break img tags
|
||||||
|
# with empty src attributes. Fixes BR 1089474.
|
||||||
|
# Thanks to Raphael Moll for reporting.
|
||||||
|
#
|
||||||
|
# Revision 1.23 2006/10/05 14:46:28 fabiankeil
|
||||||
|
# Replaced "<" in img-reorder's description with "<".
|
||||||
|
#
|
||||||
|
# Modified msn filter to tag ads with classes instead
|
||||||
|
# of ids. There may be more than one ad per page,
|
||||||
|
# but ids are required to be unique.
|
||||||
|
#
|
||||||
|
# Revision 1.22 2006/10/04 19:17:14 fabiankeil
|
||||||
|
# Incorportated Frédéric Crozat's ie-exploits
|
||||||
|
# modification to make it less trigger-happy.
|
||||||
|
#
|
||||||
|
# Modified blogspot filter to make .post-body
|
||||||
|
# scrollable if necessary.
|
||||||
|
#
|
||||||
|
# Revision 1.21 2006/10/02 16:21:14 fabiankeil
|
||||||
|
# Adjusted yahoo filter to hide .yschspns as well.
|
||||||
|
# Added header filters: html-to-xml and xml-to-html.
|
||||||
|
#
|
||||||
|
# Revision 1.20 2006/10/01 21:00:22 fabiankeil
|
||||||
|
# New site-specific filters: google, yahoo, msn and blogspot.
|
||||||
|
#
|
||||||
|
# Revision 1.19 2006/07/18 14:48:45 david__schmidt
|
||||||
|
# Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
# with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.23 2004/02/17 13:34:01 oes
|
||||||
|
# - Beefed up the protection of the unsolicited-popups
|
||||||
|
# filter against matching in JavaScript string constants.
|
||||||
|
# - Extended the fun filter with a German joke
|
||||||
|
# - Extended the site-specifics filter with a convenience
|
||||||
|
# reeplacement for managing mailing lists at SourceForge
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.22 2004/01/30 15:29:29 oes
|
||||||
|
# Updated the copyright note
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.21 2004/01/20 15:15:01 oes
|
||||||
|
# Detail enhancement in all-popups
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.20 2004/01/06 16:46:14 oes
|
||||||
|
# Fixed a JS syntax problem in jumping-windows
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.19 2003/12/17 17:09:25 oes
|
||||||
|
# Added remedy against IE address bar spoofing
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.18 2003/12/02 11:25:27 oes
|
||||||
|
# Fixed a line trashed in previous commit
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.17 2003/12/01 21:58:46 oes
|
||||||
|
# Assorted tuning:
|
||||||
|
#
|
||||||
|
# - unsolicited-popups no longer matches at start or end of quoted
|
||||||
|
# strings, and is now activated earlier and deactivated later in
|
||||||
|
# the page.
|
||||||
|
# - replacement images in banners-by-* now without border
|
||||||
|
# - more effective shockwave flash flattening
|
||||||
|
# - Custom annoyance filtering for Yahoo Groups, Monster.com, NY Times.
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.16 2003/05/08 09:44:56 oes
|
||||||
|
# Allow extra parameters in blink,marquee tags. Fixes bug #734012
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.15 2003/03/30 13:57:08 oes
|
||||||
|
# Making unsolicited-popups safe for use on <html> tags enclosed in JS strings
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.14 2003/03/19 13:17:50 oes
|
||||||
|
# - Added filter "site-specifics" to address site specific problems
|
||||||
|
# - Fixed a small problem in the img-reorder filter
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.13 2003/03/18 19:28:59 oes
|
||||||
|
# Fixed a minor problem in the img-reorder filter
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.12 2003/03/15 14:06:58 oes
|
||||||
|
# - Assorted refinements, optimizations and fixes in the js-annoyances,
|
||||||
|
# img-reorder, banners-by-size, banners-by-link, webbugs, refresh-tags,
|
||||||
|
# html-annoyances, content-cookies and fun filters
|
||||||
|
# - Replaced filter "popups" by choice between two modes:
|
||||||
|
# - "unsolicited-popups" tries to catch only the unsolicited ones
|
||||||
|
# - "all-popups" tries to kill them all (as before)
|
||||||
|
# - New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
|
||||||
|
# - New filter "jumping-windows" that prevents windows from resizing
|
||||||
|
# and moving themselves
|
||||||
|
# - Replaced "nimda" with more general "ie-exploits" filter in which
|
||||||
|
# all filters for exploits shall be collected
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.11 2002/11/12 16:14:43 oes
|
||||||
|
# Exchanged js-annoyance filter against status bar rewrites with improved version by Don Libes
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.10 2002/11/11 13:39:47 oes
|
||||||
|
# Make refresh-tags filter work even on incorrect refresh tags like found on usatoday.com
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.9 2002/11/08 16:39:17 oes
|
||||||
|
# Made img-reorder more cautious. Fixes bug #632715
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.8 2002/10/13 21:56:52 hal9
|
||||||
|
# Adding demoronizer filter. This should include all the common abuses. I have
|
||||||
|
# left a few of the rare cases commented out (never found these in the wild).
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.7 2002/09/25 15:09:39 oes
|
||||||
|
# Preserve original quoting style in <img> tags wherever possible. Fixes Bug #605956
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.6 2002/08/23 14:12:26 oes
|
||||||
|
# Proofed frameset-borders against "fremaborder=0 border=0"
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.5 2002/08/22 15:05:20 oes
|
||||||
|
# Added Filter to make Quicktime movies saveable (thanks to aaron@linville.org for the idea)
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.4 2002/08/10 11:32:29 oes
|
||||||
|
# Attribute values in replacement tags of banners-by-size filter now undelimited. (Fixes bug #592493)
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.3 2002/08/05 11:43:56 oes
|
||||||
|
# Fixed a bug in the popups filter that was introduced with the last fix :-(
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.2 2002/08/01 11:20:13 oes
|
||||||
|
# Fixed bugs 587802, 577802 and an unreported one
|
||||||
|
#
|
||||||
|
# Revision 1.11.2.1 2002/07/26 15:18:26 oes
|
||||||
|
# - All filters reviewed and many shorcomings fixed
|
||||||
|
# - New filters: img-reorder, banners-by-link and js-events
|
||||||
|
# - Jobs reorderd because they are now executed in order of
|
||||||
|
# appearance
|
||||||
|
#
|
||||||
|
# Revision 1.11 2002/05/24 00:57:18 oes
|
||||||
|
# Made WeBugs job ungreedy; Fixes bug 559190
|
||||||
|
#
|
||||||
|
# Revision 1.10 2002/04/18 10:14:19 oes
|
||||||
|
# renamed some filters
|
||||||
|
#
|
||||||
|
# Revision 1.9 2002/04/11 07:36:35 oes
|
||||||
|
# Generalized js-popup filter
|
||||||
|
#
|
||||||
|
# Revision 1.8 2002/04/10 17:07:21 oes
|
||||||
|
# Fixed potentially desctructive jobs, added noflash filter
|
||||||
|
#
|
||||||
|
# Revision 1.7 2002/04/09 18:34:51 oes
|
||||||
|
# Fixed HTML syntax in replacements
|
||||||
|
#
|
||||||
|
# Revision 1.6 2002/04/03 19:49:52 swa
|
||||||
|
# name change
|
||||||
|
#
|
||||||
|
# Revision 1.5 2002/03/27 15:30:26 swa
|
||||||
|
# have a consistent appearance
|
||||||
|
#
|
||||||
|
# Revision 1.4 2002/03/26 22:29:54 swa
|
||||||
|
# we have a new homepage!
|
||||||
|
#
|
||||||
|
# Revision 1.3 2002/03/24 16:08:03 jongfoster
|
||||||
|
# Fixing banners-by-size for new config URLs
|
||||||
|
#
|
||||||
|
# Revision 1.2 2002/03/24 13:02:18 swa
|
||||||
|
# name change related issues.
|
||||||
|
#
|
||||||
|
# Revision 1.1 2002/03/24 11:37:39 jongfoster
|
||||||
|
# Name change
|
||||||
|
#
|
||||||
|
# Revision 1.24 2002/03/16 20:39:54 oes
|
||||||
|
# - Added descriptions to the filters so users will know what they select in the cgi editor
|
||||||
|
# - Added content-cookies filter
|
||||||
|
# - Bugfixed many jobs (Thanks to Al for some hints)
|
||||||
|
#
|
||||||
|
# Revision 1.22 2002/03/12 13:42:50 oes
|
||||||
|
# Fixing & Optimizing REs
|
||||||
|
#
|
||||||
|
# Revision 1.21 2002/03/12 11:59:20 oes
|
||||||
|
# Beefed up Buzzword Bingo
|
||||||
|
#
|
||||||
|
# Revision 1.20 2002/03/12 01:42:50 oes
|
||||||
|
# Introduced modular filters
|
||||||
|
#
|
||||||
|
# Revision 1.19 2002/03/10 19:49:24 oes
|
||||||
|
# Added expression to kill referer tracking in JavaScripts
|
||||||
|
#
|
||||||
|
# Revision 1.18 2002/03/08 17:14:12 oes
|
||||||
|
# PNG -> image in comments
|
||||||
|
#
|
||||||
|
# Revision 1.17 2002/03/07 03:50:54 oes
|
||||||
|
# Adapted comments to new built-in images
|
||||||
|
#
|
||||||
|
# Revision 1.16 2002/02/21 00:12:19 jongfoster
|
||||||
|
# Modifying the banner regexps to use long URLS and to autodetect
|
||||||
|
# whether to show a logo or a transparent GIF, based on actionsfile
|
||||||
|
# setting.
|
||||||
|
#
|
||||||
|
# Revision 1.15 2001/12/28 23:54:20 steudten
|
||||||
|
# Fix for feature Req #495374: http-equiv problem
|
||||||
|
#
|
||||||
|
# Revision 1.14 2001/12/09 18:55:11 david__schmidt
|
||||||
|
# Updated CODE_STATUS to beta, commented out microsuck line in re_filterfile
|
||||||
|
# for 2.9.10 beta
|
||||||
|
#
|
||||||
|
# Revision 1.13 2001/10/13 13:11:20 joergs
|
||||||
|
# Fixed WebBug filter.
|
||||||
|
#
|
||||||
|
# Revision 1.12 2001/10/07 15:46:42 oes
|
||||||
|
# Followed Guy's proposal to change the document.cookie job
|
||||||
|
#
|
||||||
|
# Revision 1.11 2001/09/21 12:34:00 joergs
|
||||||
|
# Added filter to replace "Nimda" code by a warning.
|
||||||
|
#
|
||||||
|
# Revision 1.10 2001/07/20 11:04:26 oes
|
||||||
|
# Added Rodneys javascript cookie filter
|
||||||
|
#
|
||||||
|
# Revision 1.9 2001/07/13 14:03:48 oes
|
||||||
|
# Elimiated yet another bug in the banner-by-size jobs. Shame on me!
|
||||||
|
#
|
||||||
|
# Revision 1.8 2001/06/29 13:34:00 oes
|
||||||
|
# - Added explanation for U and T options
|
||||||
|
# - Added hint on image replacement by CGI call
|
||||||
|
# - Fixed bug in banner-by-size jobs
|
||||||
|
#
|
||||||
|
# Revision 1.7 2001/06/19 14:21:56 oes
|
||||||
|
# Fixed microsuck line
|
||||||
|
#
|
||||||
|
# Revision 1.6 2001/06/09 14:01:57 swa
|
||||||
|
# header. cosmetics. default: no messing ala microsuck.
|
||||||
|
#
|
||||||
|
|
|
@ -28,7 +28,7 @@ pcrs - Perl-compatible regular substitution.
|
||||||
.B "#include <pcrs.h>"
|
.B "#include <pcrs.h>"
|
||||||
.PP
|
.PP
|
||||||
.br
|
.br
|
||||||
.BI "pcrs_job *pcrs_compile(const char *" pattern ","
|
.BI "pcrs_job *pcrs_compile(const char *" pattern ","
|
||||||
.ti +5n
|
.ti +5n
|
||||||
.BI "const char *" substitute ", const char *" options ,
|
.BI "const char *" substitute ", const char *" options ,
|
||||||
.ti +5n
|
.ti +5n
|
||||||
|
@ -68,7 +68,7 @@ pcrs - Perl-compatible regular substitution.
|
||||||
|
|
||||||
The
|
The
|
||||||
.SM PCRS
|
.SM PCRS
|
||||||
library is a supplement to the
|
library is a supplement to the
|
||||||
.SB PCRE(3)
|
.SB PCRE(3)
|
||||||
library that implements
|
library that implements
|
||||||
.RB "regular expression based substitution, like provided by " Perl(1) "'s 's'"
|
.RB "regular expression based substitution, like provided by " Perl(1) "'s 's'"
|
||||||
|
@ -77,10 +77,10 @@ differences (see below).
|
||||||
|
|
||||||
In a first step, the information on a substitution, i.e. the pattern, the
|
In a first step, the information on a substitution, i.e. the pattern, the
|
||||||
substitute and the options are compiled from Perl syntax to an internal form
|
substitute and the options are compiled from Perl syntax to an internal form
|
||||||
.RB "called " pcrs_job " by using either the " pcrs_compile() " or "
|
.RB "called " pcrs_job " by using either the " pcrs_compile() " or "
|
||||||
.BR pcrs_compile_command() " functions."
|
.BR pcrs_compile_command() " functions."
|
||||||
|
|
||||||
Once the job is compiled, it can be used on subjects, which are arbitrary
|
Once the job is compiled, it can be used on subjects, which are arbitrary
|
||||||
memory areas containing string or binary data, by calling
|
memory areas containing string or binary data, by calling
|
||||||
.BR pcrs_execute() ". Jobs can be chained to joblists and whole"
|
.BR pcrs_execute() ". Jobs can be chained to joblists and whole"
|
||||||
.RB "joblists can be applied to a subject using " pcrs_execute_list() .
|
.RB "joblists can be applied to a subject using " pcrs_execute_list() .
|
||||||
|
@ -104,7 +104,7 @@ There are also convenience functions for freeing the jobs and for errno-to-strin
|
||||||
.RB "follows the '" "s" "' will be used as the delimiter. Patterns or substitutes"
|
.RB "follows the '" "s" "' will be used as the delimiter. Patterns or substitutes"
|
||||||
that contain the delimiter need to quote it:
|
that contain the delimiter need to quote it:
|
||||||
\fBs/th\\/is/th\\/at/\fR
|
\fBs/th\\/is/th\\/at/\fR
|
||||||
.RB "will replace " "th/is" " by " "th/at" " and can be written more simply as"
|
.RB "will replace " "th/is" " by " "th/at" " and can be written more simply as"
|
||||||
.BR "s|th/is|th/at|" "."
|
.BR "s|th/is|th/at|" "."
|
||||||
|
|
||||||
.IR "pattern" ", " "substitute" ", " "options" " and " "command" " must be"
|
.IR "pattern" ", " "substitute" ", " "options" " and " "command" " must be"
|
||||||
|
@ -123,7 +123,7 @@ On success, both functions return a pointer to the compiled job.
|
||||||
.SS Substitutes
|
.SS Substitutes
|
||||||
.RI "The " "substitute" " uses"
|
.RI "The " "substitute" " uses"
|
||||||
.RB "Perl syntax as documented in the " "perlre(1)" " manual page, with"
|
.RB "Perl syntax as documented in the " "perlre(1)" " manual page, with"
|
||||||
some exceptions:
|
some exceptions:
|
||||||
|
|
||||||
Most notably and evidently, since
|
Most notably and evidently, since
|
||||||
.SM PCRS
|
.SM PCRS
|
||||||
|
@ -147,9 +147,9 @@ refers to what the last capturing subpattern matched.
|
||||||
if a global substitution previously matched.
|
if a global substitution previously matched.
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
Perl4-style references to subpattern matches of the form
|
Perl4-style references to subpattern matches of the form
|
||||||
\fB\\1, \\2, ...\fR
|
\fB\\1, \\2, ...\fR
|
||||||
.RB "which only exist in Perl5 for backwards compatibility, are " "not"
|
.RB "which only exist in Perl5 for backwards compatibility, are " "not"
|
||||||
supported.
|
supported.
|
||||||
|
|
||||||
Also, since the substitute is a double-quoted string in Perl, you
|
Also, since the substitute is a double-quoted string in Perl, you
|
||||||
|
@ -269,7 +269,7 @@ is set.
|
||||||
|
|
||||||
|
|
||||||
.SS String subjects
|
.SS String subjects
|
||||||
If your
|
If your
|
||||||
|
|
||||||
.SS Return value and diagnostics
|
.SS Return value and diagnostics
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ contains pointers to other dynamically allocated structures.
|
||||||
Chaining the jobs is up to you, but once you have built a linked list of jobs,
|
Chaining the jobs is up to you, but once you have built a linked list of jobs,
|
||||||
.RI "you can execute a whole " joblist " on a given subject by"
|
.RI "you can execute a whole " joblist " on a given subject by"
|
||||||
.RB "a single call to " pcrs_execute_list() ", which will sequentially traverse"
|
.RB "a single call to " pcrs_execute_list() ", which will sequentially traverse"
|
||||||
.RB "the linked list until it reaches a " NULL " pointer, and call " pcrs_execute()
|
.RB "the linked list until it reaches a " NULL " pointer, and call " pcrs_execute()
|
||||||
.RI "for each job it encounters, feeding the " result " and " result_length " of each"
|
.RI "for each job it encounters, feeding the " result " and " result_length " of each"
|
||||||
.RI "call into the next as the " subject " and " subject_length ". As in the single"
|
.RI "call into the next as the " subject " and " subject_length ". As in the single"
|
||||||
.RI "job case, the original " subject " remains untouched, but all interim " result "s"
|
.RI "job case, the original " subject " remains untouched, but all interim " result "s"
|
||||||
|
@ -335,22 +335,22 @@ Under normal circumstances, it can take the following values:
|
||||||
While compiling the pattern,
|
While compiling the pattern,
|
||||||
.SM PCRE
|
.SM PCRE
|
||||||
ran out of memory.
|
ran out of memory.
|
||||||
.TP
|
.TP
|
||||||
.B PCRS_ERR_NOMEM
|
.B PCRS_ERR_NOMEM
|
||||||
While compiling the job,
|
While compiling the job,
|
||||||
.SM PCRS
|
.SM PCRS
|
||||||
ran out of memory.
|
ran out of memory.
|
||||||
.TP
|
.TP
|
||||||
.B PCRS_ERR_CMDSYNTAX
|
.B PCRS_ERR_CMDSYNTAX
|
||||||
.BR pcrs_compile_command() " didn't find four tokens while parsing the"
|
.BR pcrs_compile_command() " didn't find four tokens while parsing the"
|
||||||
.IR command .
|
.IR command .
|
||||||
.TP
|
.TP
|
||||||
.B PCRS_ERR_STUDY
|
.B PCRS_ERR_STUDY
|
||||||
A
|
A
|
||||||
.SM PCRE
|
.SM PCRE
|
||||||
.RB "error occured while studying the compiled pattern. Since " pcre_study()
|
.RB "error occured while studying the compiled pattern. Since " pcre_study()
|
||||||
only provides textual diagnostic information, the details are lost.
|
only provides textual diagnostic information, the details are lost.
|
||||||
.TP
|
.TP
|
||||||
.B PCRS_WARN_BADREF
|
.B PCRS_WARN_BADREF
|
||||||
.RI "The " substitute " contains a reference to a capturing subpattern that"
|
.RI "The " substitute " contains a reference to a capturing subpattern that"
|
||||||
.RI "has a higher index than the number of capturing subpatterns in the " pattern
|
.RI "has a higher index than the number of capturing subpatterns in the " pattern
|
||||||
|
@ -368,12 +368,12 @@ While matching the pattern,
|
||||||
ran out of memory. This can only happen if there are more than 33 backrefrences
|
ran out of memory. This can only happen if there are more than 33 backrefrences
|
||||||
.RI "in the " pattern "(!)"
|
.RI "in the " pattern "(!)"
|
||||||
.BR and " memory is too tight to extend storage for more."
|
.BR and " memory is too tight to extend storage for more."
|
||||||
.TP
|
.TP
|
||||||
.B PCRS_ERR_NOMEM
|
.B PCRS_ERR_NOMEM
|
||||||
While executing the job,
|
While executing the job,
|
||||||
.SM PCRS
|
.SM PCRS
|
||||||
ran out of memory.
|
ran out of memory.
|
||||||
.TP
|
.TP
|
||||||
.B PCRS_ERR_BADJOB
|
.B PCRS_ERR_BADJOB
|
||||||
.RB "The " pcrs_job "* passed to " pcrs_execute " was NULL, or the"
|
.RB "The " pcrs_job "* passed to " pcrs_execute " was NULL, or the"
|
||||||
.RB "job is bogus (it contains " NULL " pointers to the compiled
|
.RB "job is bogus (it contains " NULL " pointers to the compiled
|
||||||
|
|
|
@ -2,31 +2,31 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/authors.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/authors.sgml,v $
|
||||||
|
|
||||||
Purpose : AUTHORS file for Privoxy
|
Purpose : AUTHORS file for Privoxy
|
||||||
|
|
||||||
|
$Id: authors.sgml,v 2.11 2009/02/12 16:08:26 fabiankeil Exp $
|
||||||
|
|
||||||
$Id: authors.sgml,v 2.21 2011/12/26 17:05:40 fabiankeil Exp $
|
|
||||||
|
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
NOTE: Please read developer-manual/documentation.html before touching
|
NOTE: Please read developer-manual/documentation.html before touching
|
||||||
anything in this, or other Privoxy documentation. You have been warned!
|
anything in this, or other Privoxy documentation. You have been warned!
|
||||||
Failure to abide by this rule will result in the revocation of your license
|
Failure to abide by this rule will result in the revocation of your license
|
||||||
to live a peaceful existence!
|
to live a peaceful existence!
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
===================================================================
|
===================================================================
|
||||||
READ: Document Note: This file generates the AUTHORS file in the
|
READ: Document Note: This file generates the AUTHORS file in the
|
||||||
top level source directory. See p-authors.sgml for list of developers
|
top level source directory. See p-authors.sgml for list of developers
|
||||||
and contributors, etc. They were split from here for use in man page.
|
and contributors, etc. They were split from here for use in man page.
|
||||||
===================================================================
|
===================================================================
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||||
<!entity % dummy "IGNORE">
|
<!entity % dummy "IGNORE">
|
||||||
<!entity authors SYSTEM "p-authors.sgml">
|
<!entity authors SYSTEM "p-authors.sgml">
|
||||||
<!entity p-version "3.0.19">
|
<!entity p-version "3.0.11">
|
||||||
<!entity p-status "stable">
|
<!entity p-status "stable">
|
||||||
<!entity % p-not-stable "IGNORE">
|
<!entity % p-not-stable "IGNORE">
|
||||||
<!entity % p-stable "INCLUDE">
|
<!entity % p-stable "INCLUDE">
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/buildsource.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/buildsource.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: buildsource.sgml,v 2.19 2011/09/04 11:10:12 fabiankeil Exp $
|
$Id: buildsource.sgml,v 2.18 2009/02/23 09:03:12 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<para>
|
<para>
|
||||||
To build <application>Privoxy</application> from source,
|
To build <application>Privoxy</application> from source,
|
||||||
<ulink url="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</ulink>,
|
<ulink url="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</ulink>,
|
||||||
<ulink
|
<ulink
|
||||||
url="http://www.gnu.org/software/make/make.html">GNU make
|
url="http://www.gnu.org/software/make/make.html">GNU make
|
||||||
|
@ -32,12 +32,12 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
When building from a source tarball,
|
When building from a source tarball,
|
||||||
<!--
|
<!--
|
||||||
no longer available ...
|
no longer available ...
|
||||||
<ulink
|
<ulink
|
||||||
url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz">nightly CVS
|
url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz">nightly CVS
|
||||||
tarball</ulink>),
|
tarball</ulink>),
|
||||||
--> first unpack the source:
|
--> first unpack the source:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This will create a directory named <filename>current/</filename>, which will
|
This will create a directory named <filename>current/</filename>, which will
|
||||||
contain the source tree.
|
contain the source tree.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
and group just for this purpose. See your local documentation for the correct
|
and group just for this purpose. See your local documentation for the correct
|
||||||
command line to do add new users and groups (something like
|
command line to do add new users and groups (something like
|
||||||
<command>adduser</command>, but the command syntax may vary from platform
|
<command>adduser</command>, but the command syntax may vary from platform
|
||||||
to platform).
|
to platform).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
autoheader
|
autoheader
|
||||||
autoconf
|
autoconf
|
||||||
./configure # (--help to see options)
|
./configure # (--help to see options)
|
||||||
make # (the make from GNU, sometimes called gmake)
|
make # (the make from GNU, sometimes called gmake)
|
||||||
su # Possibly required
|
su # Possibly required
|
||||||
make -n install # (to see where all the files will go)
|
make -n install # (to see where all the files will go)
|
||||||
make -s install # (to really install, -s to silence output)</screen>
|
make -s install # (to really install, -s to silence output)</screen>
|
||||||
|
@ -135,14 +135,14 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To build an executable with security enhanced features so that
|
To build an executable with security enhanced features so that
|
||||||
users cannot easily bypass the proxy (e.g. <quote>Go There Anyway</quote>), or
|
users cannot easily bypass the proxy (e.g. <quote>Go There Anyway</quote>), or
|
||||||
alter their own configurations, <command>configure</command> like this:
|
alter their own configurations, <command>configure</command> like this:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<screen>
|
<screen>
|
||||||
./configure --disable-toggle --disable-editor --disable-force</screen>
|
./configure --disable-toggle --disable-editor --disable-force</screen>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Then build as above. In Privoxy 3.0.7 and later, all of these options
|
Then build as above. In Privoxy 3.0.7 and later, all of these options
|
||||||
can also be disabled through the configuration file.
|
can also be disabled through the configuration file.
|
||||||
|
@ -177,9 +177,9 @@ can also be disabled through the configuration file.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The default installation path for <command>make install</command> is
|
The default installation path for <command>make install</command> is
|
||||||
<filename>/usr/local</filename>. This may of course be customized with
|
<filename>/usr/local</filename>. This may of course be customized with
|
||||||
the various <command>./configure</command> path options. If you are doing
|
the various <command>./configure</command> path options. If you are doing
|
||||||
an install to anywhere besides <filename>/usr/local</filename>, be
|
an install to anywhere besides <filename>/usr/local</filename>, be
|
||||||
sure to set the appropriate paths with the correct configure options
|
sure to set the appropriate paths with the correct configure options
|
||||||
(<command>./configure --help</command>). Non-privileged users must of course
|
(<command>./configure --help</command>). Non-privileged users must of course
|
||||||
|
@ -209,15 +209,15 @@ can also be disabled through the configuration file.
|
||||||
<literal>localstatedir</literal> (ie: <filename>var/</filename>) will default
|
<literal>localstatedir</literal> (ie: <filename>var/</filename>) will default
|
||||||
to <filename>/var</filename> instead of <literal>$prefix/var</literal> so
|
to <filename>/var</filename> instead of <literal>$prefix/var</literal> so
|
||||||
the logs will go to <filename>/var/log/privoxy/</filename>, and the pid file
|
the logs will go to <filename>/var/log/privoxy/</filename>, and the pid file
|
||||||
will be created in <filename>/var/run/privoxy.pid</filename>.
|
will be created in <filename>/var/run/privoxy.pid</filename>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<command>make install</command> will attempt to set the correct values
|
<command>make install</command> will attempt to set the correct values
|
||||||
in <filename>config</filename> (main configuration file). You should
|
in <filename>config</filename> (main configuration file). You should
|
||||||
check this to make sure all values are correct. If appropriate,
|
check this to make sure all values are correct. If appropriate,
|
||||||
an init script will be installed, but it is up to the user to determine
|
an init script will be installed, but it is up to the user to determine
|
||||||
how and where to start <application>Privoxy</application>. The init
|
how and where to start <application>Privoxy</application>. The init
|
||||||
script should be checked for correct paths and values, if anything other than
|
script should be checked for correct paths and values, if anything other than
|
||||||
a default install is done.
|
a default install is done.
|
||||||
</para>
|
</para>
|
||||||
|
@ -248,9 +248,9 @@ can also be disabled through the configuration file.
|
||||||
<!-- Actually this is now in INSTALL -->
|
<!-- Actually this is now in INSTALL -->
|
||||||
<![%p-readme;[
|
<![%p-readme;[
|
||||||
<para>
|
<para>
|
||||||
The simplest command line to start <application>Privoxy</application> is
|
The simplest command line to start <application>Privoxy</application> is
|
||||||
<command>$path/privoxy --user=privoxy $path/etc/privoxy/config</command>.
|
<command>$path/privoxy --user=privoxy $path/etc/privoxy/config</command>.
|
||||||
See <command>privoxy --usage</command>, or the man page, for other options,
|
See <command>privoxy --usage</command>, or the man page, for other options,
|
||||||
and configuration.
|
and configuration.
|
||||||
</para>
|
</para>
|
||||||
]]>
|
]]>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
|
||||||
<!entity % dummy "IGNORE">
|
<!entity % dummy "IGNORE">
|
||||||
<!entity config SYSTEM "p-config.sgml">
|
<!entity config SYSTEM "p-config.sgml">
|
||||||
<!entity p-version "3.0.19">
|
<!entity p-version "3.0.11">
|
||||||
<!entity p-status "stable">
|
<!entity p-status "stable">
|
||||||
<!entity % p-not-stable "IGNORE">
|
<!entity % p-not-stable "IGNORE">
|
||||||
<!entity % user-man "IGNORE">
|
<!entity % user-man "IGNORE">
|
||||||
|
@ -12,19 +12,19 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/config.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/config.sgml,v $
|
||||||
|
|
||||||
Purpose : config file generation
|
Purpose : config file generation
|
||||||
|
|
||||||
$Id: config.sgml,v 2.22 2011/12/26 17:05:40 fabiankeil Exp $
|
$Id: config.sgml,v 2.12 2009/02/12 16:08:26 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
NOTE: Please read developer-manual/documentation.html before touching
|
NOTE: Please read developer-manual/documentation.html before touching
|
||||||
anything in this, or other Privoxy documentation.
|
anything in this, or other Privoxy documentation.
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
This file is used to generate the main Privoxy config file. It is mostly
|
This file is used to generate the main Privoxy config file. It is mostly
|
||||||
content included from p-config.sgml (where all the data is). See that
|
content included from p-config.sgml (where all the data is). See that
|
||||||
file for more comments.
|
file for more comments.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/contacting.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/contacting.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
|
$Id: contacting.sgml,v 2.14 2008/04/26 11:38:51 fabiankeil Exp $
|
||||||
|
|
||||||
$Id: contacting.sgml,v 2.30 2011/11/19 14:44:01 fabiankeil Exp $
|
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
||||||
|
|
||||||
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
|
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
|
@ -29,13 +29,13 @@
|
||||||
<para>
|
<para>
|
||||||
We value your feedback. In fact, we rely on it to improve
|
We value your feedback. In fact, we rely on it to improve
|
||||||
<application>Privoxy</application> and its configuration.
|
<application>Privoxy</application> and its configuration.
|
||||||
However, please note the following hints, so we can
|
However, please note the following hints, so we can
|
||||||
provide you with the best support:
|
provide you with the best support:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<sect2 id="contact-support"><title>Get Support</title>
|
<sect2 id="contact-support"><title>Get Support</title>
|
||||||
<para>
|
<para>
|
||||||
For casual users, our
|
For casual users, our
|
||||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=211118">support forum at SourceForge</ulink>
|
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=211118">support forum at SourceForge</ulink>
|
||||||
is probably best suited:
|
is probably best suited:
|
||||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=211118">http://sourceforge.net/tracker/?group_id=11118&atid=211118</ulink>
|
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=211118">http://sourceforge.net/tracker/?group_id=11118&atid=211118</ulink>
|
||||||
|
@ -52,15 +52,6 @@
|
||||||
developers, either use the mailing lists or the support trackers.
|
developers, either use the mailing lists or the support trackers.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
If you have to contact a Privoxy developer directly for other reasons,
|
|
||||||
please send a real mail and do not bother with SourceForge's messaging
|
|
||||||
system. Answers to SourceForge messages are usually bounced by SourceForge's
|
|
||||||
mail server in which case the developer wasted time writing a response you
|
|
||||||
don't get. From your point of view it will look like your message has
|
|
||||||
been completely ignored, so this is frustrating for all parties involved.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||||
addresses have to be accepted manually by a moderator. This may cause a
|
addresses have to be accepted manually by a moderator. This may cause a
|
||||||
|
@ -86,30 +77,30 @@
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Configuration issues, such as ads that slip through, or sites that
|
Configuration issues, such as ads that slip through, or sites that
|
||||||
don't function properly due to one <application>Privoxy</application>
|
don't function properly due to one <application>Privoxy</application>
|
||||||
<quote>action</quote> or another being turned <quote>on</quote>.
|
<quote>action</quote> or another being turned <quote>on</quote>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<quote>Bugs</quote> in the programming code that makes up
|
<quote>Bugs</quote> in the programming code that makes up
|
||||||
<application>Privoxy</application>, such as that might cause a crash.
|
<application>Privoxy</application>, such as that might cause a crash.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
|
||||||
<sect3 id="contact-ads"><title>Reporting Ads or Other Configuration Problems</title>
|
<sect3 id="contact-ads"><title>Reporting Ads or Other Configuration Problems</title>
|
||||||
<para>
|
<para>
|
||||||
Please send feedback on ads that slipped through, innocent images that were
|
Please send feedback on ads that slipped through, innocent images that were
|
||||||
blocked, sites that don't work properly, and other configuration related problem of
|
blocked, sites that don't work properly, and other configuration related problem of
|
||||||
<filename>default.action</filename> file, to
|
<filename>default.action</filename> file, to
|
||||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=460288">
|
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=460288">
|
||||||
http://sourceforge.net/tracker/?group_id=11118&atid=460288</ulink>,
|
http://sourceforge.net/tracker/?group_id=11118&atid=460288</ulink>,
|
||||||
the Actions File Tracker.
|
the Actions File Tracker.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
New, improved <filename>default.action</filename> files may occasionally be made
|
New, improved <filename>default.action</filename> files may occasionally be made
|
||||||
|
@ -124,15 +115,15 @@
|
||||||
|
|
||||||
<sect3 id="contact-bugs"><title>Reporting Bugs</title>
|
<sect3 id="contact-bugs"><title>Reporting Bugs</title>
|
||||||
<para>
|
<para>
|
||||||
Please report all bugs through our bug tracker:
|
Please report all bugs through our bug tracker:
|
||||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=111118">http://sourceforge.net/tracker/?group_id=11118&atid=111118</ulink>.
|
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=111118">http://sourceforge.net/tracker/?group_id=11118&atid=111118</ulink>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Before doing so, please make sure that the bug has <emphasis>not already been submitted</emphasis>
|
Before doing so, please make sure that the bug has <emphasis>not already been submitted</emphasis>
|
||||||
and observe the additional hints at the top of the <ulink
|
and observe the additional hints at the top of the <ulink
|
||||||
url="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118">submit
|
url="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118">submit
|
||||||
form</ulink>. If already submitted, please feel free to add any info to the
|
form</ulink>. If already submitted, please feel free to add any info to the
|
||||||
original report that might help to solve the issue.
|
original report that might help to solve the issue.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -159,7 +150,7 @@
|
||||||
that your bug still exists.
|
that your bug still exists.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Please be sure to provide the following information:
|
Please be sure to provide the following information:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
@ -170,7 +161,7 @@
|
||||||
(if you got the source from CVS, please also provide the source code revisions
|
(if you got the source from CVS, please also provide the source code revisions
|
||||||
as shown in <ulink url="http://config.privoxy.org/show-version">http://config.privoxy.org/show-version</ulink>).
|
as shown in <ulink url="http://config.privoxy.org/show-version">http://config.privoxy.org/show-version</ulink>).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
|
@ -180,11 +171,11 @@
|
||||||
sending the output of <quote>uname -a</quote> should do,
|
sending the output of <quote>uname -a</quote> should do,
|
||||||
in case of GNU/Linux, please also name the distribution.
|
in case of GNU/Linux, please also name the distribution.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The name, platform, and version of the <application>browser</application>
|
The name, platform, and version of the <application>browser</application>
|
||||||
you were using (e.g. <application>Internet Explorer v5.5</application> for Mac).
|
you were using (e.g. <application>Internet Explorer v5.5</application> for Mac).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -192,9 +183,9 @@
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The URL where the problem occurred, or some way for us to duplicate the
|
The URL where the problem occurred, or some way for us to duplicate the
|
||||||
problem (e.g. <literal>http://somesite.example.com/?somethingelse=123</literal>).
|
problem (e.g. <literal>http://somesite.example.com/?somethingelse=123</literal>).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
|
@ -202,85 +193,52 @@
|
||||||
by the <application>Privoxy</application> developers via SourceForge,
|
by the <application>Privoxy</application> developers via SourceForge,
|
||||||
or if you got your copy somewhere else.
|
or if you got your copy somewhere else.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Whether you are using <application>Privoxy</application> in tandem with
|
Whether you are using <application>Privoxy</application> in tandem with
|
||||||
another proxy such as <application>Tor</application>. If so, please
|
another proxy such as <application>Tor</application>. If so, please
|
||||||
temporary disable the other proxy to see if the symptoms change.
|
temporary disable the other proxy to see if the symptoms change.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Whether you are using a personal firewall product. If so, does
|
Whether you are using a personal firewall product. If so, does
|
||||||
<application>Privoxy</application> work without it?
|
<application>Privoxy</application> work without it?
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Any other pertinent information to help identify the problem such as config
|
Any other pertinent information to help identify the problem such as config
|
||||||
or log file excerpts (yes, you should have log file entries for each
|
or log file excerpts (yes, you should have log file entries for each
|
||||||
action taken). To get a meaningful logfile, please make sure that the
|
action taken).
|
||||||
<ulink url="../user-manual/config.html#LOGFILE">logfile directive</ulink>
|
|
||||||
is being used and the following <ulink
|
|
||||||
url="../user-manual/config.html#DEBUG">debug options</ulink> are enabled:
|
|
||||||
<literallayout>debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.
|
|
||||||
debug 2 # show each connection status
|
|
||||||
debug 4 # show I/O status
|
|
||||||
debug 8 # show header parsing
|
|
||||||
debug 128 # debug redirects
|
|
||||||
debug 256 # debug GIF de-animation
|
|
||||||
debug 512 # Common Log Format
|
|
||||||
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
|
|
||||||
debug 4096 # Startup banner and warnings.
|
|
||||||
debug 8192 # Non-fatal errors</literallayout>
|
|
||||||
If you are having trouble with a filter, please additionally enable
|
|
||||||
<literallayout>debug 64 # debug regular expression filters</literallayout>
|
|
||||||
If you are using Privoxy 3.0.17 or later and suspect that it interprets the
|
|
||||||
request or the response incorrectly, please enable
|
|
||||||
<literallayout>debug 32768 # log all data read from the network</literallayout>
|
|
||||||
Note that Privoxy log files may contain sensitive information so please don't
|
|
||||||
submit any logfiles you didn't read first. You can mask sensitive information
|
|
||||||
as long as it's clear that you removed something.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
You don't have to tell us your actual name when filing a problem
|
You don't have to tell us your actual name when filing a problem
|
||||||
report, but if you don't, please use a nickname so we can differentiate
|
report, but please use a nickname so we can differentiate between
|
||||||
between your messages and the ones entered by other "anonymous" users that
|
your messages and the ones entered by other "anonymous" users that
|
||||||
may respond to your request if they have the same problem or already
|
may respond to your request if they have the same problem or already
|
||||||
found a solution. Note that due to spam the trackers may not always
|
found a solution.
|
||||||
allow to post without being logged into SourceForge. If that's the
|
|
||||||
case, you are still free to create a login that isn't directly linked
|
|
||||||
to your name, though.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Please also check the status of your request a few days after submitting
|
Please also check the status of your request a few days after submitting
|
||||||
it, as we may request additional information. If you use a SF id,
|
it, as we may request additional information. If you use a SF id,
|
||||||
you should automatically get a mail when someone responds to your request.
|
you should automatically get a mail when someone responds to your request.
|
||||||
Please don't bother to add an email address when using the tracker.
|
|
||||||
If you prefer to communicate through email, just use one of the mailing
|
|
||||||
lists directly.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
If you are new to reporting problems, you might be interested in
|
|
||||||
<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
|
|
||||||
>How to Report Bugs Effectively</ulink>.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <ulink url="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT">appendix
|
The <ulink url="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT">appendix
|
||||||
of the Privoxy User Manual</ulink> also has helpful information
|
of the Privoxy User Manual</ulink> also has helpful information
|
||||||
on understanding <literal>actions</literal>, and <literal>action</literal> debugging.
|
on understanding <literal>actions</literal>, and <literal>action</literal> debugging.
|
||||||
</para>
|
</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@ -293,13 +251,10 @@ debug 8192 # Non-fatal errors</literallayout>
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="mailing-lists"><title>Mailing Lists</title>
|
<sect2 id="contact-other"><title>Other</title>
|
||||||
<para>
|
<para>
|
||||||
If you prefer to communicate through email, instead of using a web interface,
|
For any other issues, feel free to use the mailing lists. Technically interested users
|
||||||
feel free to use one of the mailing lists.
|
and people who wish to contribute to the project are also welcome on the developers list!
|
||||||
To discuss issues that haven't been completely diagnosed yet, please use the Privoxy
|
|
||||||
users list. Technically interested users and people who wish to contribute to
|
|
||||||
the project are always welcome on the developers list.
|
|
||||||
You can find an overview of all <application>Privoxy</application>-related mailing lists,
|
You can find an overview of all <application>Privoxy</application>-related mailing lists,
|
||||||
including list archives, at:
|
including list archives, at:
|
||||||
<ulink url="http://sourceforge.net/mail/?group_id=11118">http://sourceforge.net/mail/?group_id=11118</ulink>.
|
<ulink url="http://sourceforge.net/mail/?group_id=11118">http://sourceforge.net/mail/?group_id=11118</ulink>.
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/copyright.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/copyright.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
|
$Id: copyright.sgml,v 2.10 2009/02/10 16:13:30 fabiankeil Exp $
|
||||||
|
|
||||||
$Id: copyright.sgml,v 2.14 2011/09/04 11:10:12 fabiankeil Exp $
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
|
|
||||||
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
|
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -23,8 +23,8 @@
|
||||||
faq
|
faq
|
||||||
|
|
||||||
**************************************************************
|
**************************************************************
|
||||||
NOTE: the &my-copy entity must be defined in any file that will
|
NOTE: the &my-copy entity must be defined in any file that will
|
||||||
include this file. (This is a workaround for docbook2man not
|
include this file. (This is a workaround for docbook2man not
|
||||||
handling the standard © entity in the man page processing.)
|
handling the standard © entity in the man page processing.)
|
||||||
**************************************************************
|
**************************************************************
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Copyright &my-copy; 2001-2011 by Privoxy Developers <email>ijbswa-developers@lists.sourceforge.net</email>
|
Copyright &my-copy; 2001-2009 by Privoxy Developers <email>ijbswa-developers@lists.sourceforge.net</email>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -2,8 +2,8 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/history.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/history.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: history.sgml,v 2.8 2011/09/04 11:10:12 fabiankeil Exp $
|
$Id: history.sgml,v 2.7 2009/02/22 11:05:21 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A long time ago, there was the
|
A long time ago, there was the
|
||||||
<ulink url="http://www.junkbusters.com/ijb.html"><application>Internet Junkbuster</application></ulink>,
|
<ulink url="http://www.junkbusters.com/ijb.html"><application>Internet Junkbuster</application></ulink>,
|
||||||
by Anonymous Coders and <ulink url="http://www.junkbusters.com/">Junkbusters
|
by Anonymous Coders and <ulink url="http://www.junkbusters.com/">Junkbusters
|
||||||
Corporation</ulink>. This saved many users a lot of pain in the early days of
|
Corporation</ulink>. This saved many users a lot of pain in the early days of
|
||||||
web advertising and user tracking.
|
web advertising and user tracking.
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
But the web, its protocols and standards, and with it, the techniques for
|
But the web, its protocols and standards, and with it, the techniques for
|
||||||
forcing ads on users, give up autonomy over their browsing, and
|
forcing ads on users, give up autonomy over their browsing, and
|
||||||
for tracking them, keeps evolving. Unfortunately, the <application>Internet
|
for tracking them, keeps evolving. Unfortunately, the <application>Internet
|
||||||
Junkbuster</application> did not. Version 2.0.2, published in 1998, was
|
Junkbuster</application> did not. Version 2.0.2, published in 1998, was
|
||||||
(and is) the last official
|
(and is) the last official
|
||||||
<ulink url="http://www.junkbusters.com/ijbdist.html#release">release</ulink>
|
<ulink url="http://www.junkbusters.com/ijbdist.html#release">release</ulink>
|
||||||
available from <ulink url="http://www.junkbusters.com">Junkbusters Corporation</ulink>.
|
available from <ulink url="http://www.junkbusters.com">Junkbusters Corporation</ulink>.
|
||||||
|
@ -66,6 +66,6 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The result of this is <application>Privoxy</application>, whose first
|
The result of this is <application>Privoxy</application>, whose first
|
||||||
stable version, 3.0, was released August, 2002.
|
stable version, 3.0, was released August, 2002.
|
||||||
<!-- Cautious!!!!!!!!! ;) -->
|
<!-- Cautious!!!!!!!!! ;) -->
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||||
<!entity % dummy "IGNORE">
|
<!entity % dummy "IGNORE">
|
||||||
<!entity buildsource SYSTEM "buildsource.sgml">
|
<!entity buildsource SYSTEM "buildsource.sgml">
|
||||||
<!entity p-version "3.0.19">
|
<!entity p-version "3.0.11">
|
||||||
<!entity p-status "stable">
|
<!entity p-status "stable">
|
||||||
<!entity % p-stable "INCLUDE">
|
<!entity % p-stable "INCLUDE">
|
||||||
<!entity % p-not-stable "IGNORE">
|
<!entity % p-not-stable "IGNORE">
|
||||||
|
@ -15,16 +15,16 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/install.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/install.sgml,v $
|
||||||
|
|
||||||
Purpose : INSTALL file for Privoxy
|
Purpose : INSTALL file for Privoxy
|
||||||
|
|
||||||
$Id: install.sgml,v 2.21 2011/12/26 17:05:40 fabiankeil Exp $
|
$Id: install.sgml,v 2.11 2009/02/12 16:08:26 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
NOTE: Please read developer-manual/documentation.html before touching
|
NOTE: Please read developer-manual/documentation.html before touching
|
||||||
anything in this, or other Privoxy documentation. You have been warned!
|
anything in this, or other Privoxy documentation. You have been warned!
|
||||||
Failure to abide by this rule will result in the revocation of your license
|
Failure to abide by this rule will result in the revocation of your license
|
||||||
to live a peaceful existence!
|
to live a peaceful existence!
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
|
@ -62,10 +62,10 @@
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -80,8 +80,8 @@
|
||||||
* The GNU General Public License should be included with
|
* The GNU General Public License should be included with
|
||||||
* this file. If not, you can view it at
|
* this file. If not, you can view it at
|
||||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
* or write to the Free Software Foundation, Inc.,
|
* or write to the Free Software Foundation, Inc.,
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
;; REFENTRY body-attr
|
;; REFENTRY body-attr
|
||||||
;; PURP What attributes should be hung off of BODY?
|
;; PURP What attributes should be hung off of BODY?
|
||||||
;; DESC
|
;; DESC
|
||||||
;; A list of the BODY attributes that should be generated.
|
;; A list of the the BODY attributes that should be generated.
|
||||||
;; The format is a list of lists, each interior list contains the
|
;; The format is a list of lists, each interior list contains the
|
||||||
;; name and value of a BODY attribute.
|
;; name and value of a BODY attribute.
|
||||||
;; /DESC
|
;; /DESC
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/license.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/license.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: license.sgml,v 2.7 2011/09/04 11:10:12 fabiankeil Exp $
|
$Id: license.sgml,v 2.6 2008/05/23 15:09:48 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<application>Privoxy</application> is free software; you can
|
<application>Privoxy</application> is free software; you can
|
||||||
redistribute it and/or modify it under the terms of the
|
redistribute it and/or modify it under the terms of the
|
||||||
<citetitle>GNU General Public License</citetitle>, version 2,
|
<citetitle>GNU General Public License</citetitle>, version 2,
|
||||||
as published by the Free Software Foundation.
|
as published by the Free Software Foundation.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/newfeatures.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/newfeatures.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: newfeatures.sgml,v 2.14 2009/10/10 05:51:13 fabiankeil Exp $
|
$Id: newfeatures.sgml,v 2.10 2009/02/14 17:37:13 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -30,64 +30,57 @@
|
||||||
FIXME: complete the list of features. change the order: most important
|
FIXME: complete the list of features. change the order: most important
|
||||||
features to the top of the list. prefix new features with "NEW".
|
features to the top of the list. prefix new features with "NEW".
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
-->
|
-->
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Supports "Connection: keep-alive". Outgoing connections can
|
Can keep outgoing connections alive and reuse them later on.
|
||||||
be kept alive independently from the client.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Supports IPv6, provided the operating system does so too,
|
|
||||||
and the configure script detects it.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Supports tagging which allows to change the behaviour
|
Supports tagging which allows to change the behaviour
|
||||||
based on client and server headers.
|
based on client and server headers.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Can be run as an "intercepting" proxy, which obviates the need to
|
Can be run as an "intercepting" proxy, which obviates the need to
|
||||||
configure browsers individually.
|
configure browsers individually.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Sophisticated actions and filters for manipulating both server and client
|
Sophisticated actions and filters for manipulating both server and client
|
||||||
headers.
|
headers.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Can be chained with other proxies.
|
Can be chained with other proxies.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Integrated browser-based configuration and control utility at <ulink
|
Integrated browser based configuration and control utility at <ulink
|
||||||
url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
|
url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
|
||||||
(shortcut: <ulink url="http://p.p/">http://p.p/</ulink>). Browser-based
|
(shortcut: <ulink url="http://p.p/">http://p.p/</ulink>). Browser-based
|
||||||
tracing of rule and filter effects. Remote toggling.
|
tracing of rule and filter effects. Remote toggling.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Web page filtering (text replacements, removes banners based on size,
|
Web page filtering (text replacements, removes banners based on size,
|
||||||
invisible <quote>web-bugs</quote> and HTML annoyances, etc.)
|
invisible <quote>web-bugs</quote>, JavaScript and HTML annoyances,
|
||||||
|
pop-up windows, etc.)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
|
@ -95,50 +88,69 @@
|
||||||
user settings to reside in separate files, so that installing updated
|
user settings to reside in separate files, so that installing updated
|
||||||
actions files won't overwrite individual user settings.
|
actions files won't overwrite individual user settings.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Support for Perl Compatible Regular Expressions in the configuration files, and
|
Support for Perl Compatible Regular Expressions in the configuration files, and
|
||||||
a more sophisticated and flexible configuration syntax.
|
a more sophisticated and flexible configuration syntax.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
GIF de-animation.
|
Improved cookie management features (e.g. session based cookies).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
GIF de-animation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Bypass many click-tracking scripts (avoids script redirection).
|
Bypass many click-tracking scripts (avoids script redirection).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Multi-threaded (POSIX and native threads).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
User-customizable HTML templates for most proxy-generated pages (e.g. "blocked" page).
|
User-customizable HTML templates for most proxy-generated pages (e.g. "blocked" page).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Auto-detection and re-reading of config file changes.
|
Auto-detection and re-reading of config file changes.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Most features are controllable on a per-site or per-location basis.
|
Improved signal handling, and a true daemon mode (Unix).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Every feature now controllable on a per-site or per-location basis, configuration
|
||||||
|
more powerful and versatile over-all.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Many smaller new features added, limitations and bugs removed.
|
Many smaller new features added, limitations and bugs removed.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/p-authors.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/p-authors.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: p-authors.sgml,v 2.44 2011/12/26 18:41:54 fabiankeil Exp $
|
$Id: p-authors.sgml,v 2.34 2009/02/08 18:13:26 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -35,8 +35,11 @@ Current Privoxy Team:
|
||||||
]]>
|
]]>
|
||||||
|
|
||||||
Hal Burgiss
|
Hal Burgiss
|
||||||
|
Mark Miller
|
||||||
|
Gerry Murphy
|
||||||
Lee Rian
|
Lee Rian
|
||||||
Roland Rosenfeld
|
Roland Rosenfeld
|
||||||
|
Jörg Strohmayer
|
||||||
<![%p-authors-formal;[
|
<![%p-authors-formal;[
|
||||||
</literallayout>
|
</literallayout>
|
||||||
|
|
||||||
|
@ -58,13 +61,10 @@ Current Privoxy Team:
|
||||||
Adam Lock
|
Adam Lock
|
||||||
Guy Laroche
|
Guy Laroche
|
||||||
Justin McMurtry
|
Justin McMurtry
|
||||||
Mark Miller
|
|
||||||
Gerry Murphy
|
|
||||||
Andreas Oesterhelt
|
Andreas Oesterhelt
|
||||||
Haroon Rafique
|
Haroon Rafique
|
||||||
Georg Sauthoff
|
Georg Sauthoff
|
||||||
Thomas Steudten
|
Thomas Steudten
|
||||||
Jörg Strohmayer
|
|
||||||
Rodney Stromlund
|
Rodney Stromlund
|
||||||
Sviatoslav Sviridov
|
Sviatoslav Sviridov
|
||||||
Sarantis Paskalis
|
Sarantis Paskalis
|
||||||
|
@ -80,14 +80,10 @@ Current Privoxy Team:
|
||||||
<literallayout>
|
<literallayout>
|
||||||
Ken Arromdee
|
Ken Arromdee
|
||||||
Devin Bayer
|
Devin Bayer
|
||||||
Havard Berland
|
|
||||||
Gergely Bor
|
Gergely Bor
|
||||||
Francois Botha
|
|
||||||
Reiner Buehl
|
Reiner Buehl
|
||||||
Andrew J. Caines
|
Andrew J. Caines
|
||||||
Clifford Caoile
|
Clifford Caoile
|
||||||
Wan-Teh Chang
|
|
||||||
Billy Crook
|
|
||||||
Frédéric Crozat
|
Frédéric Crozat
|
||||||
Michael T. Davis
|
Michael T. Davis
|
||||||
Mattes Dolak
|
Mattes Dolak
|
||||||
|
@ -99,7 +95,6 @@ Current Privoxy Team:
|
||||||
Stephen Gildea
|
Stephen Gildea
|
||||||
Daniel Griscom
|
Daniel Griscom
|
||||||
Felix Gröbert
|
Felix Gröbert
|
||||||
Jeff H.
|
|
||||||
Aaron Hamid
|
Aaron Hamid
|
||||||
Darel Henman
|
Darel Henman
|
||||||
Magnus Holmgren
|
Magnus Holmgren
|
||||||
|
@ -113,17 +108,13 @@ Current Privoxy Team:
|
||||||
Bert van Leeuwen
|
Bert van Leeuwen
|
||||||
Don Libes
|
Don Libes
|
||||||
Paul Lieverse
|
Paul Lieverse
|
||||||
Han Liu
|
|
||||||
Toby Lyward
|
Toby Lyward
|
||||||
Wil Mahan
|
Wil Mahan
|
||||||
Jindrich Makovicka
|
Jindrich Makovicka
|
||||||
Raphael Marichez
|
|
||||||
Francois Marier
|
|
||||||
David Mediavilla
|
David Mediavilla
|
||||||
Raphael Moll
|
Raphael Moll
|
||||||
Amuro Namie
|
Amuro Namie
|
||||||
Adam Piggott
|
Adam Piggott
|
||||||
Petr Písar
|
|
||||||
Dan Price
|
Dan Price
|
||||||
Roberto Ragusa
|
Roberto Ragusa
|
||||||
Félix Rauch
|
Félix Rauch
|
||||||
|
@ -131,7 +122,6 @@ Current Privoxy Team:
|
||||||
Chung-chieh Shan
|
Chung-chieh Shan
|
||||||
Spinor S.
|
Spinor S.
|
||||||
Bart Schelstraete
|
Bart Schelstraete
|
||||||
Dan Stahlke
|
|
||||||
Oliver Stoeneberg
|
Oliver Stoeneberg
|
||||||
Peter Thoenen
|
Peter Thoenen
|
||||||
Martin Thomas
|
Martin Thomas
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,22 +4,22 @@
|
||||||
Purpose : Manual Page
|
Purpose : Manual Page
|
||||||
This file belongs into
|
This file belongs into
|
||||||
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
||||||
|
|
||||||
$Id: privoxy-man-page.sgml,v 2.40 2011/12/26 17:05:40 fabiankeil Exp $
|
$Id: privoxy-man-page.sgml,v 2.29 2009/02/19 02:20:22 hal9 Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
NOTE: Please read developer-manual/documentation.html before touching
|
NOTE: Please read developer-manual/documentation.html before touching
|
||||||
anything in this, or other Privoxy documentation.
|
anything in this, or other Privoxy documentation.
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
Doc NOTES: This is some tricky markup! There are some quirks
|
Doc NOTES: This is some tricky markup! There are some quirks
|
||||||
to how this markup is handled. It is not always so co-operative.
|
to how this markup is handled. It is not always so co-operative.
|
||||||
Please don't change the markup unless you can verify the changes
|
Please don't change the markup unless you can verify the changes
|
||||||
will improve finished output!
|
will improve finished output!
|
||||||
|
|
||||||
literallayout tags are particularly sensitive to where they are placed.
|
literallayout tags are particularly sensitive to where they are placed.
|
||||||
The 'replaceable' and 'command' tags are used here somewhat unconventionally,
|
The 'replaceable' and 'command' tags are used here somewhat unconventionally,
|
||||||
since it seems to generate the proper formatting (at least for me :).
|
since it seems to generate the proper formatting (at least for me :).
|
||||||
|
@ -28,21 +28,21 @@
|
||||||
|
|
||||||
Requires docbook2man (short perl script), see CVS
|
Requires docbook2man (short perl script), see CVS
|
||||||
http://sources.redhat.com/docbook-tools/. Also requires openjade and SGMLSpm
|
http://sources.redhat.com/docbook-tools/. Also requires openjade and SGMLSpm
|
||||||
perl module.
|
perl module.
|
||||||
|
|
||||||
For man page references, see:
|
For man page references, see:
|
||||||
http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/using.html
|
http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/using.html
|
||||||
http://docbook.org/tdg/en/html/ch02.html#making-refentry
|
http://docbook.org/tdg/en/html/ch02.html#making-refentry
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[
|
||||||
<!entity % dummy "IGNORE">
|
<!entity % dummy "IGNORE">
|
||||||
<!entity p-intro SYSTEM "privoxy.sgml">
|
<!entity p-intro SYSTEM "privoxy.sgml">
|
||||||
<!entity seealso SYSTEM "seealso.sgml">
|
<!entity seealso SYSTEM "seealso.sgml">
|
||||||
<!entity copyright SYSTEM "copyright.sgml">
|
<!entity copyright SYSTEM "copyright.sgml">
|
||||||
<!entity license SYSTEM "license.sgml">
|
<!entity license SYSTEM "license.sgml">
|
||||||
<!entity authors SYSTEM "p-authors.sgml">
|
<!entity authors SYSTEM "p-authors.sgml">
|
||||||
<!entity p-version "3.0.19">
|
<!entity p-version "3.0.11">
|
||||||
<!entity p-status "stable">
|
<!entity p-status "stable">
|
||||||
<!entity % p-not-stable "IGNORE">
|
<!entity % p-not-stable "IGNORE">
|
||||||
<!entity % p-stable "INCLUDE">
|
<!entity % p-stable "INCLUDE">
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
<date>2009-02-15</date>
|
<date>2009-02-15</date>
|
||||||
</refentryinfo>
|
</refentryinfo>
|
||||||
<refmeta>
|
<refmeta>
|
||||||
<refentrytitle>privoxy</refentrytitle>
|
<refentrytitle>privoxy</refentrytitle>
|
||||||
<manvolnum>1</manvolnum>
|
<manvolnum>1</manvolnum>
|
||||||
<refmiscinfo>
|
<refmiscinfo>
|
||||||
Privoxy &p-version;<![%p-not-stable;[ &p-status;]]>
|
Privoxy &p-version;<![%p-not-stable;[ &p-status;]]>
|
||||||
|
@ -70,16 +70,16 @@
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
|
||||||
<refsynopsisdiv>
|
<refsynopsisdiv>
|
||||||
<cmdsynopsis>
|
<cmdsynopsis>
|
||||||
<command>privoxy</command>
|
<command>privoxy</command>
|
||||||
<arg><option>--help</option></arg>
|
<arg><option>--help</option></arg>
|
||||||
<arg><option>--version</option></arg>
|
<arg><option>--version</option></arg>
|
||||||
<arg><option>--no-daemon</option></arg>
|
<arg><option>--no-daemon</option></arg>
|
||||||
<arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>
|
<arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>
|
||||||
<arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg>
|
<arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg>
|
||||||
<arg><option>--chroot</option></arg>
|
<arg><option>--chroot</option></arg>
|
||||||
<arg><option>--pre-chroot-nslookup </option><replaceable class="parameter">hostname</replaceable></arg>
|
<arg><option>--pre-chroot-nslookup </option><replaceable class="parameter">hostname</replaceable></arg>
|
||||||
<arg><replaceable class="parameter">configfile</replaceable></arg>
|
<arg><replaceable class="parameter">configfile</replaceable></arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
|
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
options:
|
options:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>--help</term>
|
<term>--help</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -157,7 +157,7 @@
|
||||||
<command>Privoxy</command> process that the directory tree starts
|
<command>Privoxy</command> process that the directory tree starts
|
||||||
there. If set up carefully, this can limit the impact of possible
|
there. If set up carefully, this can limit the impact of possible
|
||||||
vulnerabilities in <command>Privoxy</command> to the files contained in
|
vulnerabilities in <command>Privoxy</command> to the files contained in
|
||||||
that hierarchy.
|
that hierarchy.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -177,7 +177,7 @@
|
||||||
If the <filename>configfile</filename> is not specified on the command line,
|
If the <filename>configfile</filename> is not specified on the command line,
|
||||||
<command>Privoxy</command> will look for a file named
|
<command>Privoxy</command> will look for a file named
|
||||||
<filename>config</filename> in the current directory. If no
|
<filename>config</filename> in the current directory. If no
|
||||||
<filename>configfile</filename> is found, <command>Privoxy</command> will
|
<filename>configfile</filename> is found, <command>Privoxy</command> will
|
||||||
fail to start.
|
fail to start.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -201,21 +201,21 @@
|
||||||
filter to build an intercepting proxy
|
filter to build an intercepting proxy
|
||||||
(see <filename>config</filename>). The default setting is for
|
(see <filename>config</filename>). The default setting is for
|
||||||
localhost, on port 8118 (configurable in the main config file). To set the
|
localhost, on port 8118 (configurable in the main config file). To set the
|
||||||
HTTP proxy in Firefox, go through: <command>Tools</command>;
|
HTTP proxy in Firefox, go through: <command>Tools</command>;
|
||||||
<command>Options</command>; <command>General</command>;
|
<command>Options</command>; <command>General</command>;
|
||||||
<command>Connection Settings</command>;
|
<command>Connection Settings</command>;
|
||||||
<command>Manual Proxy Configuration</command>.
|
<command>Manual Proxy Configuration</command>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
For Internet Explorer, go through: <command>Tools</command>;
|
For Internet Explorer, go through: <command>Tools</command>;
|
||||||
<command>Internet Properties</command>; <command>Connections</command>;
|
<command>Internet Properties</command>; <command>Connections</command>;
|
||||||
<command>LAN Settings</command>.
|
<command>LAN Settings</command>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The Secure (SSL) Proxy should also be set to the same values, otherwise
|
The Secure (SSL) Proxy should also be set to the same values, otherwise
|
||||||
https: URLs will not be proxied. Note: <command>Privoxy</command> can only
|
https: URLs will not be proxied. Note: <command>Privoxy</command> can only
|
||||||
proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
|
proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
|
||||||
HTTPS presents some limitations, and not all features will work with HTTPS
|
HTTPS presents some limitations, and not all features will work with HTTPS
|
||||||
connections.
|
connections.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -231,25 +231,25 @@
|
||||||
<command>Privoxy</command> can be configured with the various configuration
|
<command>Privoxy</command> can be configured with the various configuration
|
||||||
files. The default configuration files are: <filename>config</filename>,
|
files. The default configuration files are: <filename>config</filename>,
|
||||||
<filename>default.filter</filename>, <filename>default.action</filename> and
|
<filename>default.filter</filename>, <filename>default.action</filename> and
|
||||||
<filename>default.action</filename>. <filename>user.action</filename> should
|
<filename>default.action</filename>. <filename>user.action</filename> should
|
||||||
be used for locally defined exceptions to the default rules in
|
be used for locally defined exceptions to the default rules in
|
||||||
<filename>match-all.action</filename> and <filename>default.action</filename>,
|
<filename>match-all.action</filename> and <filename>default.action</filename>,
|
||||||
and <filename>user.filter</filename> for locally defined filters. These are
|
and <filename>user.filter</filename> for locally defined filters. These are
|
||||||
well commented. On Unix and Unix-like systems, these are located in
|
well commented. On Unix and Unix-like systems, these are located in
|
||||||
<filename>/etc/privoxy/</filename> by default.
|
<filename>/etc/privoxy/</filename> by default.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<command>Privoxy</command> uses the concept of <command>actions</command>
|
<command>Privoxy</command> uses the concept of <command>actions</command>
|
||||||
in order to manipulate the data stream between the browser and remote sites.
|
in order to manipulate the data stream between the browser and remote sites.
|
||||||
There are various actions available with specific functions for such things
|
There are various actions available with specific functions for such things
|
||||||
as blocking web sites, managing cookies, etc. These actions can be invoked
|
as blocking web sites, managing cookies, etc. These actions can be invoked
|
||||||
individually or combined, and used against individual URLs, or groups of URLs
|
individually or combined, and used against individual URLs, or groups of URLs
|
||||||
that can be defined using wildcards and regular expressions. The result is
|
that can be defined using wildcards and regular expressions. The result is
|
||||||
that the user has greatly enhanced control and freedom.
|
that the user has greatly enhanced control and freedom.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The actions list (ad blocks, etc) can also be configured with your
|
The actions list (ad blocks, etc) can also be configured with your
|
||||||
web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
|
web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
|
||||||
(assuming the configuration allows it).
|
(assuming the configuration allows it).
|
||||||
<command>Privoxy's</command> configuration parameters can also be viewed at
|
<command>Privoxy's</command> configuration parameters can also be viewed at
|
||||||
the same page. In addition, <command>Privoxy</command> can be toggled on/off.
|
the same page. In addition, <command>Privoxy</command> can be toggled on/off.
|
||||||
|
@ -268,7 +268,7 @@
|
||||||
<!-- ~~~~~ New section ~~~~~ -->
|
<!-- ~~~~~ New section ~~~~~ -->
|
||||||
<refsect1><title>Files</title>
|
<refsect1><title>Files</title>
|
||||||
<!-- this is a cheesy way to do this, but WTF. -->
|
<!-- this is a cheesy way to do this, but WTF. -->
|
||||||
<literallayout>
|
<literallayout>
|
||||||
<filename>/usr/sbin/privoxy</filename>
|
<filename>/usr/sbin/privoxy</filename>
|
||||||
<filename>/etc/privoxy/config</filename>
|
<filename>/etc/privoxy/config</filename>
|
||||||
<filename>/etc/privoxy/match-all.action</filename>
|
<filename>/etc/privoxy/match-all.action</filename>
|
||||||
|
@ -296,11 +296,11 @@
|
||||||
<!-- command tag is used here to get proper looking format -->
|
<!-- command tag is used here to get proper looking format -->
|
||||||
<command>Privoxy</command> terminates on the <command>SIGINT</command>,
|
<command>Privoxy</command> terminates on the <command>SIGINT</command>,
|
||||||
<command>SIGTERM</command> and <command>SIGABRT</command> signals. Log
|
<command>SIGTERM</command> and <command>SIGABRT</command> signals. Log
|
||||||
rotation scripts may cause a re-opening of the logfile by sending a
|
rotation scripts may cause a re-opening of the logfile by sending a
|
||||||
<command>SIGHUP</command> to <command>Privoxy</command>. Note that unlike
|
<command>SIGHUP</command> to <command>Privoxy</command>. Note that unlike
|
||||||
other daemons, <command>Privoxy</command> does not need to be made aware of
|
other daemons, <command>Privoxy</command> does not need to be made aware of
|
||||||
config file changes by <command>SIGHUP</command> -- it will detect them
|
config file changes by <command>SIGHUP</command> -- it will detect them
|
||||||
automatically.
|
automatically.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
@ -309,7 +309,7 @@
|
||||||
<refsect1><title>Notes</title>
|
<refsect1><title>Notes</title>
|
||||||
<![%p-not-stable;[
|
<![%p-not-stable;[
|
||||||
<para>
|
<para>
|
||||||
This is a &p-status; version of <command>Privoxy</command>. Not
|
This is a &p-status; version of <command>Privoxy</command>. Not
|
||||||
all features are well tested.
|
all features are well tested.
|
||||||
</para>]]>
|
</para>]]>
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/privoxy.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/privoxy.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
|
$Id: privoxy.sgml,v 2.9 2009/03/21 12:42:49 fabiankeil Exp $
|
||||||
|
|
||||||
$Id: privoxy.sgml,v 2.12 2011/09/04 11:10:12 fabiankeil Exp $
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
|
|
||||||
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
|
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -35,27 +35,10 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Privoxy is Free Software and licensed under the GNU GPLv2.
|
Privoxy is Free Software and licensed under the GPL2.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Privoxy is an associated project of Software in the Public Interest (SPI).
|
Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||||
</para>
|
<ulink url="http://www.privoxy.org/faq/general.html#DONATE">Donations are welcome</ulink>.
|
||||||
|
|
||||||
<para>
|
|
||||||
Helping hands and donations are welcome:
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<ulink url="http://www.privoxy.org/faq/general.html#PARTICIPATE"
|
|
||||||
>http://www.privoxy.org/faq/general.html#PARTICIPATE</ulink>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<ulink url="http://www.privoxy.org/faq/general.html#DONATE"
|
|
||||||
>http://www.privoxy.org/faq/general.html#DONATE</ulink>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||||
<!entity % dummy "IGNORE">
|
<!entity % dummy "IGNORE">
|
||||||
<!entity supported SYSTEM "supported.sgml">
|
<!entity supported SYSTEM "supported.sgml">
|
||||||
<!entity p-intro SYSTEM "privoxy.sgml">
|
<!entity p-intro SYSTEM "privoxy.sgml">
|
||||||
<!entity contacting SYSTEM "contacting.sgml">
|
<!entity contacting SYSTEM "contacting.sgml">
|
||||||
<!entity buildsource SYSTEM "buildsource.sgml">
|
<!entity buildsource SYSTEM "buildsource.sgml">
|
||||||
<!entity p-version "3.0.19">
|
<!entity p-version "3.0.12">
|
||||||
<!entity p-status "stable">
|
<!entity p-status "stable">
|
||||||
<!entity % p-not-stable "IGNORE">
|
<!entity % p-not-stable "IGNORE">
|
||||||
<!entity % p-stable "INCLUDE">
|
<!entity % p-stable "INCLUDE">
|
||||||
|
@ -16,23 +16,23 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/readme.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/readme.sgml,v $
|
||||||
|
|
||||||
Purpose : README for Privoxy
|
Purpose : README for Privoxy
|
||||||
|
|
||||||
|
$Id: readme.sgml,v 2.26 2009/03/21 11:32:38 hal9 Exp $
|
||||||
|
|
||||||
$Id: readme.sgml,v 2.49 2011/12/26 17:05:40 fabiankeil Exp $
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
|
|
||||||
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
|
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
NOTE: Please read developer-manual/documentation.html before touching
|
NOTE: Please read developer-manual/documentation.html before touching
|
||||||
anything in this, or other Privoxy documentation. You have been warned!
|
anything in this, or other Privoxy documentation. You have been warned!
|
||||||
Failure to abide by this rule will result in the revocation of your license
|
Failure to abide by this rule will result in the revocation of your license
|
||||||
to live a peaceful existence!
|
to live a peaceful existence!
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
===================================================================
|
===================================================================
|
||||||
READ: Document Note: This file generates the README in the top level
|
READ: Document Note: This file generates the README in the top level
|
||||||
source directory. It is generated as only a plain text file. The
|
source directory. It is generated as only a plain text file. The
|
||||||
current markup is not suitable for other formats. Build from
|
current markup is not suitable for other formats. Build from
|
||||||
Makefile with 'make dok-readme'.
|
Makefile with 'make dok-readme'.
|
||||||
===================================================================
|
===================================================================
|
||||||
|
|
||||||
|
@ -40,21 +40,21 @@
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
NOTE: The left margin spacing is *important* when using 'literallayout'
|
NOTE: The left margin spacing is *important* when using 'literallayout'
|
||||||
WYSISWYG!!! Don't mess this up!!! Careful with linebreaks too, ie
|
WYSISWYG!!! Don't mess this up!!! Careful with linebreaks too, ie
|
||||||
the para tag forces a linebreak. Tags need to be carefully placed as a result
|
the para tag forces a linebreak. Tags need to be carefully placed as a result
|
||||||
to avoid extra blank lines, etc.
|
to avoid extra blank lines, etc.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
For stable releases, change
|
For stable releases, change
|
||||||
|
|
||||||
entity % p-not-stable "INCLUDE"
|
entity % p-not-stable "INCLUDE"
|
||||||
|
|
||||||
to
|
to
|
||||||
|
|
||||||
entity % p-not-stable "IGNORE"
|
entity % p-not-stable "IGNORE"
|
||||||
|
|
||||||
in the DTD at the top. This will toggle various text 'off'. BOTH
|
in the DTD at the top. This will toggle various text 'off'. BOTH
|
||||||
MUST be toggled in this case or you will get both text referencing
|
MUST be toggled in this case or you will get both text referencing
|
||||||
stable and unstable versions. You only want one or the other!
|
stable and unstable versions. You only want one or the other!
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
@ -80,14 +80,14 @@
|
||||||
*
|
*
|
||||||
* Purpose : README file to give a short intro.
|
* Purpose : README file to give a short intro.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2011 the
|
* Copyright : Written by and Copyright (C) 2001-2009 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -102,8 +102,8 @@
|
||||||
* The GNU General Public License should be included with
|
* The GNU General Public License should be included with
|
||||||
* this file. If not, you can view it at
|
* this file. If not, you can view it at
|
||||||
* http://www.gnu.org/copyleft/gpl.html
|
* http://www.gnu.org/copyleft/gpl.html
|
||||||
* or write to the Free Software Foundation, Inc.,
|
* or write to the Free Software Foundation, Inc.,
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||||
* USA
|
* USA
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
@ -126,21 +126,45 @@
|
||||||
<!-- end boilerplate -->
|
<!-- end boilerplate -->
|
||||||
|
|
||||||
<!-- ~~~~~ New section ~~~~~ -->
|
<!-- ~~~~~ New section ~~~~~ -->
|
||||||
<sect1 id="changes" ><title>CHANGES</title>
|
<sect1 id="importantchanges" ><title>IMPORTANT CHANGES</title>
|
||||||
<para>
|
<para>
|
||||||
For a list of changes in this release, please have a
|
March 2009, Privoxy 3.0.12 is released.
|
||||||
look at the "ChangeLog", the "What's New" section or
|
</para>
|
||||||
the "Upgrader's Notes" in <citetitle>the User Manual</citetitle>.
|
<para>
|
||||||
|
This is primarily a bug fix release. See the "ChangeLog", and the "What's
|
||||||
|
New" section and the "Upgrader's Notes" in <citetitle>the User
|
||||||
|
Manual</citetitle> for details.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
February 2009, Privoxy 3.0.11 is released.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
As usual there are changes that effect the configuration. See the "ChangeLog",
|
||||||
|
and the "What's New" section and the "Upgrader's Notes" in
|
||||||
|
<citetitle>the User Manual</citetitle> for details and specifics.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
This is a stable release, and marks a departure for Privoxy development.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Previously, odd numbered releases were considered beta versions and
|
||||||
|
were only released at the end of the development cycle when the code
|
||||||
|
was already believed to be stable. Usually it was, so the stable release
|
||||||
|
contained pretty much the same code, but got a higher version number.
|
||||||
|
In the future we intend to release several snapshots between stable releases.
|
||||||
|
There will probably still be about two stable releases per year,
|
||||||
|
but hopefully about six snapshots instead of the two betas we have now.
|
||||||
|
The intentions is to make testing without CVS access easier.
|
||||||
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!-- ~~~~~ New section ~~~~~ -->
|
<!-- ~~~~~ New section ~~~~~ -->
|
||||||
<sect1 id="install" ><title>INSTALL</title>
|
<sect1 id="install" ><title>INSTALL</title>
|
||||||
<para>
|
<para>
|
||||||
See the <filename>INSTALL</filename> file in this directory, for installing
|
See the <filename>INSTALL</filename> file in this directory, for installing
|
||||||
from raw source, and the <citetitle>User Manual</citetitle>, for all other
|
from raw source, and the <citetitle>User Manual</citetitle>, for all other
|
||||||
installation types.
|
installation types.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
@ -152,7 +176,7 @@
|
||||||
HOSTNAME ][config_file]
|
HOSTNAME ][config_file]
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
See the man page or <citetitle>User Manual</citetitle> for an explanation of each option, and
|
See the man page or <citetitle>User Manual</citetitle> for an explanation of each option, and
|
||||||
other configuration and usage issues.
|
other configuration and usage issues.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
@ -160,6 +184,12 @@
|
||||||
file named 'config' in the current directory (except Win32 which will look
|
file named 'config' in the current directory (except Win32 which will look
|
||||||
for 'config.txt'). If no config_file is found, Privoxy will fail to start.
|
for 'config.txt'). If no config_file is found, Privoxy will fail to start.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Or for Red Hat and Fedora based distributions: /etc/rc.d/init.d/privoxy start
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Or Debian and Ubuntu: /etc/init.d/privoxy start
|
||||||
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!-- ~~~~~ New section ~~~~~ -->
|
<!-- ~~~~~ New section ~~~~~ -->
|
||||||
|
@ -178,7 +208,7 @@
|
||||||
<para>
|
<para>
|
||||||
Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or
|
Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or
|
||||||
whatever you specify in the config file under 'listen-address'. DEFAULT is
|
whatever you specify in the config file under 'listen-address'. DEFAULT is
|
||||||
127.0.0.1:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not try it
|
localhost:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not try it
|
||||||
with FTP or other protocols for the simple reason it does not work.
|
with FTP or other protocols for the simple reason it does not work.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
@ -197,10 +227,10 @@
|
||||||
<sect1 id="documentation"><title>DOCUMENTATION</title>
|
<sect1 id="documentation"><title>DOCUMENTATION</title>
|
||||||
<para>
|
<para>
|
||||||
There should be documentation in the 'doc' subdirectory<![%p-not-stable;[, but it
|
There should be documentation in the 'doc' subdirectory<![%p-not-stable;[, but it
|
||||||
may not be completed at this point]]>. In particular, see the
|
may not be completed at this point]]>. In particular, see the
|
||||||
<citetitle>User Manual</citetitle> there,
|
<citetitle>User Manual</citetitle> there,
|
||||||
the <citetitle>FAQ</citetitle>, and those interested in Privoxy development, should look at
|
the <citetitle>FAQ</citetitle>, and those interested in Privoxy development, should look at
|
||||||
<citetitle>developer-manual</citetitle>.
|
<citetitle>developer-manual</citetitle>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<![%p-not-stable;[
|
<![%p-not-stable;[
|
||||||
|
@ -208,12 +238,12 @@
|
||||||
may still be either comments in the source code, or the included
|
may still be either comments in the source code, or the included
|
||||||
configuration files. ]]>The source and configuration files are all well
|
configuration files. ]]>The source and configuration files are all well
|
||||||
commented. The main configuration files are: 'config', 'default.action', and
|
commented. The main configuration files are: 'config', 'default.action', and
|
||||||
'default.filter'<![%p-not-stable;[ in the top-level source directory]]>.
|
'default.filter'<![%p-not-stable;[ in the top-level source directory]]>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Included documentation may vary according to platform and packager. All
|
Included documentation may vary according to platform and packager. All
|
||||||
documentation is posted on http://www.privoxy.org, in case you don't have it,
|
documentation is posted on http://www.privoxy.org, in case you don't have it,
|
||||||
or can't find it.
|
or can't find it.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -232,7 +262,7 @@
|
||||||
<!-- </LiteralLayout> -->
|
<!-- </LiteralLayout> -->
|
||||||
<!-- </para> -->
|
<!-- </para> -->
|
||||||
<!-- <para> -->
|
<!-- <para> -->
|
||||||
<!-- $Id: readme.sgml,v 2.49 2011/12/26 17:05:40 fabiankeil Exp $ -->
|
<!-- $Id: readme.sgml,v 2.26 2009/03/21 11:32:38 hal9 Exp $ -->
|
||||||
<!-- </para> -->
|
<!-- </para> -->
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/seealso.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/seealso.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: seealso.sgml,v 2.13 2011/09/04 11:10:12 fabiankeil Exp $
|
$Id: seealso.sgml,v 2.12 2009/02/23 10:42:58 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
faq
|
faq
|
||||||
developer-manual
|
developer-manual
|
||||||
|
|
||||||
NOTE: 04/05/02, HB Removed tags. They were causing docbook2man
|
NOTE: 04/05/02, HB Removed tags. They were causing docbook2man
|
||||||
to barf.
|
to barf.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
@ -36,28 +36,28 @@
|
||||||
<simplelist>
|
<simplelist>
|
||||||
<member>
|
<member>
|
||||||
<ulink
|
<ulink
|
||||||
url="http://www.privoxy.org/">http://www.privoxy.org/</ulink>,
|
url="http://www.privoxy.org/">http://www.privoxy.org/</ulink>,
|
||||||
the <application>Privoxy</application> Home page.
|
the <application>Privoxy</application> Home page.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
<simplelist>
|
<simplelist>
|
||||||
<member>
|
<member>
|
||||||
<ulink
|
<ulink
|
||||||
url="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/</ulink>,
|
url="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/</ulink>,
|
||||||
the <application>Privoxy</application> FAQ.
|
the <application>Privoxy</application> FAQ.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
<simplelist>
|
<simplelist>
|
||||||
<member>
|
<member>
|
||||||
<ulink
|
<ulink
|
||||||
url="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/</ulink>,
|
url="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/</ulink>,
|
||||||
the <application>Privoxy</application> developer manual.
|
the <application>Privoxy</application> developer manual.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
<simplelist>
|
<simplelist>
|
||||||
<member>
|
<member>
|
||||||
<ulink url="https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/</ulink>,
|
<ulink url="https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/</ulink>,
|
||||||
the Project Page for <application>Privoxy</application> on
|
the Project Page for <application>Privoxy</application> on
|
||||||
<ulink url="http://sourceforge.net">SourceForge</ulink>.
|
<ulink url="http://sourceforge.net">SourceForge</ulink>.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
<simplelist>
|
<simplelist>
|
||||||
<member>
|
<member>
|
||||||
<ulink url="https://sourceforge.net/tracker/?group_id=11118&atid=460288">https://sourceforge.net/tracker/?group_id=11118&atid=460288</ulink>, to submit <quote>misses</quote> and other
|
<ulink url="https://sourceforge.net/tracker/?group_id=11118&atid=460288">https://sourceforge.net/tracker/?group_id=11118&atid=460288</ulink>, to submit <quote>misses</quote> and other
|
||||||
configuration related suggestions to the developers.
|
configuration related suggestions to the developers.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
<![%seealso-extra;[
|
<![%seealso-extra;[
|
||||||
|
@ -104,8 +104,8 @@
|
||||||
</simplelist>
|
</simplelist>
|
||||||
<simplelist>
|
<simplelist>
|
||||||
<member>
|
<member>
|
||||||
<ulink url="https://www.torproject.org/">https://www.torproject.org/</ulink>,
|
<ulink url="https://www.torproject.org/">https://www.torproject.org/</ulink>,
|
||||||
<application>Tor</application> can help anonymize web browsing,
|
<application>Tor</application> can help anonymize web browsing,
|
||||||
web publishing, instant messaging, IRC, SSH, and other applications.
|
web publishing, instant messaging, IRC, SSH, and other applications.
|
||||||
</member>
|
</member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
File : $Source: /cvsroot/ijbswa/current/doc/source/supported.sgml,v $
|
File : $Source: /cvsroot/ijbswa/current/doc/source/supported.sgml,v $
|
||||||
|
|
||||||
Purpose : Entity included in other project documents.
|
Purpose : Entity included in other project documents.
|
||||||
|
|
||||||
$Id: supported.sgml,v 2.10 2011/09/04 11:10:12 fabiankeil Exp $
|
$Id: supported.sgml,v 2.9 2008/01/17 01:49:51 hal9 Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
This file used for inclusion with other documents only.
|
This file used for inclusion with other documents only.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
If you make changes to this file, please verify the finished
|
If you make changes to this file, please verify the finished
|
||||||
docs all display as intended.
|
docs all display as intended.
|
||||||
|
|
||||||
This file is included into:
|
This file is included into:
|
||||||
|
@ -34,13 +34,13 @@
|
||||||
<para>
|
<para>
|
||||||
But any operating system that runs TCP/IP, can conceivably take advantage of
|
But any operating system that runs TCP/IP, can conceivably take advantage of
|
||||||
<application>Privoxy</application> in a networked situation where
|
<application>Privoxy</application> in a networked situation where
|
||||||
<application>Privoxy</application> would run as a server on a LAN gateway.
|
<application>Privoxy</application> would run as a server on a LAN gateway.
|
||||||
Then only the <quote>gateway</quote> needs to be running one of the above
|
Then only the <quote>gateway</quote> needs to be running one of the above
|
||||||
operating systems.
|
operating systems.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Source code is freely available, so porting to other operating systems
|
Source code is freely available, so porting to other operating systems
|
||||||
is always a possibility.
|
is always a possibility.
|
||||||
</para>
|
</para>
|
||||||
]]>
|
]]>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,7 @@
|
||||||
<!entity history SYSTEM "history.sgml">
|
<!entity history SYSTEM "history.sgml">
|
||||||
<!entity copyright SYSTEM "copyright.sgml">
|
<!entity copyright SYSTEM "copyright.sgml">
|
||||||
<!entity license SYSTEM "license.sgml">
|
<!entity license SYSTEM "license.sgml">
|
||||||
<!entity p-version "3.0.19">
|
<!entity p-version "3.0.11">
|
||||||
<!entity p-status "stable">
|
<!entity p-status "stable">
|
||||||
<!entity % p-not-stable "IGNORE">
|
<!entity % p-not-stable "IGNORE">
|
||||||
<!entity % p-stable "INCLUDE">
|
<!entity % p-stable "INCLUDE">
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
This file belongs into
|
This file belongs into
|
||||||
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
||||||
|
|
||||||
$Id: index.sgml,v 2.20 2011/12/26 17:05:40 fabiankeil Exp $
|
$Id: index.sgml,v 2.9 2009/02/19 14:12:02 fabiankeil Exp $
|
||||||
|
|
||||||
Copyright (C) 2001-2009 Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
Copyright (C) 2001-2009 Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
||||||
See LICENSE.
|
See LICENSE.
|
||||||
|
@ -90,7 +90,7 @@
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<ulink url="https://sourceforge.net/projects/ijbswa/files/">Download recent releases</ulink>
|
<ulink url="https://sourceforge.net/project/showfiles.php?group_id=11118">Download recent releases</ulink>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<!--
|
<!--
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
<para>
|
<para>
|
||||||
<!-- please leave this link absolute so this file can be bundled with -->
|
<!-- please leave this link absolute so this file can be bundled with -->
|
||||||
<!-- documentation and still used locally -->
|
<!-- documentation and still used locally -->
|
||||||
<ulink url="http://www.privoxy.org/team/index.html">Pictures of the Privoxy Team</ulink>
|
<ulink url="http://privoxy.org/team/index.html">Pictures of the Privoxy Team</ulink>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
<!-- GNUMakefile is inserting this now -->
|
<!-- GNUMakefile is inserting this now -->
|
||||||
<para>
|
<para>
|
||||||
<subscript>
|
<subscript>
|
||||||
Copyright __copy 2001-2010 by Privoxy Developers
|
Copyright __copy 2001-2009 by Privoxy Developers
|
||||||
</subscript>
|
</subscript>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -249,42 +249,6 @@
|
||||||
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
$Log: index.sgml,v $
|
$Log: index.sgml,v $
|
||||||
Revision 2.20 2011/12/26 17:05:40 fabiankeil
|
|
||||||
Bump entities for 3.0.19
|
|
||||||
|
|
||||||
Revision 2.19 2011/11/13 17:03:54 fabiankeil
|
|
||||||
Bump entities for 3.0.18 stable
|
|
||||||
|
|
||||||
Revision 2.18 2011/08/17 10:40:07 fabiankeil
|
|
||||||
Update the entities.
|
|
||||||
|
|
||||||
This commit is chronological out of order.
|
|
||||||
|
|
||||||
Revision 2.17 2010/11/10 21:49:38 fabiankeil
|
|
||||||
Set p-version to 3.0.17
|
|
||||||
|
|
||||||
Revision 2.16 2010/02/13 17:38:39 fabiankeil
|
|
||||||
Update entities for 3.0.16 stable.
|
|
||||||
|
|
||||||
Revision 2.15 2010/02/13 16:38:18 fabiankeil
|
|
||||||
Update copyright.
|
|
||||||
|
|
||||||
Revision 2.14 2010/01/11 13:47:25 fabiankeil
|
|
||||||
Finally bump entities for 3.0.16 UNRELEASED here, too.
|
|
||||||
|
|
||||||
Revision 2.13 2009/10/10 06:07:40 fabiankeil
|
|
||||||
Prepare for 3.0.15 beta.
|
|
||||||
|
|
||||||
Revision 2.12 2009/08/01 11:48:22 fabiankeil
|
|
||||||
Update the "Download recent releases" URL and fix the "Pictures of the Privoxy Team" URL.
|
|
||||||
privoxy.org redirects to www.privoxy.org anyway.
|
|
||||||
|
|
||||||
Revision 2.11 2009/07/18 16:24:39 fabiankeil
|
|
||||||
Bump entities for 3.0.14 beta.
|
|
||||||
|
|
||||||
Revision 2.10 2009/06/12 14:30:59 fabiankeil
|
|
||||||
Update entities for 3.0.13 beta.
|
|
||||||
|
|
||||||
Revision 2.9 2009/02/19 14:12:02 fabiankeil
|
Revision 2.9 2009/02/19 14:12:02 fabiankeil
|
||||||
Change link to the project page to https://.
|
Change link to the project page to https://.
|
||||||
|
|
||||||
|
|
|
@ -1,376 +1,47 @@
|
||||||
Announcing Privoxy v.3.0.19 stable
|
Announcing Privoxy v.3.0.12
|
||||||
--------------------------------------------------------------------
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
This is a bug-fix release for the previously released
|
Privoxy 3.0.12-stable is primarily a bugfix release.
|
||||||
Privoxy 3.0.18. One of the fixes addresses a security issue.
|
|
||||||
|
See http://www.privoxy.org/3.0.12/user-manual/whatsnew.html for details.
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
ChangeLog for Privoxy
|
ChangeLog for Privoxy
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
*** Version 3.0.19 Stable ***
|
*** Version 3.0.12 ***
|
||||||
|
|
||||||
- Bug fixes:
|
- The socket-timeout option now also works on platforms whose
|
||||||
- Prevent a segmentation fault when de-chunking buffered content.
|
select() implementation modifies the timeout structure.
|
||||||
It could be triggered by malicious web servers if Privoxy was
|
Previously the timeout was triggered even if the connection
|
||||||
configured to filter the content and running on a platform
|
didn't stall. Reported by cyberpatrol.
|
||||||
where SIZE_T_MAX isn't larger than UINT_MAX, which probably
|
- The Connection: keep-alive code properly deals with files
|
||||||
includes most 32-bit systems. On those platforms, all Privoxy
|
larger than 2GB. Previously the connection was closed too
|
||||||
versions before 3.0.19 appear to be affected.
|
early.
|
||||||
To be on the safe side, this bug should be presumed to allow
|
- The content length for files above 2GB is logged correctly.
|
||||||
code execution as proving that it doesn't seems unrealistic.
|
- The user-manual directive on the show-status page links to
|
||||||
- Do not expect a response from the SOCKS4/4A server until it
|
the documentation location specified with the directive,
|
||||||
got something to respond to. This regression was introduced
|
not to the Privoxy website.
|
||||||
in 3.0.18 and prevented the SOCKS4/4A negotiation from working.
|
- When running in daemon mode, Privoxy doesn't log anything
|
||||||
Reported by qqqqqw in #3459781.
|
to the console unless there are errors before the logfile
|
||||||
|
has been opened.
|
||||||
|
- The show-status page prints warnings about invalid directives
|
||||||
|
on the same line as the directives themselves.
|
||||||
|
- Fixed several justified (but harmless) compiler warnings,
|
||||||
|
mostly on 64 bit platforms.
|
||||||
|
- The mingw32 version explicitly requests the default charset
|
||||||
|
to prevent display problems with some fonts available on more
|
||||||
|
recent Windows versions. Patch by Burberry.
|
||||||
|
- The mingw32 version uses the Privoxy icon in the alt-tab
|
||||||
|
windows. Patch by Burberry.
|
||||||
|
- The timestamp and the thread id is omitted in the "Fatal error"
|
||||||
|
message box on mingw32.
|
||||||
|
- Fixed two related mingw32-only buffer overflows. Triggering
|
||||||
|
them required control over the configuration file, therefore
|
||||||
|
this isn't seen as a security issue.
|
||||||
|
- In verbose mode, or if the new option --show-skipped-tests
|
||||||
|
is used, Privoxy-Regression-Test logs skipped tests and the
|
||||||
|
skip reason.
|
||||||
|
|
||||||
- General improvements:
|
|
||||||
- Fix an off-by-one in an error message about connect failures.
|
|
||||||
- Use a GNUMakefile variable for the webserver root directory and
|
|
||||||
update the path. Sourceforge changed it which broke various
|
|
||||||
web-related targets.
|
|
||||||
- Update the CODE_STATUS description.
|
|
||||||
|
|
||||||
*** Version 3.0.18 stable ***
|
|
||||||
|
|
||||||
- Bug fixes:
|
|
||||||
- If a generated redirect URL contains characters RFC 3986 doesn't
|
|
||||||
permit, they are (re)encoded. Not doing this makes Privoxy versions
|
|
||||||
from 3.0.5 to 3.0.17 susceptible to HTTP response splitting (CWE-113)
|
|
||||||
attacks if the +fast-redirects{check-decoded-url} action is used.
|
|
||||||
- Fix a logic bug that could cause Privoxy to reuse a server
|
|
||||||
socket after it got tainted by a server-header-tagger-induced
|
|
||||||
block that was triggered before the whole server response had
|
|
||||||
been read. If keep-alive was enabled and the request following
|
|
||||||
the blocked one was to the same host and using the same forwarding
|
|
||||||
settings, Privoxy would send it on the tainted server socket.
|
|
||||||
While the server would simply treat it as a pipelined request,
|
|
||||||
Privoxy would later on fail to properly parse the server's
|
|
||||||
response as it would try to parse the unread data from the
|
|
||||||
first response as server headers for the second one.
|
|
||||||
Regression introduced in 3.0.17.
|
|
||||||
- When implying keep-alive in client_connection(), remember that
|
|
||||||
the client didn't. Fixes a regression introduced in 3.0.13 that
|
|
||||||
would cause Privoxy to wait for additional client requests after
|
|
||||||
receiving a HTTP/1.1 request with "Connection: close" set
|
|
||||||
and connection sharing enabled.
|
|
||||||
With clients which terminates the client connection after detecting
|
|
||||||
that the whole body has been received it doesn't really matter,
|
|
||||||
but with clients that don't the connection would be kept open until
|
|
||||||
it timed out.
|
|
||||||
- Fix a subtle race condition between prepare_csp_for_next_request()
|
|
||||||
and sweep(). A thread preparing itself for the next client request
|
|
||||||
could briefly appear to be inactive.
|
|
||||||
If all other threads were already using more recent files,
|
|
||||||
the thread could get its files swept away under its feet.
|
|
||||||
So far this has only been reproduced while stress testing in
|
|
||||||
valgrind while touching action files in a loop. It's unlikely
|
|
||||||
to have caused any actual problems in the real world.
|
|
||||||
- Disable filters if SDCH compression is used unless filtering is forced.
|
|
||||||
If SDCH was combined with a supported compression algorithm, Privoxy
|
|
||||||
previously could try to decompress it and ditch the Content-Encoding
|
|
||||||
header even though the SDCH compression wasn't dealt with.
|
|
||||||
Reported by zebul666 in #3225863.
|
|
||||||
- Make a copy of the --user value and only mess with that when splitting
|
|
||||||
user and group. On some operating systems modifying the value directly
|
|
||||||
is reflected in the output of ps and friends and can be misleading.
|
|
||||||
Reported by zepard in #3292710.
|
|
||||||
- If forwarded-connect-retries is set, only retry if Privoxy is actually
|
|
||||||
forwarding the request. Previously direct connections would be retried
|
|
||||||
as well.
|
|
||||||
- Fixed a small memory leak when retrying connections with IPv6
|
|
||||||
support enabled.
|
|
||||||
- Remove an incorrect assertion in compile_dynamic_pcrs_job_list()
|
|
||||||
It could be triggered by a pcrs job with an invalid pcre
|
|
||||||
pattern (for example one that contains a lone quantifier).
|
|
||||||
- If the --user argument user[.group] contains a dot, always bail out
|
|
||||||
if no group has been specified. Previously the intended, but undocumented
|
|
||||||
(and apparently untested), behaviour was to try interpreting the whole
|
|
||||||
argument as user name, but the detection was flawed and checked for '0'
|
|
||||||
instead of '\0', thus merely preventing group names beginning with a zero.
|
|
||||||
- In html_code_map[], use a numeric character reference instead of '
|
|
||||||
which wasn't standardized before XHTML 1.0.
|
|
||||||
- Fix an invalid free when compiled with FEATURE_GRACEFUL_TERMINATION
|
|
||||||
and shut down through http://config.privoxy.org/die
|
|
||||||
- In get_actions(), fix the "temporary" backwards compatibility hack
|
|
||||||
to accept block actions without reason.
|
|
||||||
It also covered other actions that should be rejected as invalid.
|
|
||||||
Reported by Billy Crook.
|
|
||||||
|
|
||||||
- General improvements:
|
|
||||||
- Privoxy can (re)compress buffered content before delivering
|
|
||||||
it to the client. Disabled by default as most users wouldn't
|
|
||||||
benefit from it.
|
|
||||||
- The +fast-redirects{check-decoded-url} action checks URL
|
|
||||||
segments separately. If there are other parameters behind
|
|
||||||
the redirect URL, this makes it unnecessary to cut them off
|
|
||||||
by additionally using a +redirect{} pcrs command.
|
|
||||||
Initial patch submitted by Jamie Zawinski in #3429848.
|
|
||||||
- When loading action sections, verify that the referenced filters
|
|
||||||
exist. Currently missing filters only result in an error message,
|
|
||||||
but eventually the severity will be upgraded to fatal.
|
|
||||||
- Allow to bind to multiple separate addresses.
|
|
||||||
Patch set submitted by Petr Pisar in #3354485.
|
|
||||||
- Set socket_error to errno if connecting fails in rfc2553_connect_to().
|
|
||||||
Previously rejected direct connections could be incorrectly reported
|
|
||||||
as DNS issues if Privoxy was compiled with IPv6 support.
|
|
||||||
- Adjust url_code_map[] so spaces are replaced with %20 instead of '+'
|
|
||||||
While '+' can be used by client's submitting form data, this is not
|
|
||||||
actually what Privoxy is using the lookups for. This is more of a
|
|
||||||
cosmetic issue and doesn't fix any known problems.
|
|
||||||
- When compiled without FEATURE_FAST_REDIRECTS, do not silently
|
|
||||||
ignore +fast-redirect{} directives
|
|
||||||
- Added a workaround for GNU libc's strptime() reporting negative
|
|
||||||
year values when the parsed year is only specified with two digits.
|
|
||||||
On affected systems cookies with such a date would not be turned
|
|
||||||
into session cookies by the +session-cookies-only action.
|
|
||||||
Reported by Vaeinoe in #3403560
|
|
||||||
- Fixed bind failures with certain GNU libc versions if no non-loopback
|
|
||||||
IP address has been configured on the system. This is mainly an issue
|
|
||||||
if the system is using DHCP and Privoxy is started before the network
|
|
||||||
is completely configured.
|
|
||||||
Reported by Raphael Marichez in #3349356.
|
|
||||||
Additional insight from Petr Pisar.
|
|
||||||
- Privoxy log messages now use the ISO 8601 date format %Y-%m-%d.
|
|
||||||
It's only slightly longer than the old format, but contains
|
|
||||||
the full date including the year and allows sorting by date
|
|
||||||
(when grepping in multiple log files) without hassle.
|
|
||||||
- In get_last_url(), do not bother trying to decode URLs that do
|
|
||||||
not contain at least one '%' sign. It reduces the log noise and
|
|
||||||
a number of unnecessary memory allocations.
|
|
||||||
- In case of SOCKS5 failures, dump the socks response in the log message.
|
|
||||||
- Simplify the signal setup in main().
|
|
||||||
- Streamline socks5_connect() slightly.
|
|
||||||
- In socks5_connect(), require a complete socks response from the server.
|
|
||||||
Previously Privoxy didn't care how much data the server response
|
|
||||||
contained as long as the first two bytes contained the expected
|
|
||||||
values. While at it, shrink the buffer size so Privoxy can't read
|
|
||||||
more than a whole socks response.
|
|
||||||
- In chat(), do not bother to generate a client request in case of
|
|
||||||
direct CONNECT requests. It will not be used anyway.
|
|
||||||
- Reduce server_last_modified()'s stack size.
|
|
||||||
- Shorten get_http_time() by using strftime().
|
|
||||||
- Constify the known_http_methods pointers in unknown_method().
|
|
||||||
- Constify the time_formats pointers in parse_header_time().
|
|
||||||
- Constify the formerly_valid_actions pointers in action_used_to_be_valid().
|
|
||||||
- Introduce a GNUMakefile MAN_PAGE variable that defaults to privoxy.1.
|
|
||||||
The Debian package uses section 8 for the man page and this
|
|
||||||
should simplify the patch.
|
|
||||||
- Deduplicate the INADDR_NONE definition for Solaris by moving it to jbsockets.h
|
|
||||||
- In block_url(), ditch the obsolete workaround for ancient Netscape versions
|
|
||||||
that supposedly couldn't properly deal with status code 403.
|
|
||||||
- Remove a useless NULL pointer check in load_trustfile().
|
|
||||||
- Remove two useless NULL pointer checks in load_one_re_filterfile().
|
|
||||||
- Change url_code_map[] from an array of pointers to an array of arrays
|
|
||||||
It removes an unnecessary layer of indirection and on 64bit system reduces
|
|
||||||
the size of the binary a bit.
|
|
||||||
- Fix various typos. Fixes taken from Debian's 29_typos.dpatch by Roland Rosenfeld.
|
|
||||||
- Add a dok-tidy GNUMakefile target to clean up the messy HTML
|
|
||||||
generated by the other dok targets.
|
|
||||||
- GNUisms in the GNUMakefile have been removed.
|
|
||||||
- Change the HTTP version in static responses to 1.1
|
|
||||||
- Synced config.sub and config.guess with upstream
|
|
||||||
2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.
|
|
||||||
- Add a dedicated function to parse the values of toggles. Reduces duplicated
|
|
||||||
code in load_config() and provides better error handling. Invalid or missing
|
|
||||||
toggle values are now a fatal error instead of being silently ignored.
|
|
||||||
- Terminate HTML lines in static error messages with \n instead of \r\n.
|
|
||||||
- Simplify cgi_error_unknown() a bit.
|
|
||||||
- In LogPutString(), don't bother looking at pszText when not
|
|
||||||
actually logging anything.
|
|
||||||
- Change ssplit()'s fourth parameter from int to size_t.
|
|
||||||
Fixes a clang complaint.
|
|
||||||
- Add a warning that the statistics currently can't be trusted.
|
|
||||||
Mention Privoxy-Log-Parser's --statistics option as
|
|
||||||
an alternative for the time being.
|
|
||||||
- In rfc2553_connect_to(), start setting cgi->error_message on error.
|
|
||||||
- Change the expected status code returned for http://p.p/die depending
|
|
||||||
on whether or not FEATURE_GRACEFUL_TERMINATION is available.
|
|
||||||
- In cgi_die(), mark the client connection for closing.
|
|
||||||
If the client will fetch the style sheet through another connection
|
|
||||||
it gets the main thread out of the accept() state and should thus
|
|
||||||
trigger the actual shutdown.
|
|
||||||
- Add a proper CGI message for cgi_die().
|
|
||||||
- Don't enforce a logical line length limit in read_config_line().
|
|
||||||
- Slightly refactor server_last_modified() to remove useless gmtime*() calls.
|
|
||||||
- In get_content_type(), also recognize '.jpeg' as JPEG extension.
|
|
||||||
- Add '.png' to the list of recognized file extensions in get_content_type().
|
|
||||||
- In block_url(), consistently use the block reason "Request blocked by Privoxy"
|
|
||||||
In two places the reason was "Request for blocked URL" which hides the
|
|
||||||
fact that the request got blocked by Privoxy and isn't necessarily
|
|
||||||
correct as the block may be due to tags.
|
|
||||||
- In listen_loop(), reload the configuration files after accepting
|
|
||||||
a new connection instead of before.
|
|
||||||
Previously the first connection that arrived after a configuration
|
|
||||||
change would still be handled with the old configuration.
|
|
||||||
- In chat()'s receive-data loop, skip a client socket check if
|
|
||||||
the socket will be written to right away anyway. This can
|
|
||||||
increase the transfer speed for unfiltered content on fast
|
|
||||||
network connections.
|
|
||||||
- The socket timeout is used for SOCKS negotiations as well which
|
|
||||||
previously couldn't timeout.
|
|
||||||
- Don't keep the client connection alive if any configuration file
|
|
||||||
changed since the time the connection came in. This is closer to
|
|
||||||
Privoxy's behaviour before keep-alive support for client connection
|
|
||||||
has been added and also less confusing in general.
|
|
||||||
- Treat all Content-Type header values containing the pattern
|
|
||||||
'script' as a sign of text. Reported by pribog in #3134970.
|
|
||||||
|
|
||||||
- Action file improvements:
|
|
||||||
- Moved the site-specific block pattern section below the one for the
|
|
||||||
generic patterns so for requests that are matched in both, the block
|
|
||||||
reason for the domain is shown which is usually more useful than showing
|
|
||||||
the one for the generic pattern.
|
|
||||||
- Remove -prevent-compression from the fragile alias. It's no longer
|
|
||||||
used anywhere by default and isn't known to break stuff anyway.
|
|
||||||
- Add a (disabled) section to block various Facebook tracking URLs.
|
|
||||||
Reported by Dan Stahlke in #3421764.
|
|
||||||
- Add a (disabled) section to rewrite and redirect click-tracking
|
|
||||||
URLs used on news.google.com.
|
|
||||||
Reported by Dan Stahlke in #3421755.
|
|
||||||
- Unblock linuxcounter.net/.
|
|
||||||
Reported by Dan Stahlke in #3422612.
|
|
||||||
- Block 'www91.intel.com/' which is used by Omniture.
|
|
||||||
Reported by Adam Piggott in #3167370.
|
|
||||||
- Disable the handle-as-empty-doc-returns-ok option and mark it as deprecated.
|
|
||||||
Reminded by tceverling in #2790091.
|
|
||||||
- Add ".ivwbox.de/" to the "Cross-site user tracking" section.
|
|
||||||
Reported by Nettozahler in #3172525.
|
|
||||||
- Unblock and fast-redirect ".awin1.com/.*=http://".
|
|
||||||
Reported by Adam Piggott in #3170921.
|
|
||||||
- Block "b.collective-media.net/".
|
|
||||||
- Widen the Debian popcon exception to "qa.debian.org/popcon".
|
|
||||||
Seen in Debian's 05_default_action.dpatch by Roland Rosenfeld.
|
|
||||||
- Block ".gemius.pl/" which only seems to be used for user tracking.
|
|
||||||
Reported by johnd16 in #3002731. Additional input from Lee and movax.
|
|
||||||
- Disable banners-by-size filters for '.thinkgeek.com/'.
|
|
||||||
The filter only seems to catch pictures of the inventory.
|
|
||||||
- Block requests for 'go.idmnet.bbelements.com/please/showit/'.
|
|
||||||
Reported by kacperdominik in #3372959.
|
|
||||||
- Unblock adainitiative.org/.
|
|
||||||
- Add a fast-redirects exception for '.googleusercontent.com/.*=cache'.
|
|
||||||
- Add a fast-redirects exception for webcache.googleusercontent.com/.
|
|
||||||
- Unblock http://adassier.wordpress.com/ and http://adassier.files.wordpress.com/.
|
|
||||||
|
|
||||||
- Filter file improvements:
|
|
||||||
- Let the yahoo filter hide '.ads'.
|
|
||||||
- Let the msn filter hide overlay ads for Facebook 'likes' in search
|
|
||||||
results and elements with the id 's_notf_div'. They only seem to be
|
|
||||||
used to advertise site 'enhancements'.
|
|
||||||
- Let the js-events filter additionally disarm setInterval().
|
|
||||||
Suggested by dg1727 in #3423775.
|
|
||||||
|
|
||||||
- Documentation improvements:
|
|
||||||
- Clarify the effect of compiling Privoxy with zlib support.
|
|
||||||
Suggested by dg1727 in #3423782.
|
|
||||||
- Point out that the SourceForge messaging system works like a black
|
|
||||||
hole and should thus not be used to contact individual developers.
|
|
||||||
- Mention some of the problems one can experience when not explicitly
|
|
||||||
configuring an IP addresses as listen address.
|
|
||||||
- Explicitly mention that hostnames can be used instead of IP addresses
|
|
||||||
for the listen-address, that only the first address returned will be
|
|
||||||
used and what happens if the address is invalid.
|
|
||||||
Requested by Calestyo in #3302213.
|
|
||||||
|
|
||||||
- Log message improvements:
|
|
||||||
- If only the server connection is kept alive, do not pretend to
|
|
||||||
wait for a new client request.
|
|
||||||
- Remove a superfluous log message in forget_connection().
|
|
||||||
- In chat(), properly report missing server responses as such
|
|
||||||
instead of calling them empty.
|
|
||||||
- In forwarded_connect(), fix a log message nobody should ever see.
|
|
||||||
- Fix a log message in socks5_connect(), a failed write operation
|
|
||||||
was logged as failed read operation.
|
|
||||||
- Let load_one_actions_file() properly complain about a missing
|
|
||||||
'{' at the beginning of the file.
|
|
||||||
Simply stating that a line is invalid isn't particularly helpful.
|
|
||||||
- Do not claim to listen on a socket until Privoxy actually does.
|
|
||||||
Patch submitted by Petr Pisar #3354485
|
|
||||||
- Prevent a duplicated LOG_LEVEL_CLF message when sending out
|
|
||||||
the "no-server-data" response.
|
|
||||||
- Also log the client socket when dropping a connection.
|
|
||||||
- Include the destination host in the 'Request ... marked for
|
|
||||||
blocking. limit-connect{...} doesn't allow CONNECT ...' message
|
|
||||||
Patch submitted by Saperski in #3296250.
|
|
||||||
- Prevent a duplicated log message if none of the resolved IP
|
|
||||||
addresses were reachable.
|
|
||||||
- In connect_to(), do not pretend to retry if forwarded-connect-retries
|
|
||||||
is zero or unset.
|
|
||||||
- When a specified user or group can't be found, put the name in
|
|
||||||
single-quotes when logging it.
|
|
||||||
- In rfc2553_connect_to(), explain getnameinfo() errors better.
|
|
||||||
- Remove a useless log message in chat().
|
|
||||||
- When retrying to connect, also log the maximum number of connection
|
|
||||||
attempts.
|
|
||||||
- Rephrase a log message in compile_dynamic_pcrs_job_list().
|
|
||||||
Divide the error code and its meaning with a colon. Call the pcrs
|
|
||||||
job dynamic and not the filter. Filters may contain dynamic and
|
|
||||||
non-dynamic pcrs jobs at the same time. Only mention the name of
|
|
||||||
the filter or tagger, but don't claim it's a filter when it could
|
|
||||||
be a tagger.
|
|
||||||
- In a fatal error message in load_one_actions_file(), cover both
|
|
||||||
URL and TAG patterns.
|
|
||||||
- In pcrs_strerror(), properly report unknown positive error code
|
|
||||||
values as such. Previously they were handled like 0 (no error).
|
|
||||||
- In compile_dynamic_pcrs_job_list(), also log the actual error code as
|
|
||||||
pcrs_strerror() doesn't handle all errors reported by pcre.
|
|
||||||
- Don't bother trying to continue chatting if the client didn't ask for it.
|
|
||||||
Reduces log noise a bit.
|
|
||||||
- Make two fatal error message in load_one_actions_file() more descriptive.
|
|
||||||
- In cgi_send_user_manual(), log when rejecting a file name due to '/' or '..'.
|
|
||||||
- In load_file(), log a message if opening a file failed.
|
|
||||||
The CGI error message alone isn't too helpful.
|
|
||||||
- In connection_destination_matches(), improve two log messages
|
|
||||||
to help understand why the destinations don't match.
|
|
||||||
- Rephrase a log message in serve(). Client request arrival
|
|
||||||
should be differentiated from closed client connections now.
|
|
||||||
- In serve(), log if a client connection isn't reused due to a
|
|
||||||
configuration file change.
|
|
||||||
- Let mark_server_socket_tainted() always mark the server socket tainted,
|
|
||||||
just don't talk about it in cases where it has no effect. It doesn't change
|
|
||||||
Privoxy's behaviour, but makes understanding the log file easier.
|
|
||||||
|
|
||||||
- configure:
|
|
||||||
- Added a --disable-ipv6-support switch for platforms where support
|
|
||||||
is detected but doesn't actually work.
|
|
||||||
- Do not check for the existence of strerror() and memmove() twice
|
|
||||||
- Remove a useless test for setpgrp(2). Privoxy doesn't need it and
|
|
||||||
it can cause problems when cross-compiling.
|
|
||||||
- Rename the --disable-acl-files switch to --disable-acl-support.
|
|
||||||
Since about 2001, ACL directives are specified in the standard
|
|
||||||
config file.
|
|
||||||
- Update the URL of the 'Removing outdated PCRE version after the
|
|
||||||
next stable release' posting. The old URL stopped working after
|
|
||||||
one of SF's recent site "optimizations". Reported by Han Liu.
|
|
||||||
|
|
||||||
- Privoxy-Regression-Test:
|
|
||||||
- Added --shuffle-tests option to increase the chances of detection race conditions.
|
|
||||||
- Added a --local-test-file option that allows to use Privoxy-Regression-Test without Privoxy.
|
|
||||||
- Added tests for missing socks4 and socks4a forwarders.
|
|
||||||
- The --privoxy-address option now works with IPv6 addresses containing brackets, too.
|
|
||||||
- Perform limited sanity checks for parameters that are supposed to have numerical values.
|
|
||||||
- Added a --sleep-time option to specify a number of seconds to
|
|
||||||
sleep between tests, defaults to 0.
|
|
||||||
- Disable the range-requests tagger for tests that break if it's enabled.
|
|
||||||
- Log messages use the ISO 8601 date format %Y-%m-%d.
|
|
||||||
- Fix spelling in two error messages.
|
|
||||||
- In the --help output, include a list of supported tests and their default levels.
|
|
||||||
- Adjust the tests to properly deal with FEATURE_TOGGLE being disabled.
|
|
||||||
|
|
||||||
- Privoxy-Log-Parser:
|
|
||||||
- Perform limited sanity checks for command line parameters that
|
|
||||||
are supposed to have numerical values.
|
|
||||||
- Implement a --unbreak-lines-only option to try to revert MUA breakage.
|
|
||||||
- Accept and highlight: Added header: Content-Encoding: deflate
|
|
||||||
- Accept and highlight: Compressed content from 29258 to 8630 bytes.
|
|
||||||
- Accept and highlight: Client request arrived in time on socket 21.
|
|
||||||
- Highlight: Didn't receive data in time: a.fsdn.com:443
|
|
||||||
- Accept log messages with ISO 8601 time stamps, too.
|
|
||||||
|
|
||||||
- uagen:
|
|
||||||
- Bump generated Firefox version to 8.0.
|
|
||||||
- Only randomize the release date if the new --randomize-release-date
|
|
||||||
option is enabled. Firefox versions after 4 use a fixed date string
|
|
||||||
without meaning.
|
|
||||||
|
|
||||||
-----------------------------------------------------------------
|
-----------------------------------------------------------------
|
||||||
About Privoxy:
|
About Privoxy:
|
||||||
|
@ -383,18 +54,13 @@ flexible configuration and can be customized to suit individual needs and
|
||||||
tastes. It has application for both stand-alone systems and multi-user
|
tastes. It has application for both stand-alone systems and multi-user
|
||||||
networks.
|
networks.
|
||||||
|
|
||||||
Privoxy is Free Software and licensed under the GNU GPLv2.
|
Privoxy is Free Software and licensed under the GPL2.
|
||||||
|
|
||||||
Privoxy is an associated project of Software in the Public Interest (SPI).
|
Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||||
|
Donations are welcome: http://www.privoxy.org/faq/general.html#DONATE
|
||||||
Helping hands and donations are welcome:
|
|
||||||
|
|
||||||
* http://www.privoxy.org/faq/general.html#PARTICIPATE
|
|
||||||
|
|
||||||
* http://www.privoxy.org/faq/general.html#DONATE
|
|
||||||
|
|
||||||
At present, Privoxy is known to run on Windows(95, 98, ME, 2000,
|
At present, Privoxy is known to run on Windows(95, 98, ME, 2000,
|
||||||
XP, Vista), GNU/Linux (Ubuntu, RedHat, SuSE, Debian, Fedora, Gentoo and
|
XP, Vista), Linux (Ubuntu, RedHat, SuSE, Debian, Fedora, Gentoo and
|
||||||
others), Mac OSX, OS/2, AmigaOS, FreeBSD, NetBSD, OpenBSD, Solaris, and
|
others), Mac OSX, OS/2, AmigaOS, FreeBSD, NetBSD, OpenBSD, Solaris, and
|
||||||
various other flavors of Unix.
|
various other flavors of Unix.
|
||||||
|
|
||||||
|
@ -403,12 +69,7 @@ Privoxy provides many supplemental features, that give the end-user
|
||||||
more control, more privacy and more freedom:
|
more control, more privacy and more freedom:
|
||||||
|
|
||||||
|
|
||||||
* Supports "Connection: keep-alive". Outgoing connections can be kept
|
* Can keep outgoing connections alive and reuse them later on.
|
||||||
alive independently from the client. Currently not available on all
|
|
||||||
platforms.
|
|
||||||
|
|
||||||
* Supports IPv6, provided the operating system does so too,
|
|
||||||
and the configure script detects it.
|
|
||||||
|
|
||||||
* Supports tagging which allows to change the behaviour based on client
|
* Supports tagging which allows to change the behaviour based on client
|
||||||
and server headers.
|
and server headers.
|
||||||
|
@ -426,7 +87,8 @@ more control, more privacy and more freedom:
|
||||||
tracing of rule and filter effects. Remote toggling.
|
tracing of rule and filter effects. Remote toggling.
|
||||||
|
|
||||||
* Web page filtering (text replacements, removes banners based on size,
|
* Web page filtering (text replacements, removes banners based on size,
|
||||||
invisible <quote>web-bugs</quote> and HTML annoyances, etc.)
|
invisible "web-bugs", JavaScript and HTML annoyances, pop-up windows,
|
||||||
|
etc.)
|
||||||
|
|
||||||
* Modularized configuration that allows for standard settings and user
|
* Modularized configuration that allows for standard settings and user
|
||||||
settings to reside in separate files, so that installing updated actions
|
settings to reside in separate files, so that installing updated actions
|
||||||
|
@ -435,16 +97,23 @@ more control, more privacy and more freedom:
|
||||||
* Support for Perl Compatible Regular Expressions in the configuration
|
* Support for Perl Compatible Regular Expressions in the configuration
|
||||||
files, and a more sophisticated and flexible configuration syntax.
|
files, and a more sophisticated and flexible configuration syntax.
|
||||||
|
|
||||||
|
* Improved cookie management features (e.g. session based cookies).
|
||||||
|
|
||||||
* GIF de-animation.
|
* GIF de-animation.
|
||||||
|
|
||||||
* Bypass many click-tracking scripts (avoids script redirection).
|
* Bypass many click-tracking scripts (avoids script redirection).
|
||||||
|
|
||||||
|
* Multi-threaded (POSIX and native threads).
|
||||||
|
|
||||||
* User-customizable HTML templates for most proxy-generated pages (e.g.
|
* User-customizable HTML templates for most proxy-generated pages (e.g.
|
||||||
"blocked" page).
|
"blocked" page).
|
||||||
|
|
||||||
* Auto-detection and re-reading of config file changes.
|
* Auto-detection and re-reading of config file changes.
|
||||||
|
|
||||||
|
* Improved signal handling, and a true daemon mode (Unix).
|
||||||
|
|
||||||
* Most features are controllable on a per-site or per-location basis.
|
* Every feature now controllable on a per-site or per-location basis,
|
||||||
|
configuration more powerful and versatile over-all.
|
||||||
|
|
||||||
|
|
||||||
Download location:
|
Download location:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,362 +1,510 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Contacting the developers, Bug Reporting and Feature
|
REL="HOME"
|
||||||
Requests</title>
|
TITLE="Privoxy Developer Manual"
|
||||||
<meta name="GENERATOR" content=
|
HREF="index.html"><LINK
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
REL="PREVIOUS"
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
TITLE="Update the Webserver"
|
||||||
<link rel="PREVIOUS" title="Update the Webserver" href=
|
HREF="webserver-update.html"><LINK
|
||||||
"webserver-update.html">
|
REL="NEXT"
|
||||||
<link rel="NEXT" title="Privoxy Copyright, License and History" href=
|
TITLE="Privoxy Copyright, License and History"
|
||||||
"copyright.html">
|
HREF="copyright.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="STYLESHEET"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TYPE="text/css"
|
||||||
<style type="text/css">
|
HREF="../p_doc.css"><META
|
||||||
body {
|
HTTP-EQUIV="Content-Type"
|
||||||
background-color: #EEEEEE;
|
CONTENT="text/html;
|
||||||
color: #000000;
|
charset=ISO-8859-1"></HEAD
|
||||||
}
|
><BODY
|
||||||
:link { color: #0000FF }
|
CLASS="SECT1"
|
||||||
:visited { color: #840084 }
|
BGCOLOR="#EEEEEE"
|
||||||
:active { color: #0000FF }
|
TEXT="#000000"
|
||||||
span.c2 {font-style: italic}
|
LINK="#0000FF"
|
||||||
hr.c1 {text-align: left}
|
VLINK="#840084"
|
||||||
</style>
|
ALINK="#0000FF"
|
||||||
</head>
|
><DIV
|
||||||
|
CLASS="NAVHEADER"
|
||||||
<body class="SECT1">
|
><TABLE
|
||||||
<div class="NAVHEADER">
|
SUMMARY="Header navigation table"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
WIDTH="100%"
|
||||||
cellpadding="0" cellspacing="0">
|
BORDER="0"
|
||||||
<tr>
|
CELLPADDING="0"
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
CELLSPACING="0"
|
||||||
</tr>
|
><TR
|
||||||
|
><TH
|
||||||
<tr>
|
COLSPAN="3"
|
||||||
<td width="10%" align="left" valign="bottom"><a href=
|
ALIGN="center"
|
||||||
"webserver-update.html" accesskey="P">Prev</a></td>
|
>Privoxy Developer Manual</TH
|
||||||
|
></TR
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
><TR
|
||||||
|
><TD
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
WIDTH="10%"
|
||||||
"copyright.html" accesskey="N">Next</a></td>
|
ALIGN="left"
|
||||||
</tr>
|
VALIGN="bottom"
|
||||||
</table>
|
><A
|
||||||
<hr class="c1" width="100%">
|
HREF="webserver-update.html"
|
||||||
</div>
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
<div class="SECT1">
|
></TD
|
||||||
<h1 class="SECT1"><a name="CONTACT" id="CONTACT">8. Contacting the
|
><TD
|
||||||
developers, Bug Reporting and Feature Requests</a></h1>
|
WIDTH="80%"
|
||||||
|
ALIGN="center"
|
||||||
<p>We value your feedback. In fact, we rely on it to improve <span class=
|
VALIGN="bottom"
|
||||||
"APPLICATION">Privoxy</span> and its configuration. However, please note
|
></TD
|
||||||
the following hints, so we can provide you with the best support:</p>
|
><TD
|
||||||
|
WIDTH="10%"
|
||||||
<div class="SECT2">
|
ALIGN="right"
|
||||||
<h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">8.1.
|
VALIGN="bottom"
|
||||||
Get Support</a></h2>
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
<p>For casual users, our <a href=
|
ACCESSKEY="N"
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
>Next</A
|
||||||
target="_top">support forum at SourceForge</a> is probably best suited:
|
></TD
|
||||||
<a href=
|
></TR
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
></TABLE
|
||||||
target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p>
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
<p>All users are of course welcome to discuss their issues on the
|
WIDTH="100%"></DIV
|
||||||
<a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
><DIV
|
||||||
target="_top">users mailing list</a>, where the developers also hang
|
CLASS="SECT1"
|
||||||
around.</p>
|
><H1
|
||||||
|
CLASS="SECT1"
|
||||||
<p>Please don't sent private support requests to individual Privoxy
|
><A
|
||||||
developers, either use the mailing lists or the support trackers.</p>
|
NAME="CONTACT"
|
||||||
|
>8. Contacting the developers, Bug Reporting and Feature Requests</A
|
||||||
<p>If you have to contact a Privoxy developer directly for other
|
></H1
|
||||||
reasons, please send a real mail and do not bother with SourceForge's
|
><P
|
||||||
messaging system. Answers to SourceForge messages are usually bounced
|
> We value your feedback. In fact, we rely on it to improve
|
||||||
by SourceForge's mail server in which case the developer wasted time
|
<SPAN
|
||||||
writing a response you don't get. From your point of view it will look
|
CLASS="APPLICATION"
|
||||||
like your message has been completely ignored, so this is frustrating
|
>Privoxy</SPAN
|
||||||
for all parties involved.</p>
|
> and its configuration.
|
||||||
|
However, please note the following hints, so we can
|
||||||
<p>Note that the Privoxy mailing lists are moderated. Posts from
|
provide you with the best support:</P
|
||||||
unsubscribed addresses have to be accepted manually by a moderator.
|
><DIV
|
||||||
This may cause a delay of several days and if you use a subject that
|
CLASS="SECT2"
|
||||||
doesn't clearly mention Privoxy or one of its features, your message
|
><H2
|
||||||
may be accidentally discarded as spam.</p>
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
<p>If you aren't subscribed, you should therefore spend a few seconds
|
NAME="CONTACT-SUPPORT"
|
||||||
to come up with a proper subject. Additionally you should make it clear
|
>8.1. Get Support</A
|
||||||
that you want to get CC'd. Otherwise some responses will be directed to
|
></H2
|
||||||
the mailing list only, and you won't see them.</p>
|
><P
|
||||||
</div>
|
> For casual users, our
|
||||||
|
<A
|
||||||
<div class="SECT2">
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||||
<h2 class="SECT2"><a name="REPORTING" id="REPORTING">8.2. Reporting
|
TARGET="_top"
|
||||||
Problems</a></h2>
|
>support forum at SourceForge</A
|
||||||
|
>
|
||||||
<p><span class="QUOTE">"Problems"</span> for our purposes, come in two
|
is probably best suited:
|
||||||
forms:</p>
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||||
<ul>
|
TARGET="_top"
|
||||||
<li>
|
>http://sourceforge.net/tracker/?group_id=11118&atid=211118</A
|
||||||
<p>Configuration issues, such as ads that slip through, or sites
|
></P
|
||||||
that don't function properly due to one <span class=
|
><P
|
||||||
"APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
|
> All users are of course welcome to discuss their issues on the <A
|
||||||
another being turned <span class="QUOTE">"on"</span>.</p>
|
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
||||||
</li>
|
TARGET="_top"
|
||||||
|
>users
|
||||||
<li>
|
mailing list</A
|
||||||
<p><span class="QUOTE">"Bugs"</span> in the programming code that
|
>, where the developers also hang around.</P
|
||||||
makes up <span class="APPLICATION">Privoxy</span>, such as that
|
><P
|
||||||
might cause a crash.</p>
|
> Please don't sent private support requests to individual Privoxy
|
||||||
</li>
|
developers, either use the mailing lists or the support trackers.</P
|
||||||
</ul>
|
><P
|
||||||
|
> Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||||
<div class="SECT3">
|
addresses have to be accepted manually by a moderator. This may cause a
|
||||||
<h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">8.2.1.
|
delay of several days and if you use a subject that doesn't clearly
|
||||||
Reporting Ads or Other Configuration Problems</a></h3>
|
mention Privoxy or one of its features, your message may be accidentally
|
||||||
|
discarded as spam.</P
|
||||||
<p>Please send feedback on ads that slipped through, innocent images
|
><P
|
||||||
that were blocked, sites that don't work properly, and other
|
> If you aren't subscribed, you should therefore spend a few seconds
|
||||||
configuration related problem of <tt class=
|
to come up with a proper subject. Additionally you should make it clear
|
||||||
"FILENAME">default.action</tt> file, to <a href=
|
that you want to get CC'd. Otherwise some responses will be directed to
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
the mailing list only, and you won't see them.</P
|
||||||
target=
|
></DIV
|
||||||
"_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
|
><DIV
|
||||||
the Actions File Tracker.</p>
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
<p>New, improved <tt class="FILENAME">default.action</tt> files may
|
CLASS="SECT2"
|
||||||
occasionally be made available based on your feedback. These will be
|
><A
|
||||||
announced on the <a href=
|
NAME="REPORTING"
|
||||||
"http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
|
>8.2. Reporting Problems</A
|
||||||
"_top">ijbswa-announce</a> list and available from our the <a href=
|
></H2
|
||||||
"http://sourceforge.net/project/showfiles.php?group_id=11118" target=
|
><P
|
||||||
"_top">files section</a> of our <a href=
|
><SPAN
|
||||||
"http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
|
CLASS="QUOTE"
|
||||||
</div>
|
>"Problems"</SPAN
|
||||||
|
> for our purposes, come in two forms:</P
|
||||||
<div class="SECT3">
|
><P
|
||||||
<h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">8.2.2.
|
></P
|
||||||
Reporting Bugs</a></h3>
|
><UL
|
||||||
|
><LI
|
||||||
<p>Please report all bugs through our bug tracker: <a href=
|
><P
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
> Configuration issues, such as ads that slip through, or sites that
|
||||||
target=
|
don't function properly due to one <SPAN
|
||||||
"_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<p>Before doing so, please make sure that the bug has <span class=
|
>
|
||||||
"emphasis EMPHASIS c2">not already been submitted</span> and observe
|
<SPAN
|
||||||
the additional hints at the top of the <a href=
|
CLASS="QUOTE"
|
||||||
"http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
>"action"</SPAN
|
||||||
target="_top">submit form</a>. If already submitted, please feel free
|
> or another being turned <SPAN
|
||||||
to add any info to the original report that might help to solve the
|
CLASS="QUOTE"
|
||||||
issue.</p>
|
>"on"</SPAN
|
||||||
|
>.
|
||||||
<p>Please try to verify that it is a <span class=
|
</P
|
||||||
"APPLICATION">Privoxy</span> bug, and not a browser or site bug or
|
></LI
|
||||||
documented behaviour that just happens to be different than what you
|
><LI
|
||||||
expected. If unsure, try <a href=
|
><P
|
||||||
"http://config.privoxy.org/toggle?set=disable" target="_top">toggling
|
> <SPAN
|
||||||
off</a> <span class="APPLICATION">Privoxy</span>, and see if the
|
CLASS="QUOTE"
|
||||||
problem persists.</p>
|
>"Bugs"</SPAN
|
||||||
|
> in the programming code that makes up
|
||||||
<p>If you are using your own custom configuration, please try the
|
<SPAN
|
||||||
stock configs to see if the problem is configuration related. If
|
CLASS="APPLICATION"
|
||||||
you're having problems with a feature that is disabled by default,
|
>Privoxy</SPAN
|
||||||
please ask around on the mailing list if others can reproduce the
|
>, such as that might cause a crash.
|
||||||
problem.</p>
|
</P
|
||||||
|
></LI
|
||||||
<p>If you aren't using the latest Privoxy version, the bug may have
|
></UL
|
||||||
been found and fixed in the meantime. We would appreciate if you
|
><DIV
|
||||||
could take the time to <a href=
|
CLASS="SECT3"
|
||||||
"http://www.privoxy.org/user-manual/installation.html" target=
|
><H3
|
||||||
"_top">upgrade to the latest version</a> (or even the latest CVS
|
CLASS="SECT3"
|
||||||
snapshot) and verify that your bug still exists.</p>
|
><A
|
||||||
|
NAME="CONTACT-ADS"
|
||||||
<p>Please be sure to provide the following information:</p>
|
>8.2.1. Reporting Ads or Other Configuration Problems</A
|
||||||
|
></H3
|
||||||
<ul>
|
><P
|
||||||
<li>
|
> Please send feedback on ads that slipped through, innocent images that were
|
||||||
<p>The exact <span class="APPLICATION">Privoxy</span> version you
|
blocked, sites that don't work properly, and other configuration related problem of
|
||||||
are using (if you got the source from CVS, please also provide
|
<TT
|
||||||
the source code revisions as shown in <a href=
|
CLASS="FILENAME"
|
||||||
"http://config.privoxy.org/show-version" target=
|
>default.action</TT
|
||||||
"_top">http://config.privoxy.org/show-version</a>).</p>
|
> file, to
|
||||||
</li>
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p>The operating system and versions you run <span class=
|
> http://sourceforge.net/tracker/?group_id=11118&atid=460288</A
|
||||||
"APPLICATION">Privoxy</span> on, (e.g. <span class=
|
>,
|
||||||
"APPLICATION">Windows XP SP2</span>), if you are using a Unix
|
the Actions File Tracker.</P
|
||||||
flavor, sending the output of <span class="QUOTE">"uname
|
><P
|
||||||
-a"</span> should do, in case of GNU/Linux, please also name the
|
> New, improved <TT
|
||||||
distribution.</p>
|
CLASS="FILENAME"
|
||||||
</li>
|
>default.action</TT
|
||||||
|
> files may occasionally be made
|
||||||
<li>
|
available based on your feedback. These will be announced on the <A
|
||||||
<p>The name, platform, and version of the <span class=
|
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
|
||||||
"APPLICATION">browser</span> you were using (e.g. <span class=
|
TARGET="_top"
|
||||||
"APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
|
>ijbswa-announce</A
|
||||||
</li>
|
>
|
||||||
|
list and available from our the <A
|
||||||
<li>
|
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
|
||||||
<p>The URL where the problem occurred, or some way for us to
|
TARGET="_top"
|
||||||
duplicate the problem (e.g. <tt class=
|
>files section</A
|
||||||
"LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
|
> of
|
||||||
</li>
|
our <A
|
||||||
|
HREF="http://sf.net/projects/ijbswa/"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p>Whether your version of <span class=
|
>project page</A
|
||||||
"APPLICATION">Privoxy</span> is one supplied by the <span class=
|
>.</P
|
||||||
"APPLICATION">Privoxy</span> developers via SourceForge, or if
|
></DIV
|
||||||
you got your copy somewhere else.</p>
|
><DIV
|
||||||
</li>
|
CLASS="SECT3"
|
||||||
|
><H3
|
||||||
<li>
|
CLASS="SECT3"
|
||||||
<p>Whether you are using <span class="APPLICATION">Privoxy</span>
|
><A
|
||||||
in tandem with another proxy such as <span class=
|
NAME="CONTACT-BUGS"
|
||||||
"APPLICATION">Tor</span>. If so, please temporary disable the
|
>8.2.2. Reporting Bugs</A
|
||||||
other proxy to see if the symptoms change.</p>
|
></H3
|
||||||
</li>
|
><P
|
||||||
|
> Please report all bugs through our bug tracker:
|
||||||
<li>
|
<A
|
||||||
<p>Whether you are using a personal firewall product. If so, does
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
||||||
<span class="APPLICATION">Privoxy</span> work without it?</p>
|
TARGET="_top"
|
||||||
</li>
|
>http://sourceforge.net/tracker/?group_id=11118&atid=111118</A
|
||||||
|
>. </P
|
||||||
<li>
|
><P
|
||||||
<p>Any other pertinent information to help identify the problem
|
> Before doing so, please make sure that the bug has <SPAN
|
||||||
such as config or log file excerpts (yes, you should have log
|
CLASS="emphasis"
|
||||||
file entries for each action taken). To get a meaningful logfile,
|
><I
|
||||||
please make sure that the <a href=
|
CLASS="EMPHASIS"
|
||||||
"../user-manual/config.html#LOGFILE" target="_top">logfile
|
>not already been submitted</I
|
||||||
directive</a> is being used and the following <a href=
|
></SPAN
|
||||||
"../user-manual/config.html#DEBUG" target="_top">debug
|
>
|
||||||
options</a> are enabled:</p>
|
and observe the additional hints at the top of the <A
|
||||||
|
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
||||||
<p class="LITERALLAYOUT">
|
TARGET="_top"
|
||||||
debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br>
|
>submit
|
||||||
|
form</A
|
||||||
debug 2 # show each connection status<br>
|
>. If already submitted, please feel free to add any info to the
|
||||||
|
original report that might help to solve the issue.</P
|
||||||
debug 4 # show I/O status<br>
|
><P
|
||||||
|
> Please try to verify that it is a <SPAN
|
||||||
debug 8 # show header parsing<br>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
debug 128 # debug redirects<br>
|
> bug,
|
||||||
debug 256 # debug GIF de-animation<br>
|
and not a browser or site bug or documented behaviour that just happens
|
||||||
|
to be different than what you expected. If unsure,
|
||||||
debug 512 # Common Log Format<br>
|
try <A
|
||||||
|
HREF="http://config.privoxy.org/toggle?set=disable"
|
||||||
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br>
|
TARGET="_top"
|
||||||
|
>toggling
|
||||||
debug 4096 # Startup banner and warnings.<br>
|
off</A
|
||||||
|
> <SPAN
|
||||||
debug 8192 # Non-fatal errors</p>If you
|
CLASS="APPLICATION"
|
||||||
are having trouble with a filter, please additionally enable
|
>Privoxy</SPAN
|
||||||
|
>, and see if the problem persists.</P
|
||||||
<p class="LITERALLAYOUT">
|
><P
|
||||||
debug 64 # debug regular expression filters</p>If
|
> If you are using your own custom configuration, please try
|
||||||
you are using Privoxy 3.0.17 or later and suspect that it
|
the stock configs to see if the problem is configuration related.
|
||||||
interprets the request or the response incorrectly, please enable
|
If you're having problems with a feature that is disabled by default,
|
||||||
|
please ask around on the mailing list if others can reproduce the problem.</P
|
||||||
<p class="LITERALLAYOUT">
|
><P
|
||||||
debug 32768 # log all data read from the network</p>Note
|
> If you aren't using the latest Privoxy version, the bug may have been found
|
||||||
that Privoxy log files may contain sensitive information so
|
and fixed in the meantime. We would appreciate if you could take the time
|
||||||
please don't submit any logfiles you didn't read first. You can
|
to <A
|
||||||
mask sensitive information as long as it's clear that you removed
|
HREF="http://www.privoxy.org/user-manual/installation.html"
|
||||||
something.
|
TARGET="_top"
|
||||||
</li>
|
>upgrade
|
||||||
</ul>
|
to the latest version</A
|
||||||
|
> (or even the latest CVS snapshot) and verify
|
||||||
<p>You don't have to tell us your actual name when filing a problem
|
that your bug still exists.</P
|
||||||
report, but if you don't, please use a nickname so we can
|
><P
|
||||||
differentiate between your messages and the ones entered by other
|
>Please be sure to provide the following information:</P
|
||||||
"anonymous" users that may respond to your request if they have the
|
><P
|
||||||
same problem or already found a solution. Note that due to spam the
|
> <P
|
||||||
trackers may not always allow to post without being logged into
|
></P
|
||||||
SourceForge. If that's the case, you are still free to create a login
|
><UL
|
||||||
that isn't directly linked to your name, though.</p>
|
><LI
|
||||||
|
><P
|
||||||
<p>Please also check the status of your request a few days after
|
> The exact <SPAN
|
||||||
submitting it, as we may request additional information. If you use a
|
CLASS="APPLICATION"
|
||||||
SF id, you should automatically get a mail when someone responds to
|
>Privoxy</SPAN
|
||||||
your request. Please don't bother to add an email address when using
|
> version you are using
|
||||||
the tracker. If you prefer to communicate through email, just use one
|
(if you got the source from CVS, please also provide the source code revisions
|
||||||
of the mailing lists directly.</p>
|
as shown in <A
|
||||||
|
HREF="http://config.privoxy.org/show-version"
|
||||||
<p>If you are new to reporting problems, you might be interested in
|
TARGET="_top"
|
||||||
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
|
>http://config.privoxy.org/show-version</A
|
||||||
target="_top">How to Report Bugs Effectively</a>.</p>
|
>).
|
||||||
|
</P
|
||||||
<p>The <a href=
|
></LI
|
||||||
"http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
><LI
|
||||||
target="_top">appendix of the Privoxy User Manual</a> also has
|
><P
|
||||||
helpful information on understanding <tt class=
|
> The operating system and versions you run
|
||||||
"LITERAL">actions</tt>, and <tt class="LITERAL">action</tt>
|
<SPAN
|
||||||
debugging.</p>
|
CLASS="APPLICATION"
|
||||||
</div>
|
>Privoxy</SPAN
|
||||||
</div>
|
> on, (e.g. <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<div class="SECT2">
|
>Windows
|
||||||
<h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">8.3.
|
XP SP2</SPAN
|
||||||
Request New Features</a></h2>
|
>), if you are using a Unix flavor,
|
||||||
|
sending the output of <SPAN
|
||||||
<p>You are welcome to submit ideas on new features or other proposals
|
CLASS="QUOTE"
|
||||||
for improvement through our feature request tracker at <a href=
|
>"uname -a"</SPAN
|
||||||
"http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
> should do,
|
||||||
target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p>
|
in case of GNU/Linux, please also name the distribution.
|
||||||
</div>
|
</P
|
||||||
|
></LI
|
||||||
<div class="SECT2">
|
><LI
|
||||||
<h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">8.4.
|
><P
|
||||||
Mailing Lists</a></h2>
|
> The name, platform, and version of the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<p>If you prefer to communicate through email, instead of using a web
|
>browser</SPAN
|
||||||
interface, feel free to use one of the mailing lists. To discuss issues
|
>
|
||||||
that haven't been completely diagnosed yet, please use the Privoxy
|
you were using (e.g. <SPAN
|
||||||
users list. Technically interested users and people who wish to
|
CLASS="APPLICATION"
|
||||||
contribute to the project are always welcome on the developers list.
|
>Internet Explorer v5.5</SPAN
|
||||||
You can find an overview of all <span class=
|
> for Mac).
|
||||||
"APPLICATION">Privoxy</span>-related mailing lists, including list
|
</P
|
||||||
archives, at: <a href="http://sourceforge.net/mail/?group_id=11118"
|
></LI
|
||||||
target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p>
|
><LI
|
||||||
</div>
|
><P
|
||||||
</div>
|
> The URL where the problem occurred, or some way for us to duplicate the
|
||||||
|
problem (e.g. <TT
|
||||||
<div class="NAVFOOTER">
|
CLASS="LITERAL"
|
||||||
<hr class="c1" width="100%">
|
>http://somesite.example.com/?somethingelse=123</TT
|
||||||
|
>).
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
</P
|
||||||
cellpadding="0" cellspacing="0">
|
></LI
|
||||||
<tr>
|
><LI
|
||||||
<td width="33%" align="left" valign="top"><a href=
|
><P
|
||||||
"webserver-update.html" accesskey="P">Prev</a></td>
|
> Whether your version of <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
>Privoxy</SPAN
|
||||||
accesskey="H">Home</a></td>
|
> is one supplied
|
||||||
|
by the <SPAN
|
||||||
<td width="33%" align="right" valign="top"><a href="copyright.html"
|
CLASS="APPLICATION"
|
||||||
accesskey="N">Next</a></td>
|
>Privoxy</SPAN
|
||||||
</tr>
|
> developers via SourceForge,
|
||||||
|
or if you got your copy somewhere else.
|
||||||
<tr>
|
</P
|
||||||
<td width="33%" align="left" valign="top">Update the Webserver</td>
|
></LI
|
||||||
|
><LI
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
><P
|
||||||
|
> Whether you are using <SPAN
|
||||||
<td width="33%" align="right" valign="top">Privoxy Copyright, License
|
CLASS="APPLICATION"
|
||||||
and History</td>
|
>Privoxy</SPAN
|
||||||
</tr>
|
> in tandem with
|
||||||
</table>
|
another proxy such as <SPAN
|
||||||
</div>
|
CLASS="APPLICATION"
|
||||||
</body>
|
>Tor</SPAN
|
||||||
</html>
|
>. If so, please
|
||||||
|
temporary disable the other proxy to see if the symptoms change.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Whether you are using a personal firewall product. If so, does
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> work without it?
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Any other pertinent information to help identify the problem such as config
|
||||||
|
or log file excerpts (yes, you should have log file entries for each
|
||||||
|
action taken).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
><P
|
||||||
|
> You don't have to tell us your actual name when filing a problem
|
||||||
|
report, but please use a nickname so we can differentiate between
|
||||||
|
your messages and the ones entered by other "anonymous" users that
|
||||||
|
may respond to your request if they have the same problem or already
|
||||||
|
found a solution.</P
|
||||||
|
><P
|
||||||
|
> Please also check the status of your request a few days after submitting
|
||||||
|
it, as we may request additional information. If you use a SF id,
|
||||||
|
you should automatically get a mail when someone responds to your request.</P
|
||||||
|
><P
|
||||||
|
> The <A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
||||||
|
TARGET="_top"
|
||||||
|
>appendix
|
||||||
|
of the Privoxy User Manual</A
|
||||||
|
> also has helpful information
|
||||||
|
on understanding <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>actions</TT
|
||||||
|
>, and <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>action</TT
|
||||||
|
> debugging. </P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="CONTACT-FEATURE"
|
||||||
|
>8.3. Request New Features</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> You are welcome to submit ideas on new features or other proposals
|
||||||
|
for improvement through our feature request tracker at
|
||||||
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://sourceforge.net/tracker/?atid=361118&group_id=11118</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="CONTACT-OTHER"
|
||||||
|
>8.4. Other</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
>For any other issues, feel free to use the mailing lists. Technically interested users
|
||||||
|
and people who wish to contribute to the project are also welcome on the developers list!
|
||||||
|
You can find an overview of all <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>-related mailing lists,
|
||||||
|
including list archives, at:
|
||||||
|
<A
|
||||||
|
HREF="http://sourceforge.net/mail/?group_id=11118"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://sourceforge.net/mail/?group_id=11118</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="webserver-update.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Update the Webserver</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy Copyright, License and History</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,161 +1,298 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy Copyright, License and History</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Privoxy Copyright, License and History</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Developer Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title=
|
TITLE="Contacting the developers, Bug Reporting and Feature Requests"
|
||||||
"Contacting the developers, Bug Reporting and Feature Requests" href=
|
HREF="contact.html"><LINK
|
||||||
"contact.html">
|
REL="NEXT"
|
||||||
<link rel="NEXT" title="See also" href="seealso.html">
|
TITLE="See also"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
HREF="seealso.html"><LINK
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
REL="STYLESHEET"
|
||||||
<style type="text/css">
|
TYPE="text/css"
|
||||||
body {
|
HREF="../p_doc.css"><META
|
||||||
background-color: #EEEEEE;
|
HTTP-EQUIV="Content-Type"
|
||||||
color: #000000;
|
CONTENT="text/html;
|
||||||
}
|
charset=ISO-8859-1"></HEAD
|
||||||
:link { color: #0000FF }
|
><BODY
|
||||||
:visited { color: #840084 }
|
CLASS="SECT1"
|
||||||
:active { color: #0000FF }
|
BGCOLOR="#EEEEEE"
|
||||||
a.c2 {font-style: italic}
|
TEXT="#000000"
|
||||||
hr.c1 {text-align: left}
|
LINK="#0000FF"
|
||||||
</style>
|
VLINK="#840084"
|
||||||
</head>
|
ALINK="#0000FF"
|
||||||
|
><DIV
|
||||||
<body class="SECT1">
|
CLASS="NAVHEADER"
|
||||||
<div class="NAVHEADER">
|
><TABLE
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
SUMMARY="Header navigation table"
|
||||||
cellpadding="0" cellspacing="0">
|
WIDTH="100%"
|
||||||
<tr>
|
BORDER="0"
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
CELLPADDING="0"
|
||||||
</tr>
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
<tr>
|
><TH
|
||||||
<td width="10%" align="left" valign="bottom"><a href="contact.html"
|
COLSPAN="3"
|
||||||
accesskey="P">Prev</a></td>
|
ALIGN="center"
|
||||||
|
>Privoxy Developer Manual</TH
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
></TR
|
||||||
|
><TR
|
||||||
<td width="10%" align="right" valign="bottom"><a href="seealso.html"
|
><TD
|
||||||
accesskey="N">Next</a></td>
|
WIDTH="10%"
|
||||||
</tr>
|
ALIGN="left"
|
||||||
</table>
|
VALIGN="bottom"
|
||||||
<hr class="c1" width="100%">
|
><A
|
||||||
</div>
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
<div class="SECT1">
|
>Prev</A
|
||||||
<h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">9. Privoxy
|
></TD
|
||||||
Copyright, License and History</a></h1>
|
><TD
|
||||||
|
WIDTH="80%"
|
||||||
<p>Copyright © 2001-2011 by Privoxy Developers <code class=
|
ALIGN="center"
|
||||||
"EMAIL"><<a href=
|
VALIGN="bottom"
|
||||||
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p>
|
></TD
|
||||||
|
><TD
|
||||||
<p>Some source code is based on code Copyright © 1997 by Anonymous
|
WIDTH="10%"
|
||||||
Coders and Junkbusters, Inc. and licensed under the <i class=
|
ALIGN="right"
|
||||||
"CITETITLE">GNU General Public License</i>.</p>
|
VALIGN="bottom"
|
||||||
|
><A
|
||||||
<div class="SECT2">
|
HREF="seealso.html"
|
||||||
<h2 class="SECT2"><a name="AEN1231" id="AEN1231">9.1. License</a></h2>
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
<p><span class="APPLICATION">Privoxy</span> is free software; you can
|
></TD
|
||||||
redistribute it and/or modify it under the terms of the <i class=
|
></TR
|
||||||
"CITETITLE">GNU General Public License</i>, version 2, as published by
|
></TABLE
|
||||||
the Free Software Foundation.</p>
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
<p>This program is distributed in the hope that it will be useful, but
|
WIDTH="100%"></DIV
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
><DIV
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class=
|
CLASS="SECT1"
|
||||||
"CITETITLE c2" href=
|
><H1
|
||||||
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
|
CLASS="SECT1"
|
||||||
"_top">GNU General Public License</a> for details.</p>
|
><A
|
||||||
|
NAME="COPYRIGHT"
|
||||||
<p>You should have received a copy of the <i class="CITETITLE">GNU
|
>9. Privoxy Copyright, License and History</A
|
||||||
GPL</i> along with this program; if not, write to the</p>
|
></H1
|
||||||
|
><P
|
||||||
<p class="ADDRESS"> Free Software<br>
|
> Copyright © 2001-2009 by Privoxy Developers <CODE
|
||||||
Foundation, Inc. <span class="STREET">51 Franklin
|
CLASS="EMAIL"
|
||||||
Street, Fifth Floor</span><br>
|
><<A
|
||||||
<span class="CITY">Boston</span>, <span class=
|
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
|
||||||
"STATE">MA</span> <span class="POSTCODE">02110-1301</span><br>
|
>ijbswa-developers@lists.sourceforge.net</A
|
||||||
<span class="COUNTRY">USA</span> </p>
|
>></CODE
|
||||||
</div>
|
></P
|
||||||
|
><P
|
||||||
<div class="SECT2">
|
> Some source code is based on code Copyright © 1997 by Anonymous Coders
|
||||||
<h2 class="SECT2"><a name="AEN1247" id="AEN1247">9.2. History</a></h2>
|
and Junkbusters, Inc. and licensed under the <I
|
||||||
|
CLASS="CITETITLE"
|
||||||
<p>A long time ago, there was the <a href=
|
>GNU General Public
|
||||||
"http://www.junkbusters.com/ijb.html" target="_top"><span class=
|
License</I
|
||||||
"APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and
|
>.</P
|
||||||
<a href="http://www.junkbusters.com/" target="_top">Junkbusters
|
><DIV
|
||||||
Corporation</a>. This saved many users a lot of pain in the early days
|
CLASS="SECT2"
|
||||||
of web advertising and user tracking.</p>
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
<p>But the web, its protocols and standards, and with it, the
|
><A
|
||||||
techniques for forcing ads on users, give up autonomy over their
|
NAME="AEN1223"
|
||||||
browsing, and for tracking them, keeps evolving. Unfortunately, the
|
>9.1. License</A
|
||||||
<span class="APPLICATION">Internet Junkbuster</span> did not. Version
|
></H2
|
||||||
2.0.2, published in 1998, was (and is) the last official <a href=
|
><P
|
||||||
"http://www.junkbusters.com/ijbdist.html#release" target=
|
> <SPAN
|
||||||
"_top">release</a> available from <a href="http://www.junkbusters.com"
|
CLASS="APPLICATION"
|
||||||
target="_top">Junkbusters Corporation</a>. Fortunately, it had been
|
>Privoxy</SPAN
|
||||||
released under the GNU <a href=
|
> is free software; you can
|
||||||
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
|
redistribute it and/or modify it under the terms of the
|
||||||
"_top">GPL</a>, which allowed further development by others.</p>
|
<I
|
||||||
|
CLASS="CITETITLE"
|
||||||
<p>So Stefan Waldherr started maintaining an improved version of the
|
>GNU General Public License</I
|
||||||
software, to which eventually a number of people contributed patches.
|
>, version 2,
|
||||||
It could already replace banners with a transparent image, and had a
|
as published by the Free Software Foundation.</P
|
||||||
first version of pop-up killing, but it was still very closely based on
|
><P
|
||||||
the original, with all its limitations, such as the lack of HTTP/1.1
|
> This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
support, flexible per-site configuration, or content modification. The
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
last release from this effort was version 2.0.2-10, published in
|
FITNESS FOR A PARTICULAR PURPOSE. See the <A
|
||||||
2000.</p>
|
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||||
|
TARGET="_top"
|
||||||
<p>Then, some <a href=
|
> <I
|
||||||
"http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target=
|
CLASS="CITETITLE"
|
||||||
"_top">developers</a> picked up the thread, and started turning the
|
>GNU General Public License</I
|
||||||
software inside out, upside down, and then reassembled it, adding many
|
></A
|
||||||
<a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
> for details.</P
|
||||||
target="_top">new features</a> along the way.</p>
|
><P
|
||||||
|
> You should have received a copy of the <I
|
||||||
<p>The result of this is <span class="APPLICATION">Privoxy</span>,
|
CLASS="CITETITLE"
|
||||||
whose first stable version, 3.0, was released August, 2002.</p>
|
>GNU GPL</I
|
||||||
</div>
|
>
|
||||||
</div>
|
along with this program; if not, write to the <P
|
||||||
|
CLASS="ADDRESS"
|
||||||
<div class="NAVFOOTER">
|
> Free Software<br>
|
||||||
<hr class="c1" width="100%">
|
Foundation, Inc. <SPAN
|
||||||
|
CLASS="STREET"
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
>51 Franklin Street, Fifth Floor</SPAN
|
||||||
cellpadding="0" cellspacing="0">
|
><br>
|
||||||
<tr>
|
<SPAN
|
||||||
<td width="33%" align="left" valign="top"><a href="contact.html"
|
CLASS="CITY"
|
||||||
accesskey="P">Prev</a></td>
|
>Boston</SPAN
|
||||||
|
>, <SPAN
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
CLASS="STATE"
|
||||||
accesskey="H">Home</a></td>
|
>MA</SPAN
|
||||||
|
> <SPAN
|
||||||
<td width="33%" align="right" valign="top"><a href="seealso.html"
|
CLASS="POSTCODE"
|
||||||
accesskey="N">Next</a></td>
|
>02110-1301</SPAN
|
||||||
</tr>
|
><br>
|
||||||
|
<SPAN
|
||||||
<tr>
|
CLASS="COUNTRY"
|
||||||
<td width="33%" align="left" valign="top">Contacting the developers,
|
>USA</SPAN
|
||||||
Bug Reporting and Feature Requests</td>
|
> </P
|
||||||
|
></P
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
></DIV
|
||||||
|
><DIV
|
||||||
<td width="33%" align="right" valign="top">See also</td>
|
CLASS="SECT2"
|
||||||
</tr>
|
><H2
|
||||||
</table>
|
CLASS="SECT2"
|
||||||
</div>
|
><A
|
||||||
</body>
|
NAME="AEN1239"
|
||||||
</html>
|
>9.2. History</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> A long time ago, there was the
|
||||||
|
<A
|
||||||
|
HREF="http://www.junkbusters.com/ijb.html"
|
||||||
|
TARGET="_top"
|
||||||
|
><SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Internet Junkbuster</SPAN
|
||||||
|
></A
|
||||||
|
>,
|
||||||
|
by Anonymous Coders and <A
|
||||||
|
HREF="http://www.junkbusters.com/"
|
||||||
|
TARGET="_top"
|
||||||
|
>Junkbusters
|
||||||
|
Corporation</A
|
||||||
|
>. This saved many users a lot of pain in the early days of
|
||||||
|
web advertising and user tracking.</P
|
||||||
|
><P
|
||||||
|
> But the web, its protocols and standards, and with it, the techniques for
|
||||||
|
forcing ads on users, give up autonomy over their browsing, and
|
||||||
|
for tracking them, keeps evolving. Unfortunately, the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Internet
|
||||||
|
Junkbuster</SPAN
|
||||||
|
> did not. Version 2.0.2, published in 1998, was
|
||||||
|
(and is) the last official
|
||||||
|
<A
|
||||||
|
HREF="http://www.junkbusters.com/ijbdist.html#release"
|
||||||
|
TARGET="_top"
|
||||||
|
>release</A
|
||||||
|
>
|
||||||
|
available from <A
|
||||||
|
HREF="http://www.junkbusters.com"
|
||||||
|
TARGET="_top"
|
||||||
|
>Junkbusters Corporation</A
|
||||||
|
>.
|
||||||
|
Fortunately, it had been released under the GNU
|
||||||
|
<A
|
||||||
|
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>GPL</A
|
||||||
|
>,
|
||||||
|
which allowed further development by others.</P
|
||||||
|
><P
|
||||||
|
> So Stefan Waldherr started maintaining an improved version of the
|
||||||
|
software, to which eventually a number of people contributed patches.
|
||||||
|
It could already replace banners with a transparent image, and had a first
|
||||||
|
version of pop-up killing, but it was still very closely based on the
|
||||||
|
original, with all its limitations, such as the lack of HTTP/1.1 support,
|
||||||
|
flexible per-site configuration, or content modification. The last release
|
||||||
|
from this effort was version 2.0.2-10, published in 2000.</P
|
||||||
|
><P
|
||||||
|
> Then, some
|
||||||
|
<A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/copyright.html#AUTHORS"
|
||||||
|
TARGET="_top"
|
||||||
|
>developers</A
|
||||||
|
>
|
||||||
|
picked up the thread, and started turning the software inside out, upside down,
|
||||||
|
and then reassembled it, adding many
|
||||||
|
<A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
||||||
|
TARGET="_top"
|
||||||
|
>new
|
||||||
|
features</A
|
||||||
|
> along the way.</P
|
||||||
|
><P
|
||||||
|
> The result of this is <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>, whose first
|
||||||
|
stable version, 3.0, was released August, 2002.
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="seealso.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Contacting the developers, Bug Reporting and Feature Requests</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>See also</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,189 +1,330 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>The CVS Repository</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>The CVS Repository</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Developer Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Introduction" href="introduction.html">
|
TITLE="Introduction"
|
||||||
<link rel="NEXT" title="Documentation Guidelines" href=
|
HREF="introduction.html"><LINK
|
||||||
"documentation.html">
|
REL="NEXT"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
TITLE="Documentation Guidelines"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
HREF="documentation.html"><LINK
|
||||||
<style type="text/css">
|
REL="STYLESHEET"
|
||||||
body {
|
TYPE="text/css"
|
||||||
background-color: #EEEEEE;
|
HREF="../p_doc.css"><META
|
||||||
color: #000000;
|
HTTP-EQUIV="Content-Type"
|
||||||
}
|
CONTENT="text/html;
|
||||||
:link { color: #0000FF }
|
charset=ISO-8859-1"></HEAD
|
||||||
:visited { color: #840084 }
|
><BODY
|
||||||
:active { color: #0000FF }
|
CLASS="SECT1"
|
||||||
span.c2 {font-style: italic}
|
BGCOLOR="#EEEEEE"
|
||||||
hr.c1 {text-align: left}
|
TEXT="#000000"
|
||||||
</style>
|
LINK="#0000FF"
|
||||||
</head>
|
VLINK="#840084"
|
||||||
|
ALINK="#0000FF"
|
||||||
<body class="SECT1">
|
><DIV
|
||||||
<div class="NAVHEADER">
|
CLASS="NAVHEADER"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><TABLE
|
||||||
cellpadding="0" cellspacing="0">
|
SUMMARY="Header navigation table"
|
||||||
<tr>
|
WIDTH="100%"
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
BORDER="0"
|
||||||
</tr>
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
<tr>
|
><TR
|
||||||
<td width="10%" align="left" valign="bottom"><a href=
|
><TH
|
||||||
"introduction.html" accesskey="P">Prev</a></td>
|
COLSPAN="3"
|
||||||
|
ALIGN="center"
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
>Privoxy Developer Manual</TH
|
||||||
|
></TR
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
><TR
|
||||||
"documentation.html" accesskey="N">Next</a></td>
|
><TD
|
||||||
</tr>
|
WIDTH="10%"
|
||||||
</table>
|
ALIGN="left"
|
||||||
<hr class="c1" width="100%">
|
VALIGN="bottom"
|
||||||
</div>
|
><A
|
||||||
|
HREF="introduction.html"
|
||||||
<div class="SECT1">
|
ACCESSKEY="P"
|
||||||
<h1 class="SECT1"><a name="CVS" id="CVS">2. The CVS Repository</a></h1>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<p>If you become part of the active development team, you will eventually
|
><TD
|
||||||
need write access to our holy grail, the CVS repository. One of the team
|
WIDTH="80%"
|
||||||
members will need to set this up for you. Please read this chapter
|
ALIGN="center"
|
||||||
completely before accessing via CVS.</p>
|
VALIGN="bottom"
|
||||||
|
></TD
|
||||||
<div class="SECT2">
|
><TD
|
||||||
<h2 class="SECT2"><a name="CVSACCESS" id="CVSACCESS">2.1. Access to
|
WIDTH="10%"
|
||||||
CVS</a></h2>
|
ALIGN="right"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>The project's CVS repository is hosted on <a href=
|
><A
|
||||||
"http://sourceforge.net/" target="_top">SourceForge.</a> Please refer
|
HREF="documentation.html"
|
||||||
to the chapters 6 and 7 in <a href=
|
ACCESSKEY="N"
|
||||||
"http://sourceforge.net/docman/?group_id=1" target="_top">SF's site
|
>Next</A
|
||||||
documentation</a> for the technical access details for your operating
|
></TD
|
||||||
system. For historical reasons, the CVS server is called <tt class=
|
></TR
|
||||||
"LITERAL">ijbswa.cvs.sourceforge.net</tt>, the repository is called
|
></TABLE
|
||||||
<tt class="LITERAL">ijbswa</tt>, and the source tree module is called
|
><HR
|
||||||
<tt class="LITERAL">current</tt>.</p>
|
ALIGN="LEFT"
|
||||||
</div>
|
WIDTH="100%"></DIV
|
||||||
|
><DIV
|
||||||
<div class="SECT2">
|
CLASS="SECT1"
|
||||||
<h2 class="SECT2"><a name="CVSBRANCHES" id="CVSBRANCHES">2.2.
|
><H1
|
||||||
Branches</a></h2>
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
<p>Within the CVS repository, there are modules and branches. As
|
NAME="CVS"
|
||||||
mentioned, the sources are in the <tt class="LITERAL">current</tt>
|
>2. The CVS Repository</A
|
||||||
<span class="QUOTE">"module"</span>. Other modules are present for
|
></H1
|
||||||
platform specific issues. There is a webview of the CVS hierarchy at
|
><P
|
||||||
<a href="http://ijbswa.cvs.sourceforge.net/ijbswa/" target=
|
> If you become part of the active development team, you will eventually
|
||||||
"_top">http://ijbswa.cvs.sourceforge.net/ijbswa/</a>, which might help
|
need write access to our holy grail, the CVS repository. One of the
|
||||||
with visualizing how these pieces fit together.</p>
|
team members will need to set this up for you. Please read
|
||||||
|
this chapter completely before accessing via CVS.
|
||||||
<p>Branches are used to fork a sub-development path from the main
|
</P
|
||||||
trunk. Within the <tt class="LITERAL">current</tt> module where the
|
><DIV
|
||||||
sources are, there is always at least one <span class=
|
CLASS="SECT2"
|
||||||
"QUOTE">"branch"</span> from the main trunk devoted to a stable release
|
><H2
|
||||||
series. The main trunk is where active development takes place for the
|
CLASS="SECT2"
|
||||||
next stable series (e.g. 3.2.x). So just prior to each stable series
|
><A
|
||||||
(e.g. 3.0.x), a branch is created just for stable series releases (e.g.
|
NAME="CVSACCESS"
|
||||||
3.0.0 -> 3.0.1 -> 3.0.2, etc). Once the initial stable release of
|
>2.1. Access to CVS</A
|
||||||
any stable branch has taken place, this branch is <span class=
|
></H2
|
||||||
"emphasis EMPHASIS c2">only used for bugfixes</span>, which have had
|
><P
|
||||||
prior testing before being committed to CVS. (See <a href=
|
> The project's CVS repository is hosted on
|
||||||
"newrelease.html#VERSIONNUMBERS">Version Numbers</a> below for details
|
<A
|
||||||
on versioning.)</p>
|
HREF="http://sourceforge.net/"
|
||||||
|
TARGET="_top"
|
||||||
<p>At one time there were two distinct branches: stable and unstable.
|
>SourceForge.</A
|
||||||
The more drastic changes were to be in the unstable branch. These
|
>
|
||||||
branches have now been merged to minimize time and effort of
|
Please refer to the chapters 6 and 7 in
|
||||||
maintaining two branches.</p>
|
<A
|
||||||
</div>
|
HREF="http://sourceforge.net/docman/?group_id=1"
|
||||||
|
TARGET="_top"
|
||||||
<div class="SECT2">
|
>SF's site
|
||||||
<h2 class="SECT2"><a name="CVSCOMMIT" id="CVSCOMMIT">2.3. CVS Commit
|
documentation</A
|
||||||
Guidelines</a></h2>
|
> for the technical access details for your
|
||||||
|
operating system. For historical reasons, the CVS server is
|
||||||
<p>The source tree is the heart of every software project. Every effort
|
called <TT
|
||||||
must be made to ensure that it is readable, compilable and consistent
|
CLASS="LITERAL"
|
||||||
at all times. There are differing guidelines for the stable branch and
|
>ijbswa.cvs.sourceforge.net</TT
|
||||||
the main development trunk, and we ask anyone with CVS access to
|
>, the repository is
|
||||||
strictly adhere to the following guidelines:</p>
|
called <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
<p>Basic Guidelines, for all branches:</p>
|
>ijbswa</TT
|
||||||
|
>, and the source tree module is called
|
||||||
<ul>
|
<TT
|
||||||
<li>
|
CLASS="LITERAL"
|
||||||
<p>Please don't commit even a small change without testing it
|
>current</TT
|
||||||
thoroughly first. When we're close to a public release, ask a
|
>.
|
||||||
fellow developer to review your changes.</p>
|
</P
|
||||||
</li>
|
></DIV
|
||||||
|
><DIV
|
||||||
<li>
|
CLASS="SECT2"
|
||||||
<p>Your commit message should give a concise overview of
|
><H2
|
||||||
<span class="emphasis EMPHASIS c2">what you changed</span> (no big
|
CLASS="SECT2"
|
||||||
details) and <span class="emphasis EMPHASIS c2">why you changed
|
><A
|
||||||
it</span> Just check previous messages for good examples.</p>
|
NAME="CVSBRANCHES"
|
||||||
</li>
|
>2.2. Branches</A
|
||||||
|
></H2
|
||||||
<li>
|
><P
|
||||||
<p>Don't use the same message on multiple files, unless it equally
|
> Within the CVS repository, there are modules and branches. As
|
||||||
applies to all those files.</p>
|
mentioned, the sources are in the <TT
|
||||||
</li>
|
CLASS="LITERAL"
|
||||||
|
>current</TT
|
||||||
<li>
|
>
|
||||||
<p>If your changes span multiple files, and the code won't
|
<SPAN
|
||||||
recompile unless all changes are committed (e.g. when changing the
|
CLASS="QUOTE"
|
||||||
signature of a function), then commit all files one after another,
|
>"module"</SPAN
|
||||||
without long delays in between. If necessary, prepare the commit
|
>. Other modules are present for platform specific
|
||||||
messages in advance.</p>
|
issues. There is a webview of the CVS hierarchy at <A
|
||||||
</li>
|
HREF="http://ijbswa.cvs.sourceforge.net/ijbswa/"
|
||||||
|
TARGET="_top"
|
||||||
<li>
|
>http://ijbswa.cvs.sourceforge.net/ijbswa/</A
|
||||||
<p>Before changing things on CVS, make sure that your changes are
|
>,
|
||||||
in line with the team's general consensus on what should be
|
which might help with visualizing how these pieces fit together.
|
||||||
done.</p>
|
</P
|
||||||
</li>
|
><P
|
||||||
|
> Branches are used to fork a sub-development path from the main trunk.
|
||||||
<li>
|
Within the <TT
|
||||||
<p>Note that near a major public release, we get more cautious.
|
CLASS="LITERAL"
|
||||||
There is always the possibility to submit a patch to the <a href=
|
>current</TT
|
||||||
"http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse"
|
> module where the sources are, there
|
||||||
target="_top">patch tracker</a> instead.</p>
|
is always at least one <SPAN
|
||||||
</li>
|
CLASS="QUOTE"
|
||||||
</ul>
|
>"branch"</SPAN
|
||||||
</div>
|
> from the main trunk
|
||||||
</div>
|
devoted to a stable release series. The main trunk is where active
|
||||||
|
development takes place for the next stable series (e.g. 3.2.x).
|
||||||
<div class="NAVFOOTER">
|
So just prior to each stable series (e.g. 3.0.x), a branch is created
|
||||||
<hr class="c1" width="100%">
|
just for stable series releases (e.g. 3.0.0 -> 3.0.1 -> 3.0.2, etc).
|
||||||
|
Once the initial stable release of any stable branch has taken place,
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
this branch is <SPAN
|
||||||
cellpadding="0" cellspacing="0">
|
CLASS="emphasis"
|
||||||
<tr>
|
><I
|
||||||
<td width="33%" align="left" valign="top"><a href="introduction.html"
|
CLASS="EMPHASIS"
|
||||||
accesskey="P">Prev</a></td>
|
>only used for bugfixes</I
|
||||||
|
></SPAN
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
>, which have
|
||||||
accesskey="H">Home</a></td>
|
had prior testing before being committed to CVS. (See <A
|
||||||
|
HREF="newrelease.html#VERSIONNUMBERS"
|
||||||
<td width="33%" align="right" valign="top"><a href=
|
>Version Numbers</A
|
||||||
"documentation.html" accesskey="N">Next</a></td>
|
> below for details on
|
||||||
</tr>
|
versioning.)
|
||||||
|
</P
|
||||||
<tr>
|
><P
|
||||||
<td width="33%" align="left" valign="top">Introduction</td>
|
> At one time there were two distinct branches: stable and unstable. The
|
||||||
|
more drastic changes were to be in the unstable branch. These branches
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
have now been merged to minimize time and effort of maintaining two
|
||||||
|
branches.
|
||||||
<td width="33%" align="right" valign="top">Documentation
|
</P
|
||||||
Guidelines</td>
|
></DIV
|
||||||
</tr>
|
><DIV
|
||||||
</table>
|
CLASS="SECT2"
|
||||||
</div>
|
><H2
|
||||||
</body>
|
CLASS="SECT2"
|
||||||
</html>
|
><A
|
||||||
|
NAME="CVSCOMMIT"
|
||||||
|
>2.3. CVS Commit Guidelines</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> The source tree is the heart of every software project. Every effort must
|
||||||
|
be made to ensure that it is readable, compilable and consistent at all
|
||||||
|
times. There are differing guidelines for the stable branch and the
|
||||||
|
main development trunk, and we ask anyone with CVS access to strictly
|
||||||
|
adhere to the following guidelines:
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> Basic Guidelines, for all branches:
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> <P
|
||||||
|
></P
|
||||||
|
><UL
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Please don't commit even
|
||||||
|
a small change without testing it thoroughly first. When we're
|
||||||
|
close to a public release, ask a fellow developer to review your
|
||||||
|
changes.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Your commit message should give a concise overview of <SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>what you
|
||||||
|
changed</I
|
||||||
|
></SPAN
|
||||||
|
> (no big details) and <SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>why you changed it</I
|
||||||
|
></SPAN
|
||||||
|
>
|
||||||
|
Just check previous messages for good examples.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Don't use the same message on multiple files, unless it equally applies to
|
||||||
|
all those files.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> If your changes span multiple files, and the code won't recompile unless
|
||||||
|
all changes are committed (e.g. when changing the signature of a function),
|
||||||
|
then commit all files one after another, without long delays in between.
|
||||||
|
If necessary, prepare the commit messages in advance.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Before changing things on CVS, make sure that your changes are in line
|
||||||
|
with the team's general consensus on what should be done.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Note that near a major public release, we get more cautious.
|
||||||
|
There is always the possibility to submit a patch to the <A
|
||||||
|
HREF="http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse"
|
||||||
|
TARGET="_top"
|
||||||
|
>patch
|
||||||
|
tracker</A
|
||||||
|
> instead.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="introduction.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="documentation.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Introduction</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Documentation Guidelines</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,116 +1,199 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Introduction</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Introduction</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Developer Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Privoxy Developer Manual" href="index.html">
|
TITLE="Privoxy Developer Manual"
|
||||||
<link rel="NEXT" title="The CVS Repository" href="cvs.html">
|
HREF="index.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="NEXT"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TITLE="The CVS Repository"
|
||||||
<style type="text/css">
|
HREF="cvs.html"><LINK
|
||||||
body {
|
REL="STYLESHEET"
|
||||||
background-color: #EEEEEE;
|
TYPE="text/css"
|
||||||
color: #000000;
|
HREF="../p_doc.css"><META
|
||||||
}
|
HTTP-EQUIV="Content-Type"
|
||||||
:link { color: #0000FF }
|
CONTENT="text/html;
|
||||||
:visited { color: #840084 }
|
charset=ISO-8859-1"></HEAD
|
||||||
:active { color: #0000FF }
|
><BODY
|
||||||
hr.c1 {text-align: left}
|
CLASS="SECT1"
|
||||||
</style>
|
BGCOLOR="#EEEEEE"
|
||||||
</head>
|
TEXT="#000000"
|
||||||
|
LINK="#0000FF"
|
||||||
<body class="SECT1">
|
VLINK="#840084"
|
||||||
<div class="NAVHEADER">
|
ALINK="#0000FF"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><DIV
|
||||||
cellpadding="0" cellspacing="0">
|
CLASS="NAVHEADER"
|
||||||
<tr>
|
><TABLE
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
SUMMARY="Header navigation table"
|
||||||
</tr>
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
<tr>
|
CELLPADDING="0"
|
||||||
<td width="10%" align="left" valign="bottom"><a href="index.html"
|
CELLSPACING="0"
|
||||||
accesskey="P">Prev</a></td>
|
><TR
|
||||||
|
><TH
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
COLSPAN="3"
|
||||||
|
ALIGN="center"
|
||||||
<td width="10%" align="right" valign="bottom"><a href="cvs.html"
|
>Privoxy Developer Manual</TH
|
||||||
accesskey="N">Next</a></td>
|
></TR
|
||||||
</tr>
|
><TR
|
||||||
</table>
|
><TD
|
||||||
<hr class="c1" width="100%">
|
WIDTH="10%"
|
||||||
</div>
|
ALIGN="left"
|
||||||
|
VALIGN="bottom"
|
||||||
<div class="SECT1">
|
><A
|
||||||
<h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1.
|
HREF="index.html"
|
||||||
Introduction</a></h1>
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
<p><span class="APPLICATION">Privoxy</span>, as an heir to <span class=
|
></TD
|
||||||
"APPLICATION">Junkbuster</span>, is a Free Software project and the code
|
><TD
|
||||||
is licensed under the GNU General Public License version 2. As such,
|
WIDTH="80%"
|
||||||
<span class="APPLICATION">Privoxy</span> development is potentially open
|
ALIGN="center"
|
||||||
to anyone who has the time, knowledge, and desire to contribute in any
|
VALIGN="bottom"
|
||||||
capacity. Our goals are simply to continue the mission, to improve
|
></TD
|
||||||
<span class="APPLICATION">Privoxy</span>, and to make it available to as
|
><TD
|
||||||
wide an audience as possible.</p>
|
WIDTH="10%"
|
||||||
|
ALIGN="right"
|
||||||
<p>One does not have to be a programmer to contribute. Packaging,
|
VALIGN="bottom"
|
||||||
testing, documenting and porting, are all important jobs as well.</p>
|
><A
|
||||||
|
HREF="cvs.html"
|
||||||
<div class="SECT2">
|
ACCESSKEY="N"
|
||||||
<h2 class="SECT2"><a name="QUICKSTART" id="QUICKSTART">1.1. Quickstart
|
>Next</A
|
||||||
to Privoxy Development</a></h2>
|
></TD
|
||||||
|
></TR
|
||||||
<p>The first step is to join the <a href=
|
></TABLE
|
||||||
"mailto:ijbswa-developers@lists.sourceforge.net" target=
|
><HR
|
||||||
"_top">developer's mailing list</a>. You can submit your ideas, or even
|
ALIGN="LEFT"
|
||||||
better patches. Patches are best submitted to the Sourceforge tracker
|
WIDTH="100%"></DIV
|
||||||
set up for this purpose, but can be sent to the list for review
|
><DIV
|
||||||
too.</p>
|
CLASS="SECT1"
|
||||||
|
><H1
|
||||||
<p>You will also need to have a cvs package installed, which will
|
CLASS="SECT1"
|
||||||
entail having ssh installed as well (which seems to be a requirement of
|
><A
|
||||||
SourceForge), in order to access the cvs repository. Having the GNU
|
NAME="INTRODUCTION"
|
||||||
build tools is also going to be important (particularly, autoconf and
|
>1. Introduction</A
|
||||||
gmake).</p>
|
></H1
|
||||||
|
><P
|
||||||
<p>For the time being (read, this section is under construction), you
|
> <SPAN
|
||||||
can also refer to the extensive comments in the source code. In fact,
|
CLASS="APPLICATION"
|
||||||
reading the code is recommended in any case.</p>
|
>Privoxy</SPAN
|
||||||
</div>
|
>, as an heir to
|
||||||
</div>
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<div class="NAVFOOTER">
|
>Junkbuster</SPAN
|
||||||
<hr class="c1" width="100%">
|
>, is a Free Software project
|
||||||
|
and the code is licensed under the GNU General Public License version 2.
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
As such, <SPAN
|
||||||
cellpadding="0" cellspacing="0">
|
CLASS="APPLICATION"
|
||||||
<tr>
|
>Privoxy</SPAN
|
||||||
<td width="33%" align="left" valign="top"><a href="index.html"
|
> development is potentially open
|
||||||
accesskey="P">Prev</a></td>
|
to anyone who has the time, knowledge, and desire to contribute
|
||||||
|
in any capacity. Our goals are simply to continue the mission,
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
to improve <SPAN
|
||||||
accesskey="H">Home</a></td>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<td width="33%" align="right" valign="top"><a href="cvs.html"
|
>, and
|
||||||
accesskey="N">Next</a></td>
|
to make it available to as wide an audience as possible.
|
||||||
</tr>
|
</P
|
||||||
|
><P
|
||||||
<tr>
|
> One does not have to be a programmer to contribute. Packaging, testing,
|
||||||
<td width="33%" align="left" valign="top">Privoxy Developer
|
documenting and porting, are all important jobs as well.
|
||||||
Manual</td>
|
</P
|
||||||
|
><DIV
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
<td width="33%" align="right" valign="top">The CVS Repository</td>
|
CLASS="SECT2"
|
||||||
</tr>
|
><A
|
||||||
</table>
|
NAME="QUICKSTART"
|
||||||
</div>
|
>1.1. Quickstart to Privoxy Development</A
|
||||||
</body>
|
></H2
|
||||||
</html>
|
><P
|
||||||
|
> The first step is to join the <A
|
||||||
|
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
|
||||||
|
TARGET="_top"
|
||||||
|
>developer's mailing list</A
|
||||||
|
>.
|
||||||
|
You can submit your ideas, or even better patches. Patches are best
|
||||||
|
submitted to the Sourceforge tracker set up for this purpose, but
|
||||||
|
can be sent to the list for review too.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> You will also need to have a cvs package installed, which will
|
||||||
|
entail having ssh installed as well (which seems to be a requirement of
|
||||||
|
SourceForge), in order to access the cvs repository. Having the GNU build
|
||||||
|
tools is also going to be important (particularly, autoconf and gmake).
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> For the time being (read, this section is under construction), you can
|
||||||
|
also refer to the extensive comments in the source code. In fact,
|
||||||
|
reading the code is recommended in any case.
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="cvs.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy Developer Manual</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>The CVS Repository</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,204 +1,405 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>See also</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>See also</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Developer Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Privoxy Copyright, License and History" href=
|
TITLE="Privoxy Copyright, License and History"
|
||||||
"copyright.html">
|
HREF="copyright.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="STYLESHEET"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TYPE="text/css"
|
||||||
<style type="text/css">
|
HREF="../p_doc.css"><META
|
||||||
body {
|
HTTP-EQUIV="Content-Type"
|
||||||
background-color: #EEEEEE;
|
CONTENT="text/html;
|
||||||
color: #000000;
|
charset=ISO-8859-1"></HEAD
|
||||||
}
|
><BODY
|
||||||
:link { color: #0000FF }
|
CLASS="SECT1"
|
||||||
:visited { color: #840084 }
|
BGCOLOR="#EEEEEE"
|
||||||
:active { color: #0000FF }
|
TEXT="#000000"
|
||||||
hr.c1 {text-align: left}
|
LINK="#0000FF"
|
||||||
</style>
|
VLINK="#840084"
|
||||||
</head>
|
ALINK="#0000FF"
|
||||||
|
><DIV
|
||||||
<body class="SECT1">
|
CLASS="NAVHEADER"
|
||||||
<div class="NAVHEADER">
|
><TABLE
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
SUMMARY="Header navigation table"
|
||||||
cellpadding="0" cellspacing="0">
|
WIDTH="100%"
|
||||||
<tr>
|
BORDER="0"
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
CELLPADDING="0"
|
||||||
</tr>
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
<tr>
|
><TH
|
||||||
<td width="10%" align="left" valign="bottom"><a href="copyright.html"
|
COLSPAN="3"
|
||||||
accesskey="P">Prev</a></td>
|
ALIGN="center"
|
||||||
|
>Privoxy Developer Manual</TH
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
></TR
|
||||||
|
><TR
|
||||||
<td width="10%" align="right" valign="bottom"> </td>
|
><TD
|
||||||
</tr>
|
WIDTH="10%"
|
||||||
</table>
|
ALIGN="left"
|
||||||
<hr class="c1" width="100%">
|
VALIGN="bottom"
|
||||||
</div>
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
<div class="SECT1">
|
ACCESSKEY="P"
|
||||||
<h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">10. See also</a></h1>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<p>Other references and sites of interest to <span class=
|
><TD
|
||||||
"APPLICATION">Privoxy</span> users:</p>
|
WIDTH="80%"
|
||||||
|
ALIGN="center"
|
||||||
<table border="0">
|
VALIGN="bottom"
|
||||||
<tbody>
|
></TD
|
||||||
<tr>
|
><TD
|
||||||
<td><a href="http://www.privoxy.org/" target=
|
WIDTH="10%"
|
||||||
"_top">http://www.privoxy.org/</a>, the <span class=
|
ALIGN="right"
|
||||||
"APPLICATION">Privoxy</span> Home page.</td>
|
VALIGN="bottom"
|
||||||
</tr>
|
> </TD
|
||||||
</tbody>
|
></TR
|
||||||
</table>
|
></TABLE
|
||||||
|
><HR
|
||||||
<table border="0">
|
ALIGN="LEFT"
|
||||||
<tbody>
|
WIDTH="100%"></DIV
|
||||||
<tr>
|
><DIV
|
||||||
<td><a href="http://www.privoxy.org/faq/" target=
|
CLASS="SECT1"
|
||||||
"_top">http://www.privoxy.org/faq/</a>, the <span class=
|
><H1
|
||||||
"APPLICATION">Privoxy</span> FAQ.</td>
|
CLASS="SECT1"
|
||||||
</tr>
|
><A
|
||||||
</tbody>
|
NAME="SEEALSO"
|
||||||
</table>
|
>10. See also</A
|
||||||
|
></H1
|
||||||
<table border="0">
|
><P
|
||||||
<tbody>
|
> Other references and sites of interest to <SPAN
|
||||||
<tr>
|
CLASS="APPLICATION"
|
||||||
<td><a href="http://www.privoxy.org/developer-manual/" target=
|
>Privoxy</SPAN
|
||||||
"_top">http://www.privoxy.org/developer-manual/</a>, the
|
>
|
||||||
<span class="APPLICATION">Privoxy</span> developer manual.</td>
|
users:</P
|
||||||
</tr>
|
><P
|
||||||
</tbody>
|
> <P
|
||||||
</table>
|
></P
|
||||||
|
><TABLE
|
||||||
<table border="0">
|
BORDER="0"
|
||||||
<tbody>
|
><TBODY
|
||||||
<tr>
|
><TR
|
||||||
<td><a href="https://sourceforge.net/projects/ijbswa/" target=
|
><TD
|
||||||
"_top">https://sourceforge.net/projects/ijbswa/</a>, the Project
|
> <A
|
||||||
Page for <span class="APPLICATION">Privoxy</span> on <a href=
|
HREF="http://www.privoxy.org/"
|
||||||
"http://sourceforge.net" target="_top">SourceForge</a>.</td>
|
TARGET="_top"
|
||||||
</tr>
|
>http://www.privoxy.org/</A
|
||||||
</tbody>
|
>,
|
||||||
</table>
|
the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<table border="0">
|
>Privoxy</SPAN
|
||||||
<tbody>
|
> Home page.
|
||||||
<tr>
|
</TD
|
||||||
<td><a href="http://config.privoxy.org/" target=
|
></TR
|
||||||
"_top">http://config.privoxy.org/</a>, the web-based user
|
></TBODY
|
||||||
interface. <span class="APPLICATION">Privoxy</span> must be running
|
></TABLE
|
||||||
for this to work. Shortcut: <a href="http://p.p/" target=
|
><P
|
||||||
"_top">http://p.p/</a></td>
|
></P
|
||||||
</tr>
|
>
|
||||||
</tbody>
|
<P
|
||||||
</table>
|
></P
|
||||||
|
><TABLE
|
||||||
<table border="0">
|
BORDER="0"
|
||||||
<tbody>
|
><TBODY
|
||||||
<tr>
|
><TR
|
||||||
<td><a href=
|
><TD
|
||||||
"https://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
> <A
|
||||||
target=
|
HREF="http://www.privoxy.org/faq/"
|
||||||
"_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
|
TARGET="_top"
|
||||||
to submit <span class="QUOTE">"misses"</span> and other
|
>http://www.privoxy.org/faq/</A
|
||||||
configuration related suggestions to the developers.</td>
|
>,
|
||||||
</tr>
|
the <SPAN
|
||||||
</tbody>
|
CLASS="APPLICATION"
|
||||||
</table>
|
>Privoxy</SPAN
|
||||||
|
> FAQ.
|
||||||
<table border="0">
|
</TD
|
||||||
<tbody>
|
></TR
|
||||||
<tr>
|
></TBODY
|
||||||
<td><a href="http://www.junkbusters.com/ht/en/cookies.html" target=
|
></TABLE
|
||||||
"_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an
|
><P
|
||||||
explanation how cookies are used to track web users.</td>
|
></P
|
||||||
</tr>
|
>
|
||||||
</tbody>
|
<P
|
||||||
</table>
|
></P
|
||||||
|
><TABLE
|
||||||
<table border="0">
|
BORDER="0"
|
||||||
<tbody>
|
><TBODY
|
||||||
<tr>
|
><TR
|
||||||
<td><a href="http://www.junkbusters.com/ijb.html" target=
|
><TD
|
||||||
"_top">http://www.junkbusters.com/ijb.html</a>, the original
|
> <A
|
||||||
Internet Junkbuster.</td>
|
HREF="http://www.privoxy.org/developer-manual/"
|
||||||
</tr>
|
TARGET="_top"
|
||||||
</tbody>
|
>http://www.privoxy.org/developer-manual/</A
|
||||||
</table>
|
>,
|
||||||
|
the <SPAN
|
||||||
<table border="0">
|
CLASS="APPLICATION"
|
||||||
<tbody>
|
>Privoxy</SPAN
|
||||||
<tr>
|
> developer manual.
|
||||||
<td><a href="http://www.squid-cache.org/" target=
|
</TD
|
||||||
"_top">http://www.squid-cache.org/</a>, a popular caching proxy,
|
></TR
|
||||||
which is often used together with <span class=
|
></TBODY
|
||||||
"APPLICATION">Privoxy</span>.</td>
|
></TABLE
|
||||||
</tr>
|
><P
|
||||||
</tbody>
|
></P
|
||||||
</table>
|
>
|
||||||
|
<P
|
||||||
<table border="0">
|
></P
|
||||||
<tbody>
|
><TABLE
|
||||||
<tr>
|
BORDER="0"
|
||||||
<td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/"
|
><TBODY
|
||||||
target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>,
|
><TR
|
||||||
<span class="APPLICATION">Polipo</span> is a caching proxy with
|
><TD
|
||||||
advanced features like pipelining, multiplexing and caching of
|
> <A
|
||||||
partial instances. In many setups it can be used as <span class=
|
HREF="https://sourceforge.net/projects/ijbswa/"
|
||||||
"APPLICATION">Squid</span> replacement.</td>
|
TARGET="_top"
|
||||||
</tr>
|
>https://sourceforge.net/projects/ijbswa/</A
|
||||||
</tbody>
|
>,
|
||||||
</table>
|
the Project Page for <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<table border="0">
|
>Privoxy</SPAN
|
||||||
<tbody>
|
> on
|
||||||
<tr>
|
<A
|
||||||
<td><a href="https://www.torproject.org/" target=
|
HREF="http://sourceforge.net"
|
||||||
"_top">https://www.torproject.org/</a>, <span class=
|
TARGET="_top"
|
||||||
"APPLICATION">Tor</span> can help anonymize web browsing, web
|
>SourceForge</A
|
||||||
publishing, instant messaging, IRC, SSH, and other
|
>.
|
||||||
applications.</td>
|
</TD
|
||||||
</tr>
|
></TR
|
||||||
</tbody>
|
></TBODY
|
||||||
</table>
|
></TABLE
|
||||||
</div>
|
><P
|
||||||
|
></P
|
||||||
<div class="NAVFOOTER">
|
>
|
||||||
<hr class="c1" width="100%">
|
<P
|
||||||
|
></P
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
><TABLE
|
||||||
cellpadding="0" cellspacing="0">
|
BORDER="0"
|
||||||
<tr>
|
><TBODY
|
||||||
<td width="33%" align="left" valign="top"><a href="copyright.html"
|
><TR
|
||||||
accesskey="P">Prev</a></td>
|
><TD
|
||||||
|
> <A
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
HREF="http://config.privoxy.org/"
|
||||||
accesskey="H">Home</a></td>
|
TARGET="_top"
|
||||||
|
>http://config.privoxy.org/</A
|
||||||
<td width="33%" align="right" valign="top"> </td>
|
>,
|
||||||
</tr>
|
the web-based user interface. <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<tr>
|
>Privoxy</SPAN
|
||||||
<td width="33%" align="left" valign="top">Privoxy Copyright, License
|
> must be
|
||||||
and History</td>
|
running for this to work. Shortcut: <A
|
||||||
|
HREF="http://p.p/"
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
TARGET="_top"
|
||||||
|
>http://p.p/</A
|
||||||
<td width="33%" align="right" valign="top"> </td>
|
>
|
||||||
</tr>
|
</TD
|
||||||
</table>
|
></TR
|
||||||
</div>
|
></TBODY
|
||||||
</body>
|
></TABLE
|
||||||
</html>
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="https://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
||||||
|
TARGET="_top"
|
||||||
|
>https://sourceforge.net/tracker/?group_id=11118&atid=460288</A
|
||||||
|
>, to submit <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"misses"</SPAN
|
||||||
|
> and other
|
||||||
|
configuration related suggestions to the developers.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.junkbusters.com/ht/en/cookies.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.junkbusters.com/ht/en/cookies.html</A
|
||||||
|
>,
|
||||||
|
an explanation how cookies are used to track web users.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.junkbusters.com/ijb.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.junkbusters.com/ijb.html</A
|
||||||
|
>,
|
||||||
|
the original Internet Junkbuster.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.squid-cache.org/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.squid-cache.org/</A
|
||||||
|
>, a popular
|
||||||
|
caching proxy, which is often used together with <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.pps.jussieu.fr/~jch/software/polipo/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.pps.jussieu.fr/~jch/software/polipo/</A
|
||||||
|
>,
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Polipo</SPAN
|
||||||
|
> is a caching proxy with advanced features
|
||||||
|
like pipelining, multiplexing and caching of partial instances. In many setups
|
||||||
|
it can be used as <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Squid</SPAN
|
||||||
|
> replacement.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="https://www.torproject.org/"
|
||||||
|
TARGET="_top"
|
||||||
|
>https://www.torproject.org/</A
|
||||||
|
>,
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Tor</SPAN
|
||||||
|
> can help anonymize web browsing,
|
||||||
|
web publishing, instant messaging, IRC, SSH, and other applications.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy Copyright, License and History</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,169 +1,259 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
|
><TITLE
|
||||||
|
>Testing Guidelines</TITLE
|
||||||
|
><META
|
||||||
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
|
REL="HOME"
|
||||||
|
TITLE="Privoxy Developer Manual"
|
||||||
|
HREF="index.html"><LINK
|
||||||
|
REL="PREVIOUS"
|
||||||
|
TITLE="Coding Guidelines"
|
||||||
|
HREF="coding.html"><LINK
|
||||||
|
REL="NEXT"
|
||||||
|
TITLE="Releasing a New Version"
|
||||||
|
HREF="newrelease.html"><LINK
|
||||||
|
REL="STYLESHEET"
|
||||||
|
TYPE="text/css"
|
||||||
|
HREF="../p_doc.css"><META
|
||||||
|
HTTP-EQUIV="Content-Type"
|
||||||
|
CONTENT="text/html;
|
||||||
|
charset=ISO-8859-1"></HEAD
|
||||||
|
><BODY
|
||||||
|
CLASS="SECT1"
|
||||||
|
BGCOLOR="#EEEEEE"
|
||||||
|
TEXT="#000000"
|
||||||
|
LINK="#0000FF"
|
||||||
|
VLINK="#840084"
|
||||||
|
ALINK="#0000FF"
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVHEADER"
|
||||||
|
><TABLE
|
||||||
|
SUMMARY="Header navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TH
|
||||||
|
COLSPAN="3"
|
||||||
|
ALIGN="center"
|
||||||
|
>Privoxy Developer Manual</TH
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="10%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="bottom"
|
||||||
|
><A
|
||||||
|
HREF="coding.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="80%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="bottom"
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="10%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="bottom"
|
||||||
|
><A
|
||||||
|
HREF="newrelease.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
|
><H1
|
||||||
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
|
NAME="TESTING"
|
||||||
|
>5. Testing Guidelines</A
|
||||||
|
></H1
|
||||||
|
><P
|
||||||
|
>To be filled.</P
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="TESTING-PLAN"
|
||||||
|
>5.1. Testplan for releases</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> Explain release numbers. major, minor. developer releases. etc.
|
||||||
|
|
||||||
<html>
|
<P
|
||||||
<head>
|
></P
|
||||||
<meta name="generator" content=
|
><OL
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
TYPE="1"
|
||||||
|
><LI
|
||||||
<title>Testing Guidelines</title>
|
><P
|
||||||
<meta name="GENERATOR" content=
|
>Remove any existing rpm with rpm -e</P
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
></LI
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
><LI
|
||||||
<link rel="PREVIOUS" title="Coding Guidelines" href="coding.html">
|
><P
|
||||||
<link rel="NEXT" title="Releasing a New Version" href="newrelease.html">
|
>Remove any file that was left over. This includes (but is not limited to)
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
<P
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
></P
|
||||||
<style type="text/css">
|
><UL
|
||||||
body {
|
><LI
|
||||||
background-color: #EEEEEE;
|
><P
|
||||||
color: #000000;
|
>/var/log/privoxy</P
|
||||||
}
|
></LI
|
||||||
:link { color: #0000FF }
|
><LI
|
||||||
:visited { color: #840084 }
|
><P
|
||||||
:active { color: #0000FF }
|
>/etc/privoxy</P
|
||||||
hr.c1 {text-align: left}
|
></LI
|
||||||
</style>
|
><LI
|
||||||
</head>
|
><P
|
||||||
|
>/usr/sbin/privoxy</P
|
||||||
<body class="SECT1">
|
></LI
|
||||||
<div class="NAVHEADER">
|
><LI
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><P
|
||||||
cellpadding="0" cellspacing="0">
|
>/etc/init.d/privoxy</P
|
||||||
<tr>
|
></LI
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
><LI
|
||||||
</tr>
|
><P
|
||||||
|
>/usr/doc/privoxy*</P
|
||||||
<tr>
|
></LI
|
||||||
<td width="10%" align="left" valign="bottom"><a href="coding.html"
|
></UL
|
||||||
accesskey="P">Prev</a></td>
|
></P
|
||||||
|
></LI
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
><LI
|
||||||
|
><P
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
>Install the rpm. Any error messages?</P
|
||||||
"newrelease.html" accesskey="N">Next</a></td>
|
></LI
|
||||||
</tr>
|
><LI
|
||||||
</table>
|
><P
|
||||||
<hr class="c1" width="100%">
|
>start,stop,status <SPAN
|
||||||
</div>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<div class="SECT1">
|
> with the specific script
|
||||||
<h1 class="SECT1"><a name="TESTING" id="TESTING">5. Testing
|
(e.g. /etc/rc.d/init/privoxy stop). Reboot your machine. Does
|
||||||
Guidelines</a></h1>
|
autostart work?</P
|
||||||
|
></LI
|
||||||
<p>To be filled.</p>
|
><LI
|
||||||
|
><P
|
||||||
<div class="SECT2">
|
>Start browsing. Does <SPAN
|
||||||
<h2 class="SECT2"><a name="TESTING-PLAN" id="TESTING-PLAN">5.1.
|
CLASS="APPLICATION"
|
||||||
Testplan for releases</a></h2>
|
>Privoxy</SPAN
|
||||||
|
> work? Logfile written?</P
|
||||||
<p>Explain release numbers. major, minor. developer releases. etc.</p>
|
></LI
|
||||||
|
><LI
|
||||||
<ol type="1">
|
><P
|
||||||
<li>
|
>Remove the rpm. Any error messages? All files removed?</P
|
||||||
<p>Remove any existing rpm with rpm -e</p>
|
></LI
|
||||||
</li>
|
></OL
|
||||||
|
></P
|
||||||
<li>
|
></DIV
|
||||||
<p>Remove any file that was left over. This includes (but is not
|
><DIV
|
||||||
limited to)</p>
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
<ul>
|
CLASS="SECT2"
|
||||||
<li>
|
><A
|
||||||
<p>/var/log/privoxy</p>
|
NAME="TESTING-REPORT"
|
||||||
</li>
|
>5.2. Test reports</A
|
||||||
|
></H2
|
||||||
<li>
|
><P
|
||||||
<p>/etc/privoxy</p>
|
>Please submit test reports only with the <A
|
||||||
</li>
|
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=395005"
|
||||||
|
TARGET="_top"
|
||||||
<li>
|
>test form</A
|
||||||
<p>/usr/sbin/privoxy</p>
|
>
|
||||||
</li>
|
at sourceforge. Three simple steps:
|
||||||
|
<P
|
||||||
<li>
|
></P
|
||||||
<p>/etc/init.d/privoxy</p>
|
><UL
|
||||||
</li>
|
><LI
|
||||||
|
><P
|
||||||
<li>
|
>Select category: the distribution you test on.</P
|
||||||
<p>/usr/doc/privoxy*</p>
|
></LI
|
||||||
</li>
|
><LI
|
||||||
</ul>
|
><P
|
||||||
</li>
|
>Select group: the version of <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<li>
|
>Privoxy</SPAN
|
||||||
<p>Install the rpm. Any error messages?</p>
|
> that we are about to release.</P
|
||||||
</li>
|
></LI
|
||||||
|
><LI
|
||||||
<li>
|
><P
|
||||||
<p>start,stop,status <span class="APPLICATION">Privoxy</span> with
|
>Fill the Summary and Detailed Description with something
|
||||||
the specific script (e.g. /etc/rc.d/init/privoxy stop). Reboot your
|
intelligent (keep it short and precise).</P
|
||||||
machine. Does autostart work?</p>
|
></LI
|
||||||
</li>
|
></UL
|
||||||
|
>
|
||||||
<li>
|
Do not mail to the mailing list (we cannot keep track on issues there).
|
||||||
<p>Start browsing. Does <span class="APPLICATION">Privoxy</span>
|
</P
|
||||||
work? Logfile written?</p>
|
></DIV
|
||||||
</li>
|
></DIV
|
||||||
|
><DIV
|
||||||
<li>
|
CLASS="NAVFOOTER"
|
||||||
<p>Remove the rpm. Any error messages? All files removed?</p>
|
><HR
|
||||||
</li>
|
ALIGN="LEFT"
|
||||||
</ol>
|
WIDTH="100%"><TABLE
|
||||||
</div>
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
<div class="SECT2">
|
BORDER="0"
|
||||||
<h2 class="SECT2"><a name="TESTING-REPORT" id="TESTING-REPORT">5.2.
|
CELLPADDING="0"
|
||||||
Test reports</a></h2>
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
<p>Please submit test reports only with the <a href=
|
><TD
|
||||||
"http://sourceforge.net/tracker/?func=add&group_id=11118&atid=395005"
|
WIDTH="33%"
|
||||||
target="_top">test form</a> at sourceforge. Three simple steps:</p>
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
<ul>
|
><A
|
||||||
<li>
|
HREF="coding.html"
|
||||||
<p>Select category: the distribution you test on.</p>
|
ACCESSKEY="P"
|
||||||
</li>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<li>
|
><TD
|
||||||
<p>Select group: the version of <span class=
|
WIDTH="34%"
|
||||||
"APPLICATION">Privoxy</span> that we are about to release.</p>
|
ALIGN="center"
|
||||||
</li>
|
VALIGN="top"
|
||||||
|
><A
|
||||||
<li>
|
HREF="index.html"
|
||||||
<p>Fill the Summary and Detailed Description with something
|
ACCESSKEY="H"
|
||||||
intelligent (keep it short and precise).</p>
|
>Home</A
|
||||||
</li>
|
></TD
|
||||||
</ul>Do not mail to the mailing list (we cannot keep track on issues
|
><TD
|
||||||
there).
|
WIDTH="33%"
|
||||||
</div>
|
ALIGN="right"
|
||||||
</div>
|
VALIGN="top"
|
||||||
|
><A
|
||||||
<div class="NAVFOOTER">
|
HREF="newrelease.html"
|
||||||
<hr class="c1" width="100%">
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
></TD
|
||||||
cellpadding="0" cellspacing="0">
|
></TR
|
||||||
<tr>
|
><TR
|
||||||
<td width="33%" align="left" valign="top"><a href="coding.html"
|
><TD
|
||||||
accesskey="P">Prev</a></td>
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
VALIGN="top"
|
||||||
accesskey="H">Home</a></td>
|
>Coding Guidelines</TD
|
||||||
|
><TD
|
||||||
<td width="33%" align="right" valign="top"><a href="newrelease.html"
|
WIDTH="34%"
|
||||||
accesskey="N">Next</a></td>
|
ALIGN="center"
|
||||||
</tr>
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
<tr>
|
><TD
|
||||||
<td width="33%" align="left" valign="top">Coding Guidelines</td>
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
VALIGN="top"
|
||||||
|
>Releasing a New Version</TD
|
||||||
<td width="33%" align="right" valign="top">Releasing a New
|
></TR
|
||||||
Version</td>
|
></TABLE
|
||||||
</tr>
|
></DIV
|
||||||
</table>
|
></BODY
|
||||||
</div>
|
></HTML
|
||||||
</body>
|
>
|
||||||
</html>
|
|
|
@ -1,147 +1,260 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Update the Webserver</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Update the Webserver</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Developer Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Developer Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Releasing a New Version" href=
|
TITLE="Releasing a New Version"
|
||||||
"newrelease.html">
|
HREF="newrelease.html"><LINK
|
||||||
<link rel="NEXT" title=
|
REL="NEXT"
|
||||||
"Contacting the developers, Bug Reporting and Feature Requests" href=
|
TITLE="Contacting the developers, Bug Reporting and Feature Requests"
|
||||||
"contact.html">
|
HREF="contact.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="STYLESHEET"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TYPE="text/css"
|
||||||
<style type="text/css">
|
HREF="../p_doc.css"><META
|
||||||
body {
|
HTTP-EQUIV="Content-Type"
|
||||||
background-color: #EEEEEE;
|
CONTENT="text/html;
|
||||||
color: #000000;
|
charset=ISO-8859-1"></HEAD
|
||||||
}
|
><BODY
|
||||||
:link { color: #0000FF }
|
CLASS="SECT1"
|
||||||
:visited { color: #840084 }
|
BGCOLOR="#EEEEEE"
|
||||||
:active { color: #0000FF }
|
TEXT="#000000"
|
||||||
span.c3 {font-style: italic}
|
LINK="#0000FF"
|
||||||
table.c2 {background-color: #E0E0E0}
|
VLINK="#840084"
|
||||||
hr.c1 {text-align: left}
|
ALINK="#0000FF"
|
||||||
</style>
|
><DIV
|
||||||
</head>
|
CLASS="NAVHEADER"
|
||||||
|
><TABLE
|
||||||
<body class="SECT1">
|
SUMMARY="Header navigation table"
|
||||||
<div class="NAVHEADER">
|
WIDTH="100%"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
BORDER="0"
|
||||||
cellpadding="0" cellspacing="0">
|
CELLPADDING="0"
|
||||||
<tr>
|
CELLSPACING="0"
|
||||||
<th colspan="3" align="center">Privoxy Developer Manual</th>
|
><TR
|
||||||
</tr>
|
><TH
|
||||||
|
COLSPAN="3"
|
||||||
<tr>
|
ALIGN="center"
|
||||||
<td width="10%" align="left" valign="bottom"><a href=
|
>Privoxy Developer Manual</TH
|
||||||
"newrelease.html" accesskey="P">Prev</a></td>
|
></TR
|
||||||
|
><TR
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
><TD
|
||||||
|
WIDTH="10%"
|
||||||
<td width="10%" align="right" valign="bottom"><a href="contact.html"
|
ALIGN="left"
|
||||||
accesskey="N">Next</a></td>
|
VALIGN="bottom"
|
||||||
</tr>
|
><A
|
||||||
</table>
|
HREF="newrelease.html"
|
||||||
<hr class="c1" width="100%">
|
ACCESSKEY="P"
|
||||||
</div>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<div class="SECT1">
|
><TD
|
||||||
<h1 class="SECT1"><a name="WEBSERVER-UPDATE" id="WEBSERVER-UPDATE">7.
|
WIDTH="80%"
|
||||||
Update the Webserver</a></h1>
|
ALIGN="center"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>The webserver should be updated at least with each stable release.
|
></TD
|
||||||
When updating, please follow these steps to make sure that no broken
|
><TD
|
||||||
links, inconsistent contents or permission problems will occur (as it has
|
WIDTH="10%"
|
||||||
many times in the past!):</p>
|
ALIGN="right"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>If you have changed anything in the stable-branch documentation source
|
><A
|
||||||
SGML files, do:</p>
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
<table class="c2" border="0" width="100%">
|
>Next</A
|
||||||
<tr>
|
></TD
|
||||||
<td>
|
></TR
|
||||||
<pre class="PROGRAMLISTING">
|
></TABLE
|
||||||
make dok dok-pdf # (or 'make redhat-dok dok-pdf' if 'make dok' doesn't work for you)
|
><HR
|
||||||
</pre>
|
ALIGN="LEFT"
|
||||||
</td>
|
WIDTH="100%"></DIV
|
||||||
</tr>
|
><DIV
|
||||||
</table>
|
CLASS="SECT1"
|
||||||
|
><H1
|
||||||
<p>That will generate <tt class=
|
CLASS="SECT1"
|
||||||
"FILENAME">doc/webserver/user-manual</tt>, <tt class=
|
><A
|
||||||
"FILENAME">doc/webserver/developer-manual</tt>, <tt class=
|
NAME="WEBSERVER-UPDATE"
|
||||||
"FILENAME">doc/webserver/faq</tt>, <tt class=
|
>7. Update the Webserver</A
|
||||||
"FILENAME">doc/pdf/*.pdf</tt> and <tt class=
|
></H1
|
||||||
"FILENAME">doc/webserver/index.html</tt> automatically.</p>
|
><P
|
||||||
|
> The webserver should be updated at least with each stable release. When
|
||||||
<p>If you changed the manual page sources, generate <tt class=
|
updating, please follow these steps to make sure that no broken links,
|
||||||
"FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt> by running
|
inconsistent contents or permission problems will occur (as it has many
|
||||||
<span class="QUOTE">"<b class="COMMAND">make man</b>"</span>. (This is a
|
times in the past!):
|
||||||
separate target due to dependencies on some obscure perl scripts [now in
|
</P
|
||||||
CVS, but not well tested]. See comments in <tt class=
|
><P
|
||||||
"FILENAME">GNUmakefile</tt>.)</p>
|
> If you have changed anything in the stable-branch documentation source
|
||||||
|
SGML files, do:
|
||||||
<p>If you want to add new files to the webserver, create them locally in
|
</P
|
||||||
the <tt class="FILENAME">doc/webserver/*</tt> directory (or create new
|
><P
|
||||||
directories under <tt class="FILENAME">doc/webserver</tt>).</p>
|
> <TABLE
|
||||||
|
BORDER="0"
|
||||||
<p>Next, commit any changes from the above steps to CVS. All set? If
|
BGCOLOR="#E0E0E0"
|
||||||
these are docs in the stable branch, then do:</p>
|
WIDTH="100%"
|
||||||
|
><TR
|
||||||
<table class="c2" border="0" width="100%">
|
><TD
|
||||||
<tr>
|
><PRE
|
||||||
<td>
|
CLASS="PROGRAMLISTING"
|
||||||
<pre class="PROGRAMLISTING">
|
> make dok dok-pdf # (or 'make redhat-dok dok-pdf' if 'make dok' doesn't work for you)</PRE
|
||||||
make webserver
|
></TD
|
||||||
</pre>
|
></TR
|
||||||
</td>
|
></TABLE
|
||||||
</tr>
|
>
|
||||||
</table>
|
</P
|
||||||
|
><P
|
||||||
<p>This will do the upload to <a href="http://www.privoxy.org/" target=
|
> That will generate <TT
|
||||||
"_top">the webserver</a> (www.privoxy.org) and ensure all files and
|
CLASS="FILENAME"
|
||||||
directories there are group writable.</p>
|
>doc/webserver/user-manual</TT
|
||||||
|
>,
|
||||||
<p>Please do <span class="emphasis EMPHASIS c3">NOT</span> use any other
|
<TT
|
||||||
means of transferring files to the webserver to avoid permission
|
CLASS="FILENAME"
|
||||||
problems. Also, please do not upload docs from development branches or
|
>doc/webserver/developer-manual</TT
|
||||||
versions. The publicly posted docs should be in sync with the last
|
>,
|
||||||
official release.</p>
|
<TT
|
||||||
</div>
|
CLASS="FILENAME"
|
||||||
|
>doc/webserver/faq</TT
|
||||||
<div class="NAVFOOTER">
|
>,
|
||||||
<hr class="c1" width="100%">
|
<TT
|
||||||
|
CLASS="FILENAME"
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
>doc/pdf/*.pdf</TT
|
||||||
cellpadding="0" cellspacing="0">
|
> and
|
||||||
<tr>
|
<TT
|
||||||
<td width="33%" align="left" valign="top"><a href="newrelease.html"
|
CLASS="FILENAME"
|
||||||
accesskey="P">Prev</a></td>
|
>doc/webserver/index.html</TT
|
||||||
|
> automatically.
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
</P
|
||||||
accesskey="H">Home</a></td>
|
><P
|
||||||
|
> If you changed the manual page sources, generate
|
||||||
<td width="33%" align="right" valign="top"><a href="contact.html"
|
<TT
|
||||||
accesskey="N">Next</a></td>
|
CLASS="FILENAME"
|
||||||
</tr>
|
>doc/webserver/man-page/privoxy-man-page.html</TT
|
||||||
|
>
|
||||||
<tr>
|
by running <SPAN
|
||||||
<td width="33%" align="left" valign="top">Releasing a New
|
CLASS="QUOTE"
|
||||||
Version</td>
|
>"<B
|
||||||
|
CLASS="COMMAND"
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
>make man</B
|
||||||
|
>"</SPAN
|
||||||
<td width="33%" align="right" valign="top">Contacting the developers,
|
>. (This is
|
||||||
Bug Reporting and Feature Requests</td>
|
a separate target due to dependencies on some obscure perl scripts
|
||||||
</tr>
|
[now in CVS, but not well tested]. See comments in <TT
|
||||||
</table>
|
CLASS="FILENAME"
|
||||||
</div>
|
>GNUmakefile</TT
|
||||||
</body>
|
>.)
|
||||||
</html>
|
</P
|
||||||
|
><P
|
||||||
|
> If you want to add new files to the webserver, create them locally in
|
||||||
|
the <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>doc/webserver/*</TT
|
||||||
|
> directory (or
|
||||||
|
create new directories under <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>doc/webserver</TT
|
||||||
|
>).
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> Next, commit any changes from the above steps to CVS. All set?
|
||||||
|
If these are docs in the stable branch, then do:
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> <TABLE
|
||||||
|
BORDER="0"
|
||||||
|
BGCOLOR="#E0E0E0"
|
||||||
|
WIDTH="100%"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
><PRE
|
||||||
|
CLASS="PROGRAMLISTING"
|
||||||
|
> make webserver</PRE
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> This will do the upload to <A
|
||||||
|
HREF="http://www.privoxy.org/"
|
||||||
|
TARGET="_top"
|
||||||
|
>the
|
||||||
|
webserver</A
|
||||||
|
> (www.privoxy.org) and ensure all files and directories
|
||||||
|
there are group writable.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> Please do <SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>NOT</I
|
||||||
|
></SPAN
|
||||||
|
> use any other means of transferring
|
||||||
|
files to the webserver to avoid permission problems. Also, please do not
|
||||||
|
upload docs from development branches or versions. The publicly posted
|
||||||
|
docs should be in sync with the last official release.
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="newrelease.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Releasing a New Version</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Contacting the developers, Bug Reporting and Feature Requests</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,363 +1,510 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Contacting the developers, Bug Reporting and Feature
|
REL="HOME"
|
||||||
Requests</title>
|
TITLE="Privoxy Frequently Asked Questions"
|
||||||
<meta name="GENERATOR" content=
|
HREF="index.html"><LINK
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
REL="PREVIOUS"
|
||||||
<link rel="HOME" title="Privoxy Frequently Asked Questions" href=
|
TITLE="Troubleshooting"
|
||||||
"index.html">
|
HREF="trouble.html"><LINK
|
||||||
<link rel="PREVIOUS" title="Troubleshooting" href="trouble.html">
|
REL="NEXT"
|
||||||
<link rel="NEXT" title="Privoxy Copyright, License and History" href=
|
TITLE="Privoxy Copyright, License and History"
|
||||||
"copyright.html">
|
HREF="copyright.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="STYLESHEET"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TYPE="text/css"
|
||||||
<style type="text/css">
|
HREF="../p_doc.css"><META
|
||||||
body {
|
HTTP-EQUIV="Content-Type"
|
||||||
background-color: #EEEEEE;
|
CONTENT="text/html;
|
||||||
color: #000000;
|
charset=ISO-8859-1"></HEAD
|
||||||
}
|
><BODY
|
||||||
:link { color: #0000FF }
|
CLASS="SECT1"
|
||||||
:visited { color: #840084 }
|
BGCOLOR="#EEEEEE"
|
||||||
:active { color: #0000FF }
|
TEXT="#000000"
|
||||||
span.c2 {font-style: italic}
|
LINK="#0000FF"
|
||||||
hr.c1 {text-align: left}
|
VLINK="#840084"
|
||||||
</style>
|
ALINK="#0000FF"
|
||||||
</head>
|
><DIV
|
||||||
|
CLASS="NAVHEADER"
|
||||||
<body class="SECT1">
|
><TABLE
|
||||||
<div class="NAVHEADER">
|
SUMMARY="Header navigation table"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
WIDTH="100%"
|
||||||
cellpadding="0" cellspacing="0">
|
BORDER="0"
|
||||||
<tr>
|
CELLPADDING="0"
|
||||||
<th colspan="3" align="center">Privoxy Frequently Asked
|
CELLSPACING="0"
|
||||||
Questions</th>
|
><TR
|
||||||
</tr>
|
><TH
|
||||||
|
COLSPAN="3"
|
||||||
<tr>
|
ALIGN="center"
|
||||||
<td width="10%" align="left" valign="bottom"><a href="trouble.html"
|
>Privoxy Frequently Asked Questions</TH
|
||||||
accesskey="P">Prev</a></td>
|
></TR
|
||||||
|
><TR
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
><TD
|
||||||
|
WIDTH="10%"
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
ALIGN="left"
|
||||||
"copyright.html" accesskey="N">Next</a></td>
|
VALIGN="bottom"
|
||||||
</tr>
|
><A
|
||||||
</table>
|
HREF="trouble.html"
|
||||||
<hr class="c1" width="100%">
|
ACCESSKEY="P"
|
||||||
</div>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<div class="SECT1">
|
><TD
|
||||||
<h1 class="SECT1"><a name="CONTACT" id="CONTACT">6. Contacting the
|
WIDTH="80%"
|
||||||
developers, Bug Reporting and Feature Requests</a></h1>
|
ALIGN="center"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>We value your feedback. In fact, we rely on it to improve <span class=
|
></TD
|
||||||
"APPLICATION">Privoxy</span> and its configuration. However, please note
|
><TD
|
||||||
the following hints, so we can provide you with the best support:</p>
|
WIDTH="10%"
|
||||||
|
ALIGN="right"
|
||||||
<div class="SECT2">
|
VALIGN="bottom"
|
||||||
<h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">6.1.
|
><A
|
||||||
Get Support</a></h2>
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
<p>For casual users, our <a href=
|
>Next</A
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
></TD
|
||||||
target="_top">support forum at SourceForge</a> is probably best suited:
|
></TR
|
||||||
<a href=
|
></TABLE
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
><HR
|
||||||
target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p>
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"></DIV
|
||||||
<p>All users are of course welcome to discuss their issues on the
|
><DIV
|
||||||
<a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
CLASS="SECT1"
|
||||||
target="_top">users mailing list</a>, where the developers also hang
|
><H1
|
||||||
around.</p>
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
<p>Please don't sent private support requests to individual Privoxy
|
NAME="CONTACT"
|
||||||
developers, either use the mailing lists or the support trackers.</p>
|
>6. Contacting the developers, Bug Reporting and Feature Requests</A
|
||||||
|
></H1
|
||||||
<p>If you have to contact a Privoxy developer directly for other
|
><P
|
||||||
reasons, please send a real mail and do not bother with SourceForge's
|
> We value your feedback. In fact, we rely on it to improve
|
||||||
messaging system. Answers to SourceForge messages are usually bounced
|
<SPAN
|
||||||
by SourceForge's mail server in which case the developer wasted time
|
CLASS="APPLICATION"
|
||||||
writing a response you don't get. From your point of view it will look
|
>Privoxy</SPAN
|
||||||
like your message has been completely ignored, so this is frustrating
|
> and its configuration.
|
||||||
for all parties involved.</p>
|
However, please note the following hints, so we can
|
||||||
|
provide you with the best support:</P
|
||||||
<p>Note that the Privoxy mailing lists are moderated. Posts from
|
><DIV
|
||||||
unsubscribed addresses have to be accepted manually by a moderator.
|
CLASS="SECT2"
|
||||||
This may cause a delay of several days and if you use a subject that
|
><H2
|
||||||
doesn't clearly mention Privoxy or one of its features, your message
|
CLASS="SECT2"
|
||||||
may be accidentally discarded as spam.</p>
|
><A
|
||||||
|
NAME="CONTACT-SUPPORT"
|
||||||
<p>If you aren't subscribed, you should therefore spend a few seconds
|
>6.1. Get Support</A
|
||||||
to come up with a proper subject. Additionally you should make it clear
|
></H2
|
||||||
that you want to get CC'd. Otherwise some responses will be directed to
|
><P
|
||||||
the mailing list only, and you won't see them.</p>
|
> For casual users, our
|
||||||
</div>
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||||
<div class="SECT2">
|
TARGET="_top"
|
||||||
<h2 class="SECT2"><a name="REPORTING" id="REPORTING">6.2. Reporting
|
>support forum at SourceForge</A
|
||||||
Problems</a></h2>
|
>
|
||||||
|
is probably best suited:
|
||||||
<p><span class="QUOTE">"Problems"</span> for our purposes, come in two
|
<A
|
||||||
forms:</p>
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||||
|
TARGET="_top"
|
||||||
<ul>
|
>http://sourceforge.net/tracker/?group_id=11118&atid=211118</A
|
||||||
<li>
|
></P
|
||||||
<p>Configuration issues, such as ads that slip through, or sites
|
><P
|
||||||
that don't function properly due to one <span class=
|
> All users are of course welcome to discuss their issues on the <A
|
||||||
"APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
|
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
||||||
another being turned <span class="QUOTE">"on"</span>.</p>
|
TARGET="_top"
|
||||||
</li>
|
>users
|
||||||
|
mailing list</A
|
||||||
<li>
|
>, where the developers also hang around.</P
|
||||||
<p><span class="QUOTE">"Bugs"</span> in the programming code that
|
><P
|
||||||
makes up <span class="APPLICATION">Privoxy</span>, such as that
|
> Please don't sent private support requests to individual Privoxy
|
||||||
might cause a crash.</p>
|
developers, either use the mailing lists or the support trackers.</P
|
||||||
</li>
|
><P
|
||||||
</ul>
|
> Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||||
|
addresses have to be accepted manually by a moderator. This may cause a
|
||||||
<div class="SECT3">
|
delay of several days and if you use a subject that doesn't clearly
|
||||||
<h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">6.2.1.
|
mention Privoxy or one of its features, your message may be accidentally
|
||||||
Reporting Ads or Other Configuration Problems</a></h3>
|
discarded as spam.</P
|
||||||
|
><P
|
||||||
<p>Please send feedback on ads that slipped through, innocent images
|
> If you aren't subscribed, you should therefore spend a few seconds
|
||||||
that were blocked, sites that don't work properly, and other
|
to come up with a proper subject. Additionally you should make it clear
|
||||||
configuration related problem of <tt class=
|
that you want to get CC'd. Otherwise some responses will be directed to
|
||||||
"FILENAME">default.action</tt> file, to <a href=
|
the mailing list only, and you won't see them.</P
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
></DIV
|
||||||
target=
|
><DIV
|
||||||
"_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
|
CLASS="SECT2"
|
||||||
the Actions File Tracker.</p>
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
<p>New, improved <tt class="FILENAME">default.action</tt> files may
|
><A
|
||||||
occasionally be made available based on your feedback. These will be
|
NAME="REPORTING"
|
||||||
announced on the <a href=
|
>6.2. Reporting Problems</A
|
||||||
"http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
|
></H2
|
||||||
"_top">ijbswa-announce</a> list and available from our the <a href=
|
><P
|
||||||
"http://sourceforge.net/project/showfiles.php?group_id=11118" target=
|
><SPAN
|
||||||
"_top">files section</a> of our <a href=
|
CLASS="QUOTE"
|
||||||
"http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
|
>"Problems"</SPAN
|
||||||
</div>
|
> for our purposes, come in two forms:</P
|
||||||
|
><P
|
||||||
<div class="SECT3">
|
></P
|
||||||
<h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">6.2.2.
|
><UL
|
||||||
Reporting Bugs</a></h3>
|
><LI
|
||||||
|
><P
|
||||||
<p>Please report all bugs through our bug tracker: <a href=
|
> Configuration issues, such as ads that slip through, or sites that
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
don't function properly due to one <SPAN
|
||||||
target=
|
CLASS="APPLICATION"
|
||||||
"_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p>
|
>Privoxy</SPAN
|
||||||
|
>
|
||||||
<p>Before doing so, please make sure that the bug has <span class=
|
<SPAN
|
||||||
"emphasis EMPHASIS c2">not already been submitted</span> and observe
|
CLASS="QUOTE"
|
||||||
the additional hints at the top of the <a href=
|
>"action"</SPAN
|
||||||
"http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
> or another being turned <SPAN
|
||||||
target="_top">submit form</a>. If already submitted, please feel free
|
CLASS="QUOTE"
|
||||||
to add any info to the original report that might help to solve the
|
>"on"</SPAN
|
||||||
issue.</p>
|
>.
|
||||||
|
</P
|
||||||
<p>Please try to verify that it is a <span class=
|
></LI
|
||||||
"APPLICATION">Privoxy</span> bug, and not a browser or site bug or
|
><LI
|
||||||
documented behaviour that just happens to be different than what you
|
><P
|
||||||
expected. If unsure, try <a href=
|
> <SPAN
|
||||||
"http://config.privoxy.org/toggle?set=disable" target="_top">toggling
|
CLASS="QUOTE"
|
||||||
off</a> <span class="APPLICATION">Privoxy</span>, and see if the
|
>"Bugs"</SPAN
|
||||||
problem persists.</p>
|
> in the programming code that makes up
|
||||||
|
<SPAN
|
||||||
<p>If you are using your own custom configuration, please try the
|
CLASS="APPLICATION"
|
||||||
stock configs to see if the problem is configuration related. If
|
>Privoxy</SPAN
|
||||||
you're having problems with a feature that is disabled by default,
|
>, such as that might cause a crash.
|
||||||
please ask around on the mailing list if others can reproduce the
|
</P
|
||||||
problem.</p>
|
></LI
|
||||||
|
></UL
|
||||||
<p>If you aren't using the latest Privoxy version, the bug may have
|
><DIV
|
||||||
been found and fixed in the meantime. We would appreciate if you
|
CLASS="SECT3"
|
||||||
could take the time to <a href=
|
><H3
|
||||||
"http://www.privoxy.org/user-manual/installation.html" target=
|
CLASS="SECT3"
|
||||||
"_top">upgrade to the latest version</a> (or even the latest CVS
|
><A
|
||||||
snapshot) and verify that your bug still exists.</p>
|
NAME="CONTACT-ADS"
|
||||||
|
>6.2.1. Reporting Ads or Other Configuration Problems</A
|
||||||
<p>Please be sure to provide the following information:</p>
|
></H3
|
||||||
|
><P
|
||||||
<ul>
|
> Please send feedback on ads that slipped through, innocent images that were
|
||||||
<li>
|
blocked, sites that don't work properly, and other configuration related problem of
|
||||||
<p>The exact <span class="APPLICATION">Privoxy</span> version you
|
<TT
|
||||||
are using (if you got the source from CVS, please also provide
|
CLASS="FILENAME"
|
||||||
the source code revisions as shown in <a href=
|
>default.action</TT
|
||||||
"http://config.privoxy.org/show-version" target=
|
> file, to
|
||||||
"_top">http://config.privoxy.org/show-version</a>).</p>
|
<A
|
||||||
</li>
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
||||||
|
TARGET="_top"
|
||||||
<li>
|
> http://sourceforge.net/tracker/?group_id=11118&atid=460288</A
|
||||||
<p>The operating system and versions you run <span class=
|
>,
|
||||||
"APPLICATION">Privoxy</span> on, (e.g. <span class=
|
the Actions File Tracker.</P
|
||||||
"APPLICATION">Windows XP SP2</span>), if you are using a Unix
|
><P
|
||||||
flavor, sending the output of <span class="QUOTE">"uname
|
> New, improved <TT
|
||||||
-a"</span> should do, in case of GNU/Linux, please also name the
|
CLASS="FILENAME"
|
||||||
distribution.</p>
|
>default.action</TT
|
||||||
</li>
|
> files may occasionally be made
|
||||||
|
available based on your feedback. These will be announced on the <A
|
||||||
<li>
|
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
|
||||||
<p>The name, platform, and version of the <span class=
|
TARGET="_top"
|
||||||
"APPLICATION">browser</span> you were using (e.g. <span class=
|
>ijbswa-announce</A
|
||||||
"APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
|
>
|
||||||
</li>
|
list and available from our the <A
|
||||||
|
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p>The URL where the problem occurred, or some way for us to
|
>files section</A
|
||||||
duplicate the problem (e.g. <tt class=
|
> of
|
||||||
"LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
|
our <A
|
||||||
</li>
|
HREF="http://sf.net/projects/ijbswa/"
|
||||||
|
TARGET="_top"
|
||||||
<li>
|
>project page</A
|
||||||
<p>Whether your version of <span class=
|
>.</P
|
||||||
"APPLICATION">Privoxy</span> is one supplied by the <span class=
|
></DIV
|
||||||
"APPLICATION">Privoxy</span> developers via SourceForge, or if
|
><DIV
|
||||||
you got your copy somewhere else.</p>
|
CLASS="SECT3"
|
||||||
</li>
|
><H3
|
||||||
|
CLASS="SECT3"
|
||||||
<li>
|
><A
|
||||||
<p>Whether you are using <span class="APPLICATION">Privoxy</span>
|
NAME="CONTACT-BUGS"
|
||||||
in tandem with another proxy such as <span class=
|
>6.2.2. Reporting Bugs</A
|
||||||
"APPLICATION">Tor</span>. If so, please temporary disable the
|
></H3
|
||||||
other proxy to see if the symptoms change.</p>
|
><P
|
||||||
</li>
|
> Please report all bugs through our bug tracker:
|
||||||
|
<A
|
||||||
<li>
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
||||||
<p>Whether you are using a personal firewall product. If so, does
|
TARGET="_top"
|
||||||
<span class="APPLICATION">Privoxy</span> work without it?</p>
|
>http://sourceforge.net/tracker/?group_id=11118&atid=111118</A
|
||||||
</li>
|
>. </P
|
||||||
|
><P
|
||||||
<li>
|
> Before doing so, please make sure that the bug has <SPAN
|
||||||
<p>Any other pertinent information to help identify the problem
|
CLASS="emphasis"
|
||||||
such as config or log file excerpts (yes, you should have log
|
><I
|
||||||
file entries for each action taken). To get a meaningful logfile,
|
CLASS="EMPHASIS"
|
||||||
please make sure that the <a href=
|
>not already been submitted</I
|
||||||
"../user-manual/config.html#LOGFILE" target="_top">logfile
|
></SPAN
|
||||||
directive</a> is being used and the following <a href=
|
>
|
||||||
"../user-manual/config.html#DEBUG" target="_top">debug
|
and observe the additional hints at the top of the <A
|
||||||
options</a> are enabled:</p>
|
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
||||||
|
TARGET="_top"
|
||||||
<p class="LITERALLAYOUT">
|
>submit
|
||||||
debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br>
|
form</A
|
||||||
|
>. If already submitted, please feel free to add any info to the
|
||||||
debug 2 # show each connection status<br>
|
original report that might help to solve the issue.</P
|
||||||
|
><P
|
||||||
debug 4 # show I/O status<br>
|
> Please try to verify that it is a <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
debug 8 # show header parsing<br>
|
>Privoxy</SPAN
|
||||||
|
> bug,
|
||||||
debug 128 # debug redirects<br>
|
and not a browser or site bug or documented behaviour that just happens
|
||||||
debug 256 # debug GIF de-animation<br>
|
to be different than what you expected. If unsure,
|
||||||
|
try <A
|
||||||
debug 512 # Common Log Format<br>
|
HREF="http://config.privoxy.org/toggle?set=disable"
|
||||||
|
TARGET="_top"
|
||||||
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br>
|
>toggling
|
||||||
|
off</A
|
||||||
debug 4096 # Startup banner and warnings.<br>
|
> <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
debug 8192 # Non-fatal errors</p>If you
|
>Privoxy</SPAN
|
||||||
are having trouble with a filter, please additionally enable
|
>, and see if the problem persists.</P
|
||||||
|
><P
|
||||||
<p class="LITERALLAYOUT">
|
> If you are using your own custom configuration, please try
|
||||||
debug 64 # debug regular expression filters</p>If
|
the stock configs to see if the problem is configuration related.
|
||||||
you are using Privoxy 3.0.17 or later and suspect that it
|
If you're having problems with a feature that is disabled by default,
|
||||||
interprets the request or the response incorrectly, please enable
|
please ask around on the mailing list if others can reproduce the problem.</P
|
||||||
|
><P
|
||||||
<p class="LITERALLAYOUT">
|
> If you aren't using the latest Privoxy version, the bug may have been found
|
||||||
debug 32768 # log all data read from the network</p>Note
|
and fixed in the meantime. We would appreciate if you could take the time
|
||||||
that Privoxy log files may contain sensitive information so
|
to <A
|
||||||
please don't submit any logfiles you didn't read first. You can
|
HREF="http://www.privoxy.org/user-manual/installation.html"
|
||||||
mask sensitive information as long as it's clear that you removed
|
TARGET="_top"
|
||||||
something.
|
>upgrade
|
||||||
</li>
|
to the latest version</A
|
||||||
</ul>
|
> (or even the latest CVS snapshot) and verify
|
||||||
|
that your bug still exists.</P
|
||||||
<p>You don't have to tell us your actual name when filing a problem
|
><P
|
||||||
report, but if you don't, please use a nickname so we can
|
>Please be sure to provide the following information:</P
|
||||||
differentiate between your messages and the ones entered by other
|
><P
|
||||||
"anonymous" users that may respond to your request if they have the
|
> <P
|
||||||
same problem or already found a solution. Note that due to spam the
|
></P
|
||||||
trackers may not always allow to post without being logged into
|
><UL
|
||||||
SourceForge. If that's the case, you are still free to create a login
|
><LI
|
||||||
that isn't directly linked to your name, though.</p>
|
><P
|
||||||
|
> The exact <SPAN
|
||||||
<p>Please also check the status of your request a few days after
|
CLASS="APPLICATION"
|
||||||
submitting it, as we may request additional information. If you use a
|
>Privoxy</SPAN
|
||||||
SF id, you should automatically get a mail when someone responds to
|
> version you are using
|
||||||
your request. Please don't bother to add an email address when using
|
(if you got the source from CVS, please also provide the source code revisions
|
||||||
the tracker. If you prefer to communicate through email, just use one
|
as shown in <A
|
||||||
of the mailing lists directly.</p>
|
HREF="http://config.privoxy.org/show-version"
|
||||||
|
TARGET="_top"
|
||||||
<p>If you are new to reporting problems, you might be interested in
|
>http://config.privoxy.org/show-version</A
|
||||||
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
|
>).
|
||||||
target="_top">How to Report Bugs Effectively</a>.</p>
|
</P
|
||||||
|
></LI
|
||||||
<p>The <a href=
|
><LI
|
||||||
"http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
><P
|
||||||
target="_top">appendix of the Privoxy User Manual</a> also has
|
> The operating system and versions you run
|
||||||
helpful information on understanding <tt class=
|
<SPAN
|
||||||
"LITERAL">actions</tt>, and <tt class="LITERAL">action</tt>
|
CLASS="APPLICATION"
|
||||||
debugging.</p>
|
>Privoxy</SPAN
|
||||||
</div>
|
> on, (e.g. <SPAN
|
||||||
</div>
|
CLASS="APPLICATION"
|
||||||
|
>Windows
|
||||||
<div class="SECT2">
|
XP SP2</SPAN
|
||||||
<h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">6.3.
|
>), if you are using a Unix flavor,
|
||||||
Request New Features</a></h2>
|
sending the output of <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
<p>You are welcome to submit ideas on new features or other proposals
|
>"uname -a"</SPAN
|
||||||
for improvement through our feature request tracker at <a href=
|
> should do,
|
||||||
"http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
in case of GNU/Linux, please also name the distribution.
|
||||||
target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p>
|
</P
|
||||||
</div>
|
></LI
|
||||||
|
><LI
|
||||||
<div class="SECT2">
|
><P
|
||||||
<h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">6.4.
|
> The name, platform, and version of the <SPAN
|
||||||
Mailing Lists</a></h2>
|
CLASS="APPLICATION"
|
||||||
|
>browser</SPAN
|
||||||
<p>If you prefer to communicate through email, instead of using a web
|
>
|
||||||
interface, feel free to use one of the mailing lists. To discuss issues
|
you were using (e.g. <SPAN
|
||||||
that haven't been completely diagnosed yet, please use the Privoxy
|
CLASS="APPLICATION"
|
||||||
users list. Technically interested users and people who wish to
|
>Internet Explorer v5.5</SPAN
|
||||||
contribute to the project are always welcome on the developers list.
|
> for Mac).
|
||||||
You can find an overview of all <span class=
|
</P
|
||||||
"APPLICATION">Privoxy</span>-related mailing lists, including list
|
></LI
|
||||||
archives, at: <a href="http://sourceforge.net/mail/?group_id=11118"
|
><LI
|
||||||
target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p>
|
><P
|
||||||
</div>
|
> The URL where the problem occurred, or some way for us to duplicate the
|
||||||
</div>
|
problem (e.g. <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
<div class="NAVFOOTER">
|
>http://somesite.example.com/?somethingelse=123</TT
|
||||||
<hr class="c1" width="100%">
|
>).
|
||||||
|
</P
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
></LI
|
||||||
cellpadding="0" cellspacing="0">
|
><LI
|
||||||
<tr>
|
><P
|
||||||
<td width="33%" align="left" valign="top"><a href="trouble.html"
|
> Whether your version of <SPAN
|
||||||
accesskey="P">Prev</a></td>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
> is one supplied
|
||||||
accesskey="H">Home</a></td>
|
by the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<td width="33%" align="right" valign="top"><a href="copyright.html"
|
>Privoxy</SPAN
|
||||||
accesskey="N">Next</a></td>
|
> developers via SourceForge,
|
||||||
</tr>
|
or if you got your copy somewhere else.
|
||||||
|
</P
|
||||||
<tr>
|
></LI
|
||||||
<td width="33%" align="left" valign="top">Troubleshooting</td>
|
><LI
|
||||||
|
><P
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
> Whether you are using <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<td width="33%" align="right" valign="top">Privoxy Copyright, License
|
>Privoxy</SPAN
|
||||||
and History</td>
|
> in tandem with
|
||||||
</tr>
|
another proxy such as <SPAN
|
||||||
</table>
|
CLASS="APPLICATION"
|
||||||
</div>
|
>Tor</SPAN
|
||||||
</body>
|
>. If so, please
|
||||||
</html>
|
temporary disable the other proxy to see if the symptoms change.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Whether you are using a personal firewall product. If so, does
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> work without it?
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Any other pertinent information to help identify the problem such as config
|
||||||
|
or log file excerpts (yes, you should have log file entries for each
|
||||||
|
action taken).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
><P
|
||||||
|
> You don't have to tell us your actual name when filing a problem
|
||||||
|
report, but please use a nickname so we can differentiate between
|
||||||
|
your messages and the ones entered by other "anonymous" users that
|
||||||
|
may respond to your request if they have the same problem or already
|
||||||
|
found a solution.</P
|
||||||
|
><P
|
||||||
|
> Please also check the status of your request a few days after submitting
|
||||||
|
it, as we may request additional information. If you use a SF id,
|
||||||
|
you should automatically get a mail when someone responds to your request.</P
|
||||||
|
><P
|
||||||
|
> The <A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
||||||
|
TARGET="_top"
|
||||||
|
>appendix
|
||||||
|
of the Privoxy User Manual</A
|
||||||
|
> also has helpful information
|
||||||
|
on understanding <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>actions</TT
|
||||||
|
>, and <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>action</TT
|
||||||
|
> debugging. </P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="CONTACT-FEATURE"
|
||||||
|
>6.3. Request New Features</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> You are welcome to submit ideas on new features or other proposals
|
||||||
|
for improvement through our feature request tracker at
|
||||||
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://sourceforge.net/tracker/?atid=361118&group_id=11118</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="CONTACT-OTHER"
|
||||||
|
>6.4. Other</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
>For any other issues, feel free to use the mailing lists. Technically interested users
|
||||||
|
and people who wish to contribute to the project are also welcome on the developers list!
|
||||||
|
You can find an overview of all <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>-related mailing lists,
|
||||||
|
including list archives, at:
|
||||||
|
<A
|
||||||
|
HREF="http://sourceforge.net/mail/?group_id=11118"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://sourceforge.net/mail/?group_id=11118</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="trouble.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Troubleshooting</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy Copyright, License and History</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,165 +1,301 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy Copyright, License and History</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Privoxy Copyright, License and History</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Frequently Asked Questions"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Frequently Asked Questions" href=
|
REL="PREVIOUS"
|
||||||
"index.html">
|
TITLE="Contacting the developers, Bug Reporting and Feature Requests"
|
||||||
<link rel="PREVIOUS" title=
|
HREF="contact.html"><LINK
|
||||||
"Contacting the developers, Bug Reporting and Feature Requests" href=
|
REL="STYLESHEET"
|
||||||
"contact.html">
|
TYPE="text/css"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
HREF="../p_doc.css"><META
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
HTTP-EQUIV="Content-Type"
|
||||||
<style type="text/css">
|
CONTENT="text/html;
|
||||||
body {
|
charset=ISO-8859-1"></HEAD
|
||||||
background-color: #EEEEEE;
|
><BODY
|
||||||
color: #000000;
|
CLASS="SECT1"
|
||||||
}
|
BGCOLOR="#EEEEEE"
|
||||||
:link { color: #0000FF }
|
TEXT="#000000"
|
||||||
:visited { color: #840084 }
|
LINK="#0000FF"
|
||||||
:active { color: #0000FF }
|
VLINK="#840084"
|
||||||
a.c2 {font-style: italic}
|
ALINK="#0000FF"
|
||||||
hr.c1 {text-align: left}
|
><DIV
|
||||||
</style>
|
CLASS="NAVHEADER"
|
||||||
</head>
|
><TABLE
|
||||||
|
SUMMARY="Header navigation table"
|
||||||
<body class="SECT1">
|
WIDTH="100%"
|
||||||
<div class="NAVHEADER">
|
BORDER="0"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
CELLPADDING="0"
|
||||||
cellpadding="0" cellspacing="0">
|
CELLSPACING="0"
|
||||||
<tr>
|
><TR
|
||||||
<th colspan="3" align="center">Privoxy Frequently Asked
|
><TH
|
||||||
Questions</th>
|
COLSPAN="3"
|
||||||
</tr>
|
ALIGN="center"
|
||||||
|
>Privoxy Frequently Asked Questions</TH
|
||||||
<tr>
|
></TR
|
||||||
<td width="10%" align="left" valign="bottom"><a href="contact.html"
|
><TR
|
||||||
accesskey="P">Prev</a></td>
|
><TD
|
||||||
|
WIDTH="10%"
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
ALIGN="left"
|
||||||
|
VALIGN="bottom"
|
||||||
<td width="10%" align="right" valign="bottom"> </td>
|
><A
|
||||||
</tr>
|
HREF="contact.html"
|
||||||
</table>
|
ACCESSKEY="P"
|
||||||
<hr class="c1" width="100%">
|
>Prev</A
|
||||||
</div>
|
></TD
|
||||||
|
><TD
|
||||||
<div class="SECT1">
|
WIDTH="80%"
|
||||||
<h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">7. Privoxy
|
ALIGN="center"
|
||||||
Copyright, License and History</a></h1>
|
VALIGN="bottom"
|
||||||
|
></TD
|
||||||
<p>Copyright © 2001-2011 by Privoxy Developers <code class=
|
><TD
|
||||||
"EMAIL"><<a href=
|
WIDTH="10%"
|
||||||
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p>
|
ALIGN="right"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>Some source code is based on code Copyright © 1997 by Anonymous
|
> </TD
|
||||||
Coders and Junkbusters, Inc. and licensed under the <i class=
|
></TR
|
||||||
"CITETITLE">GNU General Public License</i>.</p>
|
></TABLE
|
||||||
|
><HR
|
||||||
<p>Portions of this document are <span class="QUOTE">"borrowed"</span>
|
ALIGN="LEFT"
|
||||||
from the original <span class="APPLICATION">Junkbuster</span> (tm) FAQ,
|
WIDTH="100%"></DIV
|
||||||
and modified as appropriate for <span class=
|
><DIV
|
||||||
"APPLICATION">Privoxy</span>.</p>
|
CLASS="SECT1"
|
||||||
|
><H1
|
||||||
<div class="SECT2">
|
CLASS="SECT1"
|
||||||
<h2 class="SECT2"><a name="AEN1475" id="AEN1475">7.1. License</a></h2>
|
><A
|
||||||
|
NAME="COPYRIGHT"
|
||||||
<p><span class="APPLICATION">Privoxy</span> is free software; you can
|
>7. Privoxy Copyright, License and History</A
|
||||||
redistribute it and/or modify it under the terms of the <i class=
|
></H1
|
||||||
"CITETITLE">GNU General Public License</i>, version 2, as published by
|
><P
|
||||||
the Free Software Foundation.</p>
|
> Copyright © 2001-2009 by Privoxy Developers <CODE
|
||||||
|
CLASS="EMAIL"
|
||||||
<p>This program is distributed in the hope that it will be useful, but
|
><<A
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class=
|
>ijbswa-developers@lists.sourceforge.net</A
|
||||||
"CITETITLE c2" href=
|
>></CODE
|
||||||
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
|
></P
|
||||||
"_top">GNU General Public License</a> for details.</p>
|
><P
|
||||||
|
> Some source code is based on code Copyright © 1997 by Anonymous Coders
|
||||||
<p>You should have received a copy of the <i class="CITETITLE">GNU
|
and Junkbusters, Inc. and licensed under the <I
|
||||||
GPL</i> along with this program; if not, write to the</p>
|
CLASS="CITETITLE"
|
||||||
|
>GNU General Public
|
||||||
<p class="ADDRESS"> Free Software<br>
|
License</I
|
||||||
Foundation, Inc. <span class="STREET">51 Franklin
|
>.</P
|
||||||
Street, Fifth Floor</span><br>
|
><P
|
||||||
<span class="CITY">Boston</span>, <span class=
|
> Portions of this document are <SPAN
|
||||||
"STATE">MA</span> <span class="POSTCODE">02110-1301</span><br>
|
CLASS="QUOTE"
|
||||||
<span class="COUNTRY">USA</span> </p>
|
>"borrowed"</SPAN
|
||||||
</div>
|
> from the original
|
||||||
|
<SPAN
|
||||||
<div class="SECT2">
|
CLASS="APPLICATION"
|
||||||
<h2 class="SECT2"><a name="AEN1491" id="AEN1491">7.2. History</a></h2>
|
>Junkbuster</SPAN
|
||||||
|
> (tm) FAQ, and modified as
|
||||||
<p>A long time ago, there was the <a href=
|
appropriate for <SPAN
|
||||||
"http://www.junkbusters.com/ijb.html" target="_top"><span class=
|
CLASS="APPLICATION"
|
||||||
"APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and
|
>Privoxy</SPAN
|
||||||
<a href="http://www.junkbusters.com/" target="_top">Junkbusters
|
>.
|
||||||
Corporation</a>. This saved many users a lot of pain in the early days
|
</P
|
||||||
of web advertising and user tracking.</p>
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
<p>But the web, its protocols and standards, and with it, the
|
><H2
|
||||||
techniques for forcing ads on users, give up autonomy over their
|
CLASS="SECT2"
|
||||||
browsing, and for tracking them, keeps evolving. Unfortunately, the
|
><A
|
||||||
<span class="APPLICATION">Internet Junkbuster</span> did not. Version
|
NAME="AEN1451"
|
||||||
2.0.2, published in 1998, was (and is) the last official <a href=
|
>7.1. License</A
|
||||||
"http://www.junkbusters.com/ijbdist.html#release" target=
|
></H2
|
||||||
"_top">release</a> available from <a href="http://www.junkbusters.com"
|
><P
|
||||||
target="_top">Junkbusters Corporation</a>. Fortunately, it had been
|
> <SPAN
|
||||||
released under the GNU <a href=
|
CLASS="APPLICATION"
|
||||||
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
|
>Privoxy</SPAN
|
||||||
"_top">GPL</a>, which allowed further development by others.</p>
|
> is free software; you can
|
||||||
|
redistribute it and/or modify it under the terms of the
|
||||||
<p>So Stefan Waldherr started maintaining an improved version of the
|
<I
|
||||||
software, to which eventually a number of people contributed patches.
|
CLASS="CITETITLE"
|
||||||
It could already replace banners with a transparent image, and had a
|
>GNU General Public License</I
|
||||||
first version of pop-up killing, but it was still very closely based on
|
>, version 2,
|
||||||
the original, with all its limitations, such as the lack of HTTP/1.1
|
as published by the Free Software Foundation.</P
|
||||||
support, flexible per-site configuration, or content modification. The
|
><P
|
||||||
last release from this effort was version 2.0.2-10, published in
|
> This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
2000.</p>
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the <A
|
||||||
<p>Then, some <a href=
|
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||||
"http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target=
|
TARGET="_top"
|
||||||
"_top">developers</a> picked up the thread, and started turning the
|
> <I
|
||||||
software inside out, upside down, and then reassembled it, adding many
|
CLASS="CITETITLE"
|
||||||
<a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
>GNU General Public License</I
|
||||||
target="_top">new features</a> along the way.</p>
|
></A
|
||||||
|
> for details.</P
|
||||||
<p>The result of this is <span class="APPLICATION">Privoxy</span>,
|
><P
|
||||||
whose first stable version, 3.0, was released August, 2002.</p>
|
> You should have received a copy of the <I
|
||||||
</div>
|
CLASS="CITETITLE"
|
||||||
</div>
|
>GNU GPL</I
|
||||||
|
>
|
||||||
<div class="NAVFOOTER">
|
along with this program; if not, write to the <P
|
||||||
<hr class="c1" width="100%">
|
CLASS="ADDRESS"
|
||||||
|
> Free Software<br>
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
Foundation, Inc. <SPAN
|
||||||
cellpadding="0" cellspacing="0">
|
CLASS="STREET"
|
||||||
<tr>
|
>51 Franklin Street, Fifth Floor</SPAN
|
||||||
<td width="33%" align="left" valign="top"><a href="contact.html"
|
><br>
|
||||||
accesskey="P">Prev</a></td>
|
<SPAN
|
||||||
|
CLASS="CITY"
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
>Boston</SPAN
|
||||||
accesskey="H">Home</a></td>
|
>, <SPAN
|
||||||
|
CLASS="STATE"
|
||||||
<td width="33%" align="right" valign="top"> </td>
|
>MA</SPAN
|
||||||
</tr>
|
> <SPAN
|
||||||
|
CLASS="POSTCODE"
|
||||||
<tr>
|
>02110-1301</SPAN
|
||||||
<td width="33%" align="left" valign="top">Contacting the developers,
|
><br>
|
||||||
Bug Reporting and Feature Requests</td>
|
<SPAN
|
||||||
|
CLASS="COUNTRY"
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
>USA</SPAN
|
||||||
|
> </P
|
||||||
<td width="33%" align="right" valign="top"> </td>
|
></P
|
||||||
</tr>
|
></DIV
|
||||||
</table>
|
><DIV
|
||||||
</div>
|
CLASS="SECT2"
|
||||||
</body>
|
><H2
|
||||||
</html>
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="AEN1467"
|
||||||
|
>7.2. History</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> A long time ago, there was the
|
||||||
|
<A
|
||||||
|
HREF="http://www.junkbusters.com/ijb.html"
|
||||||
|
TARGET="_top"
|
||||||
|
><SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Internet Junkbuster</SPAN
|
||||||
|
></A
|
||||||
|
>,
|
||||||
|
by Anonymous Coders and <A
|
||||||
|
HREF="http://www.junkbusters.com/"
|
||||||
|
TARGET="_top"
|
||||||
|
>Junkbusters
|
||||||
|
Corporation</A
|
||||||
|
>. This saved many users a lot of pain in the early days of
|
||||||
|
web advertising and user tracking.</P
|
||||||
|
><P
|
||||||
|
> But the web, its protocols and standards, and with it, the techniques for
|
||||||
|
forcing ads on users, give up autonomy over their browsing, and
|
||||||
|
for tracking them, keeps evolving. Unfortunately, the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Internet
|
||||||
|
Junkbuster</SPAN
|
||||||
|
> did not. Version 2.0.2, published in 1998, was
|
||||||
|
(and is) the last official
|
||||||
|
<A
|
||||||
|
HREF="http://www.junkbusters.com/ijbdist.html#release"
|
||||||
|
TARGET="_top"
|
||||||
|
>release</A
|
||||||
|
>
|
||||||
|
available from <A
|
||||||
|
HREF="http://www.junkbusters.com"
|
||||||
|
TARGET="_top"
|
||||||
|
>Junkbusters Corporation</A
|
||||||
|
>.
|
||||||
|
Fortunately, it had been released under the GNU
|
||||||
|
<A
|
||||||
|
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>GPL</A
|
||||||
|
>,
|
||||||
|
which allowed further development by others.</P
|
||||||
|
><P
|
||||||
|
> So Stefan Waldherr started maintaining an improved version of the
|
||||||
|
software, to which eventually a number of people contributed patches.
|
||||||
|
It could already replace banners with a transparent image, and had a first
|
||||||
|
version of pop-up killing, but it was still very closely based on the
|
||||||
|
original, with all its limitations, such as the lack of HTTP/1.1 support,
|
||||||
|
flexible per-site configuration, or content modification. The last release
|
||||||
|
from this effort was version 2.0.2-10, published in 2000.</P
|
||||||
|
><P
|
||||||
|
> Then, some
|
||||||
|
<A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/copyright.html#AUTHORS"
|
||||||
|
TARGET="_top"
|
||||||
|
>developers</A
|
||||||
|
>
|
||||||
|
picked up the thread, and started turning the software inside out, upside down,
|
||||||
|
and then reassembled it, adding many
|
||||||
|
<A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
||||||
|
TARGET="_top"
|
||||||
|
>new
|
||||||
|
features</A
|
||||||
|
> along the way.</P
|
||||||
|
><P
|
||||||
|
> The result of this is <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>, whose first
|
||||||
|
stable version, 3.0, was released August, 2002.
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Contacting the developers, Bug Reporting and Feature Requests</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,259 +1,569 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Installation</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Installation</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy Frequently Asked Questions"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy Frequently Asked Questions" href=
|
REL="PREVIOUS"
|
||||||
"index.html">
|
TITLE="General Information"
|
||||||
<link rel="PREVIOUS" title="General Information" href="general.html">
|
HREF="general.html"><LINK
|
||||||
<link rel="NEXT" title="Configuration" href="configuration.html">
|
REL="NEXT"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
TITLE="Configuration"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
HREF="configuration.html"><LINK
|
||||||
<style type="text/css">
|
REL="STYLESHEET"
|
||||||
body {
|
TYPE="text/css"
|
||||||
background-color: #EEEEEE;
|
HREF="../p_doc.css"><META
|
||||||
color: #000000;
|
HTTP-EQUIV="Content-Type"
|
||||||
}
|
CONTENT="text/html;
|
||||||
:link { color: #0000FF }
|
charset=ISO-8859-1"></HEAD
|
||||||
:visited { color: #840084 }
|
><BODY
|
||||||
:active { color: #0000FF }
|
CLASS="SECT1"
|
||||||
span.c2 {font-style: italic}
|
BGCOLOR="#EEEEEE"
|
||||||
hr.c1 {text-align: left}
|
TEXT="#000000"
|
||||||
</style>
|
LINK="#0000FF"
|
||||||
</head>
|
VLINK="#840084"
|
||||||
|
ALINK="#0000FF"
|
||||||
<body class="SECT1">
|
><DIV
|
||||||
<div class="NAVHEADER">
|
CLASS="NAVHEADER"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><TABLE
|
||||||
cellpadding="0" cellspacing="0">
|
SUMMARY="Header navigation table"
|
||||||
<tr>
|
WIDTH="100%"
|
||||||
<th colspan="3" align="center">Privoxy Frequently Asked
|
BORDER="0"
|
||||||
Questions</th>
|
CELLPADDING="0"
|
||||||
</tr>
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
<tr>
|
><TH
|
||||||
<td width="10%" align="left" valign="bottom"><a href="general.html"
|
COLSPAN="3"
|
||||||
accesskey="P">Prev</a></td>
|
ALIGN="center"
|
||||||
|
>Privoxy Frequently Asked Questions</TH
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
></TR
|
||||||
|
><TR
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
><TD
|
||||||
"configuration.html" accesskey="N">Next</a></td>
|
WIDTH="10%"
|
||||||
</tr>
|
ALIGN="left"
|
||||||
</table>
|
VALIGN="bottom"
|
||||||
<hr class="c1" width="100%">
|
><A
|
||||||
</div>
|
HREF="general.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
<div class="SECT1">
|
>Prev</A
|
||||||
<h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2.
|
></TD
|
||||||
Installation</a></h1>
|
><TD
|
||||||
|
WIDTH="80%"
|
||||||
<div class="SECT2">
|
ALIGN="center"
|
||||||
<h3 class="SECT2"><a name="WHICHBROWSERS" id="WHICHBROWSERS">2.1. Which
|
VALIGN="bottom"
|
||||||
browsers are supported by Privoxy?</a></h3>
|
></TD
|
||||||
|
><TD
|
||||||
<p>Any browser that can be configured to use a proxy, which should be
|
WIDTH="10%"
|
||||||
virtually all browsers, including <span class=
|
ALIGN="right"
|
||||||
"APPLICATION">Firefox</span>, <span class="APPLICATION">Internet
|
VALIGN="bottom"
|
||||||
Explorer</span>, <span class="APPLICATION">Opera</span>, and
|
><A
|
||||||
<span class="APPLICATION">Safari</span> among others. Direct browser
|
HREF="configuration.html"
|
||||||
support is not an absolute requirement since <span class=
|
ACCESSKEY="N"
|
||||||
"APPLICATION">Privoxy</span> runs as a separate application and talks
|
>Next</A
|
||||||
to the browser in the standardized HTTP protocol, just like a web
|
></TD
|
||||||
server does.</p>
|
></TR
|
||||||
</div>
|
></TABLE
|
||||||
|
><HR
|
||||||
<div class="SECT2">
|
ALIGN="LEFT"
|
||||||
<h3 class="SECT2"><a name="WHICHOS" id="WHICHOS">2.2. Which operating
|
WIDTH="100%"></DIV
|
||||||
systems are supported?</a></h3>
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
<p>At present, <span class="APPLICATION">Privoxy</span> is known to run
|
><H1
|
||||||
on Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, SuSE,
|
CLASS="SECT1"
|
||||||
Debian, Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, AmigaOS,
|
><A
|
||||||
FreeBSD, NetBSD, OpenBSD, Solaris, and various other flavors of
|
NAME="INSTALLATION"
|
||||||
Unix.</p>
|
>2. Installation</A
|
||||||
|
></H1
|
||||||
<p>But any operating system that runs TCP/IP, can conceivably take
|
><DIV
|
||||||
advantage of <span class="APPLICATION">Privoxy</span> in a networked
|
CLASS="SECT2"
|
||||||
situation where <span class="APPLICATION">Privoxy</span> would run as a
|
><H3
|
||||||
server on a LAN gateway. Then only the <span class=
|
CLASS="SECT2"
|
||||||
"QUOTE">"gateway"</span> needs to be running one of the above operating
|
><A
|
||||||
systems.</p>
|
NAME="WHICHBROWSERS"
|
||||||
|
>2.1. Which browsers are supported by Privoxy?</A
|
||||||
<p>Source code is freely available, so porting to other operating
|
></H3
|
||||||
systems is always a possibility.</p>
|
><P
|
||||||
</div>
|
> Any browser that can be configured to use a proxy, which
|
||||||
|
should be virtually all browsers, including
|
||||||
<div class="SECT2">
|
<SPAN
|
||||||
<h3 class="SECT2"><a name="EMAIL-CLIENT" id="EMAIL-CLIENT">2.3. Can I
|
CLASS="APPLICATION"
|
||||||
use Privoxy with my email client?</a></h3>
|
>Firefox</SPAN
|
||||||
|
>, <SPAN
|
||||||
<p>As long as there is some way to set a HTTP proxy for the client,
|
CLASS="APPLICATION"
|
||||||
then yes, any application can be used, whether it is strictly speaking
|
>Internet
|
||||||
a <span class="QUOTE">"browser"</span> or not. Though this may not be
|
Explorer</SPAN
|
||||||
the best approach for dealing with some of the common abuses of HTML in
|
>, <SPAN
|
||||||
email. See <a href="configuration.html#OUTLOOK">How can I configure
|
CLASS="APPLICATION"
|
||||||
<span class="APPLICATION">Privoxy</span> with <span class=
|
>Opera</SPAN
|
||||||
"APPLICATION">Outlook</span>?</a> below for more on this.</p>
|
>, and
|
||||||
|
<SPAN
|
||||||
<p>Be aware that HTML email presents a number of unique security and
|
CLASS="APPLICATION"
|
||||||
privacy related issues, that can require advanced skills to overcome.
|
>Safari</SPAN
|
||||||
The developers recommend using email clients that can be configured to
|
> among others.
|
||||||
convert HTML to plain text for these reasons.</p>
|
Direct browser support is not an absolute requirement since
|
||||||
</div>
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<div class="SECT2">
|
>Privoxy</SPAN
|
||||||
<h3 class="SECT2"><a name="FIRSTSTEP" id="FIRSTSTEP">2.4. I just
|
> runs as a separate application and talks
|
||||||
installed Privoxy. Is there anything special I have to do now?</a></h3>
|
to the browser in the standardized HTTP protocol, just like a web server
|
||||||
|
does.</P
|
||||||
<p>All browsers should be told to use <span class=
|
></DIV
|
||||||
"APPLICATION">Privoxy</span> as a proxy by specifying the correct proxy
|
><DIV
|
||||||
address and port number in the appropriate configuration area for the
|
CLASS="SECT2"
|
||||||
browser. It's possible to combine <span class=
|
><H3
|
||||||
"APPLICATION">Privoxy</span> with a packet filter to intercept HTTP
|
CLASS="SECT2"
|
||||||
requests even if the client isn't explicitly configured to use
|
><A
|
||||||
<span class="APPLICATION">Privoxy</span>, but where possible,
|
NAME="WHICHOS"
|
||||||
configuring the client is recommended. See <a href=
|
>2.2. Which operating systems are supported?</A
|
||||||
"../user-manual/startup.html" target="_top">the User Manual for more
|
></H3
|
||||||
details</a>. You should also flush your browser's memory and disk cache
|
><P
|
||||||
to get rid of any cached junk items, and remove any stored <a href=
|
> At present, <SPAN
|
||||||
"http://en.wikipedia.org/wiki/Browser_cookie" target=
|
CLASS="APPLICATION"
|
||||||
"_top">cookies</a>.</p>
|
>Privoxy</SPAN
|
||||||
</div>
|
> is known to run on
|
||||||
|
Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, SuSE, Debian,
|
||||||
<div class="SECT2">
|
Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, AmigaOS, FreeBSD,
|
||||||
<h3 class="SECT2"><a name="LOCALHOST" id="LOCALHOST">2.5. What is the
|
NetBSD, OpenBSD, Solaris, and various other flavors of Unix.</P
|
||||||
proxy address of Privoxy?</a></h3>
|
><P
|
||||||
|
> But any operating system that runs TCP/IP, can conceivably take advantage of
|
||||||
<p>If you set up the <span class="APPLICATION">Privoxy</span> to run on
|
<SPAN
|
||||||
the computer you browse from (rather than your ISP's server or some
|
CLASS="APPLICATION"
|
||||||
networked computer on a LAN), the proxy will be on <tt class=
|
>Privoxy</SPAN
|
||||||
"LITERAL">127.0.0.1</tt> (sometimes referred to as <span class=
|
> in a networked situation where
|
||||||
"QUOTE">"localhost"</span>, which is the special name used by every
|
<SPAN
|
||||||
computer on the Internet to refer to itself) and the port will be 8118
|
CLASS="APPLICATION"
|
||||||
(unless you used the <a href=
|
>Privoxy</SPAN
|
||||||
"../user-manual/config.html#LISTEN-ADDRESS" target=
|
> would run as a server on a LAN gateway.
|
||||||
"_top">listen-address</a> config option to tell <span class=
|
Then only the <SPAN
|
||||||
"APPLICATION">Privoxy</span> to run on a different port).</p>
|
CLASS="QUOTE"
|
||||||
|
>"gateway"</SPAN
|
||||||
<p>When configuring your browser's proxy settings you typically enter
|
> needs to be running one of the above
|
||||||
the word <span class="QUOTE">"localhost"</span> or the IP address
|
operating systems.</P
|
||||||
<span class="QUOTE">"127.0.0.1"</span> in the boxes next to
|
><P
|
||||||
<span class="QUOTE">"HTTP"</span> and <span class=
|
> Source code is freely available, so porting to other operating systems
|
||||||
"QUOTE">"Secure"</span> (HTTPS) and then the number <span class=
|
is always a possibility.</P
|
||||||
"QUOTE">"8118"</span> for <span class="QUOTE">"port"</span>. This tells
|
></DIV
|
||||||
your browser to send all web requests to <span class=
|
><DIV
|
||||||
"APPLICATION">Privoxy</span> instead of directly to the Internet.</p>
|
CLASS="SECT2"
|
||||||
|
><H3
|
||||||
<p><span class="APPLICATION">Privoxy</span> can also be used to proxy
|
CLASS="SECT2"
|
||||||
for a Local Area Network. In this case, your would enter either the IP
|
><A
|
||||||
address of the LAN host where <span class="APPLICATION">Privoxy</span>
|
NAME="EMAIL-CLIENT"
|
||||||
is running, or the equivalent hostname, e.g. <tt class=
|
>2.3. Can I use Privoxy with my email client?</A
|
||||||
"LITERAL">192.168.1.1</tt>. Port assignment would be same as above.
|
></H3
|
||||||
Note that <span class="APPLICATION">Privoxy</span> doesn't listen on
|
><P
|
||||||
any LAN interfaces by default.</p>
|
> As long as there is some way to set a HTTP proxy for the client, then yes,
|
||||||
|
any application can be used, whether it is strictly speaking a
|
||||||
<p><span class="APPLICATION">Privoxy</span> does not currently handle
|
<SPAN
|
||||||
any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.</p>
|
CLASS="QUOTE"
|
||||||
</div>
|
>"browser"</SPAN
|
||||||
|
> or not. Though this may not be the best approach for
|
||||||
<div class="SECT2">
|
dealing with some of the common abuses of HTML in email. See <A
|
||||||
<h3 class="SECT2"><a name="NOTHING" id="NOTHING">2.6. I just installed
|
HREF="configuration.html#OUTLOOK"
|
||||||
Privoxy, and nothing is happening. All the ads are there. What's
|
>How can I configure <SPAN
|
||||||
wrong?</a></h3>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<p>Did you configure your browser to use <span class=
|
>
|
||||||
"APPLICATION">Privoxy</span> as a proxy? It does not sound like it. See
|
with <SPAN
|
||||||
above. You might also try flushing the browser's caches to force a full
|
CLASS="APPLICATION"
|
||||||
re-reading of pages. You can verify that <span class=
|
>Outlook</SPAN
|
||||||
"APPLICATION">Privoxy</span> is running, and your browser is correctly
|
>?</A
|
||||||
configured by entering the special URL: <a href="http://p.p/" target=
|
> below for more on
|
||||||
"_top">http://p.p/</a>. This should take you to a page titled
|
this. </P
|
||||||
<span class="QUOTE">"This is Privoxy.."</span> with access to
|
><P
|
||||||
<span class="APPLICATION">Privoxy's</span> internal configuration. If
|
> Be aware that HTML email presents a number of unique security and privacy
|
||||||
you see this, then you are good to go. If you receive a page saying
|
related issues, that can require advanced skills to overcome. The developers
|
||||||
<span class="QUOTE">"Privoxy is not running"</span>, then the browser
|
recommend using email clients that can be configured to convert HTML to plain
|
||||||
is not set up to use your <span class="APPLICATION">Privoxy</span>
|
text for these reasons.</P
|
||||||
installation. If you receive anything else (probably nothing at all),
|
></DIV
|
||||||
it could either be that the browser is not set up correctly, or that
|
><DIV
|
||||||
<span class="APPLICATION">Privoxy</span> is not running at all. Check
|
CLASS="SECT2"
|
||||||
the <a href="../user-manual/config.html#LOGFILE" target="_top">log
|
><H3
|
||||||
file</a>. For instructions on starting <span class=
|
CLASS="SECT2"
|
||||||
"APPLICATION">Privoxy</span> and browser configuration, see the
|
><A
|
||||||
<a href="http://www.privoxy.org/user-manual/startup.html" target=
|
NAME="FIRSTSTEP"
|
||||||
"_top">chapter on starting <span class="APPLICATION">Privoxy</span></a>
|
>2.4. I just installed Privoxy. Is there anything
|
||||||
in the <a href="http://www.privoxy.org/user-manual/" target="_top">User
|
special I have to do now?</A
|
||||||
Manual</a>.</p>
|
></H3
|
||||||
</div>
|
><P
|
||||||
|
> All browsers should be told to use <SPAN
|
||||||
<div class="SECT2">
|
CLASS="APPLICATION"
|
||||||
<h3 class="SECT2"><a name="NOTUSED" id="NOTUSED">2.7. I get a
|
>Privoxy</SPAN
|
||||||
<span class="QUOTE">"Privoxy is not being used"</span> dummy page
|
>
|
||||||
although Privoxy is running and being used.</a></h3>
|
as a proxy by specifying the correct proxy address and port number
|
||||||
|
in the appropriate configuration area for the browser. It's possible
|
||||||
<p>First, make sure that Privoxy is <span class=
|
to combine <SPAN
|
||||||
"emphasis EMPHASIS c2">really</span> running and being used by visiting
|
CLASS="APPLICATION"
|
||||||
<a href="http://p.p/" target="_top">http://p.p/</a>. You should see the
|
>Privoxy</SPAN
|
||||||
<span class="APPLICATION">Privoxy</span> main page. If not, see the
|
> with a packet filter to intercept HTTP requests
|
||||||
<a href="http://www.privoxy.org/user-manual/startup.html" target=
|
even if the client isn't explicitly configured to use <SPAN
|
||||||
"_top">chapter on starting <span class="APPLICATION">Privoxy</span></a>
|
CLASS="APPLICATION"
|
||||||
in the <a href="http://www.privoxy.org/user-manual/" target="_top">User
|
>Privoxy</SPAN
|
||||||
Manual</a>.</p>
|
>,
|
||||||
|
but where possible, configuring the client is recommended. See
|
||||||
<p>Now if <a href="http://p.p/" target="_top">http://p.p/</a> works for
|
<A
|
||||||
you, but other parts of <span class="APPLICATION">Privoxy</span>'s web
|
HREF="../user-manual/startup.html"
|
||||||
interface show the dummy page, your browser has cached a redirection it
|
TARGET="_top"
|
||||||
encountered before <span class="APPLICATION">Privoxy</span> was being
|
>the User Manual for more
|
||||||
used. You need to clear your browser's cache. Note that shift-reloading
|
details</A
|
||||||
the dummy page won't help, since that'll only refresh the dummy page,
|
>. You should also flush your browser's memory and disk
|
||||||
not the redirection that lead you there.</p>
|
cache to get rid of any cached junk items, and remove any stored
|
||||||
|
<A
|
||||||
<p>The procedure for clearing the cache varies from browser to browser.
|
HREF="http://en.wikipedia.org/wiki/Browser_cookie"
|
||||||
For example, <span class="APPLICATION">Mozilla/Netscape</span> users
|
TARGET="_top"
|
||||||
would click <span class="GUIBUTTON">Edit</span> --> <span class=
|
>cookies</A
|
||||||
"GUIBUTTON">Preferences</span> --> <span class=
|
>. </P
|
||||||
"GUIBUTTON">Advanced</span> --> <span class="GUIBUTTON">Cache</span>
|
></DIV
|
||||||
and then click both <span class="QUOTE">"<span class="GUIBUTTON">Clear
|
><DIV
|
||||||
Memory Cache</span>"</span> and <span class="QUOTE">"<span class=
|
CLASS="SECT2"
|
||||||
"GUIBUTTON">Clear Disk Cache</span>"</span>. In some <span class=
|
><H3
|
||||||
"APPLICATION">Firefox</span> versions it's <span class=
|
CLASS="SECT2"
|
||||||
"GUIBUTTON">Tools</span> --> <span class="GUIBUTTON">Options</span>
|
><A
|
||||||
--> <span class="GUIBUTTON">Privacy</span> --> <span class=
|
NAME="LOCALHOST"
|
||||||
"GUIBUTTON">Cache</span> and then click <span class=
|
>2.5. What is the proxy address of Privoxy?</A
|
||||||
"QUOTE">"<span class="GUIBUTTON">Clear Cache Now</span>"</span>.</p>
|
></H3
|
||||||
</div>
|
><P
|
||||||
</div>
|
> If you set up the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<div class="NAVFOOTER">
|
>Privoxy</SPAN
|
||||||
<hr class="c1" width="100%">
|
> to run on
|
||||||
|
the computer you browse from (rather than your ISP's server or some
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
networked computer on a LAN), the proxy will be on <TT
|
||||||
cellpadding="0" cellspacing="0">
|
CLASS="LITERAL"
|
||||||
<tr>
|
>127.0.0.1</TT
|
||||||
<td width="33%" align="left" valign="top"><a href="general.html"
|
>
|
||||||
accesskey="P">Prev</a></td>
|
(sometimes referred to as <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
>"localhost"</SPAN
|
||||||
accesskey="H">Home</a></td>
|
>,
|
||||||
|
which is the special name used by every computer on the Internet to refer
|
||||||
<td width="33%" align="right" valign="top"><a href=
|
to itself) and the port will be 8118 (unless you used the <A
|
||||||
"configuration.html" accesskey="N">Next</a></td>
|
HREF="../user-manual/config.html#LISTEN-ADDRESS"
|
||||||
</tr>
|
TARGET="_top"
|
||||||
|
>listen-address</A
|
||||||
<tr>
|
>
|
||||||
<td width="33%" align="left" valign="top">General Information</td>
|
config option to tell <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
>Privoxy</SPAN
|
||||||
|
> to run on
|
||||||
<td width="33%" align="right" valign="top">Configuration</td>
|
a different port).
|
||||||
</tr>
|
</P
|
||||||
</table>
|
><P
|
||||||
</div>
|
> When configuring your browser's proxy settings you typically enter
|
||||||
</body>
|
the word <SPAN
|
||||||
</html>
|
CLASS="QUOTE"
|
||||||
|
>"localhost"</SPAN
|
||||||
|
> or the IP address <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"127.0.0.1"</SPAN
|
||||||
|
>
|
||||||
|
in the boxes next to <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"HTTP"</SPAN
|
||||||
|
> and <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"Secure"</SPAN
|
||||||
|
> (HTTPS) and
|
||||||
|
then the number <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"8118"</SPAN
|
||||||
|
> for <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"port"</SPAN
|
||||||
|
>.
|
||||||
|
This tells your browser to send all web requests to <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>
|
||||||
|
instead of directly to the Internet.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> can also be used to proxy for
|
||||||
|
a Local Area Network. In this case, your would enter either the IP
|
||||||
|
address of the LAN host where <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>
|
||||||
|
is running, or the equivalent hostname, e.g. <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>192.168.1.1</TT
|
||||||
|
>.
|
||||||
|
Port assignment would be same as above. Note that
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> doesn't listen on any LAN interfaces by
|
||||||
|
default.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> does not currently handle
|
||||||
|
any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H3
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="NOTHING"
|
||||||
|
>2.6. I just installed Privoxy, and nothing is happening.
|
||||||
|
All the ads are there. What's wrong?</A
|
||||||
|
></H3
|
||||||
|
><P
|
||||||
|
> Did you configure your browser to use <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>
|
||||||
|
as a proxy? It does not sound like it. See above. You might also try flushing
|
||||||
|
the browser's caches to force a full re-reading of pages. You can verify
|
||||||
|
that <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> is running, and your browser
|
||||||
|
is correctly configured by entering the special URL:
|
||||||
|
<A
|
||||||
|
HREF="http://p.p/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://p.p/</A
|
||||||
|
>.
|
||||||
|
|
||||||
|
This should take you to a page titled <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"This is Privoxy.."</SPAN
|
||||||
|
> with
|
||||||
|
access to <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy's</SPAN
|
||||||
|
> internal configuration.
|
||||||
|
If you see this, then you are good to go. If you receive a page saying
|
||||||
|
<SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"Privoxy is not running"</SPAN
|
||||||
|
>, then the browser is not set up to use
|
||||||
|
your <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> installation.
|
||||||
|
If you receive anything else (probably nothing at all), it could either
|
||||||
|
be that the browser is not set up correctly, or that
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> is not running at all. Check the <A
|
||||||
|
HREF="../user-manual/config.html#LOGFILE"
|
||||||
|
TARGET="_top"
|
||||||
|
>log file</A
|
||||||
|
>. For instructions
|
||||||
|
on starting <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> and browser configuration,
|
||||||
|
see the <A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/startup.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>chapter
|
||||||
|
on starting <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
></A
|
||||||
|
> in the
|
||||||
|
<A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/"
|
||||||
|
TARGET="_top"
|
||||||
|
>User Manual</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H3
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="NOTUSED"
|
||||||
|
>2.7. I get a <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"Privoxy is not being used"</SPAN
|
||||||
|
> dummy page although
|
||||||
|
Privoxy is running and being used.</A
|
||||||
|
></H3
|
||||||
|
><P
|
||||||
|
> First, make sure that Privoxy is <SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>really</I
|
||||||
|
></SPAN
|
||||||
|
> running and
|
||||||
|
being used by visiting <A
|
||||||
|
HREF="http://p.p/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://p.p/</A
|
||||||
|
>. You
|
||||||
|
should see the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> main page. If not, see
|
||||||
|
the <A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/startup.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>chapter
|
||||||
|
on starting <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
></A
|
||||||
|
> in the
|
||||||
|
<A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/"
|
||||||
|
TARGET="_top"
|
||||||
|
>User Manual</A
|
||||||
|
>.</P
|
||||||
|
><P
|
||||||
|
> Now if <A
|
||||||
|
HREF="http://p.p/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://p.p/</A
|
||||||
|
> works for you, but
|
||||||
|
other parts of <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>'s web interface show
|
||||||
|
the dummy page, your browser has cached a redirection it encountered before
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> was being used. You need to clear your
|
||||||
|
browser's cache. Note that shift-reloading the dummy page won't help, since
|
||||||
|
that'll only refresh the dummy page, not the redirection that lead you there.</P
|
||||||
|
><P
|
||||||
|
> The procedure for clearing the cache varies from browser to browser. For
|
||||||
|
example, <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Mozilla/Netscape</SPAN
|
||||||
|
> users would click
|
||||||
|
<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Edit</SPAN
|
||||||
|
> --> <SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Preferences</SPAN
|
||||||
|
> -->
|
||||||
|
<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Advanced</SPAN
|
||||||
|
> --> <SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Cache</SPAN
|
||||||
|
> and
|
||||||
|
then click both <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Clear Memory Cache</SPAN
|
||||||
|
>"</SPAN
|
||||||
|
>
|
||||||
|
and <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Clear Disk Cache</SPAN
|
||||||
|
>"</SPAN
|
||||||
|
>.
|
||||||
|
In some <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Firefox</SPAN
|
||||||
|
> versions it's
|
||||||
|
<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Tools</SPAN
|
||||||
|
> --> <SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Options</SPAN
|
||||||
|
> -->
|
||||||
|
<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Privacy</SPAN
|
||||||
|
> --> <SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Cache</SPAN
|
||||||
|
> and
|
||||||
|
then click <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"<SPAN
|
||||||
|
CLASS="GUIBUTTON"
|
||||||
|
>Clear Cache Now</SPAN
|
||||||
|
>"</SPAN
|
||||||
|
>.
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="general.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="configuration.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>General Information</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Configuration</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,207 +1,328 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy - Home Page</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><META
|
||||||
<title>Privoxy - Home Page</title>
|
NAME="KEYWORD"
|
||||||
<meta name="GENERATOR" content=
|
CONTENT="privoxy"><META
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="privoxy">
|
CONTENT="HTTP"><META
|
||||||
<meta name="KEYWORD" content="HTTP">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="proxy">
|
CONTENT="proxy"><META
|
||||||
<meta name="KEYWORD" content="privacy">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="popups">
|
CONTENT="privacy"><META
|
||||||
<meta name="KEYWORD" content="po-ups">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="HTML">
|
CONTENT="popups"><META
|
||||||
<meta name="KEYWORD" content="JavaScript">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="cleaning">
|
CONTENT="po-ups"><META
|
||||||
<meta name="KEYWORD" content="blocking">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="cleaner">
|
CONTENT="HTML"><META
|
||||||
<meta name="KEYWORD" content="blocker">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="filter">
|
CONTENT="JavaScript"><META
|
||||||
<meta name="KEYWORD" content="proxy">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="junk">
|
CONTENT="cleaning"><META
|
||||||
<meta name="KEYWORD" content="ad">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="advertisement">
|
CONTENT="blocking"><META
|
||||||
<meta name="KEYWORD" content="banner">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="webbugs">
|
CONTENT="cleaner"><META
|
||||||
<meta name="KEYWORD" content="web-bugs">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="werbung">
|
CONTENT="blocker"><META
|
||||||
<meta name="KEYWORD" content="junkbusters">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="junkbuster">
|
CONTENT="filter"><META
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
NAME="KEYWORD"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
CONTENT="proxy"><META
|
||||||
<meta name="description" content=
|
NAME="KEYWORD"
|
||||||
"Privoxy helps users to protect their privacy.">
|
CONTENT="junk"><META
|
||||||
<meta name="MSSmartTagsPreventParsing" content="TRUE">
|
NAME="KEYWORD"
|
||||||
<style type="text/css">
|
CONTENT="ad"><META
|
||||||
body {
|
NAME="KEYWORD"
|
||||||
background-color: #EEEEEE;
|
CONTENT="advertisement"><META
|
||||||
color: #000000;
|
NAME="KEYWORD"
|
||||||
}
|
CONTENT="banner"><META
|
||||||
:link { color: #0000FF }
|
NAME="KEYWORD"
|
||||||
:visited { color: #840084 }
|
CONTENT="webbugs"><META
|
||||||
:active { color: #0000FF }
|
NAME="KEYWORD"
|
||||||
col.c1 {text-align: center}
|
CONTENT="web-bugs"><META
|
||||||
</style>
|
NAME="KEYWORD"
|
||||||
</head>
|
CONTENT="werbung"><META
|
||||||
|
NAME="KEYWORD"
|
||||||
<body class="ARTICLE">
|
CONTENT="junkbusters"><META
|
||||||
<div class="ARTICLE">
|
NAME="KEYWORD"
|
||||||
<div class="TITLEPAGE">
|
CONTENT="junkbuster"><LINK
|
||||||
<h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - Home Page</a></h1>
|
REL="STYLESHEET"
|
||||||
|
TYPE="text/css"
|
||||||
<div class="ABSTRACT">
|
HREF="p_doc.css"><META
|
||||||
<a name="AEN28" id="AEN28"></a>
|
HTTP-EQUIV="Content-Type"
|
||||||
|
CONTENT="text/html;
|
||||||
<p>Privoxy is a non-caching web proxy with advanced filtering
|
charset=ISO-8859-1">
|
||||||
capabilities for enhancing privacy, modifying web page data and HTTP
|
<meta name="description" content="Privoxy helps users to protect their privacy.">
|
||||||
headers, controlling access, and removing ads and other obnoxious
|
<meta name="MSSmartTagsPreventParsing" content="TRUE"></HEAD
|
||||||
Internet junk. Privoxy has a flexible configuration and can be
|
><BODY
|
||||||
customized to suit individual needs and tastes. It has application
|
CLASS="ARTICLE"
|
||||||
for both stand-alone systems and multi-user networks.</p>
|
BGCOLOR="#EEEEEE"
|
||||||
|
TEXT="#000000"
|
||||||
<p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
|
LINK="#0000FF"
|
||||||
|
VLINK="#840084"
|
||||||
<p>Privoxy is an associated project of Software in the Public
|
ALINK="#0000FF"
|
||||||
Interest (SPI).</p>
|
><DIV
|
||||||
|
CLASS="ARTICLE"
|
||||||
<p>Helping hands and donations are welcome:</p>
|
><DIV
|
||||||
|
CLASS="TITLEPAGE"
|
||||||
<ul>
|
><H1
|
||||||
<li>
|
CLASS="TITLE"
|
||||||
<p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE"
|
><A
|
||||||
target=
|
NAME="AEN2"
|
||||||
"_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
|
>Privoxy - Home Page</A
|
||||||
</li>
|
></H1
|
||||||
|
><DIV
|
||||||
<li>
|
><DIV
|
||||||
<p><a href="http://www.privoxy.org/faq/general.html#DONATE"
|
CLASS="ABSTRACT"
|
||||||
target=
|
><P
|
||||||
"_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
|
></P
|
||||||
</li>
|
><A
|
||||||
</ul>
|
NAME="AEN28"
|
||||||
|
></A
|
||||||
<p>The most recent release is <a href="announce.txt" target=
|
><P
|
||||||
"_top">3.0.19 (stable)</a>.</p>
|
> Privoxy is a non-caching web proxy with advanced filtering capabilities
|
||||||
</div>
|
for enhancing privacy, modifying web page data and HTTP headers, controlling
|
||||||
<hr>
|
access, and removing ads and other obnoxious Internet junk. Privoxy has a
|
||||||
</div>
|
flexible configuration and can be customized to suit individual needs and tastes.
|
||||||
|
It has application for both stand-alone systems and multi-user networks.</P
|
||||||
<div class="SECT1">
|
><P
|
||||||
<h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3>
|
> Privoxy is Free Software and licensed under the GPL2.</P
|
||||||
|
><P
|
||||||
<ul>
|
> Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||||
<li>
|
<A
|
||||||
<p><a href="https://sourceforge.net/projects/ijbswa/files/" target=
|
HREF="http://www.privoxy.org/faq/general.html#DONATE"
|
||||||
"_top">Download recent releases</a></p>
|
TARGET="_top"
|
||||||
</li>
|
>Donations are welcome</A
|
||||||
|
>.</P
|
||||||
<li>
|
><P
|
||||||
<p><a href="user-manual/quickstart.html" target="_top">Quickstart
|
> The most recent release is <A
|
||||||
after installation</a></p>
|
HREF="announce.txt"
|
||||||
</li>
|
TARGET="_top"
|
||||||
</ul>
|
>3.0.12 (stable)</A
|
||||||
</div>
|
>.
|
||||||
|
</P
|
||||||
<div class="SECT1">
|
><P
|
||||||
<hr>
|
></P
|
||||||
|
></DIV
|
||||||
<h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3>
|
></DIV
|
||||||
|
><HR></DIV
|
||||||
<ul>
|
><DIV
|
||||||
<li>
|
CLASS="SECT1"
|
||||||
<p><a href="user-manual/index.html" target="_top">User
|
><H3
|
||||||
manual</a></p>
|
CLASS="SECT1"
|
||||||
</li>
|
><A
|
||||||
|
NAME="DOWNLOAD"
|
||||||
<li>
|
>Download</A
|
||||||
<p><a href="faq/index.html" target="_top">Frequently Asked
|
></H3
|
||||||
Questions</a></p>
|
><P
|
||||||
</li>
|
> <P
|
||||||
|
></P
|
||||||
<li>
|
><UL
|
||||||
<p><a href="developer-manual/index.html" target="_top">Developer
|
><LI
|
||||||
Manual</a></p>
|
><P
|
||||||
</li>
|
> <A
|
||||||
|
HREF="https://sourceforge.net/project/showfiles.php?group_id=11118"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p><a href="man-page/privoxy-man-page.html" target="_top">Classic
|
>Download recent releases</A
|
||||||
Man Page</a></p>
|
>
|
||||||
</li>
|
</P
|
||||||
</ul>
|
></LI
|
||||||
</div>
|
><LI
|
||||||
|
><P
|
||||||
<div class="SECT1">
|
> <A
|
||||||
<hr>
|
HREF="user-manual/quickstart.html"
|
||||||
|
TARGET="_top"
|
||||||
<h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More
|
>Quickstart after installation</A
|
||||||
information</a></h3>
|
>
|
||||||
|
</P
|
||||||
<ul>
|
></LI
|
||||||
<li>
|
></UL
|
||||||
<p><a href="user-manual/contact.html" target="_top">Support &
|
></P
|
||||||
Service</a></p>
|
></DIV
|
||||||
</li>
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
<li>
|
><HR><H3
|
||||||
<p><a href="user-manual/copyright.html" target="_top">Copyright,
|
CLASS="SECT1"
|
||||||
License, History & Authors</a></p>
|
><A
|
||||||
</li>
|
NAME="DOCS"
|
||||||
|
>Documentation</A
|
||||||
<li>
|
></H3
|
||||||
<p><a href="user-manual/introduction.html#FEATURES" target=
|
><P
|
||||||
"_top">List of (new) Features</a></p>
|
> <P
|
||||||
</li>
|
></P
|
||||||
|
><UL
|
||||||
<li>
|
><LI
|
||||||
<p><a href="https://sourceforge.net/projects/ijbswa/" target=
|
><P
|
||||||
"_top">The project page</a></p>
|
> <A
|
||||||
</li>
|
HREF="user-manual/index.html"
|
||||||
|
TARGET="_top"
|
||||||
<li>
|
>User manual</A
|
||||||
<p><a href="user-manual/seealso.html" target="_top">Related
|
>
|
||||||
links</a></p>
|
</P
|
||||||
</li>
|
></LI
|
||||||
|
><LI
|
||||||
<li>
|
><P
|
||||||
<p><a href="http://www.privoxy.org/team/index.html" target=
|
> <A
|
||||||
"_top">Pictures of the Privoxy Team</a></p>
|
HREF="faq/index.html"
|
||||||
</li>
|
TARGET="_top"
|
||||||
</ul>
|
>Frequently Asked Questions</A
|
||||||
</div>
|
>
|
||||||
|
</P
|
||||||
<div class="SECT1">
|
></LI
|
||||||
<hr>
|
><LI
|
||||||
|
><P
|
||||||
<h2 class="SECT1"><a name="AEN90" id="AEN90"></a></h2>
|
> <A
|
||||||
|
HREF="developer-manual/index.html"
|
||||||
<div class="INFORMALTABLE">
|
TARGET="_top"
|
||||||
<a name="AEN93" id="AEN93"></a>
|
>Developer Manual</A
|
||||||
|
>
|
||||||
<table border="0" frame="void" rules="all" width="100%" class=
|
</P
|
||||||
"CALSTABLE">
|
></LI
|
||||||
<col class="c1" width="100%" title="C1">
|
><LI
|
||||||
|
><P
|
||||||
<tbody>
|
> <A
|
||||||
<tr>
|
HREF="man-page/privoxy-man-page.html"
|
||||||
<td align="center">Privoxy is developed on:</td>
|
TARGET="_top"
|
||||||
</tr>
|
>Classic Man Page</A
|
||||||
|
>
|
||||||
<tr>
|
</P
|
||||||
<td align="center"><a href="http://sourceforge.net/" target=
|
></LI
|
||||||
"_top"><img src=
|
></UL
|
||||||
"http://sourceforge.net/sflogo.php?group_id=11118&type=1&dummy=.gif"></a></td>
|
></P
|
||||||
</tr>
|
></DIV
|
||||||
</tbody>
|
><DIV
|
||||||
</table>
|
CLASS="SECT1"
|
||||||
</div>
|
><HR><H3
|
||||||
|
CLASS="SECT1"
|
||||||
<p><sub>Copyright © 2001-2010 by Privoxy Developers</sub></p>
|
><A
|
||||||
</div>
|
NAME="MOREINFO"
|
||||||
</div>
|
>More information</A
|
||||||
</body>
|
></H3
|
||||||
</html>
|
><P
|
||||||
|
> <P
|
||||||
|
></P
|
||||||
|
><UL
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/contact.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Support & Service</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/copyright.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Copyright, License, History & Authors</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/introduction.html#FEATURES"
|
||||||
|
TARGET="_top"
|
||||||
|
>List of (new) Features</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="https://sourceforge.net/projects/ijbswa/"
|
||||||
|
TARGET="_top"
|
||||||
|
>The project page</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/seealso.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Related links</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
>
|
||||||
|
|
||||||
|
<A
|
||||||
|
HREF="http://privoxy.org/team/index.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Pictures of the Privoxy Team</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
|
><HR><H2
|
||||||
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
|
NAME="AEN83"
|
||||||
|
></A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
><DIV
|
||||||
|
CLASS="INFORMALTABLE"
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
><A
|
||||||
|
NAME="AEN86"
|
||||||
|
></A
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
FRAME="void"
|
||||||
|
RULES="all"
|
||||||
|
WIDTH="100%"
|
||||||
|
CLASS="CALSTABLE"
|
||||||
|
><COL
|
||||||
|
WIDTH="100%"
|
||||||
|
ALIGN="CENTER"
|
||||||
|
TITLE="C1"><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
ALIGN="CENTER"
|
||||||
|
>Privoxy is developed on:</TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
ALIGN="CENTER"
|
||||||
|
> <A
|
||||||
|
HREF="http://sourceforge.net/"
|
||||||
|
TARGET="_top"
|
||||||
|
> <IMG
|
||||||
|
SRC="http://sourceforge.net/sflogo.php?group_id=11118&type=1&dummy=.gif">
|
||||||
|
</A
|
||||||
|
>
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
></P
|
||||||
|
><P
|
||||||
|
> <SUB
|
||||||
|
> Copyright © 2001-2009 by Privoxy Developers
|
||||||
|
</SUB
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,213 +1,294 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|
||||||
|
|
||||||
<html>
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
<head>
|
<HTML><HEAD><TITLE>Man page of PRIVOXY</TITLE>
|
||||||
<meta name="generator" content=
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="../p_doc.css"></HEAD><BODY>
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
<H1>PRIVOXY</H1>
|
||||||
|
Section: (1)<BR>Updated: 21 March 2009<BR><A HREF="#index">Index</A>
|
||||||
|
<HR>
|
||||||
|
|
||||||
<title>Privoxy Man page</title>
|
<A NAME="lbAB"> </A>
|
||||||
<link rel="stylesheet" type="text/css" href="../p_web.css">
|
<H2>NAME</H2>
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
privoxy - Privacy Enhancing Proxy
|
||||||
<h2>NAME</h2>
|
<A NAME="lbAC"> </A>
|
||||||
<pre>
|
<H2>SYNOPSIS</H2>
|
||||||
<!-- Manpage converted by man2html 3.0.1 -->
|
|
||||||
|
|
||||||
</pre>
|
<P>
|
||||||
|
<B>privoxy</B> [<B>--help</B> ] [<B>--version</B> ] [<B>--no-daemon</B> ] [<B>--pidfile </B><I>pidfile</I><B></B> ] [<B>--user </B><I>user[.group]</I><B></B> ] [<B>--chroot</B> ] [<B>--pre-chroot-nslookup </B><I>hostname</I><B></B> ] [<B></B><I>configfile</I><B></B> ]
|
||||||
|
<P>
|
||||||
|
<A NAME="lbAD"> </A>
|
||||||
|
<H2>OPTIONS</H2>
|
||||||
|
|
||||||
<h2>SYNOPSIS</h2>
|
<P>
|
||||||
<pre>
|
|
||||||
<b>privoxy</b> [<b>--help</b> ] [<b>--version</b> ] [<b>--no-daemon</b> ] [<b>--pidfile</b> <i>pidfile</i> ]
|
|
||||||
[<b>--user</b> <i>user[.group]</i> ] [<b>--chroot</b> ] [<b>--pre-chroot-nslookup</b> <i>hostname</i> ]
|
|
||||||
[<i>configfile</i> ]
|
|
||||||
|
|
||||||
|
<B>Privoxy</B> may be invoked with the following command line
|
||||||
|
options:
|
||||||
|
<DL COMPACT>
|
||||||
|
<DT><B>--help</B><DD>
|
||||||
|
Print brief usage info and exit.
|
||||||
|
<DT><B>--version</B><DD>
|
||||||
|
Print version info and exit.
|
||||||
|
<DT><B>--no-daemon</B><DD>
|
||||||
|
Don't become a daemon, i.e. don't fork and become process group
|
||||||
|
leader, don't detach from controlling tty, and do all logging there.
|
||||||
|
<DT><B>--pidfile </B><I>pidfile</I><B></B><DD>
|
||||||
|
On startup, write the process ID to <I>pidfile</I>.
|
||||||
|
Delete the <I>pidfile</I> on exit.
|
||||||
|
Failure to create or delete the <I>pidfile</I>
|
||||||
|
is non-fatal. If no <B>--pidfile</B> option is given, no PID file will be used.
|
||||||
|
<DT><B>--user </B><I>user[.group]</I><B></B><DD>
|
||||||
|
After (optionally) writing the PID file, assume the user ID of
|
||||||
|
<I>user</I> and the GID of
|
||||||
|
<I>group</I>, or, if the optional
|
||||||
|
<I>group</I> was not given, the default group of
|
||||||
|
<I>user</I>. Exit if the privileges are not
|
||||||
|
sufficient to do so.
|
||||||
|
<DT><B>--chroot</B><DD>
|
||||||
|
Before changing to the user ID given in the --user option, chroot to
|
||||||
|
that user's home directory, i.e. make the kernel pretend to the
|
||||||
|
<B>Privoxy</B> process that the directory tree starts
|
||||||
|
there. If set up carefully, this can limit the impact of possible
|
||||||
|
vulnerabilities in <B>Privoxy</B> to the files contained in
|
||||||
|
that hierarchy.
|
||||||
|
<DT><B>--pre-chroot-nslookup </B><I>hostname</I><B></B><DD>
|
||||||
|
Initialize the resolver library using <I>hostname</I>
|
||||||
|
before chroot'ing. On some systems this reduces the number of files
|
||||||
|
that must be copied into the chroot tree.
|
||||||
|
</DL>
|
||||||
|
<P>
|
||||||
|
|
||||||
|
If the <I>configfile</I> is not specified on the command line,
|
||||||
|
<B>Privoxy</B> will look for a file named
|
||||||
|
<I>config</I> in the current directory. If no
|
||||||
|
<I>configfile</I> is found, <B>Privoxy</B> will
|
||||||
|
fail to start.
|
||||||
|
<A NAME="lbAE"> </A>
|
||||||
|
<H2>DESCRIPTION</H2>
|
||||||
|
|
||||||
</pre>
|
<P>
|
||||||
|
|
||||||
<h2>OPTIONS</h2>
|
Privoxy is a non-caching web proxy with advanced filtering capabilities
|
||||||
<pre>
|
for enhancing privacy, modifying web page data and HTTP headers, controlling
|
||||||
<b>Privoxy</b> may be invoked with the following command line options:
|
access, and removing ads and other obnoxious Internet junk. Privoxy has a
|
||||||
|
flexible configuration and can be customized to suit individual needs and tastes.
|
||||||
|
It has application for both stand-alone systems and multi-user networks.
|
||||||
|
<P>
|
||||||
|
|
||||||
<b>--help</b> Print brief usage info and exit.
|
Privoxy is Free Software and licensed under the GPL2.
|
||||||
|
<A NAME="lbAF"> </A>
|
||||||
|
<H2>INSTALLATION AND USAGE</H2>
|
||||||
|
|
||||||
<b>--version</b>
|
<P>
|
||||||
Print version info and exit.
|
|
||||||
|
|
||||||
<b>--no-daemon</b>
|
Browsers can either be individually configured to use
|
||||||
Don't become a daemon, i.e. don't fork and become process
|
<B>Privoxy</B> as a HTTP proxy (recommended),
|
||||||
group leader, don't detach from controlling tty, and do all log-
|
or <B>Privoxy</B> can be combined with a packet
|
||||||
ging there.
|
filter to build an intercepting proxy
|
||||||
|
(see <I>config</I>). The default setting is for
|
||||||
|
localhost, on port 8118 (configurable in the main config file). To set the
|
||||||
|
HTTP proxy in Firefox, go through: <B>Tools</B>;
|
||||||
|
<B>Options</B>; <B>General</B>;
|
||||||
|
<B>Connection Settings</B>;
|
||||||
|
<B>Manual Proxy Configuration</B>.
|
||||||
|
<P>
|
||||||
|
|
||||||
<b>--pidfile</b> <i>pidfile</i>
|
For Internet Explorer, go through: <B>Tools</B>;
|
||||||
On startup, write the process ID to <i>pidfile</i>. Delete the <i>pidfile</i>
|
<B>Internet Properties</B>; <B>Connections</B>;
|
||||||
on exit. Failure to create or delete the <i>pidfile</i> is non-fatal.
|
<B>LAN Settings</B>.
|
||||||
If no <b>--pidfile</b> option is given, no PID file will be used.
|
<P>
|
||||||
|
|
||||||
<b>--user</b> <i>user[.group]</i>
|
The Secure (SSL) Proxy should also be set to the same values, otherwise
|
||||||
After (optionally) writing the PID file, assume the user ID of
|
https: URLs will not be proxied. Note: <B>Privoxy</B> can only
|
||||||
<i>user</i> and the GID of <i>group</i>, or, if the optional <i>group</i> was not
|
proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
|
||||||
given, the default group of <i>user</i>. Exit if the privileges are not
|
HTTPS presents some limitations, and not all features will work with HTTPS
|
||||||
sufficient to do so.
|
connections.
|
||||||
|
<P>
|
||||||
|
|
||||||
<b>--chroot</b>
|
For other browsers, check the documentation.
|
||||||
Before changing to the user ID given in the --user option,
|
<A NAME="lbAG"> </A>
|
||||||
chroot to that user's home directory, i.e. make the kernel pre-
|
<H2>CONFIGURATION</H2>
|
||||||
tend to the <b>Privoxy</b> process that the directory tree starts
|
|
||||||
there. If set up carefully, this can limit the impact of possi-
|
|
||||||
ble vulnerabilities in <b>Privoxy</b> to the files contained in that
|
|
||||||
hierarchy.
|
|
||||||
|
|
||||||
<b>--pre-chroot-nslookup</b> <i>hostname</i>
|
<P>
|
||||||
Initialize the resolver library using <i>hostname</i> before
|
|
||||||
chroot'ing. On some systems this reduces the number of files
|
|
||||||
that must be copied into the chroot tree.
|
|
||||||
|
|
||||||
If the <i>configfile</i> is not specified on the command line, <b>Privoxy</b>
|
<B>Privoxy</B> can be configured with the various configuration
|
||||||
will look for a file named <i>config</i> in the current directory. If no <i>con-</i>
|
files. The default configuration files are: <I>config</I>,
|
||||||
<i>figfile</i> is found, <b>Privoxy</b> will fail to start.
|
<I>default.filter</I>, <I>default.action</I> and
|
||||||
|
<I>default.action</I>. <I>user.action</I> should
|
||||||
|
be used for locally defined exceptions to the default rules in
|
||||||
|
<I>match-all.action</I> and <I>default.action</I>,
|
||||||
|
and <I>user.filter</I> for locally defined filters. These are
|
||||||
|
well commented. On Unix and Unix-like systems, these are located in
|
||||||
|
<I>/etc/privoxy/</I> by default.
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<B>Privoxy</B> uses the concept of <B>actions</B>
|
||||||
|
in order to manipulate the data stream between the browser and remote sites.
|
||||||
|
There are various actions available with specific functions for such things
|
||||||
|
as blocking web sites, managing cookies, etc. These actions can be invoked
|
||||||
|
individually or combined, and used against individual URLs, or groups of URLs
|
||||||
|
that can be defined using wildcards and regular expressions. The result is
|
||||||
|
that the user has greatly enhanced control and freedom.
|
||||||
|
<P>
|
||||||
|
|
||||||
</pre>
|
The actions list (ad blocks, etc) can also be configured with your
|
||||||
|
web browser at <A HREF="http://config.privoxy.org/">http://config.privoxy.org/</A>
|
||||||
|
(assuming the configuration allows it).
|
||||||
|
<B>Privoxy's</B> configuration parameters can also be viewed at
|
||||||
|
the same page. In addition, <B>Privoxy</B> can be toggled on/off.
|
||||||
|
This is an internal page, and does not require Internet access.
|
||||||
|
<P>
|
||||||
|
|
||||||
<h2>DESCRIPTION</h2>
|
See the <I>User Manual</I> for a detailed
|
||||||
<pre>
|
explanation of installation, general usage, all configuration options, new
|
||||||
Privoxy is a non-caching web proxy with advanced filtering capabilities
|
features and notes on upgrading.
|
||||||
for enhancing privacy, modifying web page data and HTTP headers, con-
|
<A NAME="lbAH"> </A>
|
||||||
trolling access, and removing ads and other obnoxious Internet junk.
|
<H2>FILES</H2>
|
||||||
Privoxy has a flexible configuration and can be customized to suit
|
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<PRE>
|
||||||
|
|
||||||
|
<I>/usr/sbin/privoxy</I>
|
||||||
|
<I>/etc/privoxy/config</I>
|
||||||
|
<I>/etc/privoxy/match-all.action</I>
|
||||||
|
<I>/etc/privoxy/default.action</I>
|
||||||
|
<I>/etc/privoxy/user.action</I>
|
||||||
|
<I>/etc/privoxy/default.filter</I>
|
||||||
|
<I>/etc/privoxy/user.filter</I>
|
||||||
|
<I>/etc/privoxy/trust</I>
|
||||||
|
<I>/etc/privoxy/templates/*</I>
|
||||||
|
<I>/var/log/privoxy/logfile</I>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
</pre>
|
<P>
|
||||||
|
|
||||||
<h2>INSTALLATION AND USAGE</h2>
|
Various other files should be included, but may vary depending on platform
|
||||||
<pre>
|
and build configuration. Additional documentation should be included in the local
|
||||||
Browsers can either be individually configured to use <b>Privoxy</b> as a HTTP
|
documentation directory.
|
||||||
proxy (recommended), or <b>Privoxy</b> can be combined with a packet filter to
|
<A NAME="lbAI"> </A>
|
||||||
build an intercepting proxy (see <i>config</i>). The default setting is for
|
<H2>SIGNALS</H2>
|
||||||
localhost, on port 8118 (configurable in the main config file). To
|
|
||||||
set the HTTP proxy in Firefox, go through: <b>Tools</b>; <b>Options</b>; <b>General</b>;
|
|
||||||
<b>Connection</b> <b>Settings</b>; <b>Manual</b> <b>Proxy</b> <b>Configuration</b>.
|
|
||||||
|
|
||||||
For Internet Explorer, go through: <b>Tools</b>; <b>Internet</b> <b>Properties</b>; <b>Connec-</b>
|
<P>
|
||||||
<b>tions</b>; <b>LAN</b> <b>Settings</b>.
|
|
||||||
|
|
||||||
The Secure (SSL) Proxy should also be set to the same values, otherwise
|
<B>Privoxy</B> terminates on the <B>SIGINT</B>,
|
||||||
https: URLs will not be proxied. Note: <b>Privoxy</b> can only proxy HTTP and
|
<B>SIGTERM</B> and <B>SIGABRT</B> signals. Log
|
||||||
HTTPS traffic. Do not try it with FTP or other protocols. HTTPS
|
rotation scripts may cause a re-opening of the logfile by sending a
|
||||||
presents some limitations, and not all features will work with HTTPS
|
<B>SIGHUP</B> to <B>Privoxy</B>. Note that unlike
|
||||||
connections.
|
other daemons, <B>Privoxy</B> does not need to be made aware of
|
||||||
|
config file changes by <B>SIGHUP</B> -- it will detect them
|
||||||
|
automatically.
|
||||||
|
<A NAME="lbAJ"> </A>
|
||||||
|
<H2>NOTES</H2>
|
||||||
|
|
||||||
For other browsers, check the documentation.
|
<P>
|
||||||
|
|
||||||
|
Please see the <I>User Manual</I> on how to contact the
|
||||||
|
developers, for feature requests, reporting problems, and other questions.
|
||||||
|
<A NAME="lbAK"> </A>
|
||||||
|
<H2>SEE ALSO</H2>
|
||||||
|
|
||||||
</pre>
|
<P>
|
||||||
|
|
||||||
<h2>CONFIGURATION</h2>
|
Other references and sites of interest to <B>Privoxy</B>
|
||||||
<pre>
|
users:
|
||||||
<b>Privoxy</b> can be configured with the various configuration files. The
|
<P>
|
||||||
default configuration files are: <i>config</i>, <i>default.filter</i>, <i>default.action</i>
|
|
||||||
and <i>default.action</i>. <i>user.action</i> should be used for locally defined
|
|
||||||
exceptions to the default rules in <i>match-all.action</i> and <i>default.action</i>,
|
|
||||||
and <i>user.filter</i> for locally defined filters. These are well commented.
|
|
||||||
On Unix and Unix-like systems, these are located in <i>/etc/privoxy/</i> by
|
|
||||||
default.
|
|
||||||
|
|
||||||
<b>Privoxy</b> uses the concept of <b>actions</b> in order to manipulate the data
|
<P>
|
||||||
stream between the browser and remote sites. There are various actions
|
<A HREF="http://www.privoxy.org/">http://www.privoxy.org/,</A>
|
||||||
available with specific functions for such things as blocking web
|
the <B>Privoxy</B> Home page.
|
||||||
sites, managing cookies, etc. These actions can be invoked individually
|
<P>
|
||||||
or combined, and used against individual URLs, or groups of URLs that
|
<A HREF="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/,</A>
|
||||||
can be defined using wildcards and regular expressions. The result is
|
the <B>Privoxy</B> FAQ.
|
||||||
that the user has greatly enhanced control and freedom.
|
<P>
|
||||||
|
<A HREF="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/,</A>
|
||||||
|
the <B>Privoxy</B> developer manual.
|
||||||
|
<P>
|
||||||
|
<A HREF="https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/,</A>
|
||||||
|
the Project Page for <B>Privoxy</B> on
|
||||||
|
SourceForge.
|
||||||
|
<P>
|
||||||
|
<A HREF="http://config.privoxy.org/">http://config.privoxy.org/,</A>
|
||||||
|
the web-based user interface. <B>Privoxy</B> must be
|
||||||
|
running for this to work. Shortcut: <A HREF="http://p.p/">http://p.p/</A>
|
||||||
|
<P>
|
||||||
|
<A HREF="https://sourceforge.net/tracker/?group_id=11118">https://sourceforge.net/tracker/?group_id=11118</A>&atid=460288, to submit ``misses'' and other
|
||||||
|
configuration related suggestions to the developers.
|
||||||
|
<A NAME="lbAL"> </A>
|
||||||
|
<H2>DEVELOPMENT TEAM</H2>
|
||||||
|
|
||||||
The actions list (ad blocks, etc) can also be configured with your web
|
<P>
|
||||||
browser at http://config.privoxy.org/ (assuming the configuration
|
<PRE>
|
||||||
allows it). <b>Privoxy's</b> configuration parameters can also be viewed at
|
Fabian Keil, lead developer
|
||||||
the same page. In addition, <b>Privoxy</b> can be toggled on/off. This is an
|
David Schmidt, developer
|
||||||
internal page, and does not require Internet access.
|
|
||||||
|
|
||||||
See the <i>User</i> <i>Manual</i> for a detailed explanation of installation, general
|
Hal Burgiss
|
||||||
usage, all configuration options, new features and notes on upgrading.
|
Mark Miller
|
||||||
|
Gerry Murphy
|
||||||
|
Lee Rian
|
||||||
|
Roland Rosenfeld
|
||||||
|
Jörg Strohmayer
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<A NAME="lbAM"> </A>
|
||||||
|
<H2>COPYRIGHT AND LICENSE</H2>
|
||||||
|
|
||||||
</pre>
|
<A NAME="lbAN"> </A>
|
||||||
|
<H3>COPYRIGHT</H3>
|
||||||
|
|
||||||
<h2>FILES</h2>
|
<P>
|
||||||
<pre>
|
|
||||||
<i>/usr/sbin/privoxy</i>
|
|
||||||
<i>/etc/privoxy/config</i>
|
|
||||||
<i>/etc/privoxy/match-all.action</i>
|
|
||||||
<i>/etc/privoxy/default.action</i>
|
|
||||||
<i>/etc/privoxy/user.action</i>
|
|
||||||
<i>/etc/privoxy/default.filter</i>
|
|
||||||
detect them automatically.
|
|
||||||
|
|
||||||
|
Copyright (C) 2001-2009 by Privoxy Developers <<A HREF="mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</A>>
|
||||||
|
<P>
|
||||||
|
|
||||||
</pre>
|
Some source code is based on code Copyright (C) 1997 by Anonymous Coders
|
||||||
|
and Junkbusters, Inc. and licensed under the <I>GNU General Public
|
||||||
|
License</I>.
|
||||||
|
<A NAME="lbAO"> </A>
|
||||||
|
<H3>LICENSE</H3>
|
||||||
|
|
||||||
<h2>NOTES</h2>
|
<P>
|
||||||
<pre>
|
|
||||||
This is a UNRELEASED version of <b>Privoxy</b>. Not all features are well
|
|
||||||
tested.
|
|
||||||
|
|
||||||
Please see the <i>User</i> <i>Manual</i> on how to contact the developers, for fea-
|
<B>Privoxy</B> is free software; you can
|
||||||
ture requests, reporting problems, and other questions.
|
redistribute it and/or modify it under the terms of the
|
||||||
|
<I>GNU General Public License</I>, version 2,
|
||||||
|
as published by the Free Software Foundation.
|
||||||
|
<P>
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the <I>GNU General Public License</I> for details.
|
||||||
|
<P>
|
||||||
|
|
||||||
</pre>
|
You should have received a copy of the <I>GNU GPL</I>
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc. 51 Franklin Street, Fifth Floor
|
||||||
|
Boston, MA 02110-1301
|
||||||
|
USA
|
||||||
|
<P>
|
||||||
|
|
||||||
<h2>SEE ALSO</h2>
|
<HR>
|
||||||
<pre>
|
<A NAME="index"> </A><H2>Index</H2>
|
||||||
Other references and sites of interest to <b>Privoxy</b> users:
|
<DL>
|
||||||
|
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||||
|
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||||
http://www.privoxy.org/, the <b>Privoxy</b> Home page.
|
<DT><A HREF="#lbAD">OPTIONS</A><DD>
|
||||||
|
<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
|
||||||
http://www.privoxy.org/faq/, the <b>Privoxy</b> FAQ.
|
<DT><A HREF="#lbAF">INSTALLATION AND USAGE</A><DD>
|
||||||
|
<DT><A HREF="#lbAG">CONFIGURATION</A><DD>
|
||||||
http://www.privoxy.org/developer-manual/, the <b>Privoxy</b> developer manual.
|
<DT><A HREF="#lbAH">FILES</A><DD>
|
||||||
|
<DT><A HREF="#lbAI">SIGNALS</A><DD>
|
||||||
https://sourceforge.net/projects/ijbswa/, the Project Page for <b>Privoxy</b>
|
<DT><A HREF="#lbAJ">NOTES</A><DD>
|
||||||
on SourceForge.
|
<DT><A HREF="#lbAK">SEE ALSO</A><DD>
|
||||||
|
<DT><A HREF="#lbAL">DEVELOPMENT TEAM</A><DD>
|
||||||
http://config.privoxy.org/, the web-based user interface. <b>Privoxy</b> must
|
<DT><A HREF="#lbAM">COPYRIGHT AND LICENSE</A><DD>
|
||||||
be running for this to work. Shortcut: http://p.p/
|
<DL>
|
||||||
|
<DT><A HREF="#lbAN">COPYRIGHT</A><DD>
|
||||||
https://sourceforge.net/tracker/?group_id=11118&atid=460288, to submit
|
<DT><A HREF="#lbAO">LICENSE</A><DD>
|
||||||
``misses'' and other configuration related suggestions to the develop-
|
</DL>
|
||||||
ers.
|
</DL>
|
||||||
|
<HR>
|
||||||
|
This document was created by
|
||||||
</pre>
|
man2html,
|
||||||
|
using the manual pages.<BR>
|
||||||
<h2>DEVELOPMENT TEAM</h2>
|
Time: 11:32:52 GMT, March 21, 2009
|
||||||
<pre>
|
</BODY>
|
||||||
Fabian Keil, lead developer
|
</HTML>
|
||||||
David Schmidt, developer
|
|
||||||
|
|
||||||
Hal Burgiss
|
|
||||||
Lee Rian
|
|
||||||
Roland Rosenfeld
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h2>COPYRIGHT AND LICENSE</h2>
|
|
||||||
<pre>
|
|
||||||
<b>COPYRIGHT</b>
|
|
||||||
Copyright (C) 2001-2011 by Privoxy Developers <ijbswa-develop-
|
|
||||||
ers@lists.sourceforge.net>
|
|
||||||
|
|
||||||
Some source code is based on code Copyright (C) 1997 by Anonymous
|
|
||||||
Coders and Junkbusters, Inc. and licensed under the <i>GNU</i> <i>General</i> <i>Public</i>
|
|
||||||
<i>License</i>.
|
|
||||||
|
|
||||||
<b>LICENSE</b>
|
|
||||||
<b>Privoxy</b> is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the <i>GNU</i> <i>General</i> <i>Public</i> <i>License</i>, version 2, as pub-
|
|
||||||
lished by the Free Software Foundation.
|
|
||||||
</pre>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
|
@ -1,185 +1,283 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy - The Privacy Enhancing Proxy</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><META
|
||||||
<title>Privoxy - The Privacy Enhancing Proxy</title>
|
NAME="KEYWORD"
|
||||||
<meta name="GENERATOR" content=
|
CONTENT="privoxy"><META
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="privoxy">
|
CONTENT="HTTP"><META
|
||||||
<meta name="KEYWORD" content="HTTP">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="proxy">
|
CONTENT="proxy"><META
|
||||||
<meta name="KEYWORD" content="privacy">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="popups">
|
CONTENT="privacy"><META
|
||||||
<meta name="KEYWORD" content="po-ups">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="HTML">
|
CONTENT="popups"><META
|
||||||
<meta name="KEYWORD" content="JavaScript">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="cleaning">
|
CONTENT="po-ups"><META
|
||||||
<meta name="KEYWORD" content="blocking">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="cleaner">
|
CONTENT="HTML"><META
|
||||||
<meta name="KEYWORD" content="blocker">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="filter">
|
CONTENT="JavaScript"><META
|
||||||
<meta name="KEYWORD" content="proxy">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="junk">
|
CONTENT="cleaning"><META
|
||||||
<meta name="KEYWORD" content="ad">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="advertisement">
|
CONTENT="blocking"><META
|
||||||
<meta name="KEYWORD" content="banner">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="webbugs">
|
CONTENT="cleaner"><META
|
||||||
<meta name="KEYWORD" content="web-bugs">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="werbung">
|
CONTENT="blocker"><META
|
||||||
<meta name="KEYWORD" content="junkbusters">
|
NAME="KEYWORD"
|
||||||
<meta name="KEYWORD" content="junkbuster">
|
CONTENT="filter"><META
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
NAME="KEYWORD"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
CONTENT="proxy"><META
|
||||||
<meta name="description" content=
|
NAME="KEYWORD"
|
||||||
"Privoxy helps users to protect their privacy.">
|
CONTENT="junk"><META
|
||||||
<meta name="MSSmartTagsPreventParsing" content="TRUE">
|
NAME="KEYWORD"
|
||||||
<style type="text/css">
|
CONTENT="ad"><META
|
||||||
body {
|
NAME="KEYWORD"
|
||||||
background-color: #EEEEEE;
|
CONTENT="advertisement"><META
|
||||||
color: #000000;
|
NAME="KEYWORD"
|
||||||
}
|
CONTENT="banner"><META
|
||||||
:link { color: #0000FF }
|
NAME="KEYWORD"
|
||||||
:visited { color: #840084 }
|
CONTENT="webbugs"><META
|
||||||
:active { color: #0000FF }
|
NAME="KEYWORD"
|
||||||
</style>
|
CONTENT="web-bugs"><META
|
||||||
</head>
|
NAME="KEYWORD"
|
||||||
|
CONTENT="werbung"><META
|
||||||
<body class="ARTICLE">
|
NAME="KEYWORD"
|
||||||
<div class="ARTICLE">
|
CONTENT="junkbusters"><META
|
||||||
<div class="TITLEPAGE">
|
NAME="KEYWORD"
|
||||||
<h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - The Privacy
|
CONTENT="junkbuster"><LINK
|
||||||
Enhancing Proxy</a></h1>
|
REL="STYLESHEET"
|
||||||
|
TYPE="text/css"
|
||||||
<h2 class="SUBTITLE">Project Index Page v3.0.19</h2>
|
HREF="p_doc.css"><META
|
||||||
|
HTTP-EQUIV="Content-Type"
|
||||||
<div class="ABSTRACT">
|
CONTENT="text/html;
|
||||||
<a name="AEN29" id="AEN29"></a>
|
charset=ISO-8859-1">
|
||||||
|
<meta name="description" content="Privoxy helps users to protect their privacy.">
|
||||||
<p>Privoxy is a non-caching web proxy with advanced filtering
|
<meta name="MSSmartTagsPreventParsing" content="TRUE"></HEAD
|
||||||
capabilities for enhancing privacy, modifying web page data and HTTP
|
><BODY
|
||||||
headers, controlling access, and removing ads and other obnoxious
|
CLASS="ARTICLE"
|
||||||
Internet junk. Privoxy has a flexible configuration and can be
|
BGCOLOR="#EEEEEE"
|
||||||
customized to suit individual needs and tastes. It has application
|
TEXT="#000000"
|
||||||
for both stand-alone systems and multi-user networks.</p>
|
LINK="#0000FF"
|
||||||
|
VLINK="#840084"
|
||||||
<p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
|
ALINK="#0000FF"
|
||||||
|
><DIV
|
||||||
<p>Privoxy is an associated project of Software in the Public
|
CLASS="ARTICLE"
|
||||||
Interest (SPI).</p>
|
><DIV
|
||||||
|
CLASS="TITLEPAGE"
|
||||||
<p>Helping hands and donations are welcome:</p>
|
><H1
|
||||||
|
CLASS="TITLE"
|
||||||
<ul>
|
><A
|
||||||
<li>
|
NAME="AEN2"
|
||||||
<p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE"
|
>Privoxy - The Privacy Enhancing Proxy</A
|
||||||
target=
|
></H1
|
||||||
"_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
|
><H2
|
||||||
</li>
|
CLASS="SUBTITLE"
|
||||||
|
>Project Index Page v3.0.12</H2
|
||||||
<li>
|
><DIV
|
||||||
<p><a href="http://www.privoxy.org/faq/general.html#DONATE"
|
><DIV
|
||||||
target=
|
CLASS="ABSTRACT"
|
||||||
"_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
|
><P
|
||||||
</li>
|
></P
|
||||||
</ul>
|
><A
|
||||||
</div>
|
NAME="AEN29"
|
||||||
<hr>
|
></A
|
||||||
</div>
|
><P
|
||||||
|
> Privoxy is a non-caching web proxy with advanced filtering capabilities
|
||||||
<div class="SECT1">
|
for enhancing privacy, modifying web page data and HTTP headers, controlling
|
||||||
<h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3>
|
access, and removing ads and other obnoxious Internet junk. Privoxy has a
|
||||||
|
flexible configuration and can be customized to suit individual needs and tastes.
|
||||||
<ul>
|
It has application for both stand-alone systems and multi-user networks.</P
|
||||||
<li>
|
><P
|
||||||
<p><a href="https://sourceforge.net/projects/ijbswa/files/" target=
|
> Privoxy is Free Software and licensed under the GPL2.</P
|
||||||
"_top">Download recent releases</a></p>
|
><P
|
||||||
</li>
|
> Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||||
|
<A
|
||||||
<li>
|
HREF="http://www.privoxy.org/faq/general.html#DONATE"
|
||||||
<p><a href="user-manual/quickstart.html" target="_top">Quickstart
|
TARGET="_top"
|
||||||
after installation</a></p>
|
>Donations are welcome</A
|
||||||
</li>
|
>.</P
|
||||||
</ul>
|
><P
|
||||||
</div>
|
></P
|
||||||
|
></DIV
|
||||||
<div class="SECT1">
|
></DIV
|
||||||
<hr>
|
><HR></DIV
|
||||||
|
><DIV
|
||||||
<h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3>
|
CLASS="SECT1"
|
||||||
|
><H3
|
||||||
<ul>
|
CLASS="SECT1"
|
||||||
<li>
|
><A
|
||||||
<p><a href="user-manual/index.html" target="_top">User
|
NAME="DOWNLOAD"
|
||||||
manual</a></p>
|
>Download</A
|
||||||
</li>
|
></H3
|
||||||
|
><P
|
||||||
<li>
|
> <P
|
||||||
<p><a href="faq/index.html" target="_top">Frequently Asked
|
></P
|
||||||
Questions</a></p>
|
><UL
|
||||||
</li>
|
><LI
|
||||||
|
><P
|
||||||
<li>
|
> <A
|
||||||
<p><a href="developer-manual/index.html" target="_top">Developer
|
HREF="https://sourceforge.net/project/showfiles.php?group_id=11118"
|
||||||
Manual</a></p>
|
TARGET="_top"
|
||||||
</li>
|
>Download recent releases</A
|
||||||
|
>
|
||||||
<li>
|
</P
|
||||||
<p><a href="man-page/privoxy-man-page.html" target="_top">Classic
|
></LI
|
||||||
Man Page</a></p>
|
><LI
|
||||||
</li>
|
><P
|
||||||
</ul>
|
> <A
|
||||||
</div>
|
HREF="user-manual/quickstart.html"
|
||||||
|
TARGET="_top"
|
||||||
<div class="SECT1">
|
>Quickstart after installation</A
|
||||||
<hr>
|
>
|
||||||
|
</P
|
||||||
<h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More
|
></LI
|
||||||
information</a></h3>
|
></UL
|
||||||
|
></P
|
||||||
<ul>
|
></DIV
|
||||||
<li>
|
><DIV
|
||||||
<p><a href="user-manual/contact.html" target="_top">Support &
|
CLASS="SECT1"
|
||||||
Service</a></p>
|
><HR><H3
|
||||||
</li>
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
<li>
|
NAME="DOCS"
|
||||||
<p><a href="user-manual/copyright.html" target="_top">Copyright,
|
>Documentation</A
|
||||||
License, History & Authors</a></p>
|
></H3
|
||||||
</li>
|
><P
|
||||||
|
> <P
|
||||||
<li>
|
></P
|
||||||
<p><a href="user-manual/introduction.html#FEATURES" target=
|
><UL
|
||||||
"_top">List of (new) Features</a></p>
|
><LI
|
||||||
</li>
|
><P
|
||||||
|
> <A
|
||||||
<li>
|
HREF="user-manual/index.html"
|
||||||
<p><a href="https://sourceforge.net/projects/ijbswa/" target=
|
TARGET="_top"
|
||||||
"_top">The project page</a></p>
|
>User manual</A
|
||||||
</li>
|
>
|
||||||
|
</P
|
||||||
<li>
|
></LI
|
||||||
<p><a href="user-manual/seealso.html" target="_top">Related
|
><LI
|
||||||
links</a></p>
|
><P
|
||||||
</li>
|
> <A
|
||||||
|
HREF="faq/index.html"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p><a href="http://www.privoxy.org/team/index.html" target=
|
>Frequently Asked Questions</A
|
||||||
"_top">Pictures of the Privoxy Team</a></p>
|
>
|
||||||
</li>
|
</P
|
||||||
</ul>
|
></LI
|
||||||
</div>
|
><LI
|
||||||
|
><P
|
||||||
<div class="SECT1">
|
> <A
|
||||||
<hr>
|
HREF="developer-manual/index.html"
|
||||||
|
TARGET="_top"
|
||||||
<h2 class="SECT1"><a name="AEN89" id="AEN89"></a></h2>
|
>Developer Manual</A
|
||||||
|
>
|
||||||
<p><sub>Copyright © 2001-2010 by Privoxy Developers</sub></p>
|
</P
|
||||||
</div>
|
></LI
|
||||||
</div>
|
><LI
|
||||||
</body>
|
><P
|
||||||
</html>
|
> <A
|
||||||
|
HREF="man-page/privoxy-man-page.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Classic Man Page</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
|
><HR><H3
|
||||||
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
|
NAME="MOREINFO"
|
||||||
|
>More information</A
|
||||||
|
></H3
|
||||||
|
><P
|
||||||
|
> <P
|
||||||
|
></P
|
||||||
|
><UL
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/contact.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Support & Service</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/copyright.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Copyright, License, History & Authors</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/introduction.html#FEATURES"
|
||||||
|
TARGET="_top"
|
||||||
|
>List of (new) Features</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="https://sourceforge.net/projects/ijbswa/"
|
||||||
|
TARGET="_top"
|
||||||
|
>The project page</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <A
|
||||||
|
HREF="user-manual/seealso.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Related links</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
>
|
||||||
|
|
||||||
|
<A
|
||||||
|
HREF="http://privoxy.org/team/index.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>Pictures of the Privoxy Team</A
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
|
><HR><H2
|
||||||
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
|
NAME="AEN82"
|
||||||
|
></A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> <SUB
|
||||||
|
> Copyright © 2001-2009 by Privoxy Developers
|
||||||
|
</SUB
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,52 +1,26 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta name="generator" content=
|
<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1">
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
|
||||||
|
|
||||||
<title>Privoxy - Team Photos</title>
|
<title>Privoxy - Team Photos</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../p_doc.css">
|
<link rel="stylesheet" type="text/css" href="../p_doc.css">
|
||||||
<style type="text/css">
|
</head>
|
||||||
h1.c1 {margin-left: 0%}
|
<body>
|
||||||
</style>
|
<h1 style="margin-left: 0%">Privoxy - Team Photos</h1>
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h1 class="c1">Privoxy - Team Photos</h1>
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p>In our day jobs, we're all models ;-)</p>
|
<p>In our day jobs, we're all models ;-)</p>
|
||||||
|
|
||||||
<table align="center">
|
<table align="center">
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80"
|
<td><a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80" height="80" border="0" title="Stefan Waldherr"></a></td>
|
||||||
height="80" border="0" title="Stefan Waldherr"></a></td>
|
<td><a href="02jon.jpg"><img src="02jon_t.jpg" width="80" height="80" border="0" title="Jon Foster"></a></td>
|
||||||
|
<td><a href="03andreas.jpg"><img src="03andreas_t.jpg" width="80" height="80" border="0" title="Andreas Oesterhelt"></a></td>
|
||||||
<td><a href="02jon.jpg"><img src="02jon_t.jpg" width="80" height="80"
|
<td><a href="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height="80" border="0" title="Rodney Stromlund"></a></td>
|
||||||
border="0" title="Jon Foster"></a></td>
|
</tr>
|
||||||
|
<tr>
|
||||||
<td><a href="03andreas.jpg"><img src="03andreas_t.jpg" width="80"
|
<td><a href="05david.jpg"><img src="05david_t.jpg" width="80" height="80" border="0" title="David Schmidt"></a></td>
|
||||||
height="80" border="0" title="Andreas Oesterhelt"></a></td>
|
<td><a href="06member.jpg"><img src="06member_t.jpg" width="80" height="80" border="0" title="N/A"></a></td>
|
||||||
|
<td><a href="07member.jpg"><img src="07member_t.jpg" width="80" height="80" border="0" title="N/A"></a></td>
|
||||||
<td><a href="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height=
|
<td><a href="08member.jpg"><img src="08member_t.jpg" width="80" height="80" border="0" title="N/A"></a></td>
|
||||||
"80" border="0" title="Rodney Stromlund"></a></td>
|
</tr>
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td><a href="05david.jpg"><img src="05david_t.jpg" width="80" height=
|
|
||||||
"80" border="0" title="David Schmidt"></a></td>
|
|
||||||
|
|
||||||
<td><a href="06member.jpg"><img src="06member_t.jpg" width="80" height=
|
|
||||||
"80" border="0" title="N/A"></a></td>
|
|
||||||
|
|
||||||
<td><a href="07member.jpg"><img src="07member_t.jpg" width="80" height=
|
|
||||||
"80" border="0" title="N/A"></a></td>
|
|
||||||
|
|
||||||
<td><a href="08member.jpg"><img src="08member_t.jpg" width="80" height=
|
|
||||||
"80" border="0" title="N/A"></a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,282 +1,514 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy Configuration</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Privoxy Configuration</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Starting Privoxy" href="startup.html">
|
TITLE="Starting Privoxy"
|
||||||
<link rel="NEXT" title="The Main Configuration File" href="config.html">
|
HREF="startup.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="NEXT"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TITLE="The Main Configuration File"
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
HREF="config.html"><LINK
|
||||||
<style type="text/css">
|
REL="STYLESHEET"
|
||||||
body {
|
TYPE="text/css"
|
||||||
background-color: #EEEEEE;
|
HREF="../p_doc.css"><META
|
||||||
color: #000000;
|
HTTP-EQUIV="Content-Type"
|
||||||
}
|
CONTENT="text/html;
|
||||||
:link { color: #0000FF }
|
charset=ISO-8859-1">
|
||||||
:visited { color: #840084 }
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
|
||||||
:active { color: #0000FF }
|
</head
|
||||||
span.c3 {font-style: italic}
|
><BODY
|
||||||
table.c2 {background-color: #E0E0E0}
|
CLASS="SECT1"
|
||||||
hr.c1 {text-align: left}
|
BGCOLOR="#EEEEEE"
|
||||||
</style>
|
TEXT="#000000"
|
||||||
</head>
|
LINK="#0000FF"
|
||||||
|
VLINK="#840084"
|
||||||
<body class="SECT1">
|
ALINK="#0000FF"
|
||||||
<div class="NAVHEADER">
|
><DIV
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
CLASS="NAVHEADER"
|
||||||
cellpadding="0" cellspacing="0">
|
><TABLE
|
||||||
<tr>
|
SUMMARY="Header navigation table"
|
||||||
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
|
WIDTH="100%"
|
||||||
</tr>
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
<tr>
|
CELLSPACING="0"
|
||||||
<td width="10%" align="left" valign="bottom"><a href="startup.html"
|
><TR
|
||||||
accesskey="P">Prev</a></td>
|
><TH
|
||||||
|
COLSPAN="3"
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
ALIGN="center"
|
||||||
|
>Privoxy 3.0.12 User Manual</TH
|
||||||
<td width="10%" align="right" valign="bottom"><a href="config.html"
|
></TR
|
||||||
accesskey="N">Next</a></td>
|
><TR
|
||||||
</tr>
|
><TD
|
||||||
</table>
|
WIDTH="10%"
|
||||||
<hr class="c1" width="100%">
|
ALIGN="left"
|
||||||
</div>
|
VALIGN="bottom"
|
||||||
|
><A
|
||||||
<div class="SECT1">
|
HREF="startup.html"
|
||||||
<h1 class="SECT1"><a name="CONFIGURATION" id="CONFIGURATION">6. Privoxy
|
ACCESSKEY="P"
|
||||||
Configuration</a></h1>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<p>All <span class="APPLICATION">Privoxy</span> configuration is stored
|
><TD
|
||||||
in text files. These files can be edited with a text editor. Many
|
WIDTH="80%"
|
||||||
important aspects of <span class="APPLICATION">Privoxy</span> can also be
|
ALIGN="center"
|
||||||
controlled easily with a web browser.</p>
|
VALIGN="bottom"
|
||||||
|
></TD
|
||||||
<div class="SECT2">
|
><TD
|
||||||
<h2 class="SECT2"><a name="AEN1090" id="AEN1090">6.1. Controlling
|
WIDTH="10%"
|
||||||
Privoxy with Your Web Browser</a></h2>
|
ALIGN="right"
|
||||||
|
VALIGN="bottom"
|
||||||
<p><span class="APPLICATION">Privoxy</span>'s user interface can be
|
><A
|
||||||
reached through the special URL <a href="http://config.privoxy.org/"
|
HREF="config.html"
|
||||||
target="_top">http://config.privoxy.org/</a> (shortcut: <a href=
|
ACCESSKEY="N"
|
||||||
"http://p.p/" target="_top">http://p.p/</a>), which is a built-in page
|
>Next</A
|
||||||
and works without Internet access. You will see the following
|
></TD
|
||||||
section:</p>
|
></TR
|
||||||
|
></TABLE
|
||||||
<table class="c2" border="0" width="100%">
|
><HR
|
||||||
<tr>
|
ALIGN="LEFT"
|
||||||
<td>
|
WIDTH="100%"></DIV
|
||||||
<pre class="SCREEN">
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
</pre>
|
><H1
|
||||||
|
CLASS="SECT1"
|
||||||
<h2 class="BRIDGEHEAD"><a name="AEN1098" id=
|
><A
|
||||||
"AEN1098"></a> Privoxy Menu</h2>
|
NAME="CONFIGURATION"
|
||||||
<pre>
|
>6. Privoxy Configuration</A
|
||||||
</pre>
|
></H1
|
||||||
|
><P
|
||||||
<table border="0">
|
> All <SPAN
|
||||||
<tbody>
|
CLASS="APPLICATION"
|
||||||
<tr>
|
>Privoxy</SPAN
|
||||||
<td>
|
> configuration is stored
|
||||||
▪ <a href="http://config.privoxy.org/show-status"
|
in text files. These files can be edited with a text editor.
|
||||||
target="_top">View & change the current
|
Many important aspects of <SPAN
|
||||||
configuration</a></td>
|
CLASS="APPLICATION"
|
||||||
</tr>
|
>Privoxy</SPAN
|
||||||
|
> can
|
||||||
<tr>
|
also be controlled easily with a web browser.
|
||||||
<td>
|
</P
|
||||||
▪ <a href="http://config.privoxy.org/show-version"
|
><DIV
|
||||||
target="_top">View the source code version numbers</a></td>
|
CLASS="SECT2"
|
||||||
</tr>
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
<tr>
|
><A
|
||||||
<td>
|
NAME="AEN776"
|
||||||
▪ <a href="http://config.privoxy.org/show-request"
|
>6.1. Controlling Privoxy with Your Web Browser</A
|
||||||
target="_top">View the request headers.</a></td>
|
></H2
|
||||||
</tr>
|
><P
|
||||||
|
> <SPAN
|
||||||
<tr>
|
CLASS="APPLICATION"
|
||||||
<td>
|
>Privoxy</SPAN
|
||||||
▪ <a href="http://config.privoxy.org/show-url-info"
|
>'s user interface can be reached through the special
|
||||||
target="_top">Look up which actions apply to a URL and
|
URL <A
|
||||||
why</a></td>
|
HREF="http://config.privoxy.org/"
|
||||||
</tr>
|
TARGET="_top"
|
||||||
|
>http://config.privoxy.org/</A
|
||||||
<tr>
|
>
|
||||||
<td>
|
(shortcut: <A
|
||||||
▪ <a href="http://config.privoxy.org/toggle"
|
HREF="http://p.p/"
|
||||||
target="_top">Toggle Privoxy on or off</a></td>
|
TARGET="_top"
|
||||||
</tr>
|
>http://p.p/</A
|
||||||
|
>),
|
||||||
<tr>
|
which is a built-in page and works without Internet access.
|
||||||
<td>
|
You will see the following section: </P
|
||||||
▪ <a href="http://www.privoxy.org/3.0.19/user-manual/"
|
><TABLE
|
||||||
target="_top">Documentation</a></td>
|
BORDER="0"
|
||||||
</tr>
|
BGCOLOR="#E0E0E0"
|
||||||
</tbody>
|
WIDTH="100%"
|
||||||
</table>
|
><TR
|
||||||
</td>
|
><TD
|
||||||
</tr>
|
><PRE
|
||||||
</table>
|
CLASS="SCREEN"
|
||||||
|
> <H2
|
||||||
<p>This should be self-explanatory. Note the first item leads to an
|
CLASS="BRIDGEHEAD"
|
||||||
editor for the <a href="actions-file.html">actions files</a>, which is
|
><A
|
||||||
where the ad, banner, cookie, and URL blocking magic is configured as
|
NAME="AEN784"
|
||||||
well as other advanced features of <span class=
|
></A
|
||||||
"APPLICATION">Privoxy</span>. This is an easy way to adjust various
|
> Privoxy Menu</H2
|
||||||
aspects of <span class="APPLICATION">Privoxy</span> configuration. The
|
><P
|
||||||
actions file, and other configuration files, are explained in detail
|
></P
|
||||||
below.</p>
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
<p><span class="QUOTE">"Toggle Privoxy On or Off"</span> is handy for
|
><TBODY
|
||||||
sites that might have problems with your current actions and filters.
|
><TR
|
||||||
You can in fact use it as a test to see whether it is <span class=
|
><TD
|
||||||
"APPLICATION">Privoxy</span> causing the problem or not. <span class=
|
> ▪ <A
|
||||||
"APPLICATION">Privoxy</span> continues to run as a proxy in this case,
|
HREF="http://config.privoxy.org/show-status"
|
||||||
but all manipulation is disabled, i.e. <span class=
|
TARGET="_top"
|
||||||
"APPLICATION">Privoxy</span> acts like a normal forwarding proxy. There
|
>View & change the current configuration</A
|
||||||
is even a toggle <a href="appendix.html#BOOKMARKLETS">Bookmarklet</a>
|
>
|
||||||
offered, so that you can toggle <span class=
|
</TD
|
||||||
"APPLICATION">Privoxy</span> with one click from your browser.</p>
|
></TR
|
||||||
|
><TR
|
||||||
<p>Note that several of the features described above are disabled by
|
><TD
|
||||||
default in <span class="APPLICATION">Privoxy</span> 3.0.7 beta and
|
> ▪ <A
|
||||||
later. Check the <a href="config.html" target="_top">configuration
|
HREF="http://config.privoxy.org/show-version"
|
||||||
file</a> to learn why and in which cases it's safe to enable them
|
TARGET="_top"
|
||||||
again.</p>
|
>View the source code version numbers</A
|
||||||
</div>
|
>
|
||||||
|
</TD
|
||||||
<div class="SECT2">
|
></TR
|
||||||
<h2 class="SECT2"><a name="CONFOVERVIEW" id="CONFOVERVIEW">6.2.
|
><TR
|
||||||
Configuration Files Overview</a></h2>
|
><TD
|
||||||
|
> ▪ <A
|
||||||
<p>For Unix, *BSD and Linux, all configuration files are located in
|
HREF="http://config.privoxy.org/show-request"
|
||||||
<tt class="FILENAME">/etc/privoxy/</tt> by default. For MS Windows,
|
TARGET="_top"
|
||||||
OS/2, and AmigaOS these are all in the same directory as the
|
>View the request headers.</A
|
||||||
<span class="APPLICATION">Privoxy</span> executable.</p>
|
>
|
||||||
|
</TD
|
||||||
<p>The installed defaults provide a reasonable starting point, though
|
></TR
|
||||||
some settings may be aggressive by some standards. For the time being,
|
><TR
|
||||||
the principle configuration files are:</p>
|
><TD
|
||||||
|
> ▪ <A
|
||||||
<ul>
|
HREF="http://config.privoxy.org/show-url-info"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p>The <a href="config.html">main configuration file</a> is named
|
>Look up which actions apply to a URL and why</A
|
||||||
<tt class="FILENAME">config</tt> on Linux, Unix, BSD, OS/2, and
|
>
|
||||||
AmigaOS and <tt class="FILENAME">config.txt</tt> on Windows. This
|
</TD
|
||||||
is a required file.</p>
|
></TR
|
||||||
</li>
|
><TR
|
||||||
|
><TD
|
||||||
<li>
|
> ▪ <A
|
||||||
<p><tt class="FILENAME">match-all.action</tt> is used to define
|
HREF="http://config.privoxy.org/toggle"
|
||||||
which <span class="QUOTE">"actions"</span> relating to
|
TARGET="_top"
|
||||||
banner-blocking, images, pop-ups, content modification, cookie
|
>Toggle Privoxy on or off</A
|
||||||
handling etc should be applied by default. It should be the first
|
>
|
||||||
actions file loaded.</p>
|
</TD
|
||||||
|
></TR
|
||||||
<p><tt class="FILENAME">default.action</tt> defines many exceptions
|
><TR
|
||||||
(both positive and negative) from the default set of actions that's
|
><TD
|
||||||
configured in <tt class="FILENAME">match-all.action</tt>. It should
|
> ▪ <A
|
||||||
be the second actions file loaded and shouldn't be edited by the
|
HREF="http://www.privoxy.org/3.0.12/user-manual/"
|
||||||
user.</p>
|
TARGET="_top"
|
||||||
|
>Documentation</A
|
||||||
<p>Multiple actions files may be defined in <tt class=
|
>
|
||||||
"FILENAME">config</tt>. These are processed in the order they are
|
</TD
|
||||||
defined. Local customizations and locally preferred exceptions to
|
></TR
|
||||||
the default policies as defined in <tt class=
|
></TBODY
|
||||||
"FILENAME">match-all.action</tt> (which you will most probably want
|
></TABLE
|
||||||
to define sooner or later) are best applied in <tt class=
|
><P
|
||||||
"FILENAME">user.action</tt>, where you can preserve them across
|
></P
|
||||||
upgrades. The file isn't installed by all installers, but you can
|
></PRE
|
||||||
easily create it yourself with a text editor.</p>
|
></TD
|
||||||
|
></TR
|
||||||
<p>There is also a web based editor that can be accessed from
|
></TABLE
|
||||||
<a href="http://config.privoxy.org/show-status" target=
|
><P
|
||||||
"_top">http://config.privoxy.org/show-status</a> (Shortcut:
|
> This should be self-explanatory. Note the first item leads to an editor for the
|
||||||
<a href="http://p.p/show-status" target=
|
<A
|
||||||
"_top">http://p.p/show-status</a>) for the various actions
|
HREF="actions-file.html"
|
||||||
files.</p>
|
>actions files</A
|
||||||
</li>
|
>, which is where the ad, banner,
|
||||||
|
cookie, and URL blocking magic is configured as well as other advanced features of
|
||||||
<li>
|
<SPAN
|
||||||
<p><span class="QUOTE">"Filter files"</span> (the <a href=
|
CLASS="APPLICATION"
|
||||||
"filter-file.html">filter file</a>) can be used to re-write the raw
|
>Privoxy</SPAN
|
||||||
page content, including viewable text as well as embedded HTML and
|
>. This is an easy way to adjust various
|
||||||
JavaScript, and whatever else lurks on any given web page. The
|
aspects of <SPAN
|
||||||
filtering jobs are only pre-defined here; whether to apply them or
|
CLASS="APPLICATION"
|
||||||
not is up to the actions files. <tt class=
|
>Privoxy</SPAN
|
||||||
"FILENAME">default.filter</tt> includes various filters made
|
> configuration. The actions
|
||||||
available for use by the developers. Some are much more intrusive
|
file, and other configuration files, are explained in detail below. </P
|
||||||
than others, and all should be used with caution. You may define
|
><P
|
||||||
additional filter files in <tt class="FILENAME">config</tt> as you
|
> <SPAN
|
||||||
can with actions files. We suggest <tt class=
|
CLASS="QUOTE"
|
||||||
"FILENAME">user.filter</tt> for any locally defined filters or
|
>"Toggle Privoxy On or Off"</SPAN
|
||||||
customizations.</p>
|
> is handy for sites that might
|
||||||
</li>
|
have problems with your current actions and filters. You can in fact use
|
||||||
</ul>
|
it as a test to see whether it is <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<p>The syntax of the configuration and filter files may change between
|
>Privoxy</SPAN
|
||||||
different Privoxy versions, unfortunately some enhancements cost
|
>
|
||||||
backwards compatibility.</p>
|
causing the problem or not. <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<p>All files use the <span class="QUOTE">"<tt class=
|
>Privoxy</SPAN
|
||||||
"LITERAL">#</tt>"</span> character to denote a comment (the rest of the
|
> continues
|
||||||
line will be ignored) and understand line continuation through placing
|
to run as a proxy in this case, but all manipulation is disabled, i.e.
|
||||||
a backslash ("<tt class="LITERAL">\</tt>") as the very last character
|
<SPAN
|
||||||
in a line. If the <tt class="LITERAL">#</tt> is preceded by a
|
CLASS="APPLICATION"
|
||||||
backslash, it looses its special function. Placing a <tt class=
|
>Privoxy</SPAN
|
||||||
"LITERAL">#</tt> in front of an otherwise valid configuration line to
|
> acts like a normal forwarding proxy. There
|
||||||
prevent it from being interpreted is called "commenting out" that line.
|
is even a toggle <A
|
||||||
Blank lines are ignored.</p>
|
HREF="appendix.html#BOOKMARKLETS"
|
||||||
|
>Bookmarklet</A
|
||||||
<p>The actions files and filter files can use Perl style <a href=
|
> offered, so
|
||||||
"appendix.html#REGEX">regular expressions</a> for maximum
|
that you can toggle <SPAN
|
||||||
flexibility.</p>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<p>After making any changes, there is no need to restart <span class=
|
> with one click from
|
||||||
"APPLICATION">Privoxy</span> in order for the changes to take effect.
|
your browser.</P
|
||||||
<span class="APPLICATION">Privoxy</span> detects such changes
|
><P
|
||||||
automatically. Note, however, that it may take one or two additional
|
> Note that several of the features described above are disabled by default
|
||||||
requests for the change to take effect. When changing the listening
|
in <SPAN
|
||||||
address of <span class="APPLICATION">Privoxy</span>, these <span class=
|
CLASS="APPLICATION"
|
||||||
"QUOTE">"wake up"</span> requests must obviously be sent to the
|
>Privoxy</SPAN
|
||||||
<span class="emphasis EMPHASIS c3">old</span> listening address.</p>
|
> 3.0.7 beta and later.
|
||||||
</div>
|
Check the
|
||||||
</div>
|
<A
|
||||||
|
HREF="config.html"
|
||||||
<div class="NAVFOOTER">
|
TARGET="_top"
|
||||||
<hr class="c1" width="100%">
|
>configuration file</A
|
||||||
|
> to learn why
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
and in which cases it's safe to enable them again.</P
|
||||||
cellpadding="0" cellspacing="0">
|
></DIV
|
||||||
<tr>
|
><DIV
|
||||||
<td width="33%" align="left" valign="top"><a href="startup.html"
|
CLASS="SECT2"
|
||||||
accesskey="P">Prev</a></td>
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
><A
|
||||||
accesskey="H">Home</a></td>
|
NAME="CONFOVERVIEW"
|
||||||
|
>6.2. Configuration Files Overview</A
|
||||||
<td width="33%" align="right" valign="top"><a href="config.html"
|
></H2
|
||||||
accesskey="N">Next</a></td>
|
><P
|
||||||
</tr>
|
> For Unix, *BSD and Linux, all configuration files are located in
|
||||||
|
<TT
|
||||||
<tr>
|
CLASS="FILENAME"
|
||||||
<td width="33%" align="left" valign="top">Starting Privoxy</td>
|
>/etc/privoxy/</TT
|
||||||
|
> by default. For MS Windows, OS/2, and
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
AmigaOS these are all in the same directory as the
|
||||||
|
<SPAN
|
||||||
<td width="33%" align="right" valign="top">The Main Configuration
|
CLASS="APPLICATION"
|
||||||
File</td>
|
>Privoxy</SPAN
|
||||||
</tr>
|
> executable. </P
|
||||||
</table>
|
><P
|
||||||
</div>
|
> The installed defaults provide a reasonable starting point, though
|
||||||
</body>
|
some settings may be aggressive by some standards. For the time being, the
|
||||||
</html>
|
principle configuration files are:</P
|
||||||
|
><P
|
||||||
|
> <P
|
||||||
|
></P
|
||||||
|
><UL
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> The <A
|
||||||
|
HREF="config.html"
|
||||||
|
>main configuration file</A
|
||||||
|
> is named <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>config</TT
|
||||||
|
>
|
||||||
|
on Linux, Unix, BSD, OS/2, and AmigaOS and <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>config.txt</TT
|
||||||
|
>
|
||||||
|
on Windows. This is a required file.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>match-all.action</TT
|
||||||
|
> is used to define which <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"actions"</SPAN
|
||||||
|
>
|
||||||
|
relating to banner-blocking, images, pop-ups, content modification, cookie handling
|
||||||
|
etc should be applied by default. It should be the first actions file loaded.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>default.action</TT
|
||||||
|
> defines many exceptions (both positive and negative)
|
||||||
|
from the default set of actions that's configured in <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>match-all.action</TT
|
||||||
|
>.
|
||||||
|
It should be the second actions file loaded and shouldn't be edited by the user.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> Multiple actions files may be defined in <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>config</TT
|
||||||
|
>. These
|
||||||
|
are processed in the order they are defined. Local customizations and locally
|
||||||
|
preferred exceptions to the default policies as defined in
|
||||||
|
<TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>match-all.action</TT
|
||||||
|
> (which you will most probably want
|
||||||
|
to define sooner or later) are best applied in <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>user.action</TT
|
||||||
|
>,
|
||||||
|
where you can preserve them across upgrades. The file isn't installed by all
|
||||||
|
installers, but you can easily create it yourself with a text editor.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
>
|
||||||
|
There is also a web based editor that can be accessed from
|
||||||
|
<A
|
||||||
|
HREF="http://config.privoxy.org/show-status"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://config.privoxy.org/show-status</A
|
||||||
|
>
|
||||||
|
(Shortcut: <A
|
||||||
|
HREF="http://p.p/show-status"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://p.p/show-status</A
|
||||||
|
>) for the
|
||||||
|
various actions files.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"Filter files"</SPAN
|
||||||
|
> (the <A
|
||||||
|
HREF="filter-file.html"
|
||||||
|
>filter
|
||||||
|
file</A
|
||||||
|
>) can be used to re-write the raw page content, including
|
||||||
|
viewable text as well as embedded HTML and JavaScript, and whatever else
|
||||||
|
lurks on any given web page. The filtering jobs are only pre-defined here;
|
||||||
|
whether to apply them or not is up to the actions files.
|
||||||
|
<TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>default.filter</TT
|
||||||
|
> includes various filters made
|
||||||
|
available for use by the developers. Some are much more intrusive than
|
||||||
|
others, and all should be used with caution. You may define additional
|
||||||
|
filter files in <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>config</TT
|
||||||
|
> as you can with
|
||||||
|
actions files. We suggest <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>user.filter</TT
|
||||||
|
> for any
|
||||||
|
locally defined filters or customizations.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
><P
|
||||||
|
> The syntax of the configuration and filter files may change between different
|
||||||
|
Privoxy versions, unfortunately some enhancements cost backwards compatibility.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> All files use the <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"<TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>#</TT
|
||||||
|
>"</SPAN
|
||||||
|
> character to denote a
|
||||||
|
comment (the rest of the line will be ignored) and understand line continuation
|
||||||
|
through placing a backslash ("<TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>\</TT
|
||||||
|
>") as the very last character
|
||||||
|
in a line. If the <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>#</TT
|
||||||
|
> is preceded by a backslash, it looses
|
||||||
|
its special function. Placing a <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>#</TT
|
||||||
|
> in front of an otherwise
|
||||||
|
valid configuration line to prevent it from being interpreted is called "commenting
|
||||||
|
out" that line. Blank lines are ignored.</P
|
||||||
|
><P
|
||||||
|
> The actions files and filter files
|
||||||
|
can use Perl style <A
|
||||||
|
HREF="appendix.html#REGEX"
|
||||||
|
>regular expressions</A
|
||||||
|
> for
|
||||||
|
maximum flexibility. </P
|
||||||
|
><P
|
||||||
|
> After making any changes, there is no need to restart
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> in order for the changes to take
|
||||||
|
effect. <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> detects such changes
|
||||||
|
automatically. Note, however, that it may take one or two additional
|
||||||
|
requests for the change to take effect. When changing the listening address
|
||||||
|
of <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>, these <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"wake up"</SPAN
|
||||||
|
> requests
|
||||||
|
must obviously be sent to the <SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>old</I
|
||||||
|
></SPAN
|
||||||
|
> listening address.</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="startup.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="config.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Starting Privoxy</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>The Main Configuration File</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,364 +1,514 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Contacting the Developers, Bug Reporting and Feature
|
||||||
<meta name="generator" content=
|
Requests</TITLE
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
><META
|
||||||
|
NAME="GENERATOR"
|
||||||
<title>Contacting the Developers, Bug Reporting and Feature
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
Requests</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Privoxy's Template Files" href=
|
TITLE="Privoxy's Template Files"
|
||||||
"templates.html">
|
HREF="templates.html"><LINK
|
||||||
<link rel="NEXT" title="Privoxy Copyright, License and History" href=
|
REL="NEXT"
|
||||||
"copyright.html">
|
TITLE="Privoxy Copyright, License and History"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
HREF="copyright.html"><LINK
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
REL="STYLESHEET"
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
TYPE="text/css"
|
||||||
<style type="text/css">
|
HREF="../p_doc.css"><META
|
||||||
body {
|
HTTP-EQUIV="Content-Type"
|
||||||
background-color: #EEEEEE;
|
CONTENT="text/html;
|
||||||
color: #000000;
|
charset=ISO-8859-1">
|
||||||
}
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
|
||||||
:link { color: #0000FF }
|
</head
|
||||||
:visited { color: #840084 }
|
><BODY
|
||||||
:active { color: #0000FF }
|
CLASS="SECT1"
|
||||||
span.c2 {font-style: italic}
|
BGCOLOR="#EEEEEE"
|
||||||
hr.c1 {text-align: left}
|
TEXT="#000000"
|
||||||
</style>
|
LINK="#0000FF"
|
||||||
</head>
|
VLINK="#840084"
|
||||||
|
ALINK="#0000FF"
|
||||||
<body class="SECT1">
|
><DIV
|
||||||
<div class="NAVHEADER">
|
CLASS="NAVHEADER"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><TABLE
|
||||||
cellpadding="0" cellspacing="0">
|
SUMMARY="Header navigation table"
|
||||||
<tr>
|
WIDTH="100%"
|
||||||
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
|
BORDER="0"
|
||||||
</tr>
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
<tr>
|
><TR
|
||||||
<td width="10%" align="left" valign="bottom"><a href="templates.html"
|
><TH
|
||||||
accesskey="P">Prev</a></td>
|
COLSPAN="3"
|
||||||
|
ALIGN="center"
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
>Privoxy 3.0.12 User Manual</TH
|
||||||
|
></TR
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
><TR
|
||||||
"copyright.html" accesskey="N">Next</a></td>
|
><TD
|
||||||
</tr>
|
WIDTH="10%"
|
||||||
</table>
|
ALIGN="left"
|
||||||
<hr class="c1" width="100%">
|
VALIGN="bottom"
|
||||||
</div>
|
><A
|
||||||
|
HREF="templates.html"
|
||||||
<div class="SECT1">
|
ACCESSKEY="P"
|
||||||
<h1 class="SECT1"><a name="CONTACT" id="CONTACT">11. Contacting the
|
>Prev</A
|
||||||
Developers, Bug Reporting and Feature Requests</a></h1>
|
></TD
|
||||||
|
><TD
|
||||||
<p>We value your feedback. In fact, we rely on it to improve <span class=
|
WIDTH="80%"
|
||||||
"APPLICATION">Privoxy</span> and its configuration. However, please note
|
ALIGN="center"
|
||||||
the following hints, so we can provide you with the best support:</p>
|
VALIGN="bottom"
|
||||||
|
></TD
|
||||||
<div class="SECT2">
|
><TD
|
||||||
<h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">11.1.
|
WIDTH="10%"
|
||||||
Get Support</a></h2>
|
ALIGN="right"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>For casual users, our <a href=
|
><A
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
HREF="copyright.html"
|
||||||
target="_top">support forum at SourceForge</a> is probably best suited:
|
ACCESSKEY="N"
|
||||||
<a href=
|
>Next</A
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
></TD
|
||||||
target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p>
|
></TR
|
||||||
|
></TABLE
|
||||||
<p>All users are of course welcome to discuss their issues on the
|
><HR
|
||||||
<a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
ALIGN="LEFT"
|
||||||
target="_top">users mailing list</a>, where the developers also hang
|
WIDTH="100%"></DIV
|
||||||
around.</p>
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
<p>Please don't sent private support requests to individual Privoxy
|
><H1
|
||||||
developers, either use the mailing lists or the support trackers.</p>
|
CLASS="SECT1"
|
||||||
|
><A
|
||||||
<p>If you have to contact a Privoxy developer directly for other
|
NAME="CONTACT"
|
||||||
reasons, please send a real mail and do not bother with SourceForge's
|
>11. Contacting the Developers, Bug Reporting and Feature
|
||||||
messaging system. Answers to SourceForge messages are usually bounced
|
Requests</A
|
||||||
by SourceForge's mail server in which case the developer wasted time
|
></H1
|
||||||
writing a response you don't get. From your point of view it will look
|
><P
|
||||||
like your message has been completely ignored, so this is frustrating
|
> We value your feedback. In fact, we rely on it to improve
|
||||||
for all parties involved.</p>
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<p>Note that the Privoxy mailing lists are moderated. Posts from
|
>Privoxy</SPAN
|
||||||
unsubscribed addresses have to be accepted manually by a moderator.
|
> and its configuration.
|
||||||
This may cause a delay of several days and if you use a subject that
|
However, please note the following hints, so we can
|
||||||
doesn't clearly mention Privoxy or one of its features, your message
|
provide you with the best support:</P
|
||||||
may be accidentally discarded as spam.</p>
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
<p>If you aren't subscribed, you should therefore spend a few seconds
|
><H2
|
||||||
to come up with a proper subject. Additionally you should make it clear
|
CLASS="SECT2"
|
||||||
that you want to get CC'd. Otherwise some responses will be directed to
|
><A
|
||||||
the mailing list only, and you won't see them.</p>
|
NAME="CONTACT-SUPPORT"
|
||||||
</div>
|
>11.1. Get Support</A
|
||||||
|
></H2
|
||||||
<div class="SECT2">
|
><P
|
||||||
<h2 class="SECT2"><a name="REPORTING" id="REPORTING">11.2. Reporting
|
> For casual users, our
|
||||||
Problems</a></h2>
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||||
<p><span class="QUOTE">"Problems"</span> for our purposes, come in two
|
TARGET="_top"
|
||||||
forms:</p>
|
>support forum at SourceForge</A
|
||||||
|
>
|
||||||
<ul>
|
is probably best suited:
|
||||||
<li>
|
<A
|
||||||
<p>Configuration issues, such as ads that slip through, or sites
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||||
that don't function properly due to one <span class=
|
TARGET="_top"
|
||||||
"APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
|
>http://sourceforge.net/tracker/?group_id=11118&atid=211118</A
|
||||||
another being turned <span class="QUOTE">"on"</span>.</p>
|
></P
|
||||||
</li>
|
><P
|
||||||
|
> All users are of course welcome to discuss their issues on the <A
|
||||||
<li>
|
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
||||||
<p><span class="QUOTE">"Bugs"</span> in the programming code that
|
TARGET="_top"
|
||||||
makes up <span class="APPLICATION">Privoxy</span>, such as that
|
>users
|
||||||
might cause a crash.</p>
|
mailing list</A
|
||||||
</li>
|
>, where the developers also hang around.</P
|
||||||
</ul>
|
><P
|
||||||
|
> Please don't sent private support requests to individual Privoxy
|
||||||
<div class="SECT3">
|
developers, either use the mailing lists or the support trackers.</P
|
||||||
<h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">11.2.1.
|
><P
|
||||||
Reporting Ads or Other Configuration Problems</a></h3>
|
> Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||||
|
addresses have to be accepted manually by a moderator. This may cause a
|
||||||
<p>Please send feedback on ads that slipped through, innocent images
|
delay of several days and if you use a subject that doesn't clearly
|
||||||
that were blocked, sites that don't work properly, and other
|
mention Privoxy or one of its features, your message may be accidentally
|
||||||
configuration related problem of <tt class=
|
discarded as spam.</P
|
||||||
"FILENAME">default.action</tt> file, to <a href=
|
><P
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
> If you aren't subscribed, you should therefore spend a few seconds
|
||||||
target=
|
to come up with a proper subject. Additionally you should make it clear
|
||||||
"_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
|
that you want to get CC'd. Otherwise some responses will be directed to
|
||||||
the Actions File Tracker.</p>
|
the mailing list only, and you won't see them.</P
|
||||||
|
></DIV
|
||||||
<p>New, improved <tt class="FILENAME">default.action</tt> files may
|
><DIV
|
||||||
occasionally be made available based on your feedback. These will be
|
CLASS="SECT2"
|
||||||
announced on the <a href=
|
><H2
|
||||||
"http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
|
CLASS="SECT2"
|
||||||
"_top">ijbswa-announce</a> list and available from our the <a href=
|
><A
|
||||||
"http://sourceforge.net/project/showfiles.php?group_id=11118" target=
|
NAME="REPORTING"
|
||||||
"_top">files section</a> of our <a href=
|
>11.2. Reporting Problems</A
|
||||||
"http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
|
></H2
|
||||||
</div>
|
><P
|
||||||
|
><SPAN
|
||||||
<div class="SECT3">
|
CLASS="QUOTE"
|
||||||
<h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">11.2.2.
|
>"Problems"</SPAN
|
||||||
Reporting Bugs</a></h3>
|
> for our purposes, come in two forms:</P
|
||||||
|
><P
|
||||||
<p>Please report all bugs through our bug tracker: <a href=
|
></P
|
||||||
"http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
><UL
|
||||||
target=
|
><LI
|
||||||
"_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p>
|
><P
|
||||||
|
> Configuration issues, such as ads that slip through, or sites that
|
||||||
<p>Before doing so, please make sure that the bug has <span class=
|
don't function properly due to one <SPAN
|
||||||
"emphasis EMPHASIS c2">not already been submitted</span> and observe
|
CLASS="APPLICATION"
|
||||||
the additional hints at the top of the <a href=
|
>Privoxy</SPAN
|
||||||
"http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
>
|
||||||
target="_top">submit form</a>. If already submitted, please feel free
|
<SPAN
|
||||||
to add any info to the original report that might help to solve the
|
CLASS="QUOTE"
|
||||||
issue.</p>
|
>"action"</SPAN
|
||||||
|
> or another being turned <SPAN
|
||||||
<p>Please try to verify that it is a <span class=
|
CLASS="QUOTE"
|
||||||
"APPLICATION">Privoxy</span> bug, and not a browser or site bug or
|
>"on"</SPAN
|
||||||
documented behaviour that just happens to be different than what you
|
>.
|
||||||
expected. If unsure, try <a href=
|
</P
|
||||||
"http://config.privoxy.org/toggle?set=disable" target="_top">toggling
|
></LI
|
||||||
off</a> <span class="APPLICATION">Privoxy</span>, and see if the
|
><LI
|
||||||
problem persists.</p>
|
><P
|
||||||
|
> <SPAN
|
||||||
<p>If you are using your own custom configuration, please try the
|
CLASS="QUOTE"
|
||||||
stock configs to see if the problem is configuration related. If
|
>"Bugs"</SPAN
|
||||||
you're having problems with a feature that is disabled by default,
|
> in the programming code that makes up
|
||||||
please ask around on the mailing list if others can reproduce the
|
<SPAN
|
||||||
problem.</p>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<p>If you aren't using the latest Privoxy version, the bug may have
|
>, such as that might cause a crash.
|
||||||
been found and fixed in the meantime. We would appreciate if you
|
</P
|
||||||
could take the time to <a href=
|
></LI
|
||||||
"http://www.privoxy.org/user-manual/installation.html" target=
|
></UL
|
||||||
"_top">upgrade to the latest version</a> (or even the latest CVS
|
><DIV
|
||||||
snapshot) and verify that your bug still exists.</p>
|
CLASS="SECT3"
|
||||||
|
><H3
|
||||||
<p>Please be sure to provide the following information:</p>
|
CLASS="SECT3"
|
||||||
|
><A
|
||||||
<ul>
|
NAME="CONTACT-ADS"
|
||||||
<li>
|
>11.2.1. Reporting Ads or Other Configuration Problems</A
|
||||||
<p>The exact <span class="APPLICATION">Privoxy</span> version you
|
></H3
|
||||||
are using (if you got the source from CVS, please also provide
|
><P
|
||||||
the source code revisions as shown in <a href=
|
> Please send feedback on ads that slipped through, innocent images that were
|
||||||
"http://config.privoxy.org/show-version" target=
|
blocked, sites that don't work properly, and other configuration related problem of
|
||||||
"_top">http://config.privoxy.org/show-version</a>).</p>
|
<TT
|
||||||
</li>
|
CLASS="FILENAME"
|
||||||
|
>default.action</TT
|
||||||
<li>
|
> file, to
|
||||||
<p>The operating system and versions you run <span class=
|
<A
|
||||||
"APPLICATION">Privoxy</span> on, (e.g. <span class=
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
||||||
"APPLICATION">Windows XP SP2</span>), if you are using a Unix
|
TARGET="_top"
|
||||||
flavor, sending the output of <span class="QUOTE">"uname
|
> http://sourceforge.net/tracker/?group_id=11118&atid=460288</A
|
||||||
-a"</span> should do, in case of GNU/Linux, please also name the
|
>,
|
||||||
distribution.</p>
|
the Actions File Tracker.</P
|
||||||
</li>
|
><P
|
||||||
|
> New, improved <TT
|
||||||
<li>
|
CLASS="FILENAME"
|
||||||
<p>The name, platform, and version of the <span class=
|
>default.action</TT
|
||||||
"APPLICATION">browser</span> you were using (e.g. <span class=
|
> files may occasionally be made
|
||||||
"APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
|
available based on your feedback. These will be announced on the <A
|
||||||
</li>
|
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
|
||||||
|
TARGET="_top"
|
||||||
<li>
|
>ijbswa-announce</A
|
||||||
<p>The URL where the problem occurred, or some way for us to
|
>
|
||||||
duplicate the problem (e.g. <tt class=
|
list and available from our the <A
|
||||||
"LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
|
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
|
||||||
</li>
|
TARGET="_top"
|
||||||
|
>files section</A
|
||||||
<li>
|
> of
|
||||||
<p>Whether your version of <span class=
|
our <A
|
||||||
"APPLICATION">Privoxy</span> is one supplied by the <span class=
|
HREF="http://sf.net/projects/ijbswa/"
|
||||||
"APPLICATION">Privoxy</span> developers via SourceForge, or if
|
TARGET="_top"
|
||||||
you got your copy somewhere else.</p>
|
>project page</A
|
||||||
</li>
|
>.</P
|
||||||
|
></DIV
|
||||||
<li>
|
><DIV
|
||||||
<p>Whether you are using <span class="APPLICATION">Privoxy</span>
|
CLASS="SECT3"
|
||||||
in tandem with another proxy such as <span class=
|
><H3
|
||||||
"APPLICATION">Tor</span>. If so, please temporary disable the
|
CLASS="SECT3"
|
||||||
other proxy to see if the symptoms change.</p>
|
><A
|
||||||
</li>
|
NAME="CONTACT-BUGS"
|
||||||
|
>11.2.2. Reporting Bugs</A
|
||||||
<li>
|
></H3
|
||||||
<p>Whether you are using a personal firewall product. If so, does
|
><P
|
||||||
<span class="APPLICATION">Privoxy</span> work without it?</p>
|
> Please report all bugs through our bug tracker:
|
||||||
</li>
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
||||||
<li>
|
TARGET="_top"
|
||||||
<p>Any other pertinent information to help identify the problem
|
>http://sourceforge.net/tracker/?group_id=11118&atid=111118</A
|
||||||
such as config or log file excerpts (yes, you should have log
|
>. </P
|
||||||
file entries for each action taken). To get a meaningful logfile,
|
><P
|
||||||
please make sure that the <a href=
|
> Before doing so, please make sure that the bug has <SPAN
|
||||||
"../user-manual/config.html#LOGFILE" target="_top">logfile
|
CLASS="emphasis"
|
||||||
directive</a> is being used and the following <a href=
|
><I
|
||||||
"../user-manual/config.html#DEBUG" target="_top">debug
|
CLASS="EMPHASIS"
|
||||||
options</a> are enabled:</p>
|
>not already been submitted</I
|
||||||
|
></SPAN
|
||||||
<p class="LITERALLAYOUT">
|
>
|
||||||
debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br>
|
and observe the additional hints at the top of the <A
|
||||||
|
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
||||||
debug 2 # show each connection status<br>
|
TARGET="_top"
|
||||||
|
>submit
|
||||||
debug 4 # show I/O status<br>
|
form</A
|
||||||
|
>. If already submitted, please feel free to add any info to the
|
||||||
debug 8 # show header parsing<br>
|
original report that might help to solve the issue.</P
|
||||||
|
><P
|
||||||
debug 128 # debug redirects<br>
|
> Please try to verify that it is a <SPAN
|
||||||
debug 256 # debug GIF de-animation<br>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
debug 512 # Common Log Format<br>
|
> bug,
|
||||||
|
and not a browser or site bug or documented behaviour that just happens
|
||||||
debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br>
|
to be different than what you expected. If unsure,
|
||||||
|
try <A
|
||||||
debug 4096 # Startup banner and warnings.<br>
|
HREF="http://config.privoxy.org/toggle?set=disable"
|
||||||
|
TARGET="_top"
|
||||||
debug 8192 # Non-fatal errors</p>If you
|
>toggling
|
||||||
are having trouble with a filter, please additionally enable
|
off</A
|
||||||
|
> <SPAN
|
||||||
<p class="LITERALLAYOUT">
|
CLASS="APPLICATION"
|
||||||
debug 64 # debug regular expression filters</p>If
|
>Privoxy</SPAN
|
||||||
you are using Privoxy 3.0.17 or later and suspect that it
|
>, and see if the problem persists.</P
|
||||||
interprets the request or the response incorrectly, please enable
|
><P
|
||||||
|
> If you are using your own custom configuration, please try
|
||||||
<p class="LITERALLAYOUT">
|
the stock configs to see if the problem is configuration related.
|
||||||
debug 32768 # log all data read from the network</p>Note
|
If you're having problems with a feature that is disabled by default,
|
||||||
that Privoxy log files may contain sensitive information so
|
please ask around on the mailing list if others can reproduce the problem.</P
|
||||||
please don't submit any logfiles you didn't read first. You can
|
><P
|
||||||
mask sensitive information as long as it's clear that you removed
|
> If you aren't using the latest Privoxy version, the bug may have been found
|
||||||
something.
|
and fixed in the meantime. We would appreciate if you could take the time
|
||||||
</li>
|
to <A
|
||||||
</ul>
|
HREF="http://www.privoxy.org/user-manual/installation.html"
|
||||||
|
TARGET="_top"
|
||||||
<p>You don't have to tell us your actual name when filing a problem
|
>upgrade
|
||||||
report, but if you don't, please use a nickname so we can
|
to the latest version</A
|
||||||
differentiate between your messages and the ones entered by other
|
> (or even the latest CVS snapshot) and verify
|
||||||
"anonymous" users that may respond to your request if they have the
|
that your bug still exists.</P
|
||||||
same problem or already found a solution. Note that due to spam the
|
><P
|
||||||
trackers may not always allow to post without being logged into
|
>Please be sure to provide the following information:</P
|
||||||
SourceForge. If that's the case, you are still free to create a login
|
><P
|
||||||
that isn't directly linked to your name, though.</p>
|
> <P
|
||||||
|
></P
|
||||||
<p>Please also check the status of your request a few days after
|
><UL
|
||||||
submitting it, as we may request additional information. If you use a
|
><LI
|
||||||
SF id, you should automatically get a mail when someone responds to
|
><P
|
||||||
your request. Please don't bother to add an email address when using
|
> The exact <SPAN
|
||||||
the tracker. If you prefer to communicate through email, just use one
|
CLASS="APPLICATION"
|
||||||
of the mailing lists directly.</p>
|
>Privoxy</SPAN
|
||||||
|
> version you are using
|
||||||
<p>If you are new to reporting problems, you might be interested in
|
(if you got the source from CVS, please also provide the source code revisions
|
||||||
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
|
as shown in <A
|
||||||
target="_top">How to Report Bugs Effectively</a>.</p>
|
HREF="http://config.privoxy.org/show-version"
|
||||||
|
TARGET="_top"
|
||||||
<p>The <a href=
|
>http://config.privoxy.org/show-version</A
|
||||||
"http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
>).
|
||||||
target="_top">appendix of the Privoxy User Manual</a> also has
|
</P
|
||||||
helpful information on understanding <tt class=
|
></LI
|
||||||
"LITERAL">actions</tt>, and <tt class="LITERAL">action</tt>
|
><LI
|
||||||
debugging.</p>
|
><P
|
||||||
</div>
|
> The operating system and versions you run
|
||||||
</div>
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<div class="SECT2">
|
>Privoxy</SPAN
|
||||||
<h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">11.3.
|
> on, (e.g. <SPAN
|
||||||
Request New Features</a></h2>
|
CLASS="APPLICATION"
|
||||||
|
>Windows
|
||||||
<p>You are welcome to submit ideas on new features or other proposals
|
XP SP2</SPAN
|
||||||
for improvement through our feature request tracker at <a href=
|
>), if you are using a Unix flavor,
|
||||||
"http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
sending the output of <SPAN
|
||||||
target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p>
|
CLASS="QUOTE"
|
||||||
</div>
|
>"uname -a"</SPAN
|
||||||
|
> should do,
|
||||||
<div class="SECT2">
|
in case of GNU/Linux, please also name the distribution.
|
||||||
<h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">11.4.
|
</P
|
||||||
Mailing Lists</a></h2>
|
></LI
|
||||||
|
><LI
|
||||||
<p>If you prefer to communicate through email, instead of using a web
|
><P
|
||||||
interface, feel free to use one of the mailing lists. To discuss issues
|
> The name, platform, and version of the <SPAN
|
||||||
that haven't been completely diagnosed yet, please use the Privoxy
|
CLASS="APPLICATION"
|
||||||
users list. Technically interested users and people who wish to
|
>browser</SPAN
|
||||||
contribute to the project are always welcome on the developers list.
|
>
|
||||||
You can find an overview of all <span class=
|
you were using (e.g. <SPAN
|
||||||
"APPLICATION">Privoxy</span>-related mailing lists, including list
|
CLASS="APPLICATION"
|
||||||
archives, at: <a href="http://sourceforge.net/mail/?group_id=11118"
|
>Internet Explorer v5.5</SPAN
|
||||||
target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p>
|
> for Mac).
|
||||||
</div>
|
</P
|
||||||
</div>
|
></LI
|
||||||
|
><LI
|
||||||
<div class="NAVFOOTER">
|
><P
|
||||||
<hr class="c1" width="100%">
|
> The URL where the problem occurred, or some way for us to duplicate the
|
||||||
|
problem (e.g. <TT
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
CLASS="LITERAL"
|
||||||
cellpadding="0" cellspacing="0">
|
>http://somesite.example.com/?somethingelse=123</TT
|
||||||
<tr>
|
>).
|
||||||
<td width="33%" align="left" valign="top"><a href="templates.html"
|
</P
|
||||||
accesskey="P">Prev</a></td>
|
></LI
|
||||||
|
><LI
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
><P
|
||||||
accesskey="H">Home</a></td>
|
> Whether your version of <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<td width="33%" align="right" valign="top"><a href="copyright.html"
|
>Privoxy</SPAN
|
||||||
accesskey="N">Next</a></td>
|
> is one supplied
|
||||||
</tr>
|
by the <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<tr>
|
>Privoxy</SPAN
|
||||||
<td width="33%" align="left" valign="top">Privoxy's Template
|
> developers via SourceForge,
|
||||||
Files</td>
|
or if you got your copy somewhere else.
|
||||||
|
</P
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
></LI
|
||||||
|
><LI
|
||||||
<td width="33%" align="right" valign="top">Privoxy Copyright, License
|
><P
|
||||||
and History</td>
|
> Whether you are using <SPAN
|
||||||
</tr>
|
CLASS="APPLICATION"
|
||||||
</table>
|
>Privoxy</SPAN
|
||||||
</div>
|
> in tandem with
|
||||||
</body>
|
another proxy such as <SPAN
|
||||||
</html>
|
CLASS="APPLICATION"
|
||||||
|
>Tor</SPAN
|
||||||
|
>. If so, please
|
||||||
|
temporary disable the other proxy to see if the symptoms change.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Whether you are using a personal firewall product. If so, does
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> work without it?
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Any other pertinent information to help identify the problem such as config
|
||||||
|
or log file excerpts (yes, you should have log file entries for each
|
||||||
|
action taken).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
><P
|
||||||
|
> You don't have to tell us your actual name when filing a problem
|
||||||
|
report, but please use a nickname so we can differentiate between
|
||||||
|
your messages and the ones entered by other "anonymous" users that
|
||||||
|
may respond to your request if they have the same problem or already
|
||||||
|
found a solution.</P
|
||||||
|
><P
|
||||||
|
> Please also check the status of your request a few days after submitting
|
||||||
|
it, as we may request additional information. If you use a SF id,
|
||||||
|
you should automatically get a mail when someone responds to your request.</P
|
||||||
|
><P
|
||||||
|
> The <A
|
||||||
|
HREF="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
||||||
|
TARGET="_top"
|
||||||
|
>appendix
|
||||||
|
of the Privoxy User Manual</A
|
||||||
|
> also has helpful information
|
||||||
|
on understanding <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>actions</TT
|
||||||
|
>, and <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>action</TT
|
||||||
|
> debugging. </P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="CONTACT-FEATURE"
|
||||||
|
>11.3. Request New Features</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
> You are welcome to submit ideas on new features or other proposals
|
||||||
|
for improvement through our feature request tracker at
|
||||||
|
<A
|
||||||
|
HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://sourceforge.net/tracker/?atid=361118&group_id=11118</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
|
><A
|
||||||
|
NAME="CONTACT-OTHER"
|
||||||
|
>11.4. Other</A
|
||||||
|
></H2
|
||||||
|
><P
|
||||||
|
>For any other issues, feel free to use the mailing lists. Technically interested users
|
||||||
|
and people who wish to contribute to the project are also welcome on the developers list!
|
||||||
|
You can find an overview of all <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>-related mailing lists,
|
||||||
|
including list archives, at:
|
||||||
|
<A
|
||||||
|
HREF="http://sourceforge.net/mail/?group_id=11118"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://sourceforge.net/mail/?group_id=11118</A
|
||||||
|
>.</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="templates.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy's Template Files</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy Copyright, License and History</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
|
@ -1,285 +1,424 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy Copyright, License and History</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Privoxy Copyright, License and History</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title=
|
TITLE="Contacting the Developers, Bug Reporting and Feature
|
||||||
"Contacting the Developers, Bug Reporting and Feature Requests" href=
|
Requests"
|
||||||
"contact.html">
|
HREF="contact.html"><LINK
|
||||||
<link rel="NEXT" title="See Also" href="seealso.html">
|
REL="NEXT"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
TITLE="See Also"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
HREF="seealso.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
REL="STYLESHEET"
|
||||||
<style type="text/css">
|
TYPE="text/css"
|
||||||
body {
|
HREF="../p_doc.css"><META
|
||||||
background-color: #EEEEEE;
|
HTTP-EQUIV="Content-Type"
|
||||||
color: #000000;
|
CONTENT="text/html;
|
||||||
}
|
charset=ISO-8859-1">
|
||||||
:link { color: #0000FF }
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
|
||||||
:visited { color: #840084 }
|
</head
|
||||||
:active { color: #0000FF }
|
><BODY
|
||||||
a.c2 {font-style: italic}
|
CLASS="SECT1"
|
||||||
hr.c1 {text-align: left}
|
BGCOLOR="#EEEEEE"
|
||||||
</style>
|
TEXT="#000000"
|
||||||
</head>
|
LINK="#0000FF"
|
||||||
|
VLINK="#840084"
|
||||||
<body class="SECT1">
|
ALINK="#0000FF"
|
||||||
<div class="NAVHEADER">
|
><DIV
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
CLASS="NAVHEADER"
|
||||||
cellpadding="0" cellspacing="0">
|
><TABLE
|
||||||
<tr>
|
SUMMARY="Header navigation table"
|
||||||
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
|
WIDTH="100%"
|
||||||
</tr>
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
<tr>
|
CELLSPACING="0"
|
||||||
<td width="10%" align="left" valign="bottom"><a href="contact.html"
|
><TR
|
||||||
accesskey="P">Prev</a></td>
|
><TH
|
||||||
|
COLSPAN="3"
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
ALIGN="center"
|
||||||
|
>Privoxy 3.0.12 User Manual</TH
|
||||||
<td width="10%" align="right" valign="bottom"><a href="seealso.html"
|
></TR
|
||||||
accesskey="N">Next</a></td>
|
><TR
|
||||||
</tr>
|
><TD
|
||||||
</table>
|
WIDTH="10%"
|
||||||
<hr class="c1" width="100%">
|
ALIGN="left"
|
||||||
</div>
|
VALIGN="bottom"
|
||||||
|
><A
|
||||||
<div class="SECT1">
|
HREF="contact.html"
|
||||||
<h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">12. Privoxy
|
ACCESSKEY="P"
|
||||||
Copyright, License and History</a></h1>
|
>Prev</A
|
||||||
|
></TD
|
||||||
<p>Copyright © 2001-2011 by Privoxy Developers <code class=
|
><TD
|
||||||
"EMAIL"><<a href=
|
WIDTH="80%"
|
||||||
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p>
|
ALIGN="center"
|
||||||
|
VALIGN="bottom"
|
||||||
<p>Some source code is based on code Copyright © 1997 by Anonymous
|
></TD
|
||||||
Coders and Junkbusters, Inc. and licensed under the <i class=
|
><TD
|
||||||
"CITETITLE">GNU General Public License</i>.</p>
|
WIDTH="10%"
|
||||||
|
ALIGN="right"
|
||||||
<div class="SECT2">
|
VALIGN="bottom"
|
||||||
<h2 class="SECT2"><a name="AEN5542" id="AEN5542">12.1. License</a></h2>
|
><A
|
||||||
|
HREF="seealso.html"
|
||||||
<p><span class="APPLICATION">Privoxy</span> is free software; you can
|
ACCESSKEY="N"
|
||||||
redistribute it and/or modify it under the terms of the <i class=
|
>Next</A
|
||||||
"CITETITLE">GNU General Public License</i>, version 2, as published by
|
></TD
|
||||||
the Free Software Foundation.</p>
|
></TR
|
||||||
|
></TABLE
|
||||||
<p>This program is distributed in the hope that it will be useful, but
|
><HR
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
ALIGN="LEFT"
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class=
|
WIDTH="100%"></DIV
|
||||||
"CITETITLE c2" href=
|
><DIV
|
||||||
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
|
CLASS="SECT1"
|
||||||
"_top">GNU General Public License</a> for details.</p>
|
><H1
|
||||||
|
CLASS="SECT1"
|
||||||
<p>You should have received a copy of the <i class="CITETITLE">GNU
|
><A
|
||||||
GPL</i> along with this program; if not, write to the</p>
|
NAME="COPYRIGHT"
|
||||||
|
>12. Privoxy Copyright, License and History</A
|
||||||
<p class="ADDRESS"> Free Software<br>
|
></H1
|
||||||
Foundation, Inc. <span class="STREET">51 Franklin
|
><P
|
||||||
Street, Fifth Floor</span><br>
|
> Copyright © 2001-2009 by Privoxy Developers <CODE
|
||||||
<span class="CITY">Boston</span>, <span class=
|
CLASS="EMAIL"
|
||||||
"STATE">MA</span> <span class="POSTCODE">02110-1301</span><br>
|
><<A
|
||||||
<span class="COUNTRY">USA</span> </p>
|
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
|
||||||
</div>
|
>ijbswa-developers@lists.sourceforge.net</A
|
||||||
|
>></CODE
|
||||||
<div class="SECT2">
|
></P
|
||||||
<h2 class="SECT2"><a name="HISTORY" id="HISTORY">12.2. History</a></h2>
|
><P
|
||||||
|
> Some source code is based on code Copyright © 1997 by Anonymous Coders
|
||||||
<p>A long time ago, there was the <a href=
|
and Junkbusters, Inc. and licensed under the <I
|
||||||
"http://www.junkbusters.com/ijb.html" target="_top"><span class=
|
CLASS="CITETITLE"
|
||||||
"APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and
|
>GNU General Public
|
||||||
<a href="http://www.junkbusters.com/" target="_top">Junkbusters
|
License</I
|
||||||
Corporation</a>. This saved many users a lot of pain in the early days
|
>.</P
|
||||||
of web advertising and user tracking.</p>
|
><DIV
|
||||||
|
CLASS="SECT2"
|
||||||
<p>But the web, its protocols and standards, and with it, the
|
><H2
|
||||||
techniques for forcing ads on users, give up autonomy over their
|
CLASS="SECT2"
|
||||||
browsing, and for tracking them, keeps evolving. Unfortunately, the
|
><A
|
||||||
<span class="APPLICATION">Internet Junkbuster</span> did not. Version
|
NAME="AEN4921"
|
||||||
2.0.2, published in 1998, was (and is) the last official <a href=
|
>12.1. License</A
|
||||||
"http://www.junkbusters.com/ijbdist.html#release" target=
|
></H2
|
||||||
"_top">release</a> available from <a href="http://www.junkbusters.com"
|
><P
|
||||||
target="_top">Junkbusters Corporation</a>. Fortunately, it had been
|
> <SPAN
|
||||||
released under the GNU <a href=
|
CLASS="APPLICATION"
|
||||||
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
|
>Privoxy</SPAN
|
||||||
"_top">GPL</a>, which allowed further development by others.</p>
|
> is free software; you can
|
||||||
|
redistribute it and/or modify it under the terms of the
|
||||||
<p>So Stefan Waldherr started maintaining an improved version of the
|
<I
|
||||||
software, to which eventually a number of people contributed patches.
|
CLASS="CITETITLE"
|
||||||
It could already replace banners with a transparent image, and had a
|
>GNU General Public License</I
|
||||||
first version of pop-up killing, but it was still very closely based on
|
>, version 2,
|
||||||
the original, with all its limitations, such as the lack of HTTP/1.1
|
as published by the Free Software Foundation.</P
|
||||||
support, flexible per-site configuration, or content modification. The
|
><P
|
||||||
last release from this effort was version 2.0.2-10, published in
|
> This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
2000.</p>
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the <A
|
||||||
<p>Then, some <a href=
|
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||||
"http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target=
|
TARGET="_top"
|
||||||
"_top">developers</a> picked up the thread, and started turning the
|
> <I
|
||||||
software inside out, upside down, and then reassembled it, adding many
|
CLASS="CITETITLE"
|
||||||
<a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
>GNU General Public License</I
|
||||||
target="_top">new features</a> along the way.</p>
|
></A
|
||||||
|
> for details.</P
|
||||||
<p>The result of this is <span class="APPLICATION">Privoxy</span>,
|
><P
|
||||||
whose first stable version, 3.0, was released August, 2002.</p>
|
> You should have received a copy of the <I
|
||||||
</div>
|
CLASS="CITETITLE"
|
||||||
|
>GNU GPL</I
|
||||||
<div class="SECT2">
|
>
|
||||||
<h2 class="SECT2"><a name="AUTHORS" id="AUTHORS">12.3. Authors</a></h2>
|
along with this program; if not, write to the <P
|
||||||
|
CLASS="ADDRESS"
|
||||||
<p>Current Privoxy Team:</p>
|
> Free Software<br>
|
||||||
|
Foundation, Inc. <SPAN
|
||||||
<p class="LITERALLAYOUT">
|
CLASS="STREET"
|
||||||
Fabian Keil, lead developer<br>
|
>51 Franklin Street, Fifth Floor</SPAN
|
||||||
David Schmidt, developer<br>
|
><br>
|
||||||
Hal Burgiss<br>
|
<SPAN
|
||||||
Lee Rian<br>
|
CLASS="CITY"
|
||||||
Roland Rosenfeld</p>
|
>Boston</SPAN
|
||||||
|
>, <SPAN
|
||||||
<p>Former Privoxy Team Members:</p>
|
CLASS="STATE"
|
||||||
|
>MA</SPAN
|
||||||
<p class="LITERALLAYOUT"> Johny Agotnes<br>
|
> <SPAN
|
||||||
Rodrigo Barbosa<br>
|
CLASS="POSTCODE"
|
||||||
Moritz Barsnick<br>
|
>02110-1301</SPAN
|
||||||
Ian Cummings<br>
|
><br>
|
||||||
Brian Dessent<br>
|
<SPAN
|
||||||
Jon Foster<br>
|
CLASS="COUNTRY"
|
||||||
Karsten Hopp<br>
|
>USA</SPAN
|
||||||
Alexander Lazic<br>
|
> </P
|
||||||
Daniel Leite<br>
|
></P
|
||||||
Gábor Lipták<br>
|
></DIV
|
||||||
Adam Lock<br>
|
><DIV
|
||||||
Guy Laroche<br>
|
CLASS="SECT2"
|
||||||
Justin McMurtry<br>
|
><H2
|
||||||
Mark Miller<br>
|
CLASS="SECT2"
|
||||||
Gerry Murphy<br>
|
><A
|
||||||
Andreas Oesterhelt<br>
|
NAME="HISTORY"
|
||||||
Haroon Rafique<br>
|
>12.2. History</A
|
||||||
Georg Sauthoff<br>
|
></H2
|
||||||
Thomas Steudten<br>
|
><P
|
||||||
Jörg Strohmayer<br>
|
> A long time ago, there was the
|
||||||
Rodney Stromlund<br>
|
<A
|
||||||
Sviatoslav Sviridov<br>
|
HREF="http://www.junkbusters.com/ijb.html"
|
||||||
Sarantis Paskalis<br>
|
TARGET="_top"
|
||||||
Stefan Waldherr</p>
|
><SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
<p>Thanks to the many people who have tested Privoxy, reported bugs,
|
>Internet Junkbuster</SPAN
|
||||||
provided patches, made suggestions or contributed in some way. These
|
></A
|
||||||
include (in alphabetical order):</p>
|
>,
|
||||||
|
by Anonymous Coders and <A
|
||||||
<p class="LITERALLAYOUT"> Ken Arromdee<br>
|
HREF="http://www.junkbusters.com/"
|
||||||
Devin Bayer<br>
|
TARGET="_top"
|
||||||
Havard Berland<br>
|
>Junkbusters
|
||||||
Gergely Bor<br>
|
Corporation</A
|
||||||
Francois Botha<br>
|
>. This saved many users a lot of pain in the early days of
|
||||||
Reiner Buehl<br>
|
web advertising and user tracking.</P
|
||||||
Andrew J. Caines<br>
|
><P
|
||||||
Clifford Caoile<br>
|
> But the web, its protocols and standards, and with it, the techniques for
|
||||||
Wan-Teh Chang<br>
|
forcing ads on users, give up autonomy over their browsing, and
|
||||||
Billy Crook<br>
|
for tracking them, keeps evolving. Unfortunately, the <SPAN
|
||||||
Frédéric Crozat<br>
|
CLASS="APPLICATION"
|
||||||
Michael T. Davis<br>
|
>Internet
|
||||||
Mattes Dolak<br>
|
Junkbuster</SPAN
|
||||||
Matthias Drochner<br>
|
> did not. Version 2.0.2, published in 1998, was
|
||||||
Peter E.<br>
|
(and is) the last official
|
||||||
Florian Effenberger<br>
|
<A
|
||||||
Markus Elfring<br>
|
HREF="http://www.junkbusters.com/ijbdist.html#release"
|
||||||
Dean Gaudet<br>
|
TARGET="_top"
|
||||||
Stephen Gildea<br>
|
>release</A
|
||||||
Daniel Griscom<br>
|
>
|
||||||
Felix Gröbert<br>
|
available from <A
|
||||||
Jeff H.<br>
|
HREF="http://www.junkbusters.com"
|
||||||
Aaron Hamid<br>
|
TARGET="_top"
|
||||||
Darel Henman<br>
|
>Junkbusters Corporation</A
|
||||||
Magnus Holmgren<br>
|
>.
|
||||||
Eric M. Hopper<br>
|
Fortunately, it had been released under the GNU
|
||||||
Ralf Horstmann<br>
|
<A
|
||||||
Stefan Huehner<br>
|
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||||
Peter Hyman<br>
|
TARGET="_top"
|
||||||
Derek Jennings<br>
|
>GPL</A
|
||||||
Petr Kadlec<br>
|
>,
|
||||||
David Laight<br>
|
which allowed further development by others.</P
|
||||||
Bert van Leeuwen<br>
|
><P
|
||||||
Don Libes<br>
|
> So Stefan Waldherr started maintaining an improved version of the
|
||||||
Paul Lieverse<br>
|
software, to which eventually a number of people contributed patches.
|
||||||
Han Liu<br>
|
It could already replace banners with a transparent image, and had a first
|
||||||
Toby Lyward<br>
|
version of pop-up killing, but it was still very closely based on the
|
||||||
Wil Mahan<br>
|
original, with all its limitations, such as the lack of HTTP/1.1 support,
|
||||||
Jindrich Makovicka<br>
|
flexible per-site configuration, or content modification. The last release
|
||||||
Raphael Marichez<br>
|
from this effort was version 2.0.2-10, published in 2000.</P
|
||||||
Francois Marier<br>
|
><P
|
||||||
David Mediavilla<br>
|
> Then, some
|
||||||
Raphael Moll<br>
|
<A
|
||||||
Amuro Namie<br>
|
HREF="http://www.privoxy.org/user-manual/copyright.html#AUTHORS"
|
||||||
Adam Piggott<br>
|
TARGET="_top"
|
||||||
Petr Písar<br>
|
>developers</A
|
||||||
Dan Price<br>
|
>
|
||||||
Roberto Ragusa<br>
|
picked up the thread, and started turning the software inside out, upside down,
|
||||||
Félix Rauch<br>
|
and then reassembled it, adding many
|
||||||
Maynard Riley<br>
|
<A
|
||||||
Chung-chieh Shan<br>
|
HREF="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
||||||
Spinor S.<br>
|
TARGET="_top"
|
||||||
Bart Schelstraete<br>
|
>new
|
||||||
Dan Stahlke<br>
|
features</A
|
||||||
Oliver Stoeneberg<br>
|
> along the way.</P
|
||||||
Peter Thoenen<br>
|
><P
|
||||||
Martin Thomas<br>
|
> The result of this is <SPAN
|
||||||
Bobby G. Vinyard<br>
|
CLASS="APPLICATION"
|
||||||
Jochen Voss<br>
|
>Privoxy</SPAN
|
||||||
Glenn Washburn<br>
|
>, whose first
|
||||||
Song Weijia<br>
|
stable version, 3.0, was released August, 2002.
|
||||||
Jörg Weinmann<br>
|
</P
|
||||||
Darren Wiebe<br>
|
></DIV
|
||||||
Anduin Withers<br>
|
><DIV
|
||||||
Oliver Yeoh<br>
|
CLASS="SECT2"
|
||||||
Jamie Zawinski</p>
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
<p>Privoxy is based in part on code originally developed by Junkbusters
|
><A
|
||||||
Corp. and Anonymous Coders.</p>
|
NAME="AUTHORS"
|
||||||
|
>12.3. Authors</A
|
||||||
<p>Privoxy heavily relies on Philip Hazel's PCRE.</p>
|
></H2
|
||||||
|
><P
|
||||||
<p>The code to filter compressed content makes use of zlib which is
|
>Current Privoxy Team:</P
|
||||||
written by Jean-loup Gailly and Mark Adler.</p>
|
><P
|
||||||
|
CLASS="LITERALLAYOUT"
|
||||||
<p>On systems that lack snprintf(), Privoxy is using a version written
|
> Fabian Keil, lead developer<br>
|
||||||
by Mark Martinec. On systems that lack strptime(), Privoxy is using the
|
David Schmidt, developer<br>
|
||||||
one from the GNU C Library written by Ulrich Drepper.</p>
|
<br>
|
||||||
</div>
|
Hal Burgiss<br>
|
||||||
</div>
|
Mark Miller<br>
|
||||||
|
Gerry Murphy<br>
|
||||||
<div class="NAVFOOTER">
|
Lee Rian<br>
|
||||||
<hr class="c1" width="100%">
|
Roland Rosenfeld<br>
|
||||||
|
Jörg Strohmayer</P
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
><P
|
||||||
cellpadding="0" cellspacing="0">
|
> Former Privoxy Team Members:</P
|
||||||
<tr>
|
><P
|
||||||
<td width="33%" align="left" valign="top"><a href="contact.html"
|
CLASS="LITERALLAYOUT"
|
||||||
accesskey="P">Prev</a></td>
|
> Johny Agotnes<br>
|
||||||
|
Rodrigo Barbosa<br>
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
Moritz Barsnick<br>
|
||||||
accesskey="H">Home</a></td>
|
Ian Cummings<br>
|
||||||
|
Brian Dessent<br>
|
||||||
<td width="33%" align="right" valign="top"><a href="seealso.html"
|
Jon Foster<br>
|
||||||
accesskey="N">Next</a></td>
|
Karsten Hopp<br>
|
||||||
</tr>
|
Alexander Lazic<br>
|
||||||
|
Daniel Leite<br>
|
||||||
<tr>
|
Gábor Lipták<br>
|
||||||
<td width="33%" align="left" valign="top">Contacting the Developers,
|
Adam Lock<br>
|
||||||
Bug Reporting and Feature Requests</td>
|
Guy Laroche<br>
|
||||||
|
Justin McMurtry<br>
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
Andreas Oesterhelt<br>
|
||||||
|
Haroon Rafique<br>
|
||||||
<td width="33%" align="right" valign="top">See Also</td>
|
Georg Sauthoff<br>
|
||||||
</tr>
|
Thomas Steudten<br>
|
||||||
</table>
|
Rodney Stromlund<br>
|
||||||
</div>
|
Sviatoslav Sviridov<br>
|
||||||
</body>
|
Sarantis Paskalis<br>
|
||||||
</html>
|
Stefan Waldherr</P
|
||||||
|
><P
|
||||||
|
> Thanks to the many people who have tested Privoxy, reported bugs, provided
|
||||||
|
patches, made suggestions or contributed in some way. These include (in
|
||||||
|
alphabetical order):</P
|
||||||
|
><P
|
||||||
|
CLASS="LITERALLAYOUT"
|
||||||
|
> Ken Arromdee<br>
|
||||||
|
Devin Bayer<br>
|
||||||
|
Gergely Bor<br>
|
||||||
|
Reiner Buehl<br>
|
||||||
|
Andrew J. Caines<br>
|
||||||
|
Clifford Caoile<br>
|
||||||
|
Frédéric Crozat<br>
|
||||||
|
Michael T. Davis<br>
|
||||||
|
Mattes Dolak<br>
|
||||||
|
Matthias Drochner<br>
|
||||||
|
Peter E.<br>
|
||||||
|
Florian Effenberger<br>
|
||||||
|
Markus Elfring<br>
|
||||||
|
Dean Gaudet<br>
|
||||||
|
Stephen Gildea<br>
|
||||||
|
Daniel Griscom<br>
|
||||||
|
Felix Gröbert<br>
|
||||||
|
Aaron Hamid<br>
|
||||||
|
Darel Henman<br>
|
||||||
|
Magnus Holmgren<br>
|
||||||
|
Eric M. Hopper<br>
|
||||||
|
Ralf Horstmann<br>
|
||||||
|
Stefan Huehner<br>
|
||||||
|
Peter Hyman<br>
|
||||||
|
Derek Jennings<br>
|
||||||
|
Petr Kadlec<br>
|
||||||
|
David Laight<br>
|
||||||
|
Bert van Leeuwen<br>
|
||||||
|
Don Libes<br>
|
||||||
|
Paul Lieverse<br>
|
||||||
|
Toby Lyward<br>
|
||||||
|
Wil Mahan<br>
|
||||||
|
Jindrich Makovicka<br>
|
||||||
|
David Mediavilla<br>
|
||||||
|
Raphael Moll<br>
|
||||||
|
Amuro Namie<br>
|
||||||
|
Adam Piggott<br>
|
||||||
|
Dan Price<br>
|
||||||
|
Roberto Ragusa<br>
|
||||||
|
Félix Rauch<br>
|
||||||
|
Maynard Riley<br>
|
||||||
|
Chung-chieh Shan<br>
|
||||||
|
Spinor S.<br>
|
||||||
|
Bart Schelstraete<br>
|
||||||
|
Oliver Stoeneberg<br>
|
||||||
|
Peter Thoenen<br>
|
||||||
|
Martin Thomas<br>
|
||||||
|
Bobby G. Vinyard<br>
|
||||||
|
Jochen Voss<br>
|
||||||
|
Glenn Washburn<br>
|
||||||
|
Song Weijia<br>
|
||||||
|
Jörg Weinmann<br>
|
||||||
|
Darren Wiebe<br>
|
||||||
|
Anduin Withers<br>
|
||||||
|
Oliver Yeoh<br>
|
||||||
|
Jamie Zawinski</P
|
||||||
|
><P
|
||||||
|
> Privoxy is based in part on code originally developed by
|
||||||
|
Junkbusters Corp. and Anonymous Coders.</P
|
||||||
|
><P
|
||||||
|
> Privoxy heavily relies on Philip Hazel's PCRE.</P
|
||||||
|
><P
|
||||||
|
> The code to filter compressed content makes use of zlib
|
||||||
|
which is written by Jean-loup Gailly and Mark Adler.</P
|
||||||
|
><P
|
||||||
|
> On systems that lack snprintf(), Privoxy is using a version
|
||||||
|
written by Mark Martinec. On systems that lack strptime(),
|
||||||
|
Privoxy is using the one from the GNU C Library written
|
||||||
|
by Ulrich Drepper.</P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="seealso.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Contacting the Developers, Bug Reporting and Feature
|
||||||
|
Requests</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>See Also</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,182 +1,292 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Introduction</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Introduction</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Privoxy 3.0.19 User Manual" href="index.html">
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
<link rel="NEXT" title="Installation" href="installation.html">
|
HREF="index.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
REL="NEXT"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
TITLE="Installation"
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
HREF="installation.html"><LINK
|
||||||
<style type="text/css">
|
REL="STYLESHEET"
|
||||||
body {
|
TYPE="text/css"
|
||||||
background-color: #EEEEEE;
|
HREF="../p_doc.css"><META
|
||||||
color: #000000;
|
HTTP-EQUIV="Content-Type"
|
||||||
}
|
CONTENT="text/html;
|
||||||
:link { color: #0000FF }
|
charset=ISO-8859-1">
|
||||||
:visited { color: #840084 }
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
|
||||||
:active { color: #0000FF }
|
</head
|
||||||
hr.c1 {text-align: left}
|
><BODY
|
||||||
</style>
|
CLASS="SECT1"
|
||||||
</head>
|
BGCOLOR="#EEEEEE"
|
||||||
|
TEXT="#000000"
|
||||||
<body class="SECT1">
|
LINK="#0000FF"
|
||||||
<div class="NAVHEADER">
|
VLINK="#840084"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
ALINK="#0000FF"
|
||||||
cellpadding="0" cellspacing="0">
|
><DIV
|
||||||
<tr>
|
CLASS="NAVHEADER"
|
||||||
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
|
><TABLE
|
||||||
</tr>
|
SUMMARY="Header navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
<tr>
|
BORDER="0"
|
||||||
<td width="10%" align="left" valign="bottom"><a href="index.html"
|
CELLPADDING="0"
|
||||||
accesskey="P">Prev</a></td>
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
><TH
|
||||||
|
COLSPAN="3"
|
||||||
<td width="10%" align="right" valign="bottom"><a href=
|
ALIGN="center"
|
||||||
"installation.html" accesskey="N">Next</a></td>
|
>Privoxy 3.0.12 User Manual</TH
|
||||||
</tr>
|
></TR
|
||||||
</table>
|
><TR
|
||||||
<hr class="c1" width="100%">
|
><TD
|
||||||
</div>
|
WIDTH="10%"
|
||||||
|
ALIGN="left"
|
||||||
<div class="SECT1">
|
VALIGN="bottom"
|
||||||
<h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1.
|
><A
|
||||||
Introduction</a></h1>
|
HREF="index.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
<p>This documentation is included with the current stable version of
|
>Prev</A
|
||||||
<span class="APPLICATION">Privoxy</span>, v.3.0.19.</p>
|
></TD
|
||||||
|
><TD
|
||||||
<div class="SECT2">
|
WIDTH="80%"
|
||||||
<h2 class="SECT2"><a name="FEATURES" id="FEATURES">1.1.
|
ALIGN="center"
|
||||||
Features</a></h2>
|
VALIGN="bottom"
|
||||||
|
></TD
|
||||||
<p>In addition to the core features of ad blocking and <a href=
|
><TD
|
||||||
"http://en.wikipedia.org/wiki/Browser_cookie" target="_top">cookie</a>
|
WIDTH="10%"
|
||||||
management, <span class="APPLICATION">Privoxy</span> provides many
|
ALIGN="right"
|
||||||
supplemental features, that give the end-user more control, more
|
VALIGN="bottom"
|
||||||
privacy and more freedom:</p>
|
><A
|
||||||
|
HREF="installation.html"
|
||||||
<ul>
|
ACCESSKEY="N"
|
||||||
<li>
|
>Next</A
|
||||||
<p>Supports "Connection: keep-alive". Outgoing connections can be
|
></TD
|
||||||
kept alive independently from the client.</p>
|
></TR
|
||||||
</li>
|
></TABLE
|
||||||
|
><HR
|
||||||
<li>
|
ALIGN="LEFT"
|
||||||
<p>Supports IPv6, provided the operating system does so too, and
|
WIDTH="100%"></DIV
|
||||||
the configure script detects it.</p>
|
><DIV
|
||||||
</li>
|
CLASS="SECT1"
|
||||||
|
><H1
|
||||||
<li>
|
CLASS="SECT1"
|
||||||
<p>Supports tagging which allows to change the behaviour based on
|
><A
|
||||||
client and server headers.</p>
|
NAME="INTRODUCTION"
|
||||||
</li>
|
>1. Introduction</A
|
||||||
|
></H1
|
||||||
<li>
|
><P
|
||||||
<p>Can be run as an "intercepting" proxy, which obviates the need
|
> This documentation is included with the current stable version of
|
||||||
to configure browsers individually.</p>
|
<SPAN
|
||||||
</li>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<li>
|
>, v.3.0.12.</P
|
||||||
<p>Sophisticated actions and filters for manipulating both server
|
><DIV
|
||||||
and client headers.</p>
|
CLASS="SECT2"
|
||||||
</li>
|
><H2
|
||||||
|
CLASS="SECT2"
|
||||||
<li>
|
><A
|
||||||
<p>Can be chained with other proxies.</p>
|
NAME="FEATURES"
|
||||||
</li>
|
>1.1. Features</A
|
||||||
|
></H2
|
||||||
<li>
|
><P
|
||||||
<p>Integrated browser-based configuration and control utility at
|
> In addition to the core
|
||||||
<a href="http://config.privoxy.org/" target=
|
features of ad blocking and
|
||||||
"_top">http://config.privoxy.org/</a> (shortcut: <a href=
|
<A
|
||||||
"http://p.p/" target="_top">http://p.p/</a>). Browser-based tracing
|
HREF="http://en.wikipedia.org/wiki/Browser_cookie"
|
||||||
of rule and filter effects. Remote toggling.</p>
|
TARGET="_top"
|
||||||
</li>
|
>cookie</A
|
||||||
|
> management,
|
||||||
<li>
|
<SPAN
|
||||||
<p>Web page filtering (text replacements, removes banners based on
|
CLASS="APPLICATION"
|
||||||
size, invisible <span class="QUOTE">"web-bugs"</span> and HTML
|
>Privoxy</SPAN
|
||||||
annoyances, etc.)</p>
|
> provides many supplemental
|
||||||
</li>
|
features,
|
||||||
|
that give the end-user more control, more privacy and more freedom:</P
|
||||||
<li>
|
><P
|
||||||
<p>Modularized configuration that allows for standard settings and
|
> <P
|
||||||
user settings to reside in separate files, so that installing
|
></P
|
||||||
updated actions files won't overwrite individual user settings.</p>
|
><UL
|
||||||
</li>
|
><LI
|
||||||
|
><P
|
||||||
<li>
|
> Can keep outgoing connections alive and reuse them later on.
|
||||||
<p>Support for Perl Compatible Regular Expressions in the
|
</P
|
||||||
configuration files, and a more sophisticated and flexible
|
></LI
|
||||||
configuration syntax.</p>
|
><LI
|
||||||
</li>
|
><P
|
||||||
|
> Supports tagging which allows to change the behaviour
|
||||||
<li>
|
based on client and server headers.
|
||||||
<p>GIF de-animation.</p>
|
</P
|
||||||
</li>
|
></LI
|
||||||
|
><LI
|
||||||
<li>
|
><P
|
||||||
<p>Bypass many click-tracking scripts (avoids script
|
> Can be run as an "intercepting" proxy, which obviates the need to
|
||||||
redirection).</p>
|
configure browsers individually.
|
||||||
</li>
|
</P
|
||||||
|
></LI
|
||||||
<li>
|
><LI
|
||||||
<p>User-customizable HTML templates for most proxy-generated pages
|
><P
|
||||||
(e.g. "blocked" page).</p>
|
> Sophisticated actions and filters for manipulating both server and client
|
||||||
</li>
|
headers.
|
||||||
|
</P
|
||||||
<li>
|
></LI
|
||||||
<p>Auto-detection and re-reading of config file changes.</p>
|
><LI
|
||||||
</li>
|
><P
|
||||||
|
> Can be chained with other proxies.
|
||||||
<li>
|
</P
|
||||||
<p>Most features are controllable on a per-site or per-location
|
></LI
|
||||||
basis.</p>
|
><LI
|
||||||
</li>
|
><P
|
||||||
|
> Integrated browser based configuration and control utility at <A
|
||||||
<li>
|
HREF="http://config.privoxy.org/"
|
||||||
<p>Many smaller new features added, limitations and bugs
|
TARGET="_top"
|
||||||
removed.</p>
|
>http://config.privoxy.org/</A
|
||||||
</li>
|
>
|
||||||
</ul>
|
(shortcut: <A
|
||||||
</div>
|
HREF="http://p.p/"
|
||||||
</div>
|
TARGET="_top"
|
||||||
|
>http://p.p/</A
|
||||||
<div class="NAVFOOTER">
|
>). Browser-based
|
||||||
<hr class="c1" width="100%">
|
tracing of rule and filter effects. Remote toggling.
|
||||||
|
</P
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
></LI
|
||||||
cellpadding="0" cellspacing="0">
|
><LI
|
||||||
<tr>
|
><P
|
||||||
<td width="33%" align="left" valign="top"><a href="index.html"
|
> Web page filtering (text replacements, removes banners based on size,
|
||||||
accesskey="P">Prev</a></td>
|
invisible <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
>"web-bugs"</SPAN
|
||||||
accesskey="H">Home</a></td>
|
>, JavaScript and HTML annoyances,
|
||||||
|
pop-up windows, etc.)
|
||||||
<td width="33%" align="right" valign="top"><a href=
|
</P
|
||||||
"installation.html" accesskey="N">Next</a></td>
|
></LI
|
||||||
</tr>
|
><LI
|
||||||
|
><P
|
||||||
<tr>
|
> Modularized configuration that allows for standard settings and
|
||||||
<td width="33%" align="left" valign="top">Privoxy 3.0.19 User
|
user settings to reside in separate files, so that installing updated
|
||||||
Manual</td>
|
actions files won't overwrite individual user settings.
|
||||||
|
</P
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
></LI
|
||||||
|
><LI
|
||||||
<td width="33%" align="right" valign="top">Installation</td>
|
><P
|
||||||
</tr>
|
> Support for Perl Compatible Regular Expressions in the configuration files, and
|
||||||
</table>
|
a more sophisticated and flexible configuration syntax.
|
||||||
</div>
|
</P
|
||||||
</body>
|
></LI
|
||||||
</html>
|
><LI
|
||||||
|
><P
|
||||||
|
> Improved cookie management features (e.g. session based cookies).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> GIF de-animation.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Bypass many click-tracking scripts (avoids script redirection).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Multi-threaded (POSIX and native threads).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> User-customizable HTML templates for most proxy-generated pages (e.g. "blocked" page).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Auto-detection and re-reading of config file changes.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Improved signal handling, and a true daemon mode (Unix).
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Every feature now controllable on a per-site or per-location basis, configuration
|
||||||
|
more powerful and versatile over-all.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
><LI
|
||||||
|
><P
|
||||||
|
> Many smaller new features added, limitations and bugs removed.
|
||||||
|
</P
|
||||||
|
></LI
|
||||||
|
></UL
|
||||||
|
></P
|
||||||
|
></DIV
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="installation.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy 3.0.12 User Manual</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Installation</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,208 +1,418 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>See Also</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>See Also</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Privoxy Copyright, License and History" href=
|
TITLE="Privoxy Copyright, License and History"
|
||||||
"copyright.html">
|
HREF="copyright.html"><LINK
|
||||||
<link rel="NEXT" title="Appendix" href="appendix.html">
|
REL="NEXT"
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
TITLE="Appendix"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
HREF="appendix.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
REL="STYLESHEET"
|
||||||
<style type="text/css">
|
TYPE="text/css"
|
||||||
body {
|
HREF="../p_doc.css"><META
|
||||||
background-color: #EEEEEE;
|
HTTP-EQUIV="Content-Type"
|
||||||
color: #000000;
|
CONTENT="text/html;
|
||||||
}
|
charset=ISO-8859-1">
|
||||||
:link { color: #0000FF }
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
|
||||||
:visited { color: #840084 }
|
</head
|
||||||
:active { color: #0000FF }
|
><BODY
|
||||||
hr.c1 {text-align: left}
|
CLASS="SECT1"
|
||||||
</style>
|
BGCOLOR="#EEEEEE"
|
||||||
</head>
|
TEXT="#000000"
|
||||||
|
LINK="#0000FF"
|
||||||
<body class="SECT1">
|
VLINK="#840084"
|
||||||
<div class="NAVHEADER">
|
ALINK="#0000FF"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><DIV
|
||||||
cellpadding="0" cellspacing="0">
|
CLASS="NAVHEADER"
|
||||||
<tr>
|
><TABLE
|
||||||
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
|
SUMMARY="Header navigation table"
|
||||||
</tr>
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
<tr>
|
CELLPADDING="0"
|
||||||
<td width="10%" align="left" valign="bottom"><a href="copyright.html"
|
CELLSPACING="0"
|
||||||
accesskey="P">Prev</a></td>
|
><TR
|
||||||
|
><TH
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
COLSPAN="3"
|
||||||
|
ALIGN="center"
|
||||||
<td width="10%" align="right" valign="bottom"><a href="appendix.html"
|
>Privoxy 3.0.12 User Manual</TH
|
||||||
accesskey="N">Next</a></td>
|
></TR
|
||||||
</tr>
|
><TR
|
||||||
</table>
|
><TD
|
||||||
<hr class="c1" width="100%">
|
WIDTH="10%"
|
||||||
</div>
|
ALIGN="left"
|
||||||
|
VALIGN="bottom"
|
||||||
<div class="SECT1">
|
><A
|
||||||
<h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">13. See Also</a></h1>
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
<p>Other references and sites of interest to <span class=
|
>Prev</A
|
||||||
"APPLICATION">Privoxy</span> users:</p>
|
></TD
|
||||||
|
><TD
|
||||||
<table border="0">
|
WIDTH="80%"
|
||||||
<tbody>
|
ALIGN="center"
|
||||||
<tr>
|
VALIGN="bottom"
|
||||||
<td><a href="http://www.privoxy.org/" target=
|
></TD
|
||||||
"_top">http://www.privoxy.org/</a>, the <span class=
|
><TD
|
||||||
"APPLICATION">Privoxy</span> Home page.</td>
|
WIDTH="10%"
|
||||||
</tr>
|
ALIGN="right"
|
||||||
</tbody>
|
VALIGN="bottom"
|
||||||
</table>
|
><A
|
||||||
|
HREF="appendix.html"
|
||||||
<table border="0">
|
ACCESSKEY="N"
|
||||||
<tbody>
|
>Next</A
|
||||||
<tr>
|
></TD
|
||||||
<td><a href="http://www.privoxy.org/faq/" target=
|
></TR
|
||||||
"_top">http://www.privoxy.org/faq/</a>, the <span class=
|
></TABLE
|
||||||
"APPLICATION">Privoxy</span> FAQ.</td>
|
><HR
|
||||||
</tr>
|
ALIGN="LEFT"
|
||||||
</tbody>
|
WIDTH="100%"></DIV
|
||||||
</table>
|
><DIV
|
||||||
|
CLASS="SECT1"
|
||||||
<table border="0">
|
><H1
|
||||||
<tbody>
|
CLASS="SECT1"
|
||||||
<tr>
|
><A
|
||||||
<td><a href="http://www.privoxy.org/developer-manual/" target=
|
NAME="SEEALSO"
|
||||||
"_top">http://www.privoxy.org/developer-manual/</a>, the
|
>13. See Also</A
|
||||||
<span class="APPLICATION">Privoxy</span> developer manual.</td>
|
></H1
|
||||||
</tr>
|
><P
|
||||||
</tbody>
|
> Other references and sites of interest to <SPAN
|
||||||
</table>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<table border="0">
|
>
|
||||||
<tbody>
|
users:</P
|
||||||
<tr>
|
><P
|
||||||
<td><a href="https://sourceforge.net/projects/ijbswa/" target=
|
> <P
|
||||||
"_top">https://sourceforge.net/projects/ijbswa/</a>, the Project
|
></P
|
||||||
Page for <span class="APPLICATION">Privoxy</span> on <a href=
|
><TABLE
|
||||||
"http://sourceforge.net" target="_top">SourceForge</a>.</td>
|
BORDER="0"
|
||||||
</tr>
|
><TBODY
|
||||||
</tbody>
|
><TR
|
||||||
</table>
|
><TD
|
||||||
|
> <A
|
||||||
<table border="0">
|
HREF="http://www.privoxy.org/"
|
||||||
<tbody>
|
TARGET="_top"
|
||||||
<tr>
|
>http://www.privoxy.org/</A
|
||||||
<td><a href="http://config.privoxy.org/" target=
|
>,
|
||||||
"_top">http://config.privoxy.org/</a>, the web-based user
|
the <SPAN
|
||||||
interface. <span class="APPLICATION">Privoxy</span> must be running
|
CLASS="APPLICATION"
|
||||||
for this to work. Shortcut: <a href="http://p.p/" target=
|
>Privoxy</SPAN
|
||||||
"_top">http://p.p/</a></td>
|
> Home page.
|
||||||
</tr>
|
</TD
|
||||||
</tbody>
|
></TR
|
||||||
</table>
|
></TBODY
|
||||||
|
></TABLE
|
||||||
<table border="0">
|
><P
|
||||||
<tbody>
|
></P
|
||||||
<tr>
|
>
|
||||||
<td><a href=
|
<P
|
||||||
"https://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
></P
|
||||||
target=
|
><TABLE
|
||||||
"_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
|
BORDER="0"
|
||||||
to submit <span class="QUOTE">"misses"</span> and other
|
><TBODY
|
||||||
configuration related suggestions to the developers.</td>
|
><TR
|
||||||
</tr>
|
><TD
|
||||||
</tbody>
|
> <A
|
||||||
</table>
|
HREF="http://www.privoxy.org/faq/"
|
||||||
|
TARGET="_top"
|
||||||
<table border="0">
|
>http://www.privoxy.org/faq/</A
|
||||||
<tbody>
|
>,
|
||||||
<tr>
|
the <SPAN
|
||||||
<td><a href="http://www.junkbusters.com/ht/en/cookies.html" target=
|
CLASS="APPLICATION"
|
||||||
"_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an
|
>Privoxy</SPAN
|
||||||
explanation how cookies are used to track web users.</td>
|
> FAQ.
|
||||||
</tr>
|
</TD
|
||||||
</tbody>
|
></TR
|
||||||
</table>
|
></TBODY
|
||||||
|
></TABLE
|
||||||
<table border="0">
|
><P
|
||||||
<tbody>
|
></P
|
||||||
<tr>
|
>
|
||||||
<td><a href="http://www.junkbusters.com/ijb.html" target=
|
<P
|
||||||
"_top">http://www.junkbusters.com/ijb.html</a>, the original
|
></P
|
||||||
Internet Junkbuster.</td>
|
><TABLE
|
||||||
</tr>
|
BORDER="0"
|
||||||
</tbody>
|
><TBODY
|
||||||
</table>
|
><TR
|
||||||
|
><TD
|
||||||
<table border="0">
|
> <A
|
||||||
<tbody>
|
HREF="http://www.privoxy.org/developer-manual/"
|
||||||
<tr>
|
TARGET="_top"
|
||||||
<td><a href="http://www.squid-cache.org/" target=
|
>http://www.privoxy.org/developer-manual/</A
|
||||||
"_top">http://www.squid-cache.org/</a>, a popular caching proxy,
|
>,
|
||||||
which is often used together with <span class=
|
the <SPAN
|
||||||
"APPLICATION">Privoxy</span>.</td>
|
CLASS="APPLICATION"
|
||||||
</tr>
|
>Privoxy</SPAN
|
||||||
</tbody>
|
> developer manual.
|
||||||
</table>
|
</TD
|
||||||
|
></TR
|
||||||
<table border="0">
|
></TBODY
|
||||||
<tbody>
|
></TABLE
|
||||||
<tr>
|
><P
|
||||||
<td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/"
|
></P
|
||||||
target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>,
|
>
|
||||||
<span class="APPLICATION">Polipo</span> is a caching proxy with
|
<P
|
||||||
advanced features like pipelining, multiplexing and caching of
|
></P
|
||||||
partial instances. In many setups it can be used as <span class=
|
><TABLE
|
||||||
"APPLICATION">Squid</span> replacement.</td>
|
BORDER="0"
|
||||||
</tr>
|
><TBODY
|
||||||
</tbody>
|
><TR
|
||||||
</table>
|
><TD
|
||||||
|
> <A
|
||||||
<table border="0">
|
HREF="https://sourceforge.net/projects/ijbswa/"
|
||||||
<tbody>
|
TARGET="_top"
|
||||||
<tr>
|
>https://sourceforge.net/projects/ijbswa/</A
|
||||||
<td><a href="https://www.torproject.org/" target=
|
>,
|
||||||
"_top">https://www.torproject.org/</a>, <span class=
|
the Project Page for <SPAN
|
||||||
"APPLICATION">Tor</span> can help anonymize web browsing, web
|
CLASS="APPLICATION"
|
||||||
publishing, instant messaging, IRC, SSH, and other
|
>Privoxy</SPAN
|
||||||
applications.</td>
|
> on
|
||||||
</tr>
|
<A
|
||||||
</tbody>
|
HREF="http://sourceforge.net"
|
||||||
</table>
|
TARGET="_top"
|
||||||
</div>
|
>SourceForge</A
|
||||||
|
>.
|
||||||
<div class="NAVFOOTER">
|
</TD
|
||||||
<hr class="c1" width="100%">
|
></TR
|
||||||
|
></TBODY
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
></TABLE
|
||||||
cellpadding="0" cellspacing="0">
|
><P
|
||||||
<tr>
|
></P
|
||||||
<td width="33%" align="left" valign="top"><a href="copyright.html"
|
>
|
||||||
accesskey="P">Prev</a></td>
|
<P
|
||||||
|
></P
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
><TABLE
|
||||||
accesskey="H">Home</a></td>
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
<td width="33%" align="right" valign="top"><a href="appendix.html"
|
><TR
|
||||||
accesskey="N">Next</a></td>
|
><TD
|
||||||
</tr>
|
> <A
|
||||||
|
HREF="http://config.privoxy.org/"
|
||||||
<tr>
|
TARGET="_top"
|
||||||
<td width="33%" align="left" valign="top">Privoxy Copyright, License
|
>http://config.privoxy.org/</A
|
||||||
and History</td>
|
>,
|
||||||
|
the web-based user interface. <SPAN
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<td width="33%" align="right" valign="top">Appendix</td>
|
> must be
|
||||||
</tr>
|
running for this to work. Shortcut: <A
|
||||||
</table>
|
HREF="http://p.p/"
|
||||||
</div>
|
TARGET="_top"
|
||||||
</body>
|
>http://p.p/</A
|
||||||
</html>
|
>
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="https://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
||||||
|
TARGET="_top"
|
||||||
|
>https://sourceforge.net/tracker/?group_id=11118&atid=460288</A
|
||||||
|
>, to submit <SPAN
|
||||||
|
CLASS="QUOTE"
|
||||||
|
>"misses"</SPAN
|
||||||
|
> and other
|
||||||
|
configuration related suggestions to the developers.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.junkbusters.com/ht/en/cookies.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.junkbusters.com/ht/en/cookies.html</A
|
||||||
|
>,
|
||||||
|
an explanation how cookies are used to track web users.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.junkbusters.com/ijb.html"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.junkbusters.com/ijb.html</A
|
||||||
|
>,
|
||||||
|
the original Internet Junkbuster.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.squid-cache.org/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.squid-cache.org/</A
|
||||||
|
>, a popular
|
||||||
|
caching proxy, which is often used together with <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="http://www.pps.jussieu.fr/~jch/software/polipo/"
|
||||||
|
TARGET="_top"
|
||||||
|
>http://www.pps.jussieu.fr/~jch/software/polipo/</A
|
||||||
|
>,
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Polipo</SPAN
|
||||||
|
> is a caching proxy with advanced features
|
||||||
|
like pipelining, multiplexing and caching of partial instances. In many setups
|
||||||
|
it can be used as <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Squid</SPAN
|
||||||
|
> replacement.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
<P
|
||||||
|
></P
|
||||||
|
><TABLE
|
||||||
|
BORDER="0"
|
||||||
|
><TBODY
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
> <A
|
||||||
|
HREF="https://www.torproject.org/"
|
||||||
|
TARGET="_top"
|
||||||
|
>https://www.torproject.org/</A
|
||||||
|
>,
|
||||||
|
<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Tor</SPAN
|
||||||
|
> can help anonymize web browsing,
|
||||||
|
web publishing, instant messaging, IRC, SSH, and other applications.
|
||||||
|
</TD
|
||||||
|
></TR
|
||||||
|
></TBODY
|
||||||
|
></TABLE
|
||||||
|
><P
|
||||||
|
></P
|
||||||
|
>
|
||||||
|
</P
|
||||||
|
></DIV
|
||||||
|
><DIV
|
||||||
|
CLASS="NAVFOOTER"
|
||||||
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="copyright.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="appendix.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Privoxy Copyright, License and History</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Appendix</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,172 +1,321 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
<HTML
|
||||||
|
><HEAD
|
||||||
<html>
|
><TITLE
|
||||||
<head>
|
>Privoxy's Template Files</TITLE
|
||||||
<meta name="generator" content=
|
><META
|
||||||
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
NAME="GENERATOR"
|
||||||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||||
<title>Privoxy's Template Files</title>
|
REL="HOME"
|
||||||
<meta name="GENERATOR" content=
|
TITLE="Privoxy 3.0.12 User Manual"
|
||||||
"Modular DocBook HTML Stylesheet Version 1.79">
|
HREF="index.html"><LINK
|
||||||
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
|
REL="PREVIOUS"
|
||||||
<link rel="PREVIOUS" title="Filter Files" href="filter-file.html">
|
TITLE="Filter Files"
|
||||||
<link rel="NEXT" title=
|
HREF="filter-file.html"><LINK
|
||||||
"Contacting the Developers, Bug Reporting and Feature Requests" href=
|
REL="NEXT"
|
||||||
"contact.html">
|
TITLE="Contacting the Developers, Bug Reporting and Feature
|
||||||
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
|
Requests"
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
HREF="contact.html"><LINK
|
||||||
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
|
REL="STYLESHEET"
|
||||||
<style type="text/css">
|
TYPE="text/css"
|
||||||
body {
|
HREF="../p_doc.css"><META
|
||||||
background-color: #EEEEEE;
|
HTTP-EQUIV="Content-Type"
|
||||||
color: #000000;
|
CONTENT="text/html;
|
||||||
}
|
charset=ISO-8859-1">
|
||||||
:link { color: #0000FF }
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
|
||||||
:visited { color: #840084 }
|
</head
|
||||||
:active { color: #0000FF }
|
><BODY
|
||||||
table.c3 {background-color: #E0E0E0}
|
CLASS="SECT1"
|
||||||
span.c2 {font-style: italic}
|
BGCOLOR="#EEEEEE"
|
||||||
hr.c1 {text-align: left}
|
TEXT="#000000"
|
||||||
</style>
|
LINK="#0000FF"
|
||||||
</head>
|
VLINK="#840084"
|
||||||
|
ALINK="#0000FF"
|
||||||
<body class="SECT1">
|
><DIV
|
||||||
<div class="NAVHEADER">
|
CLASS="NAVHEADER"
|
||||||
<table summary="Header navigation table" width="100%" border="0"
|
><TABLE
|
||||||
cellpadding="0" cellspacing="0">
|
SUMMARY="Header navigation table"
|
||||||
<tr>
|
WIDTH="100%"
|
||||||
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
|
BORDER="0"
|
||||||
</tr>
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
<tr>
|
><TR
|
||||||
<td width="10%" align="left" valign="bottom"><a href=
|
><TH
|
||||||
"filter-file.html" accesskey="P">Prev</a></td>
|
COLSPAN="3"
|
||||||
|
ALIGN="center"
|
||||||
<td width="80%" align="center" valign="bottom"></td>
|
>Privoxy 3.0.12 User Manual</TH
|
||||||
|
></TR
|
||||||
<td width="10%" align="right" valign="bottom"><a href="contact.html"
|
><TR
|
||||||
accesskey="N">Next</a></td>
|
><TD
|
||||||
</tr>
|
WIDTH="10%"
|
||||||
</table>
|
ALIGN="left"
|
||||||
<hr class="c1" width="100%">
|
VALIGN="bottom"
|
||||||
</div>
|
><A
|
||||||
|
HREF="filter-file.html"
|
||||||
<div class="SECT1">
|
ACCESSKEY="P"
|
||||||
<h1 class="SECT1"><a name="TEMPLATES" id="TEMPLATES">10. Privoxy's
|
>Prev</A
|
||||||
Template Files</a></h1>
|
></TD
|
||||||
|
><TD
|
||||||
<p>All <span class="APPLICATION">Privoxy</span> built-in pages, i.e.
|
WIDTH="80%"
|
||||||
error pages such as the <a href="http://show-the-404-error.page" target=
|
ALIGN="center"
|
||||||
"_top"><span class="QUOTE">"404 - No Such Domain"</span> error page</a>,
|
VALIGN="bottom"
|
||||||
the <a href="http://ads.bannerserver.example.com/nasty-ads/sponsor.html"
|
></TD
|
||||||
target="_top"><span class="QUOTE">"BLOCKED"</span> page</a> and all pages
|
><TD
|
||||||
of its <a href="http://config.privoxy.org/" target="_top">web-based user
|
WIDTH="10%"
|
||||||
interface</a>, are generated from <span class=
|
ALIGN="right"
|
||||||
"emphasis EMPHASIS c2">templates</span>. (<span class=
|
VALIGN="bottom"
|
||||||
"APPLICATION">Privoxy</span> must be running for the above links to work
|
><A
|
||||||
as intended.)</p>
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
<p>These templates are stored in a subdirectory of the <a href=
|
>Next</A
|
||||||
"config.html#CONFDIR">configuration directory</a> called <tt class=
|
></TD
|
||||||
"FILENAME">templates</tt>. On Unixish platforms, this is typically
|
></TR
|
||||||
<a href="file:///etc/privoxy/templates/" target="_top"><tt class=
|
></TABLE
|
||||||
"FILENAME">/etc/privoxy/templates/</tt></a>.</p>
|
><HR
|
||||||
|
ALIGN="LEFT"
|
||||||
<p>The templates are basically normal HTML files, but with place-holders
|
WIDTH="100%"></DIV
|
||||||
(called symbols or exports), which <span class=
|
><DIV
|
||||||
"APPLICATION">Privoxy</span> fills at run time. It is possible to edit
|
CLASS="SECT1"
|
||||||
the templates with a normal text editor, should you want to customize
|
><H1
|
||||||
them. (<span class="emphasis EMPHASIS c2">Not recommended for the casual
|
CLASS="SECT1"
|
||||||
user</span>). Should you create your own custom templates, you should use
|
><A
|
||||||
the <tt class="FILENAME">config</tt> setting <a href=
|
NAME="TEMPLATES"
|
||||||
"config.html#TEMPLDIR">templdir</a> to specify an alternate location, so
|
>10. Privoxy's Template Files</A
|
||||||
your templates do not get overwritten during upgrades.</p>
|
></H1
|
||||||
|
><P
|
||||||
<p>Note that just like in configuration files, lines starting with
|
> All <SPAN
|
||||||
<tt class="LITERAL">#</tt> are ignored when the templates are filled
|
CLASS="APPLICATION"
|
||||||
in.</p>
|
>Privoxy</SPAN
|
||||||
|
> built-in pages, i.e. error pages such as the
|
||||||
<p>The place-holders are of the form <tt class="LITERAL">@name@</tt>, and
|
<A
|
||||||
you will find a list of available symbols, which vary from template to
|
HREF="http://show-the-404-error.page"
|
||||||
template, in the comments at the start of each file. Note that these
|
TARGET="_top"
|
||||||
comments are not always accurate, and that it's probably best to look at
|
><SPAN
|
||||||
the existing HTML code to find out which symbols are supported and what
|
CLASS="QUOTE"
|
||||||
they are filled in with.</p>
|
>"404 - No Such Domain"</SPAN
|
||||||
|
>
|
||||||
<p>A special application of this substitution mechanism is to make whole
|
error page</A
|
||||||
blocks of HTML code disappear when a specific symbol is set. We use this
|
>, the <A
|
||||||
for many purposes, one of them being to include the beta warning in all
|
HREF="http://ads.bannerserver.example.com/nasty-ads/sponsor.html"
|
||||||
our user interface (CGI) pages when <span class=
|
TARGET="_top"
|
||||||
"APPLICATION">Privoxy</span> is in an alpha or beta development
|
><SPAN
|
||||||
stage:</p>
|
CLASS="QUOTE"
|
||||||
|
>"BLOCKED"</SPAN
|
||||||
<table class="c3" border="0" width="100%">
|
>
|
||||||
<tr>
|
page</A
|
||||||
<td>
|
>
|
||||||
<pre class="SCREEN">
|
and all pages of its <A
|
||||||
<!-- @if-unstable-start -->
|
HREF="http://config.privoxy.org/"
|
||||||
|
TARGET="_top"
|
||||||
|
>web-based
|
||||||
|
user interface</A
|
||||||
|
>, are generated from <SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>templates</I
|
||||||
|
></SPAN
|
||||||
|
>.
|
||||||
|
(<SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> must be running for the above links to work as
|
||||||
|
intended.)</P
|
||||||
|
><P
|
||||||
|
> These templates are stored in a subdirectory of the <A
|
||||||
|
HREF="config.html#CONFDIR"
|
||||||
|
>configuration
|
||||||
|
directory</A
|
||||||
|
> called <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>templates</TT
|
||||||
|
>. On Unixish platforms,
|
||||||
|
this is typically
|
||||||
|
<A
|
||||||
|
HREF="file:///etc/privoxy/templates/"
|
||||||
|
TARGET="_top"
|
||||||
|
><TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>/etc/privoxy/templates/</TT
|
||||||
|
></A
|
||||||
|
>.</P
|
||||||
|
><P
|
||||||
|
> The templates are basically normal HTML files, but with place-holders (called symbols
|
||||||
|
or exports), which <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
> fills at run time. It
|
||||||
|
is possible to edit the templates with a normal text editor, should you want
|
||||||
|
to customize them. (<SPAN
|
||||||
|
CLASS="emphasis"
|
||||||
|
><I
|
||||||
|
CLASS="EMPHASIS"
|
||||||
|
>Not recommended for the casual
|
||||||
|
user</I
|
||||||
|
></SPAN
|
||||||
|
>). Should you create your own custom templates, you should use
|
||||||
|
the <TT
|
||||||
|
CLASS="FILENAME"
|
||||||
|
>config</TT
|
||||||
|
> setting <A
|
||||||
|
HREF="config.html#TEMPLDIR"
|
||||||
|
>templdir</A
|
||||||
|
>
|
||||||
|
to specify an alternate location, so your templates do not get overwritten
|
||||||
|
during upgrades.
|
||||||
|
</P
|
||||||
|
><P
|
||||||
|
> Note that just like in configuration files, lines starting
|
||||||
|
with <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>#</TT
|
||||||
|
> are ignored when the templates are filled in.</P
|
||||||
|
><P
|
||||||
|
> The place-holders are of the form <TT
|
||||||
|
CLASS="LITERAL"
|
||||||
|
>@name@</TT
|
||||||
|
>, and you will
|
||||||
|
find a list of available symbols, which vary from template to template,
|
||||||
|
in the comments at the start of each file. Note that these comments are not
|
||||||
|
always accurate, and that it's probably best to look at the existing HTML
|
||||||
|
code to find out which symbols are supported and what they are filled in with.</P
|
||||||
|
><P
|
||||||
|
> A special application of this substitution mechanism is to make whole
|
||||||
|
blocks of HTML code disappear when a specific symbol is set. We use this
|
||||||
|
for many purposes, one of them being to include the beta warning in all
|
||||||
|
our user interface (CGI) pages when <SPAN
|
||||||
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
|
>
|
||||||
|
is in an alpha or beta development stage:</P
|
||||||
|
><P
|
||||||
|
> <TABLE
|
||||||
|
BORDER="0"
|
||||||
|
BGCOLOR="#E0E0E0"
|
||||||
|
WIDTH="100%"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
><PRE
|
||||||
|
CLASS="SCREEN"
|
||||||
|
><!-- @if-unstable-start -->
|
||||||
|
|
||||||
... beta warning HTML code goes here ...
|
... beta warning HTML code goes here ...
|
||||||
|
|
||||||
<!-- if-unstable-end@ -->
|
<!-- if-unstable-end@ --></PRE
|
||||||
</pre>
|
></TD
|
||||||
</td>
|
></TR
|
||||||
</tr>
|
></TABLE
|
||||||
</table>
|
></P
|
||||||
|
><P
|
||||||
<p>If the "unstable" symbol is set, everything in between and including
|
> If the "unstable" symbol is set, everything in between and including
|
||||||
<tt class="LITERAL">@if-unstable-start</tt> and <tt class=
|
<TT
|
||||||
"LITERAL">if-unstable-end@</tt> will disappear, leaving nothing but an
|
CLASS="LITERAL"
|
||||||
empty comment:</p>
|
>@if-unstable-start</TT
|
||||||
|
> and <TT
|
||||||
<table class="c3" border="0" width="100%">
|
CLASS="LITERAL"
|
||||||
<tr>
|
>if-unstable-end@</TT
|
||||||
<td>
|
>
|
||||||
<pre class="SCREEN">
|
will disappear, leaving nothing but an empty comment:</P
|
||||||
<!-- -->
|
><P
|
||||||
</pre>
|
> <TABLE
|
||||||
</td>
|
BORDER="0"
|
||||||
</tr>
|
BGCOLOR="#E0E0E0"
|
||||||
</table>
|
WIDTH="100%"
|
||||||
|
><TR
|
||||||
<p>There's also an if-then-else construct and an <tt class=
|
><TD
|
||||||
"LITERAL">#include</tt> mechanism, but you'll sure find out if you are
|
><PRE
|
||||||
inclined to edit the templates ;-)</p>
|
CLASS="SCREEN"
|
||||||
|
><!-- --></PRE
|
||||||
<p>All templates refer to a style located at <a href=
|
></TD
|
||||||
"http://config.privoxy.org/send-stylesheet" target="_top"><tt class=
|
></TR
|
||||||
"LITERAL">http://config.privoxy.org/send-stylesheet</tt></a>. This is, of
|
></TABLE
|
||||||
course, locally served by <span class="APPLICATION">Privoxy</span> and
|
></P
|
||||||
the source for it can be found and edited in the <tt class=
|
><P
|
||||||
"FILENAME">cgi-style.css</tt> template.</p>
|
> There's also an if-then-else construct and an <TT
|
||||||
</div>
|
CLASS="LITERAL"
|
||||||
|
>#include</TT
|
||||||
<div class="NAVFOOTER">
|
>
|
||||||
<hr class="c1" width="100%">
|
mechanism, but you'll sure find out if you are inclined to edit the
|
||||||
|
templates ;-)</P
|
||||||
<table summary="Footer navigation table" width="100%" border="0"
|
><P
|
||||||
cellpadding="0" cellspacing="0">
|
> All templates refer to a style located at
|
||||||
<tr>
|
<A
|
||||||
<td width="33%" align="left" valign="top"><a href="filter-file.html"
|
HREF="http://config.privoxy.org/send-stylesheet"
|
||||||
accesskey="P">Prev</a></td>
|
TARGET="_top"
|
||||||
|
><TT
|
||||||
<td width="34%" align="center" valign="top"><a href="index.html"
|
CLASS="LITERAL"
|
||||||
accesskey="H">Home</a></td>
|
>http://config.privoxy.org/send-stylesheet</TT
|
||||||
|
></A
|
||||||
<td width="33%" align="right" valign="top"><a href="contact.html"
|
>.
|
||||||
accesskey="N">Next</a></td>
|
This is, of course, locally served by <SPAN
|
||||||
</tr>
|
CLASS="APPLICATION"
|
||||||
|
>Privoxy</SPAN
|
||||||
<tr>
|
>
|
||||||
<td width="33%" align="left" valign="top">Filter Files</td>
|
and the source for it can be found and edited in the
|
||||||
|
<TT
|
||||||
<td width="34%" align="center" valign="top"> </td>
|
CLASS="FILENAME"
|
||||||
|
>cgi-style.css</TT
|
||||||
<td width="33%" align="right" valign="top">Contacting the Developers,
|
> template.</P
|
||||||
Bug Reporting and Feature Requests</td>
|
></DIV
|
||||||
</tr>
|
><DIV
|
||||||
</table>
|
CLASS="NAVFOOTER"
|
||||||
</div>
|
><HR
|
||||||
</body>
|
ALIGN="LEFT"
|
||||||
</html>
|
WIDTH="100%"><TABLE
|
||||||
|
SUMMARY="Footer navigation table"
|
||||||
|
WIDTH="100%"
|
||||||
|
BORDER="0"
|
||||||
|
CELLPADDING="0"
|
||||||
|
CELLSPACING="0"
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="filter-file.html"
|
||||||
|
ACCESSKEY="P"
|
||||||
|
>Prev</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="index.html"
|
||||||
|
ACCESSKEY="H"
|
||||||
|
>Home</A
|
||||||
|
></TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
><A
|
||||||
|
HREF="contact.html"
|
||||||
|
ACCESSKEY="N"
|
||||||
|
>Next</A
|
||||||
|
></TD
|
||||||
|
></TR
|
||||||
|
><TR
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="left"
|
||||||
|
VALIGN="top"
|
||||||
|
>Filter Files</TD
|
||||||
|
><TD
|
||||||
|
WIDTH="34%"
|
||||||
|
ALIGN="center"
|
||||||
|
VALIGN="top"
|
||||||
|
> </TD
|
||||||
|
><TD
|
||||||
|
WIDTH="33%"
|
||||||
|
ALIGN="right"
|
||||||
|
VALIGN="top"
|
||||||
|
>Contacting the Developers, Bug Reporting and Feature
|
||||||
|
Requests</TD
|
||||||
|
></TR
|
||||||
|
></TABLE
|
||||||
|
></DIV
|
||||||
|
></BODY
|
||||||
|
></HTML
|
||||||
|
>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
||||||
const char encode_rcs[] = "$Id: encode.c,v 1.24 2011/11/06 11:51:57 fabiankeil Exp $";
|
const char encode_rcs[] = "$Id: encode.c,v 1.14 2008/05/21 15:38:13 fabiankeil Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/encode.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/encode.c,v $
|
||||||
|
@ -6,14 +6,14 @@ const char encode_rcs[] = "$Id: encode.c,v 1.24 2011/11/06 11:51:57 fabiankeil E
|
||||||
* Purpose : Functions to encode and decode URLs, and also to
|
* Purpose : Functions to encode and decode URLs, and also to
|
||||||
* encode cookies and HTML text.
|
* encode cookies and HTML text.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001 the
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -31,8 +31,54 @@ const char encode_rcs[] = "$Id: encode.c,v 1.24 2011/11/06 11:51:57 fabiankeil E
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: encode.c,v $
|
||||||
|
* Revision 1.14 2008/05/21 15:38:13 fabiankeil
|
||||||
|
* Garbage-collect cookie_encode().
|
||||||
|
*
|
||||||
|
* Revision 1.13 2007/08/18 14:34:27 fabiankeil
|
||||||
|
* Make xtoi() extern so it can be used in pcrs.c.
|
||||||
|
*
|
||||||
|
* Revision 1.12 2007/08/04 10:15:51 fabiankeil
|
||||||
|
* Use strlcpy() instead of strcpy().
|
||||||
|
*
|
||||||
|
* Revision 1.11 2006/12/28 18:25:53 fabiankeil
|
||||||
|
* Fixed gcc43 compiler warning.
|
||||||
|
*
|
||||||
|
* Revision 1.10 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/13 00:27:04 jongfoster
|
||||||
|
* Killing warnings
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/03/07 03:46:53 oes
|
||||||
|
* Fixed compiler warnings etc
|
||||||
|
*
|
||||||
|
* Revision 1.4 2002/01/22 23:28:07 jongfoster
|
||||||
|
* Adding convenience function html_encode_and_free_original()
|
||||||
|
* Making all functions accept NULL paramaters - in this case, they
|
||||||
|
* simply return NULL. This allows error-checking to be deferred.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/11/13 00:16:40 jongfoster
|
||||||
|
* Replacing references to malloc.h with the standard stdlib.h
|
||||||
|
* (See ANSI or K&R 2nd Ed)
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/17 22:52:35 oes
|
||||||
|
* - Cleaned CRLF's from the sources and related files
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -47,20 +93,20 @@ const char encode_rcs[] = "$Id: encode.c,v 1.24 2011/11/06 11:51:57 fabiankeil E
|
||||||
const char encode_h_rcs[] = ENCODE_H_VERSION;
|
const char encode_h_rcs[] = ENCODE_H_VERSION;
|
||||||
|
|
||||||
/* Maps special characters in a URL to their equivalent % codes. */
|
/* Maps special characters in a URL to their equivalent % codes. */
|
||||||
static const char const url_code_map[256][4] = {
|
static const char * const url_code_map[256] = {
|
||||||
"", "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09",
|
NULL, "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09",
|
||||||
"%0A", "%0B", "%0C", "%0D", "%0E", "%0F", "%10", "%11", "%12", "%13",
|
"%0A", "%0B", "%0C", "%0D", "%0E", "%0F", "%10", "%11", "%12", "%13",
|
||||||
"%14", "%15", "%16", "%17", "%18", "%19", "%1A", "%1B", "%1C", "%1D",
|
"%14", "%15", "%16", "%17", "%18", "%19", "%1A", "%1B", "%1C", "%1D",
|
||||||
"%1E", "%1F", "%20", "%21", "%22", "%23", "%24", "%25", "%26", "%27",
|
"%1E", "%1F", "+", "%21", "%22", "%23", "%24", "%25", "%26", "%27",
|
||||||
"%28", "%29", "", "%2B", "%2C", "", "", "%2F", "", "",
|
"%28", "%29", NULL, "%2B", "%2C", NULL, NULL, "%2F", NULL, NULL,
|
||||||
"", "", "", "", "", "", "", "", "%3A", "%3B",
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "%3A", "%3B",
|
||||||
"%3C", "%3D", "%3E", "%3F", "", "", "", "", "", "",
|
"%3C", "%3D", "%3E", "%3F", NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
"", "", "", "", "", "", "", "", "", "",
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
"", "", "", "", "", "", "", "", "", "",
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
"", "%5B", "%5C", "%5D", "%5E", "", "%60", "", "", "",
|
NULL, "%5B", "%5C", "%5D", "%5E", NULL, "%60", NULL, NULL, NULL,
|
||||||
"", "", "", "", "", "", "", "", "", "",
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
"", "", "", "", "", "", "", "", "", "",
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
"", "", "", "%7B", "%7C", "%7D", "%7E", "%7F", "%80", "%81",
|
NULL, NULL, NULL, "%7B", "%7C", "%7D", "%7E", "%7F", "%80", "%81",
|
||||||
"%82", "%83", "%84", "%85", "%86", "%87", "%88", "%89", "%8A", "%8B",
|
"%82", "%83", "%84", "%85", "%86", "%87", "%88", "%89", "%8A", "%8B",
|
||||||
"%8C", "%8D", "%8E", "%8F", "%90", "%91", "%92", "%93", "%94", "%95",
|
"%8C", "%8D", "%8E", "%8F", "%90", "%91", "%92", "%93", "%94", "%95",
|
||||||
"%96", "%97", "%98", "%99", "%9A", "%9B", "%9C", "%9D", "%9E", "%9F",
|
"%96", "%97", "%98", "%99", "%9A", "%9B", "%9C", "%9D", "%9E", "%9F",
|
||||||
|
@ -76,12 +122,12 @@ static const char const url_code_map[256][4] = {
|
||||||
"%FA", "%FB", "%FC", "%FD", "%FE", "%FF"
|
"%FA", "%FB", "%FC", "%FD", "%FE", "%FF"
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Maps special characters in HTML to their equivalent entities. */
|
/* Maps special characters in HTML to their equivalent entites. */
|
||||||
static const char * const html_code_map[256] = {
|
static const char * const html_code_map[256] = {
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL,""",NULL,NULL,NULL,"&","'",
|
NULL, NULL, NULL, NULL,""",NULL,NULL,NULL,"&",NULL,
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
"<",NULL,">",NULL,NULL, NULL, NULL, NULL, NULL, NULL,
|
"<",NULL,">",NULL,NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
|
@ -119,7 +165,7 @@ static const char * const html_code_map[256] = {
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : s = String to encode. Null-terminated.
|
* 1 : s = String to encode. Null-terminated.
|
||||||
*
|
*
|
||||||
* Returns : Encoded string, newly allocated on the heap.
|
* Returns : Encoded string, newly allocated on the heap.
|
||||||
* Caller is responsible for freeing it with free().
|
* Caller is responsible for freeing it with free().
|
||||||
* If s is NULL, or on out-of memory, returns NULL.
|
* If s is NULL, or on out-of memory, returns NULL.
|
||||||
*
|
*
|
||||||
|
@ -128,7 +174,7 @@ char * html_encode(const char *s)
|
||||||
{
|
{
|
||||||
char * buf;
|
char * buf;
|
||||||
size_t buf_size;
|
size_t buf_size;
|
||||||
|
|
||||||
if (s == NULL)
|
if (s == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -178,7 +224,7 @@ char * html_encode(const char *s)
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : s = String to encode. Null-terminated.
|
* 1 : s = String to encode. Null-terminated.
|
||||||
*
|
*
|
||||||
* Returns : Encoded string, newly allocated on the heap.
|
* Returns : Encoded string, newly allocated on the heap.
|
||||||
* Caller is responsible for freeing it with free().
|
* Caller is responsible for freeing it with free().
|
||||||
* If s is NULL, or on out-of memory, returns NULL.
|
* If s is NULL, or on out-of memory, returns NULL.
|
||||||
*
|
*
|
||||||
|
@ -186,7 +232,7 @@ char * html_encode(const char *s)
|
||||||
char * html_encode_and_free_original(char *s)
|
char * html_encode_and_free_original(char *s)
|
||||||
{
|
{
|
||||||
char * result;
|
char * result;
|
||||||
|
|
||||||
if (s == NULL)
|
if (s == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -207,13 +253,10 @@ char * html_encode_and_free_original(char *s)
|
||||||
* query string. Replaces special characters with
|
* query string. Replaces special characters with
|
||||||
* the appropriate %xx codes.
|
* the appropriate %xx codes.
|
||||||
*
|
*
|
||||||
* XXX: url_query_encode() would be a more fitting
|
|
||||||
* name.
|
|
||||||
*
|
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : s = String to encode. Null-terminated.
|
* 1 : s = String to encode. Null-terminated.
|
||||||
*
|
*
|
||||||
* Returns : Encoded string, newly allocated on the heap.
|
* Returns : Encoded string, newly allocated on the heap.
|
||||||
* Caller is responsible for freeing it with free().
|
* Caller is responsible for freeing it with free().
|
||||||
* If s is NULL, or on out-of memory, returns NULL.
|
* If s is NULL, or on out-of memory, returns NULL.
|
||||||
*
|
*
|
||||||
|
@ -238,8 +281,8 @@ char * url_encode(const char *s)
|
||||||
char * p = buf;
|
char * p = buf;
|
||||||
while( (c = *s++) != '\0')
|
while( (c = *s++) != '\0')
|
||||||
{
|
{
|
||||||
const char *replace_with = url_code_map[(unsigned char) c];
|
const char * replace_with = url_code_map[(unsigned char) c];
|
||||||
if (*replace_with != '\0')
|
if (replace_with != NULL)
|
||||||
{
|
{
|
||||||
const size_t bytes_written = (size_t)(p - buf);
|
const size_t bytes_written = (size_t)(p - buf);
|
||||||
assert(bytes_written < buf_size);
|
assert(bytes_written < buf_size);
|
||||||
|
@ -278,7 +321,7 @@ static int xdtoi(const int d)
|
||||||
{
|
{
|
||||||
return(d - '0');
|
return(d - '0');
|
||||||
}
|
}
|
||||||
else if ((d >= 'a') && (d <= 'f'))
|
else if ((d >= 'a') && (d <= 'f'))
|
||||||
{
|
{
|
||||||
return(d - 'a' + 10);
|
return(d - 'a' + 10);
|
||||||
}
|
}
|
||||||
|
@ -308,12 +351,12 @@ static int xdtoi(const int d)
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
int xtoi(const char *s)
|
int xtoi(const char *s)
|
||||||
{
|
{
|
||||||
int d1;
|
int d1, d2;
|
||||||
|
|
||||||
d1 = xdtoi(*s);
|
d1 = xdtoi(*s);
|
||||||
if(d1 >= 0)
|
if(d1 >= 0)
|
||||||
{
|
{
|
||||||
int d2 = xdtoi(*(s+1));
|
d2 = xdtoi(*(s+1));
|
||||||
if(d2 >= 0)
|
if(d2 >= 0)
|
||||||
{
|
{
|
||||||
return (d1 << 4) + d2;
|
return (d1 << 4) + d2;
|
||||||
|
@ -334,7 +377,7 @@ int xtoi(const char *s)
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : s = String to decode. Null-terminated.
|
* 1 : s = String to decode. Null-terminated.
|
||||||
*
|
*
|
||||||
* Returns : Decoded string, newly allocated on the heap.
|
* Returns : Decoded string, newly allocated on the heap.
|
||||||
* Caller is responsible for freeing it with free().
|
* Caller is responsible for freeing it with free().
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
@ -380,83 +423,6 @@ char *url_decode(const char * s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
|
||||||
*
|
|
||||||
* Function : percent_encode_url
|
|
||||||
*
|
|
||||||
* Description : Percent-encodes a string so it no longer contains
|
|
||||||
* any characters that aren't valid in an URL according
|
|
||||||
* to RFC 3986.
|
|
||||||
*
|
|
||||||
* XXX: Do not confuse with encode_url()
|
|
||||||
*
|
|
||||||
* Parameters :
|
|
||||||
* 1 : s = String to encode. Null-terminated.
|
|
||||||
*
|
|
||||||
* Returns : Encoded string, newly allocated on the heap.
|
|
||||||
* Caller is responsible for freeing it with free().
|
|
||||||
* If s is NULL, or on out-of memory, returns NULL.
|
|
||||||
*
|
|
||||||
*********************************************************************/
|
|
||||||
char *percent_encode_url(const char *s)
|
|
||||||
{
|
|
||||||
static const char allowed_characters[128] = {
|
|
||||||
'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
|
|
||||||
'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
|
|
||||||
'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
|
|
||||||
'\0', '\0', '\0', '!', '\0', '#', '$', '%', '&', '\'',
|
|
||||||
'(', ')', '*', '+', ',', '-', '.', '/', '0', '1',
|
|
||||||
'2', '3', '4', '5', '6', '7', '8', '9', ':', ';',
|
|
||||||
'\0', '=', '\0', '?', '@', 'A', 'B', 'C', 'D', 'E',
|
|
||||||
'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
|
|
||||||
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',
|
|
||||||
'Z', '[', '\0', ']', '\0', '_', '\0', 'a', 'b', 'c',
|
|
||||||
'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
|
||||||
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
|
|
||||||
'x', 'y', 'z', '\0', '\0', '\0', '~', '\0'
|
|
||||||
};
|
|
||||||
char *buf;
|
|
||||||
size_t buf_size;
|
|
||||||
|
|
||||||
assert(s != NULL);
|
|
||||||
|
|
||||||
/* Each input char can expand to at most 3 chars. */
|
|
||||||
buf_size = (strlen(s) * 3) + 1;
|
|
||||||
buf = (char *)malloc(buf_size);
|
|
||||||
|
|
||||||
if (buf != NULL)
|
|
||||||
{
|
|
||||||
char c;
|
|
||||||
char *p = buf;
|
|
||||||
while((c = *s++) != '\0')
|
|
||||||
{
|
|
||||||
const unsigned int i = (unsigned char)c;
|
|
||||||
if (i >= sizeof(allowed_characters) || '\0' == allowed_characters[i])
|
|
||||||
{
|
|
||||||
const char *replace_with = url_code_map[i];
|
|
||||||
assert(*replace_with != '\0');
|
|
||||||
if (*replace_with != '\0')
|
|
||||||
{
|
|
||||||
const size_t bytes_written = (size_t)(p - buf);
|
|
||||||
assert(bytes_written < buf_size);
|
|
||||||
p += strlcpy(p, replace_with, buf_size - bytes_written);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*p++ = c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*p = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(strlen(buf) < buf_size);
|
|
||||||
|
|
||||||
return(buf);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Local Variables:
|
Local Variables:
|
||||||
tab-width: 3
|
tab-width: 3
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef ENCODE_H_INCLUDED
|
#ifndef ENCODE_H_INCLUDED
|
||||||
#define ENCODE_H_INCLUDED
|
#define ENCODE_H_INCLUDED
|
||||||
#define ENCODE_H_VERSION "$Id: encode.h,v 1.12 2011/11/06 11:44:56 fabiankeil Exp $"
|
#define ENCODE_H_VERSION "$Id: encode.h,v 1.9 2008/05/21 15:38:13 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/encode.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/encode.h,v $
|
||||||
|
@ -12,10 +12,10 @@
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -33,8 +33,39 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: encode.h,v $
|
||||||
|
* Revision 1.9 2008/05/21 15:38:13 fabiankeil
|
||||||
|
* Garbage-collect cookie_encode().
|
||||||
|
*
|
||||||
|
* Revision 1.8 2007/08/18 14:34:27 fabiankeil
|
||||||
|
* Make xtoi() extern so it can be used in pcrs.c.
|
||||||
|
*
|
||||||
|
* Revision 1.7 2006/07/18 14:48:45 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.4 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.3 2002/01/22 23:28:07 jongfoster
|
||||||
|
* Adding convenience function html_encode_and_free_original()
|
||||||
|
* Making all functions accept NULL paramaters - in this case, they
|
||||||
|
* simply return NULL. This allows error-checking to be deferred.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/07/29 18:43:08 jongfoster
|
||||||
|
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||||
|
* ANSI C rules.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -45,7 +76,6 @@ extern char * url_encode(const char *s);
|
||||||
extern char * url_decode(const char *str);
|
extern char * url_decode(const char *str);
|
||||||
extern int xtoi(const char *s);
|
extern int xtoi(const char *s);
|
||||||
extern char * html_encode_and_free_original(char *s);
|
extern char * html_encode_and_free_original(char *s);
|
||||||
extern char * percent_encode_url(const char *s);
|
|
||||||
|
|
||||||
/* Revision control strings from this header and associated .c file */
|
/* Revision control strings from this header and associated .c file */
|
||||||
extern const char encode_rcs[];
|
extern const char encode_rcs[];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const char errlog_rcs[] = "$Id: errlog.c,v 1.112 2011/09/04 11:10:56 fabiankeil Exp $";
|
const char errlog_rcs[] = "$Id: errlog.c,v 1.92 2009/03/20 03:39:31 ler762 Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/errlog.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/errlog.c,v $
|
||||||
|
@ -6,14 +6,14 @@ const char errlog_rcs[] = "$Id: errlog.c,v 1.112 2011/09/04 11:10:56 fabiankeil
|
||||||
* Purpose : Log errors to a designated destination in an elegant,
|
* Purpose : Log errors to a designated destination in an elegant,
|
||||||
* printf-like fashion.
|
* printf-like fashion.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2010 the
|
* Copyright : Written by and Copyright (C) 2001-2009 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -31,14 +31,418 @@ const char errlog_rcs[] = "$Id: errlog.c,v 1.112 2011/09/04 11:10:56 fabiankeil
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: errlog.c,v $
|
||||||
|
* Revision 1.92 2009/03/20 03:39:31 ler762
|
||||||
|
* I like having the version logged at startup and the Windows GUI stopped logging
|
||||||
|
* it after LOG_LEVEL_INFO was removed from
|
||||||
|
* static int debug = (LOG_LEVEL_FATAL | LOG_LEVEL_ERROR | LOG_LEVEL_INFO);
|
||||||
|
*
|
||||||
|
* Revision 1.91 2009/03/18 21:56:30 fabiankeil
|
||||||
|
* In init_error_log(), suppress the "(Re-)Opening logfile" message if
|
||||||
|
* we're still logging to stderr. This restores the "silent mode", but
|
||||||
|
* with LOG_LEVEL_INFO enabled, the show_version() info is written to
|
||||||
|
* the logfile as intended.
|
||||||
|
*
|
||||||
|
* Revision 1.90 2009/03/18 20:43:19 fabiankeil
|
||||||
|
* Don't enable LOG_LEVEL_INFO by default and don't apply the user's
|
||||||
|
* debug settings until the logfile has been opened (if there is one).
|
||||||
|
* Patch submitted by Roland in #2624120.
|
||||||
|
*
|
||||||
|
* Revision 1.89 2009/03/07 12:56:12 fabiankeil
|
||||||
|
* Add log_error() support for unsigned long long (%lld).
|
||||||
|
*
|
||||||
|
* Revision 1.88 2009/03/07 11:34:36 fabiankeil
|
||||||
|
* Omit timestamp and thread id in the mingw32 message box.
|
||||||
|
*
|
||||||
|
* Revision 1.87 2009/03/01 18:28:24 fabiankeil
|
||||||
|
* Help clang understand that we aren't dereferencing
|
||||||
|
* NULL pointers here.
|
||||||
|
*
|
||||||
|
* Revision 1.86 2009/02/09 21:21:15 fabiankeil
|
||||||
|
* Now that init_log_module() is called earlier, call show_version()
|
||||||
|
* later on from main() directly so it doesn't get called for --help
|
||||||
|
* or --version.
|
||||||
|
*
|
||||||
|
* Revision 1.85 2009/02/06 17:51:38 fabiankeil
|
||||||
|
* Be prepared if I break the log module initialization again.
|
||||||
|
*
|
||||||
|
* Revision 1.84 2008/12/14 15:46:22 fabiankeil
|
||||||
|
* Give crunched requests their own log level.
|
||||||
|
*
|
||||||
|
* Revision 1.83 2008/12/04 18:14:32 fabiankeil
|
||||||
|
* Fix some cparser warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.82 2008/11/23 16:06:58 fabiankeil
|
||||||
|
* Update a log message I missed in 1.80.
|
||||||
|
*
|
||||||
|
* Revision 1.81 2008/11/23 15:59:27 fabiankeil
|
||||||
|
* - Update copyright range.
|
||||||
|
* - Remove stray line breaks in a log message
|
||||||
|
* nobody is supposed to see anyway.
|
||||||
|
*
|
||||||
|
* Revision 1.80 2008/11/23 15:49:49 fabiankeil
|
||||||
|
* In log_error(), don't surround the thread id with "Privoxy(" and ")".
|
||||||
|
*
|
||||||
|
* Revision 1.79 2008/10/20 17:09:25 fabiankeil
|
||||||
|
* Update init_error_log() description to match reality.
|
||||||
|
*
|
||||||
|
* Revision 1.78 2008/09/07 16:59:31 fabiankeil
|
||||||
|
* Update a comment to reflect that we
|
||||||
|
* have mutex support on mingw32 now.
|
||||||
|
*
|
||||||
|
* Revision 1.77 2008/09/07 12:43:44 fabiankeil
|
||||||
|
* Move the LogPutString() call in log_error() into the locked
|
||||||
|
* region so the Windows GUI log is consistent with the logfile.
|
||||||
|
*
|
||||||
|
* Revision 1.76 2008/09/07 12:35:05 fabiankeil
|
||||||
|
* Add mutex lock support for _WIN32.
|
||||||
|
*
|
||||||
|
* Revision 1.75 2008/09/04 08:13:58 fabiankeil
|
||||||
|
* Prepare for critical sections on Windows by adding a
|
||||||
|
* layer of indirection before the pthread mutex functions.
|
||||||
|
*
|
||||||
|
* Revision 1.74 2008/08/06 18:33:36 fabiankeil
|
||||||
|
* If the "close fd first" workaround doesn't work,
|
||||||
|
* the fatal error message will be lost, so we better
|
||||||
|
* explain the consequences while we still can.
|
||||||
|
*
|
||||||
|
* Revision 1.73 2008/08/04 19:06:55 fabiankeil
|
||||||
|
* Add a lame workaround for the "can't open an already open
|
||||||
|
* logfile on OS/2" problem reported by Maynard in #2028842
|
||||||
|
* and describe what a real solution would look like.
|
||||||
|
*
|
||||||
|
* Revision 1.72 2008/07/27 12:04:28 fabiankeil
|
||||||
|
* Fix a comment typo.
|
||||||
|
*
|
||||||
|
* Revision 1.71 2008/06/28 17:17:15 fabiankeil
|
||||||
|
* Remove another stray semicolon.
|
||||||
|
*
|
||||||
|
* Revision 1.70 2008/06/28 17:10:29 fabiankeil
|
||||||
|
* Remove stray semicolon in get_log_timestamp().
|
||||||
|
* Reported by Jochen Voss in #2005221.
|
||||||
|
*
|
||||||
|
* Revision 1.69 2008/05/30 15:55:25 fabiankeil
|
||||||
|
* Declare variable "debug" static and complain about its name.
|
||||||
|
*
|
||||||
|
* Revision 1.68 2008/04/27 16:50:46 fabiankeil
|
||||||
|
* Remove an incorrect assertion. The value of debug may change if
|
||||||
|
* the configuration is reloaded in another thread. While we could
|
||||||
|
* cache the initial value, the assertion doesn't seem worth it.
|
||||||
|
*
|
||||||
|
* Revision 1.67 2008/03/27 18:27:23 fabiankeil
|
||||||
|
* Remove kill-popups action.
|
||||||
|
*
|
||||||
|
* Revision 1.66 2008/01/31 15:38:14 fabiankeil
|
||||||
|
* - Make the logfp assertion more strict. As of 1.63, the "||" could
|
||||||
|
* have been an "&&", which means we can use two separate assertions
|
||||||
|
* and skip on of them on Windows.
|
||||||
|
* - Break a long commit message line in two.
|
||||||
|
*
|
||||||
|
* Revision 1.65 2008/01/31 14:44:33 fabiankeil
|
||||||
|
* Use (a != b) instead of !(a == b) so the sanity check looks less insane.
|
||||||
|
*
|
||||||
|
* Revision 1.64 2008/01/21 18:56:46 david__schmidt
|
||||||
|
* Swap #def from negative to positive, re-joined it so it didn't
|
||||||
|
* span an assertion (compilation failure on OS/2)
|
||||||
|
*
|
||||||
|
* Revision 1.63 2007/12/15 19:49:32 fabiankeil
|
||||||
|
* Stop overloading logfile to control the mingw32 log window as well.
|
||||||
|
* It's no longer necessary now that we disable all debug lines by default
|
||||||
|
* and at least one user perceived it as a regression (added in 1.55).
|
||||||
|
*
|
||||||
|
* Revision 1.62 2007/11/30 15:33:46 fabiankeil
|
||||||
|
* Unbreak LOG_LEVEL_FATAL. It wasn't fatal with logging disabled
|
||||||
|
* and on mingw32 fatal log messages didn't end up in the log file.
|
||||||
|
*
|
||||||
|
* Revision 1.61 2007/11/04 19:03:01 fabiankeil
|
||||||
|
* Fix another deadlock Hal spotted and that mysteriously didn't affect FreeBSD.
|
||||||
|
*
|
||||||
|
* Revision 1.60 2007/11/03 19:03:31 fabiankeil
|
||||||
|
* - Prevent the Windows GUI from showing the version two times in a row.
|
||||||
|
* - Stop using the imperative in the "(Re-)Open logfile" message.
|
||||||
|
* - Ditch the "Switching to daemon mode" message as the detection
|
||||||
|
* whether or not we're already in daemon mode doesn't actually work.
|
||||||
|
*
|
||||||
|
* Revision 1.59 2007/11/01 12:50:56 fabiankeil
|
||||||
|
* Here's looking at you, deadlock.
|
||||||
|
*
|
||||||
|
* Revision 1.58 2007/10/28 19:04:21 fabiankeil
|
||||||
|
* Don't mention daemon mode in "Logging disabled" message. Some
|
||||||
|
* platforms call it differently and it's not really relevant anyway.
|
||||||
|
*
|
||||||
|
* Revision 1.57 2007/10/27 13:02:26 fabiankeil
|
||||||
|
* Relocate daemon-mode-related log messages to make sure
|
||||||
|
* they aren't shown again in case of configuration reloads.
|
||||||
|
*
|
||||||
|
* Revision 1.56 2007/10/14 14:26:56 fabiankeil
|
||||||
|
* Remove the old log_error() version.
|
||||||
|
*
|
||||||
|
* Revision 1.55 2007/10/14 14:12:41 fabiankeil
|
||||||
|
* When in daemon mode, close stderr after the configuration file has been
|
||||||
|
* parsed the first time. If logfile isn't set, stop logging. Fixes BR#897436.
|
||||||
|
*
|
||||||
|
* Revision 1.54 2007/09/22 16:15:34 fabiankeil
|
||||||
|
* - Let it compile with pcc.
|
||||||
|
* - Move our includes below system includes to prevent macro conflicts.
|
||||||
|
*
|
||||||
|
* Revision 1.53 2007/08/05 13:53:14 fabiankeil
|
||||||
|
* #1763173 from Stefan Huehner: declare some more functions
|
||||||
|
* static and use void instead of empty parameter lists.
|
||||||
|
*
|
||||||
|
* Revision 1.52 2007/07/14 07:28:47 fabiankeil
|
||||||
|
* Add translation function for JB_ERR_FOO codes.
|
||||||
|
*
|
||||||
|
* Revision 1.51 2007/05/11 11:51:34 fabiankeil
|
||||||
|
* Fix a type mismatch warning.
|
||||||
|
*
|
||||||
|
* Revision 1.50 2007/04/11 10:55:44 fabiankeil
|
||||||
|
* Enforce some assertions that could be triggered
|
||||||
|
* on mingw32 and other systems where we use threads
|
||||||
|
* but no locks.
|
||||||
|
*
|
||||||
|
* Revision 1.49 2007/04/08 16:44:15 fabiankeil
|
||||||
|
* We need <sys/time.h> for gettimeofday(), not <time.h>.
|
||||||
|
*
|
||||||
|
* Revision 1.48 2007/03/31 13:33:28 fabiankeil
|
||||||
|
* Add alternative log_error() with timestamps
|
||||||
|
* that contain milliseconds and without using
|
||||||
|
* strcpy(), strcat() or sprintf().
|
||||||
|
*
|
||||||
|
* Revision 1.47 2006/11/28 15:25:15 fabiankeil
|
||||||
|
* Only unlink the pidfile if it's actually used.
|
||||||
|
*
|
||||||
|
* Revision 1.46 2006/11/13 19:05:51 fabiankeil
|
||||||
|
* Make pthread mutex locking more generic. Instead of
|
||||||
|
* checking for OSX and OpenBSD, check for FEATURE_PTHREAD
|
||||||
|
* and use mutex locking unless there is an _r function
|
||||||
|
* available. Better safe than sorry.
|
||||||
|
*
|
||||||
|
* Fixes "./configure --disable-pthread" and should result
|
||||||
|
* in less threading-related problems on pthread-using platforms,
|
||||||
|
* but it still doesn't fix BR#1122404.
|
||||||
|
*
|
||||||
|
* Revision 1.45 2006/08/21 11:15:54 david__schmidt
|
||||||
|
* MS Visual C++ build updates
|
||||||
|
*
|
||||||
|
* Revision 1.44 2006/08/18 16:03:16 david__schmidt
|
||||||
|
* Tweak for OS/2 build happiness.
|
||||||
|
*
|
||||||
|
* Revision 1.43 2006/08/03 02:46:41 david__schmidt
|
||||||
|
* Incorporate Fabian Keil's patch work:
|
||||||
|
* http://www.fabiankeil.de/sourcecode/privoxy/
|
||||||
|
*
|
||||||
|
* Revision 1.42 2006/07/18 14:48:46 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.40.2.4 2005/04/03 20:10:50 david__schmidt
|
||||||
|
* Thanks to Jindrich Makovicka for a race condition fix for the log
|
||||||
|
* file. The race condition remains for non-pthread implementations.
|
||||||
|
* Reference patch #1175720.
|
||||||
|
*
|
||||||
|
* Revision 1.40.2.3 2003/03/07 03:41:04 david__schmidt
|
||||||
|
* Wrapping all *_r functions (the non-_r versions of them) with mutex
|
||||||
|
* semaphores for OSX. Hopefully this will take care of all of those pesky
|
||||||
|
* crash reports.
|
||||||
|
*
|
||||||
|
* Revision 1.40.2.2 2002/09/28 00:30:57 david__schmidt
|
||||||
|
* Update error logging to give sane values for thread IDs on Mach kernels.
|
||||||
|
* It's still a hack, but at least it looks farily normal. We print the
|
||||||
|
* absolute value of the first 4 bytes of the pthread_t modded with 1000.
|
||||||
|
*
|
||||||
|
* Revision 1.40.2.1 2002/09/25 12:47:42 oes
|
||||||
|
* Make log_error safe against NULL string arguments
|
||||||
|
*
|
||||||
|
* Revision 1.40 2002/05/22 01:27:27 david__schmidt
|
||||||
|
*
|
||||||
|
* Add os2_socket_strerr mirroring w32_socket_strerr.
|
||||||
|
*
|
||||||
|
* Revision 1.39 2002/04/03 17:15:27 gliptak
|
||||||
|
* zero padding thread ids in log
|
||||||
|
*
|
||||||
|
* Revision 1.38 2002/03/31 17:18:59 jongfoster
|
||||||
|
* Win32 only: Enabling STRICT to fix a VC++ compile warning.
|
||||||
|
*
|
||||||
|
* Revision 1.37 2002/03/27 14:32:43 david__schmidt
|
||||||
|
* More compiler warning message maintenance
|
||||||
|
*
|
||||||
|
* Revision 1.36 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.35 2002/03/24 15:23:33 jongfoster
|
||||||
|
* Name changes
|
||||||
|
*
|
||||||
|
* Revision 1.34 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.33 2002/03/13 00:27:04 jongfoster
|
||||||
|
* Killing warnings
|
||||||
|
*
|
||||||
|
* Revision 1.32 2002/03/07 03:46:17 oes
|
||||||
|
* Fixed compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.31 2002/03/06 23:02:57 jongfoster
|
||||||
|
* Removing tabs
|
||||||
|
*
|
||||||
|
* Revision 1.30 2002/03/05 22:43:45 david__schmidt
|
||||||
|
* - Better error reporting on OS/2
|
||||||
|
* - Fix double-slash comment (oops)
|
||||||
|
*
|
||||||
|
* Revision 1.29 2002/03/04 23:45:13 jongfoster
|
||||||
|
* Printing thread ID if using Win32 native threads
|
||||||
|
*
|
||||||
|
* Revision 1.28 2002/03/04 17:59:59 oes
|
||||||
|
* Deleted deletePidFile(), cosmetics
|
||||||
|
*
|
||||||
|
* Revision 1.27 2002/03/04 02:08:01 david__schmidt
|
||||||
|
* Enable web editing of actions file on OS/2 (it had been broken all this time!)
|
||||||
|
*
|
||||||
|
* Revision 1.26 2002/01/09 19:05:45 steudten
|
||||||
|
* Fix big memory leak.
|
||||||
|
*
|
||||||
|
* Revision 1.25 2002/01/09 14:32:08 oes
|
||||||
|
* Added support for gmtime_r and localtime_r.
|
||||||
|
*
|
||||||
|
* Revision 1.24 2001/12/30 14:07:32 steudten
|
||||||
|
* - Add signal handling (unix)
|
||||||
|
* - Add SIGHUP handler (unix)
|
||||||
|
* - Add creation of pidfile (unix)
|
||||||
|
* - Add action 'top' in rc file (RH)
|
||||||
|
* - Add entry 'SIGNALS' to manpage
|
||||||
|
* - Add exit message to logfile (unix)
|
||||||
|
*
|
||||||
|
* Revision 1.23 2001/11/07 00:02:13 steudten
|
||||||
|
* Add line number in error output for lineparsing for
|
||||||
|
* actionsfile and configfile.
|
||||||
|
* Special handling for CLF added.
|
||||||
|
*
|
||||||
|
* Revision 1.22 2001/11/05 23:43:05 steudten
|
||||||
|
* Add time+date to log files.
|
||||||
|
*
|
||||||
|
* Revision 1.21 2001/10/25 03:40:47 david__schmidt
|
||||||
|
* Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
|
||||||
|
* threads to call select() simultaneously. So, it's time to do a real, live,
|
||||||
|
* native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
|
||||||
|
* (native). Both versions will work, but using __OS2__ offers multi-threading.
|
||||||
|
*
|
||||||
|
* Revision 1.20 2001/09/16 23:04:34 jongfoster
|
||||||
|
* Fixing a warning
|
||||||
|
*
|
||||||
|
* Revision 1.19 2001/09/13 20:08:06 jongfoster
|
||||||
|
* Adding support for LOG_LEVEL_CGI
|
||||||
|
*
|
||||||
|
* Revision 1.18 2001/09/10 11:27:24 oes
|
||||||
|
* Declaration of w32_socket_strerr now conditional
|
||||||
|
*
|
||||||
|
* Revision 1.17 2001/09/10 10:17:13 oes
|
||||||
|
* Removed unused variable; Fixed sprintf format
|
||||||
|
*
|
||||||
|
* Revision 1.16 2001/07/30 22:08:36 jongfoster
|
||||||
|
* Tidying up #defines:
|
||||||
|
* - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
* - Permanently turned off WIN_GUI_EDIT
|
||||||
|
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
*
|
||||||
|
* Revision 1.15 2001/07/29 17:41:10 jongfoster
|
||||||
|
* Now prints thread ID for each message (pthreads only)
|
||||||
|
*
|
||||||
|
* Revision 1.14 2001/07/19 19:03:48 haroon
|
||||||
|
* - Added case for LOG_LEVEL_POPUPS
|
||||||
|
*
|
||||||
|
* Revision 1.13 2001/07/13 13:58:58 oes
|
||||||
|
* - Added case for LOG_LEVEL_DEANIMATE
|
||||||
|
* - Removed all #ifdef PCRS
|
||||||
|
*
|
||||||
|
* Revision 1.12 2001/06/09 10:55:28 jongfoster
|
||||||
|
* Changing BUFSIZ ==> BUFFER_SIZE
|
||||||
|
*
|
||||||
|
* Revision 1.11 2001/06/01 18:14:49 jongfoster
|
||||||
|
* Changing the calls to strerr() to check HAVE_STRERR (which is defined
|
||||||
|
* in config.h if appropriate) rather than the NO_STRERR macro.
|
||||||
|
*
|
||||||
|
* Revision 1.10 2001/05/29 11:52:21 oes
|
||||||
|
* Conditional compilation of w32_socket_error
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/05/28 16:15:17 jongfoster
|
||||||
|
* Improved reporting of errors under Win32.
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/05/26 17:25:14 jongfoster
|
||||||
|
* Added support for CLF (Common Log Format) and fixed LOG_LEVEL_LOG
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/05/26 15:21:28 jongfoster
|
||||||
|
* Activity animation in Win32 GUI now works even if debug==0
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/05/25 21:55:08 jongfoster
|
||||||
|
* Now cleans up properly on FATAL (removes taskbar icon etc)
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/05/22 18:46:04 oes
|
||||||
|
*
|
||||||
|
* - Enabled filtering banners by size rather than URL
|
||||||
|
* by adding patterns that replace all standard banner
|
||||||
|
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||||
|
*
|
||||||
|
* - Enabled filtering WebBugs by providing a pattern
|
||||||
|
* which kills all 1x1 images
|
||||||
|
*
|
||||||
|
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||||
|
* which is selected by the (nonstandard and therefore
|
||||||
|
* capital) letter 'U' in the option string.
|
||||||
|
* It causes the quantifiers to be ungreedy by default.
|
||||||
|
* Appending a ? turns back to greedy (!).
|
||||||
|
*
|
||||||
|
* - Added a new interceptor ijb-send-banner, which
|
||||||
|
* sends back the "Junkbuster" gif. Without imagelist or
|
||||||
|
* MSIE detection support, or if tinygif = 1, or the
|
||||||
|
* URL isn't recognized as an imageurl, a lame HTML
|
||||||
|
* explanation is sent instead.
|
||||||
|
*
|
||||||
|
* - Added new feature, which permits blocking remote
|
||||||
|
* script redirects and firing back a local redirect
|
||||||
|
* to the browser.
|
||||||
|
* The feature is conditionally compiled, i.e. it
|
||||||
|
* can be disabled with --disable-fast-redirects,
|
||||||
|
* plus it must be activated by a "fast-redirects"
|
||||||
|
* line in the config file, has its own log level
|
||||||
|
* and of course wants to be displayed by show-proxy-args
|
||||||
|
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||||
|
* all the fumbling with configure.in and acconfig.h
|
||||||
|
* were *way* more work than the feature itself :-(
|
||||||
|
*
|
||||||
|
* - Because a generic redirect template was needed for
|
||||||
|
* this, tinygif = 3 now uses the same.
|
||||||
|
*
|
||||||
|
* - Moved GIFs, and other static HTTP response templates
|
||||||
|
* to project.h
|
||||||
|
*
|
||||||
|
* - Some minor fixes
|
||||||
|
*
|
||||||
|
* - Removed some >400 CRs again (Jon, you really worked
|
||||||
|
* a lot! ;-)
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/05/21 19:32:54 jongfoster
|
||||||
|
* Added another #ifdef _WIN_CONSOLE
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/05/20 01:11:40 jongfoster
|
||||||
|
* Added support for LOG_LEVEL_FATAL
|
||||||
|
* Renamed LOG_LEVEL_FRC to LOG_LEVEL_FORCE,
|
||||||
|
* and LOG_LEVEL_REF to LOG_LEVEL_RE_FILTER
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/17 22:42:01 oes
|
||||||
|
* - Cleaned CRLF's from the sources and related files
|
||||||
|
* - Repaired logging for REF and FRC
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "miscutil.h"
|
#include "miscutil.h"
|
||||||
|
@ -121,9 +525,9 @@ static inline void unlock_loginit(void)
|
||||||
#else /* ! MUTEX_LOCKS_AVAILABLE */
|
#else /* ! MUTEX_LOCKS_AVAILABLE */
|
||||||
/*
|
/*
|
||||||
* FIXME we need a cross-platform locking mechanism.
|
* FIXME we need a cross-platform locking mechanism.
|
||||||
* The locking/unlocking functions below should be
|
* The locking/unlocking functions below should be
|
||||||
* fleshed out for non-pthread implementations.
|
* fleshed out for non-pthread implementations.
|
||||||
*/
|
*/
|
||||||
static inline void lock_logfile() {}
|
static inline void lock_logfile() {}
|
||||||
static inline void unlock_logfile() {}
|
static inline void unlock_logfile() {}
|
||||||
static inline void lock_loginit() {}
|
static inline void lock_loginit() {}
|
||||||
|
@ -134,7 +538,7 @@ static inline void unlock_loginit() {}
|
||||||
*
|
*
|
||||||
* Function : fatal_error
|
* Function : fatal_error
|
||||||
*
|
*
|
||||||
* Description : Displays a fatal error to standard error (or, on
|
* Description : Displays a fatal error to standard error (or, on
|
||||||
* a WIN32 GUI, to a dialog box), and exits Privoxy
|
* a WIN32 GUI, to a dialog box), and exits Privoxy
|
||||||
* with status code 1.
|
* with status code 1.
|
||||||
*
|
*
|
||||||
|
@ -154,8 +558,8 @@ static void fatal_error(const char *error_message)
|
||||||
/* Shouldn't happen but ... */
|
/* Shouldn't happen but ... */
|
||||||
box_message = error_message;
|
box_message = error_message;
|
||||||
}
|
}
|
||||||
MessageBox(g_hwndLogFrame, box_message, "Privoxy Error",
|
MessageBox(g_hwndLogFrame, box_message, "Privoxy Error",
|
||||||
MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND | MB_TOPMOST);
|
MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND | MB_TOPMOST);
|
||||||
|
|
||||||
/* Cleanup - remove taskbar icon etc. */
|
/* Cleanup - remove taskbar icon etc. */
|
||||||
TermLogWindow();
|
TermLogWindow();
|
||||||
|
@ -232,7 +636,7 @@ void init_log_module(void)
|
||||||
* XXX: we should only use the LOG_LEVEL_MINIMUM
|
* XXX: we should only use the LOG_LEVEL_MINIMUM
|
||||||
* until the first time the configuration file has
|
* until the first time the configuration file has
|
||||||
* been parsed.
|
* been parsed.
|
||||||
*
|
*
|
||||||
* Parameters : 1: debug_level = The debug level to set.
|
* Parameters : 1: debug_level = The debug level to set.
|
||||||
*
|
*
|
||||||
* Returns : Nothing.
|
* Returns : Nothing.
|
||||||
|
@ -249,7 +653,7 @@ void set_debug_level(int debug_level)
|
||||||
* Function : disable_logging
|
* Function : disable_logging
|
||||||
*
|
*
|
||||||
* Description : Disables logging.
|
* Description : Disables logging.
|
||||||
*
|
*
|
||||||
* Parameters : None.
|
* Parameters : None.
|
||||||
*
|
*
|
||||||
* Returns : Nothing.
|
* Returns : Nothing.
|
||||||
|
@ -317,7 +721,7 @@ void init_error_log(const char *prog_name, const char *logfname)
|
||||||
* Currently we reopen it every time the config file
|
* Currently we reopen it every time the config file
|
||||||
* has been reloaded, but actually we only have to
|
* has been reloaded, but actually we only have to
|
||||||
* reopen it if the file name changed or if the
|
* reopen it if the file name changed or if the
|
||||||
* configuration reload was caused by a SIGHUP.
|
* configuration reloas was caused by a SIGHUP.
|
||||||
*/
|
*/
|
||||||
log_error(LOG_LEVEL_INFO, "Failed to reopen logfile: \'%s\'. "
|
log_error(LOG_LEVEL_INFO, "Failed to reopen logfile: \'%s\'. "
|
||||||
"Retrying after closing the old file descriptor first. If that "
|
"Retrying after closing the old file descriptor first. If that "
|
||||||
|
@ -343,21 +747,6 @@ void init_error_log(const char *prog_name, const char *logfname)
|
||||||
{
|
{
|
||||||
fclose(logfp);
|
fclose(logfp);
|
||||||
}
|
}
|
||||||
#ifdef unix
|
|
||||||
if (daemon_mode && (logfp == stderr))
|
|
||||||
{
|
|
||||||
if (dup2(1, 2) == -1)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* We only use fatal_error() to clear the pid
|
|
||||||
* file and to exit. Given that stderr has just
|
|
||||||
* been closed, the user will not see the error
|
|
||||||
* message.
|
|
||||||
*/
|
|
||||||
fatal_error("Failed to reserve fd 2.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
logfp = fp;
|
logfp = fp;
|
||||||
unlock_logfile();
|
unlock_logfile();
|
||||||
|
|
||||||
|
@ -375,7 +764,7 @@ void init_error_log(const char *prog_name, const char *logfname)
|
||||||
* Description : Returns a number that is different for each thread.
|
* Description : Returns a number that is different for each thread.
|
||||||
*
|
*
|
||||||
* XXX: Should be moved elsewhere (miscutil.c?)
|
* XXX: Should be moved elsewhere (miscutil.c?)
|
||||||
*
|
*
|
||||||
* Parameters : None
|
* Parameters : None
|
||||||
*
|
*
|
||||||
* Returns : thread_id
|
* Returns : thread_id
|
||||||
|
@ -430,7 +819,7 @@ static long get_thread_id(void)
|
||||||
static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
|
static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
|
||||||
{
|
{
|
||||||
size_t length;
|
size_t length;
|
||||||
time_t now;
|
time_t now;
|
||||||
struct tm tm_now;
|
struct tm tm_now;
|
||||||
struct timeval tv_now; /* XXX: stupid name */
|
struct timeval tv_now; /* XXX: stupid name */
|
||||||
long msecs;
|
long msecs;
|
||||||
|
@ -438,22 +827,23 @@ static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
|
||||||
|
|
||||||
gettimeofday(&tv_now, NULL);
|
gettimeofday(&tv_now, NULL);
|
||||||
msecs = tv_now.tv_usec / 1000;
|
msecs = tv_now.tv_usec / 1000;
|
||||||
now = tv_now.tv_sec;
|
|
||||||
|
time(&now);
|
||||||
|
|
||||||
#ifdef HAVE_LOCALTIME_R
|
#ifdef HAVE_LOCALTIME_R
|
||||||
tm_now = *localtime_r(&now, &tm_now);
|
tm_now = *localtime_r(&now, &tm_now);
|
||||||
#elif defined(MUTEX_LOCKS_AVAILABLE)
|
#elif FEATURE_PTHREAD
|
||||||
privoxy_mutex_lock(&localtime_mutex);
|
privoxy_mutex_lock(&localtime_mutex);
|
||||||
tm_now = *localtime(&now);
|
tm_now = *localtime(&now);
|
||||||
privoxy_mutex_unlock(&localtime_mutex);
|
privoxy_mutex_unlock(&localtime_mutex);
|
||||||
#else
|
#else
|
||||||
tm_now = *localtime(&now);
|
tm_now = *localtime(&now);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
length = strftime(buffer, buffer_size, "%Y-%m-%d %H:%M:%S", &tm_now);
|
length = strftime(buffer, buffer_size, "%b %d %H:%M:%S", &tm_now);
|
||||||
if (length > (size_t)0)
|
if (length > (size_t)0)
|
||||||
{
|
{
|
||||||
msecs_length = snprintf(buffer+length, buffer_size - length, ".%.3ld", msecs);
|
msecs_length = snprintf(buffer+length, buffer_size - length, ".%.3ld", msecs);
|
||||||
}
|
}
|
||||||
if (msecs_length > 0)
|
if (msecs_length > 0)
|
||||||
{
|
{
|
||||||
|
@ -488,7 +878,7 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
|
||||||
* the %z field in strftime()
|
* the %z field in strftime()
|
||||||
*/
|
*/
|
||||||
time_t now;
|
time_t now;
|
||||||
struct tm *tm_now;
|
struct tm *tm_now;
|
||||||
struct tm gmt;
|
struct tm gmt;
|
||||||
#ifdef HAVE_LOCALTIME_R
|
#ifdef HAVE_LOCALTIME_R
|
||||||
struct tm dummy;
|
struct tm dummy;
|
||||||
|
@ -497,10 +887,10 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
|
||||||
size_t length;
|
size_t length;
|
||||||
int tz_length = 0;
|
int tz_length = 0;
|
||||||
|
|
||||||
time (&now);
|
time (&now);
|
||||||
#ifdef HAVE_GMTIME_R
|
#ifdef HAVE_GMTIME_R
|
||||||
gmt = *gmtime_r(&now, &gmt);
|
gmt = *gmtime_r(&now, &gmt);
|
||||||
#elif defined(MUTEX_LOCKS_AVAILABLE)
|
#elif FEATURE_PTHREAD
|
||||||
privoxy_mutex_lock(&gmtime_mutex);
|
privoxy_mutex_lock(&gmtime_mutex);
|
||||||
gmt = *gmtime(&now);
|
gmt = *gmtime(&now);
|
||||||
privoxy_mutex_unlock(&gmtime_mutex);
|
privoxy_mutex_unlock(&gmtime_mutex);
|
||||||
|
@ -509,16 +899,16 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_LOCALTIME_R
|
#ifdef HAVE_LOCALTIME_R
|
||||||
tm_now = localtime_r(&now, &dummy);
|
tm_now = localtime_r(&now, &dummy);
|
||||||
#elif defined(MUTEX_LOCKS_AVAILABLE)
|
#elif FEATURE_PTHREAD
|
||||||
privoxy_mutex_lock(&localtime_mutex);
|
privoxy_mutex_lock(&localtime_mutex);
|
||||||
tm_now = localtime(&now);
|
tm_now = localtime(&now);
|
||||||
privoxy_mutex_unlock(&localtime_mutex);
|
privoxy_mutex_unlock(&localtime_mutex);
|
||||||
#else
|
#else
|
||||||
tm_now = localtime(&now);
|
tm_now = localtime(&now);
|
||||||
#endif
|
#endif
|
||||||
days = tm_now->tm_yday - gmt.tm_yday;
|
days = tm_now->tm_yday - gmt.tm_yday;
|
||||||
hrs = ((days < -1 ? 24 : 1 < days ? -24 : days * 24) + tm_now->tm_hour - gmt.tm_hour);
|
hrs = ((days < -1 ? 24 : 1 < days ? -24 : days * 24) + tm_now->tm_hour - gmt.tm_hour);
|
||||||
mins = hrs * 60 + tm_now->tm_min - gmt.tm_min;
|
mins = hrs * 60 + tm_now->tm_min - gmt.tm_min;
|
||||||
|
|
||||||
length = strftime(buffer, buffer_size, "%d/%b/%Y:%H:%M:%S ", tm_now);
|
length = strftime(buffer, buffer_size, "%d/%b/%Y:%H:%M:%S ", tm_now);
|
||||||
|
|
||||||
|
@ -546,7 +936,7 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
|
||||||
*
|
*
|
||||||
* Description : Translates a numerical loglevel into a string.
|
* Description : Translates a numerical loglevel into a string.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : loglevel = LOG_LEVEL_FOO
|
* 1 : loglevel = LOG_LEVEL_FOO
|
||||||
*
|
*
|
||||||
* Returns : Log level string.
|
* Returns : Log level string.
|
||||||
|
@ -572,12 +962,9 @@ static inline const char *get_log_level_string(int loglevel)
|
||||||
case LOG_LEVEL_CONNECT:
|
case LOG_LEVEL_CONNECT:
|
||||||
log_level_string = "Connect";
|
log_level_string = "Connect";
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL_WRITING:
|
case LOG_LEVEL_LOG:
|
||||||
log_level_string = "Writing";
|
log_level_string = "Writing";
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL_RECEIVED:
|
|
||||||
log_level_string = "Received";
|
|
||||||
break;
|
|
||||||
case LOG_LEVEL_HEADER:
|
case LOG_LEVEL_HEADER:
|
||||||
log_level_string = "Header";
|
log_level_string = "Header";
|
||||||
break;
|
break;
|
||||||
|
@ -592,9 +979,11 @@ static inline const char *get_log_level_string(int loglevel)
|
||||||
log_level_string = "Force";
|
log_level_string = "Force";
|
||||||
break;
|
break;
|
||||||
#endif /* def FEATURE_FORCE_LOAD */
|
#endif /* def FEATURE_FORCE_LOAD */
|
||||||
|
#ifdef FEATURE_FAST_REDIRECTS
|
||||||
case LOG_LEVEL_REDIRECTS:
|
case LOG_LEVEL_REDIRECTS:
|
||||||
log_level_string = "Redirect";
|
log_level_string = "Redirect";
|
||||||
break;
|
break;
|
||||||
|
#endif /* def FEATURE_FAST_REDIRECTS */
|
||||||
case LOG_LEVEL_DEANIMATE:
|
case LOG_LEVEL_DEANIMATE:
|
||||||
log_level_string = "Gif-Deanimate";
|
log_level_string = "Gif-Deanimate";
|
||||||
break;
|
break;
|
||||||
|
@ -682,7 +1071,7 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
/* protect the whole function because of the static buffer (outbuf) */
|
/* protect the whole function because of the static buffer (outbuf) */
|
||||||
lock_logfile();
|
lock_logfile();
|
||||||
|
|
||||||
if (NULL == outbuf_save)
|
if (NULL == outbuf_save)
|
||||||
{
|
{
|
||||||
outbuf_save = (char*)zalloc(log_buffer_size + 1); /* +1 for paranoia */
|
outbuf_save = (char*)zalloc(log_buffer_size + 1); /* +1 for paranoia */
|
||||||
if (NULL == outbuf_save)
|
if (NULL == outbuf_save)
|
||||||
|
@ -767,7 +1156,7 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
unsigned long long lluval = va_arg(ap, unsigned long long);
|
unsigned long long lluval = va_arg(ap, unsigned long long);
|
||||||
snprintf(tempbuf, sizeof(tempbuf), "%llu", lluval);
|
snprintf(tempbuf, sizeof(tempbuf), "%llu", lluval);
|
||||||
src++;
|
ch = *src++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -792,36 +1181,45 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
break;
|
break;
|
||||||
case 'N':
|
case 'N':
|
||||||
/*
|
/*
|
||||||
* Non-standard: Print a counted unterminated string,
|
* Non-standard: Print a counted unterminated string.
|
||||||
* replacing unprintable bytes with their hex value.
|
|
||||||
* Takes 2 parameters: int length, const char * string.
|
* Takes 2 parameters: int length, const char * string.
|
||||||
*/
|
*/
|
||||||
ival = va_arg(ap, int);
|
ival = va_arg(ap, int);
|
||||||
assert(ival >= 0);
|
|
||||||
sval = va_arg(ap, char *);
|
sval = va_arg(ap, char *);
|
||||||
assert(sval != NULL);
|
if (sval == NULL)
|
||||||
|
|
||||||
while ((ival-- > 0) && (length < log_buffer_size - 6))
|
|
||||||
{
|
{
|
||||||
if (isprint((int)*sval) && (*sval != '\\'))
|
format_string = "[null]";
|
||||||
|
}
|
||||||
|
else if (ival <= 0)
|
||||||
|
{
|
||||||
|
if (0 == ival)
|
||||||
{
|
{
|
||||||
outbuf[length++] = *sval;
|
/* That's ok (but stupid) */
|
||||||
outbuf[length] = '\0';
|
tempbuf[0] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int ret = snprintf(outbuf + length,
|
/*
|
||||||
log_buffer_size - length - 2, "\\x%.2x", (unsigned char)*sval);
|
* That's not ok (and even more stupid)
|
||||||
assert(ret == 4);
|
*/
|
||||||
length += 4;
|
assert(ival >= 0);
|
||||||
|
format_string = "[counted string lenght < 0]";
|
||||||
}
|
}
|
||||||
sval++;
|
|
||||||
}
|
}
|
||||||
/*
|
else if ((size_t)ival >= sizeof(tempbuf))
|
||||||
* XXX: In case of printable characters at the end of
|
{
|
||||||
* the %N string, we're not using the whole buffer.
|
/*
|
||||||
*/
|
* String is too long, copy as much as possible.
|
||||||
format_string = (length < log_buffer_size - 6) ? "" : "[too long]";
|
* It will be further truncated later.
|
||||||
|
*/
|
||||||
|
memcpy(tempbuf, sval, sizeof(tempbuf)-1);
|
||||||
|
tempbuf[sizeof(tempbuf)-1] = '\0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memcpy(tempbuf, sval, (size_t) ival);
|
||||||
|
tempbuf[ival] = '\0';
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
/* Non-standard: Print error code from errno */
|
/* Non-standard: Print error code from errno */
|
||||||
|
@ -840,7 +1238,7 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
format_string = strerror(ival);
|
format_string = strerror(ival);
|
||||||
}
|
}
|
||||||
#else /* ifndef _WIN32 */
|
#else /* ifndef _WIN32 */
|
||||||
ival = errno;
|
ival = errno;
|
||||||
#ifdef HAVE_STRERROR
|
#ifdef HAVE_STRERROR
|
||||||
format_string = strerror(ival);
|
format_string = strerror(ival);
|
||||||
#else /* ifndef HAVE_STRERROR */
|
#else /* ifndef HAVE_STRERROR */
|
||||||
|
@ -860,14 +1258,14 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
snprintf(tempbuf, sizeof(tempbuf), "Bad format string: \"%s\"", fmt);
|
snprintf(tempbuf, sizeof(tempbuf), "Bad format string: \"%s\"", fmt);
|
||||||
loglevel = LOG_LEVEL_FATAL;
|
loglevel = LOG_LEVEL_FATAL;
|
||||||
break;
|
break;
|
||||||
}
|
} /* switch( p ) */
|
||||||
|
|
||||||
assert(length < log_buffer_size);
|
assert(length < log_buffer_size);
|
||||||
length += strlcpy(outbuf + length, format_string, log_buffer_size - length);
|
length += strlcpy(outbuf + length, format_string, log_buffer_size - length);
|
||||||
|
|
||||||
if (length >= log_buffer_size-2)
|
if (length >= log_buffer_size-2)
|
||||||
{
|
{
|
||||||
static const char warning[] = "... [too long, truncated]";
|
static char warning[] = "... [too long, truncated]";
|
||||||
|
|
||||||
length = log_buffer_size - sizeof(warning) - 1;
|
length = log_buffer_size - sizeof(warning) - 1;
|
||||||
length += strlcpy(outbuf + length, warning, log_buffer_size - length);
|
length += strlcpy(outbuf + length, warning, log_buffer_size - length);
|
||||||
|
@ -875,7 +1273,7 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} /* for( p ... ) */
|
||||||
|
|
||||||
/* done with var. args */
|
/* done with var. args */
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
@ -945,14 +1343,14 @@ void log_error(int loglevel, const char *fmt, ...)
|
||||||
* visible to all files that include errlog.h.
|
* visible to all files that include errlog.h.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : jb_error = a valid jb_err code
|
* 1 : error = a valid jb_err code
|
||||||
*
|
*
|
||||||
* Returns : A string with the jb_err translation
|
* Returns : A string with the jb_err translation
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
const char *jb_err_to_string(int jb_error)
|
const char *jb_err_to_string(int error)
|
||||||
{
|
{
|
||||||
switch (jb_error)
|
switch (error)
|
||||||
{
|
{
|
||||||
case JB_ERR_OK:
|
case JB_ERR_OK:
|
||||||
return "Success, no error";
|
return "Success, no error";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef ERRLOG_H_INCLUDED
|
#ifndef ERRLOG_H_INCLUDED
|
||||||
#define ERRLOG_H_INCLUDED
|
#define ERRLOG_H_INCLUDED
|
||||||
#define ERRLOG_H_VERSION "$Id: errlog.h,v 1.27 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define ERRLOG_H_VERSION "$Id: errlog.h,v 1.22 2009/02/09 21:21:15 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/errlog.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/errlog.h,v $
|
||||||
|
@ -12,10 +12,10 @@
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -33,8 +33,134 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: errlog.h,v $
|
||||||
|
* Revision 1.22 2009/02/09 21:21:15 fabiankeil
|
||||||
|
* Now that init_log_module() is called earlier, call show_version()
|
||||||
|
* later on from main() directly so it doesn't get called for --help
|
||||||
|
* or --version.
|
||||||
|
*
|
||||||
|
* Revision 1.21 2008/12/14 15:46:22 fabiankeil
|
||||||
|
* Give crunched requests their own log level.
|
||||||
|
*
|
||||||
|
* Revision 1.20 2008/03/27 18:27:23 fabiankeil
|
||||||
|
* Remove kill-popups action.
|
||||||
|
*
|
||||||
|
* Revision 1.19 2007/10/14 14:12:41 fabiankeil
|
||||||
|
* When in daemon mode, close stderr after the configuration file has been
|
||||||
|
* parsed the first time. If logfile isn't set, stop logging. Fixes BR#897436.
|
||||||
|
*
|
||||||
|
* Revision 1.18 2007/07/14 07:28:47 fabiankeil
|
||||||
|
* Add translation function for JB_ERR_FOO codes.
|
||||||
|
*
|
||||||
|
* Revision 1.17 2007/03/31 13:33:28 fabiankeil
|
||||||
|
* Add alternative log_error() with timestamps
|
||||||
|
* that contain milliseconds and without using
|
||||||
|
* strcpy(), strcat() or sprintf().
|
||||||
|
*
|
||||||
|
* Revision 1.16 2006/11/28 15:29:50 fabiankeil
|
||||||
|
* Define LOG_LEVEL_REDIRECTS independently of
|
||||||
|
* FEATURE_FAST_REDIRECTS. It is used by redirect{}
|
||||||
|
* as well.
|
||||||
|
*
|
||||||
|
* Revision 1.15 2006/07/18 14:48:46 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.13.2.1 2002/08/05 17:57:06 oes
|
||||||
|
* Cosmetic change
|
||||||
|
*
|
||||||
|
* Revision 1.13 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/03/06 23:02:57 jongfoster
|
||||||
|
* Removing tabs
|
||||||
|
*
|
||||||
|
* Revision 1.10 2001/09/13 20:08:06 jongfoster
|
||||||
|
* Adding support for LOG_LEVEL_CGI
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/07/30 22:08:36 jongfoster
|
||||||
|
* Tidying up #defines:
|
||||||
|
* - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
* - Permanently turned off WIN_GUI_EDIT
|
||||||
|
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/07/29 18:43:08 jongfoster
|
||||||
|
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||||
|
* ANSI C rules.
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/07/19 19:02:53 haroon
|
||||||
|
* Added define for LOG_LEVEL_POPUPS
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/07/13 13:59:22 oes
|
||||||
|
* - Added LOG_LEVEL_DEANIMATE
|
||||||
|
* - Changed LOG_LEVEL_CLF
|
||||||
|
* - Removed all #ifdef PCRS
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/05/26 17:25:14 jongfoster
|
||||||
|
* Added support for CLF (Common Log Format) and fixed LOG_LEVEL_LOG
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/05/25 21:56:06 jongfoster
|
||||||
|
* Added FIXME comment to (broken) LOG_LEVEL_LOG
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/05/22 18:46:04 oes
|
||||||
|
*
|
||||||
|
* - Enabled filtering banners by size rather than URL
|
||||||
|
* by adding patterns that replace all standard banner
|
||||||
|
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||||
|
*
|
||||||
|
* - Enabled filtering WebBugs by providing a pattern
|
||||||
|
* which kills all 1x1 images
|
||||||
|
*
|
||||||
|
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||||
|
* which is selected by the (nonstandard and therefore
|
||||||
|
* capital) letter 'U' in the option string.
|
||||||
|
* It causes the quantifiers to be ungreedy by default.
|
||||||
|
* Appending a ? turns back to greedy (!).
|
||||||
|
*
|
||||||
|
* - Added a new interceptor ijb-send-banner, which
|
||||||
|
* sends back the "Junkbuster" gif. Without imagelist or
|
||||||
|
* MSIE detection support, or if tinygif = 1, or the
|
||||||
|
* URL isn't recognized as an imageurl, a lame HTML
|
||||||
|
* explanation is sent instead.
|
||||||
|
*
|
||||||
|
* - Added new feature, which permits blocking remote
|
||||||
|
* script redirects and firing back a local redirect
|
||||||
|
* to the browser.
|
||||||
|
* The feature is conditionally compiled, i.e. it
|
||||||
|
* can be disabled with --disable-fast-redirects,
|
||||||
|
* plus it must be activated by a "fast-redirects"
|
||||||
|
* line in the config file, has its own log level
|
||||||
|
* and of course wants to be displayed by show-proxy-args
|
||||||
|
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||||
|
* all the fumbling with configure.in and acconfig.h
|
||||||
|
* were *way* more work than the feature itself :-(
|
||||||
|
*
|
||||||
|
* - Because a generic redirect template was needed for
|
||||||
|
* this, tinygif = 3 now uses the same.
|
||||||
|
*
|
||||||
|
* - Moved GIFs, and other static HTTP response templates
|
||||||
|
* to project.h
|
||||||
|
*
|
||||||
|
* - Some minor fixes
|
||||||
|
*
|
||||||
|
* - Removed some >400 CRs again (Jon, you really worked
|
||||||
|
* a lot! ;-)
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/20 01:11:40 jongfoster
|
||||||
|
* Added support for LOG_LEVEL_FATAL
|
||||||
|
* Renamed LOG_LEVEL_FRC to LOG_LEVEL_FORCE,
|
||||||
|
* and LOG_LEVEL_REF to LOG_LEVEL_RE_FILTER
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -47,7 +173,7 @@ extern "C" {
|
||||||
#define LOG_LEVEL_CONNECT 0x0002
|
#define LOG_LEVEL_CONNECT 0x0002
|
||||||
#define LOG_LEVEL_IO 0x0004
|
#define LOG_LEVEL_IO 0x0004
|
||||||
#define LOG_LEVEL_HEADER 0x0008
|
#define LOG_LEVEL_HEADER 0x0008
|
||||||
#define LOG_LEVEL_WRITING 0x0010
|
#define LOG_LEVEL_LOG 0x0010
|
||||||
#ifdef FEATURE_FORCE_LOAD
|
#ifdef FEATURE_FORCE_LOAD
|
||||||
#define LOG_LEVEL_FORCE 0x0020
|
#define LOG_LEVEL_FORCE 0x0020
|
||||||
#endif /* def FEATURE_FORCE_LOAD */
|
#endif /* def FEATURE_FORCE_LOAD */
|
||||||
|
@ -57,7 +183,6 @@ extern "C" {
|
||||||
#define LOG_LEVEL_CLF 0x0200 /* Common Log File format */
|
#define LOG_LEVEL_CLF 0x0200 /* Common Log File format */
|
||||||
#define LOG_LEVEL_CRUNCH 0x0400
|
#define LOG_LEVEL_CRUNCH 0x0400
|
||||||
#define LOG_LEVEL_CGI 0x0800 /* CGI / templates */
|
#define LOG_LEVEL_CGI 0x0800 /* CGI / templates */
|
||||||
#define LOG_LEVEL_RECEIVED 0x8000
|
|
||||||
|
|
||||||
/* Following are always on: */
|
/* Following are always on: */
|
||||||
#define LOG_LEVEL_INFO 0x1000
|
#define LOG_LEVEL_INFO 0x1000
|
||||||
|
@ -70,7 +195,7 @@ extern void disable_logging(void);
|
||||||
extern void init_log_module(void);
|
extern void init_log_module(void);
|
||||||
extern void show_version(const char *prog_name);
|
extern void show_version(const char *prog_name);
|
||||||
extern void log_error(int loglevel, const char *fmt, ...);
|
extern void log_error(int loglevel, const char *fmt, ...);
|
||||||
extern const char *jb_err_to_string(int jb_error);
|
extern const char *jb_err_to_string(int error);
|
||||||
|
|
||||||
/* Revision control strings from this header and associated .c file */
|
/* Revision control strings from this header and associated .c file */
|
||||||
extern const char errlog_rcs[];
|
extern const char errlog_rcs[];
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
#ifndef FILTERS_H_INCLUDED
|
#ifndef FILTERS_H_INCLUDED
|
||||||
#define FILTERS_H_INCLUDED
|
#define FILTERS_H_INCLUDED
|
||||||
#define FILTERS_H_VERSION "$Id: filters.h,v 1.43 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define FILTERS_H_VERSION "$Id: filters.h,v 1.36 2008/05/21 15:35:08 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/filters.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/filters.h,v $
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
* `ij_untrusted_url', `intercept_url', `re_process_buffer',
|
* `ij_untrusted_url', `intercept_url', `re_process_buffer',
|
||||||
* `show_proxy_args', and `trust_url'
|
* `show_proxy_args', and `trust_url'
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2010 the
|
* Copyright : Written by and Copyright (C) 2001, 2004 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -37,8 +37,244 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: filters.h,v $
|
||||||
|
* Revision 1.36 2008/05/21 15:35:08 fabiankeil
|
||||||
|
* - Mark csp as immutable for block_acl().
|
||||||
|
* - Remove an obsolete complaint about filter_popups().
|
||||||
|
*
|
||||||
|
* Revision 1.35 2008/05/03 16:40:45 fabiankeil
|
||||||
|
* Change content_filters_enabled()'s parameter from
|
||||||
|
* csp->action to action so it can be also used in the
|
||||||
|
* CGI code. Don't bother checking if there are filters
|
||||||
|
* loaded, as that's somewhat besides the point.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2008/03/02 12:25:25 fabiankeil
|
||||||
|
* Also use shiny new connect_port_is_forbidden() in jcc.c.
|
||||||
|
*
|
||||||
|
* Revision 1.33 2008/02/23 16:57:12 fabiankeil
|
||||||
|
* Rename url_actions() to get_url_actions() and let it
|
||||||
|
* use the standard parameter ordering.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2008/02/23 16:33:43 fabiankeil
|
||||||
|
* Let forward_url() use the standard parameter ordering
|
||||||
|
* and mark its second parameter immutable.
|
||||||
|
*
|
||||||
|
* Revision 1.31 2007/10/19 16:53:28 fabiankeil
|
||||||
|
* Add helper function to check if any content filters are enabled.
|
||||||
|
*
|
||||||
|
* Revision 1.30 2007/09/29 10:21:16 fabiankeil
|
||||||
|
* - Move get_filter_function() from jcc.c to filters.c
|
||||||
|
* so the filter functions can be static.
|
||||||
|
* - Don't bother filtering body-less responses.
|
||||||
|
*
|
||||||
|
* Revision 1.29 2007/09/28 16:38:55 fabiankeil
|
||||||
|
* - Execute content filters through execute_content_filter().
|
||||||
|
* - Add prepare_for_filtering() so filter functions don't have to
|
||||||
|
* care about de-chunking and decompression. As a side effect this enables
|
||||||
|
* decompression for gif_deanimate_response() and jpeg_inspect_response().
|
||||||
|
* - Change remove_chunked_transfer_coding()'s return type to jb_err.
|
||||||
|
* Some clowns feel like chunking empty responses in which case
|
||||||
|
* (size == 0) is valid but previously would be interpreted as error.
|
||||||
|
*
|
||||||
|
* Revision 1.28 2007/09/02 15:31:20 fabiankeil
|
||||||
|
* Move match_portlist() from filter.c to urlmatch.c.
|
||||||
|
* It's used for url matching, not for filtering.
|
||||||
|
*
|
||||||
|
* Revision 1.27 2007/04/30 15:02:18 fabiankeil
|
||||||
|
* Introduce dynamic pcrs jobs that can resolve variables.
|
||||||
|
*
|
||||||
|
* Revision 1.26 2007/03/13 11:28:43 fabiankeil
|
||||||
|
* - Fix port handling in acl_addr() and use a temporary acl spec
|
||||||
|
* copy so error messages don't contain a truncated version.
|
||||||
|
* - Log size of iob before and after decompression.
|
||||||
|
*
|
||||||
|
* Revision 1.25 2007/01/12 15:36:44 fabiankeil
|
||||||
|
* Mark *csp as immutable for is_untrusted_url()
|
||||||
|
* and is_imageurl(). Closes FR 1237736.
|
||||||
|
*
|
||||||
|
* Revision 1.24 2006/12/29 18:30:46 fabiankeil
|
||||||
|
* Fixed gcc43 conversion warnings,
|
||||||
|
* changed sprintf calls to snprintf.
|
||||||
|
*
|
||||||
|
* Revision 1.23 2006/11/28 15:19:43 fabiankeil
|
||||||
|
* Implemented +redirect{s@foo@bar@} to generate
|
||||||
|
* a redirect based on a rewritten version of the
|
||||||
|
* original URL.
|
||||||
|
*
|
||||||
|
* Revision 1.22 2006/07/18 14:48:46 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.20.2.2 2004/10/03 12:53:32 david__schmidt
|
||||||
|
* Add the ability to check jpeg images for invalid
|
||||||
|
* lengths of comment blocks. Defensive strategy
|
||||||
|
* against the exploit:
|
||||||
|
* Microsoft Security Bulletin MS04-028
|
||||||
|
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||||
|
* Allow Code Execution (833987)
|
||||||
|
* Enabled with +inspect-jpegs in actions files.
|
||||||
|
*
|
||||||
|
* Revision 1.20.2.1 2002/09/25 14:51:51 oes
|
||||||
|
* Added basic support for OPTIONS and TRACE HTTP methods:
|
||||||
|
* New function direct_response which handles OPTIONS and
|
||||||
|
* TRACE requests whose Max-Forwards header field is zero.
|
||||||
|
*
|
||||||
|
* Revision 1.20 2002/04/02 14:56:16 oes
|
||||||
|
* Bugfix: is_untrusted_url() and trust_url() now depend on FEATURE_TRUST, not FEATURE_COOKIE_JAR
|
||||||
|
*
|
||||||
|
* Revision 1.19 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.18 2002/03/25 22:12:45 oes
|
||||||
|
* Added fix for undefined INADDR_NONE on Solaris by Bart Schelstraete
|
||||||
|
*
|
||||||
|
* Revision 1.17 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.16 2002/01/17 21:01:02 jongfoster
|
||||||
|
* Moving all our URL and URL pattern parsing code to urlmatch.c.
|
||||||
|
*
|
||||||
|
* Revision 1.15 2001/10/10 16:44:16 oes
|
||||||
|
* Added match_portlist function
|
||||||
|
*
|
||||||
|
* Revision 1.14 2001/10/07 15:41:40 oes
|
||||||
|
* Added prototype for remove_chunked_transfer_coding
|
||||||
|
*
|
||||||
|
* Revision 1.13 2001/07/30 22:08:36 jongfoster
|
||||||
|
* Tidying up #defines:
|
||||||
|
* - All feature #defines are now of the form FEATURE_xxx
|
||||||
|
* - Permanently turned off WIN_GUI_EDIT
|
||||||
|
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||||
|
*
|
||||||
|
* Revision 1.12 2001/07/29 19:01:11 jongfoster
|
||||||
|
* Changed _FILENAME_H to FILENAME_H_INCLUDED.
|
||||||
|
* Added forward declarations for needed structures.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2001/07/13 14:00:18 oes
|
||||||
|
* - Introduced gif_deanimate_response
|
||||||
|
* - Renamed re_process_buffer to pcrs_filter_response
|
||||||
|
* - Removed all #ifdef PCRS
|
||||||
|
*
|
||||||
|
* Revision 1.10 2001/06/29 13:29:01 oes
|
||||||
|
* Cleaned up and updated to reflect the changesin
|
||||||
|
* filters.c
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/06/07 23:10:53 jongfoster
|
||||||
|
* Replacing struct gateway with struct forward_spec
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/06/03 19:12:00 oes
|
||||||
|
* extracted-CGI relevant stuff
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/05/31 21:21:30 jongfoster
|
||||||
|
* Permissionsfile / actions file changes:
|
||||||
|
* - Changed "permission" to "action" throughout
|
||||||
|
* - changes to file format to allow string parameters
|
||||||
|
* - Moved helper functions to actions.c
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/05/29 09:50:24 jongfoster
|
||||||
|
* Unified blocklist/imagelist/permissionslist.
|
||||||
|
* File format is still under discussion, but the internal changes
|
||||||
|
* are (mostly) done.
|
||||||
|
*
|
||||||
|
* Also modified interceptor behaviour:
|
||||||
|
* - We now intercept all URLs beginning with one of the following
|
||||||
|
* prefixes (and *only* these prefixes):
|
||||||
|
* * http://i.j.b/
|
||||||
|
* * http://ijbswa.sf.net/config/
|
||||||
|
* * http://ijbswa.sourceforge.net/config/
|
||||||
|
* - New interceptors "home page" - go to http://i.j.b/ to see it.
|
||||||
|
* - Internal changes so that intercepted and fast redirect pages
|
||||||
|
* are not replaced with an image.
|
||||||
|
* - Interceptors now have the option to send a binary page direct
|
||||||
|
* to the client. (i.e. ijb-send-banner uses this)
|
||||||
|
* - Implemented show-url-info interceptor. (Which is why I needed
|
||||||
|
* the above interceptors changes - a typical URL is
|
||||||
|
* "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
|
||||||
|
* The previous mechanism would not have intercepted that, and
|
||||||
|
* if it had been intercepted then it then it would have replaced
|
||||||
|
* it with an image.)
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/05/27 22:17:04 oes
|
||||||
|
*
|
||||||
|
* - re_process_buffer no longer writes the modified buffer
|
||||||
|
* to the client, which was very ugly. It now returns the
|
||||||
|
* buffer, which it is then written by chat.
|
||||||
|
*
|
||||||
|
* - content_length now adjusts the Content-Length: header
|
||||||
|
* for modified documents rather than crunch()ing it.
|
||||||
|
* (Length info in csp->content_length, which is 0 for
|
||||||
|
* unmodified documents)
|
||||||
|
*
|
||||||
|
* - For this to work, sed() is called twice when filtering.
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/05/26 15:26:15 jongfoster
|
||||||
|
* ACL feature now provides more security by immediately dropping
|
||||||
|
* connections from untrusted hosts.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/05/22 18:46:04 oes
|
||||||
|
*
|
||||||
|
* - Enabled filtering banners by size rather than URL
|
||||||
|
* by adding patterns that replace all standard banner
|
||||||
|
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||||
|
*
|
||||||
|
* - Enabled filtering WebBugs by providing a pattern
|
||||||
|
* which kills all 1x1 images
|
||||||
|
*
|
||||||
|
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||||
|
* which is selected by the (nonstandard and therefore
|
||||||
|
* capital) letter 'U' in the option string.
|
||||||
|
* It causes the quantifiers to be ungreedy by default.
|
||||||
|
* Appending a ? turns back to greedy (!).
|
||||||
|
*
|
||||||
|
* - Added a new interceptor ijb-send-banner, which
|
||||||
|
* sends back the "Junkbuster" gif. Without imagelist or
|
||||||
|
* MSIE detection support, or if tinygif = 1, or the
|
||||||
|
* URL isn't recognized as an imageurl, a lame HTML
|
||||||
|
* explanation is sent instead.
|
||||||
|
*
|
||||||
|
* - Added new feature, which permits blocking remote
|
||||||
|
* script redirects and firing back a local redirect
|
||||||
|
* to the browser.
|
||||||
|
* The feature is conditionally compiled, i.e. it
|
||||||
|
* can be disabled with --disable-fast-redirects,
|
||||||
|
* plus it must be activated by a "fast-redirects"
|
||||||
|
* line in the config file, has its own log level
|
||||||
|
* and of course wants to be displayed by show-proxy-args
|
||||||
|
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||||
|
* all the fumbling with configure.in and acconfig.h
|
||||||
|
* were *way* more work than the feature itself :-(
|
||||||
|
*
|
||||||
|
* - Because a generic redirect template was needed for
|
||||||
|
* this, tinygif = 3 now uses the same.
|
||||||
|
*
|
||||||
|
* - Moved GIFs, and other static HTTP response templates
|
||||||
|
* to project.h
|
||||||
|
*
|
||||||
|
* - Some minor fixes
|
||||||
|
*
|
||||||
|
* - Removed some >400 CRs again (Jon, you really worked
|
||||||
|
* a lot! ;-)
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/05/20 01:21:20 jongfoster
|
||||||
|
* Version 2.9.4 checkin.
|
||||||
|
* - Merged popupfile and cookiefile, and added control over PCRS
|
||||||
|
* filtering, in new "permissionsfile".
|
||||||
|
* - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
|
||||||
|
* file error you now get a message box (in the Win32 GUI) rather
|
||||||
|
* than the program exiting with no explanation.
|
||||||
|
* - Made killpopup use the PCRS MIME-type checking and HTTP-header
|
||||||
|
* skipping.
|
||||||
|
* - Removed tabs from "config"
|
||||||
|
* - Moved duplicated url parsing code in "loaders.c" to a new funcition.
|
||||||
|
* - Bumped up version number.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:52 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "project.h"
|
#include "project.h"
|
||||||
|
|
||||||
|
@ -89,8 +325,8 @@ extern int connect_port_is_forbidden(const struct client_state *csp);
|
||||||
*/
|
*/
|
||||||
extern void get_url_actions(struct client_state *csp,
|
extern void get_url_actions(struct client_state *csp,
|
||||||
struct http_request *http);
|
struct http_request *http);
|
||||||
extern void apply_url_actions(struct current_action_spec *action,
|
extern void apply_url_actions(struct current_action_spec *action,
|
||||||
struct http_request *http,
|
struct http_request *http,
|
||||||
struct url_actions *b);
|
struct url_actions *b);
|
||||||
/*
|
/*
|
||||||
* Determining parent proxies
|
* Determining parent proxies
|
||||||
|
@ -101,23 +337,33 @@ extern const struct forward_spec *forward_url(struct client_state *csp,
|
||||||
/*
|
/*
|
||||||
* Content modification
|
* Content modification
|
||||||
*/
|
*/
|
||||||
extern char *execute_content_filters(struct client_state *csp);
|
|
||||||
|
typedef char *(*filter_function_ptr)();
|
||||||
|
extern char *execute_content_filter(struct client_state *csp, filter_function_ptr content_filter);
|
||||||
|
|
||||||
|
extern filter_function_ptr get_filter_function(struct client_state *csp);
|
||||||
extern char *execute_single_pcrs_command(char *subject, const char *pcrs_command, int *hits);
|
extern char *execute_single_pcrs_command(char *subject, const char *pcrs_command, int *hits);
|
||||||
extern char *rewrite_url(char *old_url, const char *pcrs_command);
|
extern char *rewrite_url(char *old_url, const char *pcrs_command);
|
||||||
extern char *get_last_url(char *subject, const char *redirect_mode);
|
extern char *get_last_url(char *subject, const char *redirect_mode);
|
||||||
|
|
||||||
extern pcrs_job *compile_dynamic_pcrs_job_list(const struct client_state *csp, const struct re_filterfile_spec *b);
|
extern pcrs_job *compile_dynamic_pcrs_job_list(const struct client_state *csp, const struct re_filterfile_spec *b);
|
||||||
|
|
||||||
extern int content_requires_filtering(struct client_state *csp);
|
|
||||||
extern int content_filters_enabled(const struct current_action_spec *action);
|
extern int content_filters_enabled(const struct current_action_spec *action);
|
||||||
extern int filters_available(const struct client_state *csp);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handling Max-Forwards:
|
* Handling Max-Forwards:
|
||||||
*/
|
*/
|
||||||
extern struct http_response *direct_response(struct client_state *csp);
|
extern struct http_response *direct_response(struct client_state *csp);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* Solaris fix:
|
||||||
|
*/
|
||||||
|
#ifndef INADDR_NONE
|
||||||
|
#define INADDR_NONE -1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
* Revision control strings from this header and associated .c file
|
* Revision control strings from this header and associated .c file
|
||||||
*/
|
*/
|
||||||
extern const char filters_rcs[];
|
extern const char filters_rcs[];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const char gateway_rcs[] = "$Id: gateway.c,v 1.83 2011/12/24 15:28:45 fabiankeil Exp $";
|
const char gateway_rcs[] = "$Id: gateway.c,v 1.48 2009/02/13 17:20:36 fabiankeil Exp $";
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/gateway.c,v $
|
* File : $Source: /cvsroot/ijbswa/current/gateway.c,v $
|
||||||
|
@ -7,7 +7,7 @@ const char gateway_rcs[] = "$Id: gateway.c,v 1.83 2011/12/24 15:28:45 fabiankeil
|
||||||
* using a "forwarder" (i.e. HTTP proxy and/or a SOCKS4
|
* using a "forwarder" (i.e. HTTP proxy and/or a SOCKS4
|
||||||
* or SOCKS5 proxy).
|
* or SOCKS5 proxy).
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
* Copyright : Written by and Copyright (C) 2001-2009 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
|
@ -32,8 +32,217 @@ const char gateway_rcs[] = "$Id: gateway.c,v 1.83 2011/12/24 15:28:45 fabiankeil
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: gateway.c,v $
|
||||||
|
* Revision 1.48 2009/02/13 17:20:36 fabiankeil
|
||||||
|
* Reword keep-alive support warning and only show
|
||||||
|
* it #if !defined(HAVE_POLL) && !defined(_WIN32).
|
||||||
|
*
|
||||||
|
* Revision 1.47 2008/12/24 17:06:19 fabiankeil
|
||||||
|
* Keep a thread around to timeout alive connections
|
||||||
|
* even if no new requests are coming in.
|
||||||
|
*
|
||||||
|
* Revision 1.46 2008/12/13 11:07:23 fabiankeil
|
||||||
|
* Remove duplicated debugging checks
|
||||||
|
* in connection_destination_matches().
|
||||||
|
*
|
||||||
|
* Revision 1.45 2008/12/04 18:17:07 fabiankeil
|
||||||
|
* Fix some cparser warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.44 2008/11/22 11:54:04 fabiankeil
|
||||||
|
* Move log message around to include the socket number.
|
||||||
|
*
|
||||||
|
* Revision 1.43 2008/11/13 09:15:51 fabiankeil
|
||||||
|
* Make keep_alive_timeout static.
|
||||||
|
*
|
||||||
|
* Revision 1.42 2008/11/13 09:08:42 fabiankeil
|
||||||
|
* Add new config option: keep-alive-timeout.
|
||||||
|
*
|
||||||
|
* Revision 1.41 2008/11/08 15:29:58 fabiankeil
|
||||||
|
* Unify two debug messages.
|
||||||
|
*
|
||||||
|
* Revision 1.40 2008/11/08 15:14:05 fabiankeil
|
||||||
|
* Fix duplicated debugging check.
|
||||||
|
*
|
||||||
|
* Revision 1.39 2008/10/25 11:33:01 fabiankeil
|
||||||
|
* Remove already out-commented line left over from debugging.
|
||||||
|
*
|
||||||
|
* Revision 1.38 2008/10/24 17:33:00 fabiankeil
|
||||||
|
* - Tone the "keep-alive support is experimental" warning
|
||||||
|
* down a bit as hackish 0-chunk detection has been
|
||||||
|
* implemented recently.
|
||||||
|
* - Only show the "ndef HAVE_POLL" warning once on start-up.
|
||||||
|
*
|
||||||
|
* Revision 1.37 2008/10/23 17:40:53 fabiankeil
|
||||||
|
* Fix forget_connection() and mark_connection_unused(),
|
||||||
|
* which would both under certain circumstances access
|
||||||
|
* reusable_connection[MAX_REUSABLE_CONNECTIONS]. Oops.
|
||||||
|
*
|
||||||
|
* Revision 1.36 2008/10/18 19:49:15 fabiankeil
|
||||||
|
* - Factor close_unusable_connections() out of
|
||||||
|
* get_reusable_connection() to make sure we really check
|
||||||
|
* all the remembered connections, not just the ones before
|
||||||
|
* the next reusable one.
|
||||||
|
* - Plug two file descriptor leaks. Internally marking
|
||||||
|
* connections as closed doesn't cut it.
|
||||||
|
*
|
||||||
|
* Revision 1.35 2008/10/17 17:12:01 fabiankeil
|
||||||
|
* In socket_is_still_usable(), use select()
|
||||||
|
* and FD_ISSET() if poll() isn't available.
|
||||||
|
*
|
||||||
|
* Revision 1.34 2008/10/17 17:07:13 fabiankeil
|
||||||
|
* Add preliminary timeout support.
|
||||||
|
*
|
||||||
|
* Revision 1.33 2008/10/16 16:34:21 fabiankeil
|
||||||
|
* Fix two gcc44 warnings.
|
||||||
|
*
|
||||||
|
* Revision 1.32 2008/10/16 16:27:22 fabiankeil
|
||||||
|
* Fix compiler warning.
|
||||||
|
*
|
||||||
|
* Revision 1.31 2008/10/16 07:31:11 fabiankeil
|
||||||
|
* - Factor socket_is_still_usable() out of get_reusable_connection().
|
||||||
|
* - If poll() isn't available, show a warning and assume the socket
|
||||||
|
* is still usable.
|
||||||
|
*
|
||||||
|
* Revision 1.30 2008/10/13 17:31:03 fabiankeil
|
||||||
|
* If a remembered connection is no longer usable and
|
||||||
|
* has been marked closed, don't bother checking if the
|
||||||
|
* destination matches.
|
||||||
|
*
|
||||||
|
* Revision 1.29 2008/10/11 16:59:41 fabiankeil
|
||||||
|
* Add missing dots for two log messages.
|
||||||
|
*
|
||||||
|
* Revision 1.28 2008/10/09 18:21:41 fabiankeil
|
||||||
|
* Flush work-in-progress changes to keep outgoing connections
|
||||||
|
* alive where possible. Incomplete and mostly #ifdef'd out.
|
||||||
|
*
|
||||||
|
* Revision 1.27 2008/09/27 15:05:51 fabiankeil
|
||||||
|
* Return only once in forwarded_connect().
|
||||||
|
*
|
||||||
|
* Revision 1.26 2008/08/18 17:42:06 fabiankeil
|
||||||
|
* Fix typo in macro name.
|
||||||
|
*
|
||||||
|
* Revision 1.25 2008/02/07 18:09:46 fabiankeil
|
||||||
|
* In socks5_connect:
|
||||||
|
* - make the buffers quite a bit smaller.
|
||||||
|
* - properly report "socks5 server unreachable" failures.
|
||||||
|
* - let strncpy() use the whole buffer. Using a length of 0xffu wasn't actually
|
||||||
|
* wrong, but requires too much thinking as it doesn't depend on the buffer size.
|
||||||
|
* - log a message if the socks5 server sends more data than expected.
|
||||||
|
* - add some assertions and comments.
|
||||||
|
*
|
||||||
|
* Revision 1.24 2008/02/04 14:56:29 fabiankeil
|
||||||
|
* - Fix a compiler warning.
|
||||||
|
* - Stop assuming that htonl(INADDR_NONE) equals INADDR_NONE.
|
||||||
|
*
|
||||||
|
* Revision 1.23 2008/02/04 13:11:35 fabiankeil
|
||||||
|
* Remember the cause of the SOCKS5 error for the CGI message.
|
||||||
|
*
|
||||||
|
* Revision 1.22 2008/02/03 13:46:15 fabiankeil
|
||||||
|
* Add SOCKS5 support. Patch #1862863 by Eric M. Hopper with minor changes.
|
||||||
|
*
|
||||||
|
* Revision 1.21 2007/07/28 12:30:03 fabiankeil
|
||||||
|
* Modified patch from Song Weijia (#1762559) to
|
||||||
|
* fix socks requests on big-endian platforms.
|
||||||
|
*
|
||||||
|
* Revision 1.20 2007/05/14 10:23:48 fabiankeil
|
||||||
|
* - Use strlcpy() instead of strcpy().
|
||||||
|
* - Use the same buffer for socks requests and socks responses.
|
||||||
|
* - Fix bogus warning about web_server_addr being used uninitialized.
|
||||||
|
*
|
||||||
|
* Revision 1.19 2007/01/25 14:09:45 fabiankeil
|
||||||
|
* - Save errors in socks4_connect() to csp->error_message.
|
||||||
|
* - Silence some gcc43 warnings, hopefully the right way.
|
||||||
|
*
|
||||||
|
* Revision 1.18 2006/07/18 14:48:46 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.16 2002/05/12 21:36:29 jongfoster
|
||||||
|
* Correcting function comments
|
||||||
|
*
|
||||||
|
* Revision 1.15 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.14 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.13 2002/03/13 00:29:59 jongfoster
|
||||||
|
* Killing warnings
|
||||||
|
*
|
||||||
|
* Revision 1.12 2002/03/09 20:03:52 jongfoster
|
||||||
|
* - Making various functions return int rather than size_t.
|
||||||
|
* (Undoing a recent change). Since size_t is unsigned on
|
||||||
|
* Windows, functions like read_socket that return -1 on
|
||||||
|
* error cannot return a size_t.
|
||||||
|
*
|
||||||
|
* THIS WAS A MAJOR BUG - it caused frequent, unpredictable
|
||||||
|
* crashes, and also frequently caused JB to jump to 100%
|
||||||
|
* CPU and stay there. (Because it thought it had just
|
||||||
|
* read ((unsigned)-1) == 4Gb of data...)
|
||||||
|
*
|
||||||
|
* - The signature of write_socket has changed, it now simply
|
||||||
|
* returns success=0/failure=nonzero.
|
||||||
|
*
|
||||||
|
* - Trying to get rid of a few warnings --with-debug on
|
||||||
|
* Windows, I've introduced a new type "jb_socket". This is
|
||||||
|
* used for the socket file descriptors. On Windows, this
|
||||||
|
* is SOCKET (a typedef for unsigned). Everywhere else, it's
|
||||||
|
* an int. The error value can't be -1 any more, so it's
|
||||||
|
* now JB_INVALID_SOCKET (which is -1 on UNIX, and in
|
||||||
|
* Windows it maps to the #define INVALID_SOCKET.)
|
||||||
|
*
|
||||||
|
* - The signature of bind_port has changed.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2002/03/08 17:46:04 jongfoster
|
||||||
|
* Fixing int/size_t warnings
|
||||||
|
*
|
||||||
|
* Revision 1.10 2002/03/07 03:50:19 oes
|
||||||
|
* - Improved handling of failed DNS lookups
|
||||||
|
* - Fixed compiler warnings
|
||||||
|
*
|
||||||
|
* Revision 1.9 2001/10/25 03:40:48 david__schmidt
|
||||||
|
* Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
|
||||||
|
* threads to call select() simultaneously. So, it's time to do a real, live,
|
||||||
|
* native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
|
||||||
|
* (native). Both versions will work, but using __OS2__ offers multi-threading.
|
||||||
|
*
|
||||||
|
* Revision 1.8 2001/09/13 20:10:12 jongfoster
|
||||||
|
* Fixing missing #include under Windows
|
||||||
|
*
|
||||||
|
* Revision 1.7 2001/09/12 17:58:26 steudten
|
||||||
|
*
|
||||||
|
* add #include <string.h>
|
||||||
|
*
|
||||||
|
* Revision 1.6 2001/09/10 10:41:16 oes
|
||||||
|
* Added #include in.h
|
||||||
|
*
|
||||||
|
* Revision 1.5 2001/07/29 18:47:57 jongfoster
|
||||||
|
* Adding missing #include project.h
|
||||||
|
*
|
||||||
|
* Revision 1.4 2001/07/24 12:47:06 oes
|
||||||
|
* Applied BeOS support update by Eugenia
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/06/09 10:55:28 jongfoster
|
||||||
|
* Changing BUFSIZ ==> BUFFER_SIZE
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/06/07 23:11:38 jongfoster
|
||||||
|
* Removing gateways[] list - no longer used.
|
||||||
|
* Replacing function pointer in struct gateway with a directly
|
||||||
|
* called function forwarded_connect(), which can do the common
|
||||||
|
* task of deciding whether to connect to the web server or HTTP
|
||||||
|
* proxy.
|
||||||
|
* Replacing struct gateway with struct forward_spec
|
||||||
|
* Fixing bug with SOCKS4A and HTTP proxy server in combination.
|
||||||
|
* It was a bug which led to the connection being made to the web
|
||||||
|
* server rather than the HTTP proxy, and also a buffer overrun.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:54 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -68,7 +277,7 @@ const char gateway_rcs[] = "$Id: gateway.c,v 1.83 2011/12/24 15:28:45 fabiankeil
|
||||||
#include "miscutil.h"
|
#include "miscutil.h"
|
||||||
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
||||||
#ifdef HAVE_POLL
|
#ifdef HAVE_POLL
|
||||||
#ifdef __GLIBC__
|
#ifdef __GLIBC__
|
||||||
#include <sys/poll.h>
|
#include <sys/poll.h>
|
||||||
#else
|
#else
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
|
@ -88,24 +297,21 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
|
||||||
int target_port,
|
int target_port,
|
||||||
struct client_state *csp);
|
struct client_state *csp);
|
||||||
|
|
||||||
enum {
|
|
||||||
SOCKS4_REQUEST_GRANTED = 90,
|
|
||||||
SOCKS4_REQUEST_REJECT = 91,
|
|
||||||
SOCKS4_REQUEST_IDENT_FAILED = 92,
|
|
||||||
SOCKS4_REQUEST_IDENT_CONFLICT = 93
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
#define SOCKS_REQUEST_GRANTED 90
|
||||||
SOCKS5_REQUEST_GRANTED = 0,
|
#define SOCKS_REQUEST_REJECT 91
|
||||||
SOCKS5_REQUEST_FAILED = 1,
|
#define SOCKS_REQUEST_IDENT_FAILED 92
|
||||||
SOCKS5_REQUEST_DENIED = 2,
|
#define SOCKS_REQUEST_IDENT_CONFLICT 93
|
||||||
SOCKS5_REQUEST_NETWORK_UNREACHABLE = 3,
|
|
||||||
SOCKS5_REQUEST_HOST_UNREACHABLE = 4,
|
#define SOCKS5_REQUEST_GRANTED 0
|
||||||
SOCKS5_REQUEST_CONNECTION_REFUSED = 5,
|
#define SOCKS5_REQUEST_FAILED 1
|
||||||
SOCKS5_REQUEST_TTL_EXPIRED = 6,
|
#define SOCKS5_REQUEST_DENIED 2
|
||||||
SOCKS5_REQUEST_PROTOCOL_ERROR = 7,
|
#define SOCKS5_REQUEST_NETWORK_UNREACHABLE 3
|
||||||
SOCKS5_REQUEST_BAD_ADDRESS_TYPE = 8
|
#define SOCKS5_REQUEST_HOST_UNREACHABLE 4
|
||||||
};
|
#define SOCKS5_REQUEST_CONNECTION_REFUSED 5
|
||||||
|
#define SOCKS5_REQUEST_TTL_EXPIRED 6
|
||||||
|
#define SOCKS5_REQUEST_PROTOCOL_ERROR 7
|
||||||
|
#define SOCKS5_REQUEST_BAD_ADDRESS_TYPE 8
|
||||||
|
|
||||||
/* structure of a socks client operation */
|
/* structure of a socks client operation */
|
||||||
struct socks_op {
|
struct socks_op {
|
||||||
|
@ -128,13 +334,32 @@ struct socks_reply {
|
||||||
|
|
||||||
static const char socks_userid[] = "anonymous";
|
static const char socks_userid[] = "anonymous";
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_SHARING
|
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
||||||
|
|
||||||
#define MAX_REUSABLE_CONNECTIONS 100
|
#define MAX_REUSABLE_CONNECTIONS 100
|
||||||
static unsigned int keep_alive_timeout = DEFAULT_KEEP_ALIVE_TIMEOUT;
|
static int keep_alive_timeout = DEFAULT_KEEP_ALIVE_TIMEOUT;
|
||||||
|
|
||||||
|
struct reusable_connection
|
||||||
|
{
|
||||||
|
jb_socket sfd;
|
||||||
|
int in_use;
|
||||||
|
char *host;
|
||||||
|
int port;
|
||||||
|
time_t timestamp;
|
||||||
|
|
||||||
|
int forwarder_type;
|
||||||
|
char *gateway_host;
|
||||||
|
int gateway_port;
|
||||||
|
char *forward_host;
|
||||||
|
int forward_port;
|
||||||
|
};
|
||||||
|
|
||||||
static struct reusable_connection reusable_connection[MAX_REUSABLE_CONNECTIONS];
|
static struct reusable_connection reusable_connection[MAX_REUSABLE_CONNECTIONS];
|
||||||
static int mark_connection_unused(const struct reusable_connection *connection);
|
|
||||||
|
static int mark_connection_unused(jb_socket sfd);
|
||||||
|
static void mark_connection_closed(struct reusable_connection *closed_connection);
|
||||||
|
static int socket_is_still_usable(jb_socket sfd);
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
|
@ -172,23 +397,25 @@ extern void initialize_reusable_connections(void)
|
||||||
*
|
*
|
||||||
* Function : remember_connection
|
* Function : remember_connection
|
||||||
*
|
*
|
||||||
* Description : Remembers a server connection for reuse later on.
|
* Description : Remembers a connection for reuse later on.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : connection = The server connection to remember.
|
* 1 : sfd = Open socket to remember.
|
||||||
|
* 2 : http = The destination for the connection.
|
||||||
|
* 3 : fwd = The forwarder settings used.
|
||||||
*
|
*
|
||||||
* Returns : void
|
* Returns : void
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
void remember_connection(const struct reusable_connection *connection)
|
void remember_connection(jb_socket sfd, const struct http_request *http,
|
||||||
|
const struct forward_spec *fwd)
|
||||||
{
|
{
|
||||||
unsigned int slot = 0;
|
unsigned int slot = 0;
|
||||||
int free_slot_found = FALSE;
|
int free_slot_found = FALSE;
|
||||||
|
|
||||||
assert(NULL != connection);
|
assert(sfd != JB_INVALID_SOCKET);
|
||||||
assert(connection->sfd != JB_INVALID_SOCKET);
|
|
||||||
|
|
||||||
if (mark_connection_unused(connection))
|
if (mark_connection_unused(sfd))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -203,7 +430,7 @@ void remember_connection(const struct reusable_connection *connection)
|
||||||
assert(reusable_connection[slot].in_use == 0);
|
assert(reusable_connection[slot].in_use == 0);
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
"Remembering socket %d for %s:%d in slot %d.",
|
"Remembering socket %d for %s:%d in slot %d.",
|
||||||
connection->sfd, connection->host, connection->port, slot);
|
sfd, http->host, http->port, slot);
|
||||||
free_slot_found = TRUE;
|
free_slot_found = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -213,36 +440,34 @@ void remember_connection(const struct reusable_connection *connection)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
"No free slots found to remembering socket for %s:%d. Last slot %d.",
|
"No free slots found to remembering socket for %s:%d. Last slot %d.",
|
||||||
connection->host, connection->port, slot);
|
http->host, http->port, slot);
|
||||||
privoxy_mutex_unlock(&connection_reuse_mutex);
|
privoxy_mutex_unlock(&connection_reuse_mutex);
|
||||||
close_socket(connection->sfd);
|
close_socket(sfd);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(NULL != connection->host);
|
assert(NULL != http->host);
|
||||||
reusable_connection[slot].host = strdup(connection->host);
|
reusable_connection[slot].host = strdup(http->host);
|
||||||
if (NULL == reusable_connection[slot].host)
|
if (NULL == reusable_connection[slot].host)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_FATAL, "Out of memory saving socket.");
|
log_error(LOG_LEVEL_FATAL, "Out of memory saving socket.");
|
||||||
}
|
}
|
||||||
reusable_connection[slot].sfd = connection->sfd;
|
reusable_connection[slot].sfd = sfd;
|
||||||
reusable_connection[slot].port = connection->port;
|
reusable_connection[slot].port = http->port;
|
||||||
reusable_connection[slot].in_use = 0;
|
reusable_connection[slot].in_use = 0;
|
||||||
reusable_connection[slot].timestamp = connection->timestamp;
|
reusable_connection[slot].timestamp = time(NULL);
|
||||||
reusable_connection->request_sent = connection->request_sent;
|
|
||||||
reusable_connection->response_received = connection->response_received;
|
|
||||||
reusable_connection[slot].keep_alive_timeout = connection->keep_alive_timeout;
|
|
||||||
|
|
||||||
|
assert(NULL != fwd);
|
||||||
assert(reusable_connection[slot].gateway_host == NULL);
|
assert(reusable_connection[slot].gateway_host == NULL);
|
||||||
assert(reusable_connection[slot].gateway_port == 0);
|
assert(reusable_connection[slot].gateway_port == 0);
|
||||||
assert(reusable_connection[slot].forwarder_type == SOCKS_NONE);
|
assert(reusable_connection[slot].forwarder_type == SOCKS_NONE);
|
||||||
assert(reusable_connection[slot].forward_host == NULL);
|
assert(reusable_connection[slot].forward_host == NULL);
|
||||||
assert(reusable_connection[slot].forward_port == 0);
|
assert(reusable_connection[slot].forward_port == 0);
|
||||||
|
|
||||||
reusable_connection[slot].forwarder_type = connection->forwarder_type;
|
reusable_connection[slot].forwarder_type = fwd->type;
|
||||||
if (NULL != connection->gateway_host)
|
if (NULL != fwd->gateway_host)
|
||||||
{
|
{
|
||||||
reusable_connection[slot].gateway_host = strdup(connection->gateway_host);
|
reusable_connection[slot].gateway_host = strdup(fwd->gateway_host);
|
||||||
if (NULL == reusable_connection[slot].gateway_host)
|
if (NULL == reusable_connection[slot].gateway_host)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_FATAL, "Out of memory saving gateway_host.");
|
log_error(LOG_LEVEL_FATAL, "Out of memory saving gateway_host.");
|
||||||
|
@ -252,11 +477,11 @@ void remember_connection(const struct reusable_connection *connection)
|
||||||
{
|
{
|
||||||
reusable_connection[slot].gateway_host = NULL;
|
reusable_connection[slot].gateway_host = NULL;
|
||||||
}
|
}
|
||||||
reusable_connection[slot].gateway_port = connection->gateway_port;
|
reusable_connection[slot].gateway_port = fwd->gateway_port;
|
||||||
|
|
||||||
if (NULL != connection->forward_host)
|
if (NULL != fwd->forward_host)
|
||||||
{
|
{
|
||||||
reusable_connection[slot].forward_host = strdup(connection->forward_host);
|
reusable_connection[slot].forward_host = strdup(fwd->forward_host);
|
||||||
if (NULL == reusable_connection[slot].forward_host)
|
if (NULL == reusable_connection[slot].forward_host)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_FATAL, "Out of memory saving forward_host.");
|
log_error(LOG_LEVEL_FATAL, "Out of memory saving forward_host.");
|
||||||
|
@ -266,19 +491,18 @@ void remember_connection(const struct reusable_connection *connection)
|
||||||
{
|
{
|
||||||
reusable_connection[slot].forward_host = NULL;
|
reusable_connection[slot].forward_host = NULL;
|
||||||
}
|
}
|
||||||
reusable_connection[slot].forward_port = connection->forward_port;
|
reusable_connection[slot].forward_port = fwd->forward_port;
|
||||||
|
|
||||||
privoxy_mutex_unlock(&connection_reuse_mutex);
|
privoxy_mutex_unlock(&connection_reuse_mutex);
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_CONNECTION_SHARING */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : mark_connection_closed
|
* Function : mark_connection_closed
|
||||||
*
|
*
|
||||||
* Description : Marks a reused connection closed.
|
* Description : Marks a reused connection closed.
|
||||||
|
* Must be called with connection_reuse_mutex locked.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : closed_connection = The connection to mark as closed.
|
* 1 : closed_connection = The connection to mark as closed.
|
||||||
|
@ -286,26 +510,21 @@ void remember_connection(const struct reusable_connection *connection)
|
||||||
* Returns : void
|
* Returns : void
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
void mark_connection_closed(struct reusable_connection *closed_connection)
|
static void mark_connection_closed(struct reusable_connection *closed_connection)
|
||||||
{
|
{
|
||||||
closed_connection->in_use = FALSE;
|
closed_connection->in_use = FALSE;
|
||||||
closed_connection->sfd = JB_INVALID_SOCKET;
|
closed_connection->sfd = JB_INVALID_SOCKET;
|
||||||
freez(closed_connection->host);
|
freez(closed_connection->host);
|
||||||
closed_connection->port = 0;
|
closed_connection->port = 0;
|
||||||
closed_connection->timestamp = 0;
|
closed_connection->timestamp = 0;
|
||||||
closed_connection->request_sent = 0;
|
|
||||||
closed_connection->response_received = 0;
|
|
||||||
closed_connection->keep_alive_timeout = 0;
|
|
||||||
closed_connection->forwarder_type = SOCKS_NONE;
|
closed_connection->forwarder_type = SOCKS_NONE;
|
||||||
freez(closed_connection->gateway_host);
|
freez(closed_connection->gateway_host);
|
||||||
closed_connection->gateway_port = 0;
|
closed_connection->gateway_port = 0;
|
||||||
freez(closed_connection->forward_host);
|
freez(closed_connection->forward_host);
|
||||||
closed_connection->forward_port = 0;
|
closed_connection->forward_port = 0;
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_SHARING
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : forget_connection
|
* Function : forget_connection
|
||||||
|
@ -338,17 +557,19 @@ void forget_connection(jb_socket sfd)
|
||||||
sfd, reusable_connection[slot].host,
|
sfd, reusable_connection[slot].host,
|
||||||
reusable_connection[slot].port, slot);
|
reusable_connection[slot].port, slot);
|
||||||
mark_connection_closed(&reusable_connection[slot]);
|
mark_connection_closed(&reusable_connection[slot]);
|
||||||
break;
|
privoxy_mutex_unlock(&connection_reuse_mutex);
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
|
"Socket %d already forgotten or never remembered.", sfd);
|
||||||
|
|
||||||
privoxy_mutex_unlock(&connection_reuse_mutex);
|
privoxy_mutex_unlock(&connection_reuse_mutex);
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_CONNECTION_SHARING */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : connection_destination_matches
|
* Function : connection_destination_matches
|
||||||
|
@ -365,9 +586,9 @@ void forget_connection(jb_socket sfd)
|
||||||
* Returns : TRUE for yes, FALSE otherwise.
|
* Returns : TRUE for yes, FALSE otherwise.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
int connection_destination_matches(const struct reusable_connection *connection,
|
static int connection_destination_matches(const struct reusable_connection *connection,
|
||||||
const struct http_request *http,
|
const struct http_request *http,
|
||||||
const struct forward_spec *fwd)
|
const struct forward_spec *fwd)
|
||||||
{
|
{
|
||||||
if ((connection->forwarder_type != fwd->type)
|
if ((connection->forwarder_type != fwd->type)
|
||||||
|| (connection->gateway_port != fwd->gateway_port)
|
|| (connection->gateway_port != fwd->gateway_port)
|
||||||
|
@ -382,9 +603,7 @@ int connection_destination_matches(const struct reusable_connection *connection,
|
||||||
&& strcmpic(connection->gateway_host, fwd->gateway_host))
|
&& strcmpic(connection->gateway_host, fwd->gateway_host))
|
||||||
&& (connection->gateway_host != fwd->gateway_host))
|
&& (connection->gateway_host != fwd->gateway_host))
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT, "Gateway mismatch.");
|
||||||
"Gateway mismatch. Previous gateway: %s. Current gateway: %s",
|
|
||||||
connection->gateway_host, fwd->gateway_host);
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,19 +612,15 @@ int connection_destination_matches(const struct reusable_connection *connection,
|
||||||
&& strcmpic(connection->forward_host, fwd->forward_host))
|
&& strcmpic(connection->forward_host, fwd->forward_host))
|
||||||
&& (connection->forward_host != fwd->forward_host))
|
&& (connection->forward_host != fwd->forward_host))
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT, "Forwarding proxy mismatch.");
|
||||||
"Forwarding proxy mismatch. Previous proxy: %s. Current proxy: %s",
|
|
||||||
connection->forward_host, fwd->forward_host);
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (!strcmpic(connection->host, http->host));
|
return (!strcmpic(connection->host, http->host));
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_SHARING
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : close_unusable_connections
|
* Function : close_unusable_connections
|
||||||
|
@ -431,23 +646,19 @@ int close_unusable_connections(void)
|
||||||
&& (JB_INVALID_SOCKET != reusable_connection[slot].sfd))
|
&& (JB_INVALID_SOCKET != reusable_connection[slot].sfd))
|
||||||
{
|
{
|
||||||
time_t time_open = time(NULL) - reusable_connection[slot].timestamp;
|
time_t time_open = time(NULL) - reusable_connection[slot].timestamp;
|
||||||
time_t latency = (reusable_connection[slot].response_received -
|
|
||||||
reusable_connection[slot].request_sent) / 2;
|
|
||||||
|
|
||||||
if (reusable_connection[slot].keep_alive_timeout < time_open + latency)
|
if (keep_alive_timeout < time_open)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
"The connection to %s:%d in slot %d timed out. "
|
"The connection to %s:%d in slot %d timed out. "
|
||||||
"Closing socket %d. Timeout is: %d. Assumed latency: %d.",
|
"Closing socket %d. Timeout is: %d.",
|
||||||
reusable_connection[slot].host,
|
reusable_connection[slot].host,
|
||||||
reusable_connection[slot].port, slot,
|
reusable_connection[slot].port, slot,
|
||||||
reusable_connection[slot].sfd,
|
reusable_connection[slot].sfd, keep_alive_timeout);
|
||||||
reusable_connection[slot].keep_alive_timeout,
|
|
||||||
latency);
|
|
||||||
close_socket(reusable_connection[slot].sfd);
|
close_socket(reusable_connection[slot].sfd);
|
||||||
mark_connection_closed(&reusable_connection[slot]);
|
mark_connection_closed(&reusable_connection[slot]);
|
||||||
}
|
}
|
||||||
else if (!socket_is_still_alive(reusable_connection[slot].sfd))
|
else if (!socket_is_still_usable(reusable_connection[slot].sfd))
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
"The connection to %s:%d in slot %d is no longer usable. "
|
"The connection to %s:%d in slot %d is no longer usable. "
|
||||||
|
@ -471,6 +682,66 @@ int close_unusable_connections(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
*
|
||||||
|
* Function : socket_is_still_usable
|
||||||
|
*
|
||||||
|
* Description : Decides whether or not an open socket is still usable.
|
||||||
|
*
|
||||||
|
* Parameters :
|
||||||
|
* 1 : sfd = The socket to check.
|
||||||
|
*
|
||||||
|
* Returns : TRUE for yes, otherwise FALSE.
|
||||||
|
*
|
||||||
|
*********************************************************************/
|
||||||
|
static int socket_is_still_usable(jb_socket sfd)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_POLL
|
||||||
|
int poll_result;
|
||||||
|
struct pollfd poll_fd[1];
|
||||||
|
|
||||||
|
memset(poll_fd, 0, sizeof(poll_fd));
|
||||||
|
poll_fd[0].fd = sfd;
|
||||||
|
poll_fd[0].events = POLLIN;
|
||||||
|
|
||||||
|
poll_result = poll(poll_fd, 1, 0);
|
||||||
|
|
||||||
|
if (-1 != poll_result)
|
||||||
|
{
|
||||||
|
return !(poll_fd[0].revents & POLLIN);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_error(LOG_LEVEL_CONNECT, "Polling socket %d failed.", sfd);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
fd_set readable_fds;
|
||||||
|
struct timeval timeout;
|
||||||
|
int ret;
|
||||||
|
int socket_is_alive = 0;
|
||||||
|
|
||||||
|
memset(&timeout, '\0', sizeof(timeout));
|
||||||
|
FD_ZERO(&readable_fds);
|
||||||
|
FD_SET(sfd, &readable_fds);
|
||||||
|
|
||||||
|
ret = select((int)sfd+1, &readable_fds, NULL, NULL, &timeout);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
log_error(LOG_LEVEL_ERROR, "select() failed!: %E");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* XXX: I'm not sure why !FD_ISSET() works,
|
||||||
|
* but apparently it does.
|
||||||
|
*/
|
||||||
|
socket_is_alive = !FD_ISSET(sfd, &readable_fds);
|
||||||
|
|
||||||
|
return socket_is_alive;
|
||||||
|
#endif /* def HAVE_POLL */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* Function : get_reusable_connection
|
* Function : get_reusable_connection
|
||||||
|
@ -506,13 +777,8 @@ static jb_socket get_reusable_connection(const struct http_request *http,
|
||||||
reusable_connection[slot].in_use = TRUE;
|
reusable_connection[slot].in_use = TRUE;
|
||||||
sfd = reusable_connection[slot].sfd;
|
sfd = reusable_connection[slot].sfd;
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
"Found reusable socket %d for %s:%d in slot %d. "
|
"Found reusable socket %d for %s:%d in slot %d.",
|
||||||
"Timestamp made %d seconds ago. Timeout: %d. Latency: %d.",
|
sfd, reusable_connection[slot].host, reusable_connection[slot].port, slot);
|
||||||
sfd, reusable_connection[slot].host, reusable_connection[slot].port,
|
|
||||||
slot, time(NULL) - reusable_connection[slot].timestamp,
|
|
||||||
reusable_connection[slot].keep_alive_timeout,
|
|
||||||
(int)(reusable_connection[slot].response_received -
|
|
||||||
reusable_connection[slot].request_sent));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -532,33 +798,33 @@ static jb_socket get_reusable_connection(const struct http_request *http,
|
||||||
* Description : Gives a remembered connection free for reuse.
|
* Description : Gives a remembered connection free for reuse.
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters :
|
||||||
* 1 : connection = The connection in question.
|
* 1 : sfd = The socket belonging to the connection in question.
|
||||||
*
|
*
|
||||||
* Returns : TRUE => Socket found and marked as unused.
|
* Returns : TRUE => Socket found and marked as unused.
|
||||||
* FALSE => Socket not found.
|
* FALSE => Socket not found.
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
static int mark_connection_unused(const struct reusable_connection *connection)
|
static int mark_connection_unused(jb_socket sfd)
|
||||||
{
|
{
|
||||||
unsigned int slot = 0;
|
unsigned int slot = 0;
|
||||||
int socket_found = FALSE;
|
int socket_found = FALSE;
|
||||||
|
|
||||||
assert(connection->sfd != JB_INVALID_SOCKET);
|
assert(sfd != JB_INVALID_SOCKET);
|
||||||
|
|
||||||
privoxy_mutex_lock(&connection_reuse_mutex);
|
privoxy_mutex_lock(&connection_reuse_mutex);
|
||||||
|
|
||||||
for (slot = 0; slot < SZ(reusable_connection); slot++)
|
for (slot = 0; slot < SZ(reusable_connection); slot++)
|
||||||
{
|
{
|
||||||
if (reusable_connection[slot].sfd == connection->sfd)
|
if (reusable_connection[slot].sfd == sfd)
|
||||||
{
|
{
|
||||||
assert(reusable_connection[slot].in_use);
|
assert(reusable_connection[slot].in_use);
|
||||||
socket_found = TRUE;
|
socket_found = TRUE;
|
||||||
log_error(LOG_LEVEL_CONNECT,
|
log_error(LOG_LEVEL_CONNECT,
|
||||||
"Marking open socket %d for %s:%d in slot %d as unused.",
|
"Marking open socket %d for %s:%d in slot %d as unused.",
|
||||||
connection->sfd, reusable_connection[slot].host,
|
sfd, reusable_connection[slot].host,
|
||||||
reusable_connection[slot].port, slot);
|
reusable_connection[slot].port, slot);
|
||||||
reusable_connection[slot].in_use = 0;
|
reusable_connection[slot].in_use = 0;
|
||||||
reusable_connection[slot].timestamp = connection->timestamp;
|
reusable_connection[slot].timestamp = time(NULL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -583,11 +849,11 @@ static int mark_connection_unused(const struct reusable_connection *connection)
|
||||||
* Returns : void
|
* Returns : void
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
void set_keep_alive_timeout(unsigned int timeout)
|
void set_keep_alive_timeout(int timeout)
|
||||||
{
|
{
|
||||||
keep_alive_timeout = timeout;
|
keep_alive_timeout = timeout;
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_CONNECTION_SHARING */
|
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
|
@ -613,17 +879,13 @@ jb_socket forwarded_connect(const struct forward_spec * fwd,
|
||||||
int dest_port;
|
int dest_port;
|
||||||
jb_socket sfd = JB_INVALID_SOCKET;
|
jb_socket sfd = JB_INVALID_SOCKET;
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_SHARING
|
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
||||||
if ((csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_SHARING)
|
sfd = get_reusable_connection(http, fwd);
|
||||||
&& !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED))
|
if (JB_INVALID_SOCKET != sfd)
|
||||||
{
|
{
|
||||||
sfd = get_reusable_connection(http, fwd);
|
return sfd;
|
||||||
if (JB_INVALID_SOCKET != sfd)
|
|
||||||
{
|
|
||||||
return sfd;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif /* def FEATURE_CONNECTION_SHARING */
|
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
|
||||||
|
|
||||||
/* Figure out if we need to connect to the web server or a HTTP proxy. */
|
/* Figure out if we need to connect to the web server or a HTTP proxy. */
|
||||||
if (fwd->forward_host)
|
if (fwd->forward_host)
|
||||||
|
@ -655,7 +917,7 @@ jb_socket forwarded_connect(const struct forward_spec * fwd,
|
||||||
default:
|
default:
|
||||||
/* Should never get here */
|
/* Should never get here */
|
||||||
log_error(LOG_LEVEL_FATAL,
|
log_error(LOG_LEVEL_FATAL,
|
||||||
"Internal error in forwarded_connect(). Bad proxy type: %d", fwd->type);
|
"SOCKS4 impossible internal error - bad SOCKS type.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JB_INVALID_SOCKET != sfd)
|
if (JB_INVALID_SOCKET != sfd)
|
||||||
|
@ -698,7 +960,7 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
|
||||||
int target_port,
|
int target_port,
|
||||||
struct client_state *csp)
|
struct client_state *csp)
|
||||||
{
|
{
|
||||||
unsigned long web_server_addr;
|
unsigned int web_server_addr;
|
||||||
char buf[BUFFER_SIZE];
|
char buf[BUFFER_SIZE];
|
||||||
struct socks_op *c = (struct socks_op *)buf;
|
struct socks_op *c = (struct socks_op *)buf;
|
||||||
struct socks_reply *s = (struct socks_reply *)buf;
|
struct socks_reply *s = (struct socks_reply *)buf;
|
||||||
|
@ -724,7 +986,7 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
log_error(LOG_LEVEL_CONNECT, "socks4_connect: %s", errstr);
|
log_error(LOG_LEVEL_CONNECT, "socks4_connect: %s", errstr);
|
||||||
csp->error_message = strdup(errstr);
|
csp->error_message = strdup(errstr);
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
return(JB_INVALID_SOCKET);
|
return(JB_INVALID_SOCKET);
|
||||||
}
|
}
|
||||||
|
@ -805,8 +1067,12 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
|
||||||
|
|
||||||
if (sfd == JB_INVALID_SOCKET)
|
if (sfd == JB_INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
/* The error an its reason have already been logged by connect_to() */
|
/*
|
||||||
return(JB_INVALID_SOCKET);
|
* XXX: connect_to should fill in the exact reason.
|
||||||
|
* Most likely resolving the IP of the forwarder failed.
|
||||||
|
*/
|
||||||
|
errstr = "connect_to failed: see logfile for details";
|
||||||
|
err = 1;
|
||||||
}
|
}
|
||||||
else if (write_socket(sfd, (char *)c, csiz))
|
else if (write_socket(sfd, (char *)c, csiz))
|
||||||
{
|
{
|
||||||
|
@ -815,20 +1081,6 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
|
||||||
err = 1;
|
err = 1;
|
||||||
close_socket(sfd);
|
close_socket(sfd);
|
||||||
}
|
}
|
||||||
else if (!data_is_available(sfd, csp->config->socket_timeout))
|
|
||||||
{
|
|
||||||
if (socket_is_still_alive(sfd))
|
|
||||||
{
|
|
||||||
errstr = "SOCKS4 negotiation timed out";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
errstr = "SOCKS4 negotiation got aborted by the server";
|
|
||||||
}
|
|
||||||
log_error(LOG_LEVEL_CONNECT, "socks4_connect: %s", errstr);
|
|
||||||
err = 1;
|
|
||||||
close_socket(sfd);
|
|
||||||
}
|
|
||||||
else if (read_socket(sfd, buf, sizeof(buf)) != sizeof(*s))
|
else if (read_socket(sfd, buf, sizeof(buf)) != sizeof(*s))
|
||||||
{
|
{
|
||||||
errstr = "SOCKS4 negotiation read failed.";
|
errstr = "SOCKS4 negotiation read failed.";
|
||||||
|
@ -839,24 +1091,24 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
|
||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
csp->error_message = strdup(errstr);
|
csp->error_message = strdup(errstr);
|
||||||
return(JB_INVALID_SOCKET);
|
return(JB_INVALID_SOCKET);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (s->cd)
|
switch (s->cd)
|
||||||
{
|
{
|
||||||
case SOCKS4_REQUEST_GRANTED:
|
case SOCKS_REQUEST_GRANTED:
|
||||||
return(sfd);
|
return(sfd);
|
||||||
case SOCKS4_REQUEST_REJECT:
|
case SOCKS_REQUEST_REJECT:
|
||||||
errstr = "SOCKS request rejected or failed.";
|
errstr = "SOCKS request rejected or failed.";
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
break;
|
break;
|
||||||
case SOCKS4_REQUEST_IDENT_FAILED:
|
case SOCKS_REQUEST_IDENT_FAILED:
|
||||||
errstr = "SOCKS request rejected because "
|
errstr = "SOCKS request rejected because "
|
||||||
"SOCKS server cannot connect to identd on the client.";
|
"SOCKS server cannot connect to identd on the client.";
|
||||||
errno = EACCES;
|
errno = EACCES;
|
||||||
break;
|
break;
|
||||||
case SOCKS4_REQUEST_IDENT_CONFLICT:
|
case SOCKS_REQUEST_IDENT_CONFLICT:
|
||||||
errstr = "SOCKS request rejected because "
|
errstr = "SOCKS request rejected because "
|
||||||
"the client program and identd report "
|
"the client program and identd report "
|
||||||
"different user-ids.";
|
"different user-ids.";
|
||||||
|
@ -943,7 +1195,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
char cbuf[300];
|
char cbuf[300];
|
||||||
char sbuf[10];
|
char sbuf[30];
|
||||||
size_t client_pos = 0;
|
size_t client_pos = 0;
|
||||||
int server_size = 0;
|
int server_size = 0;
|
||||||
size_t hostlen = 0;
|
size_t hostlen = 0;
|
||||||
|
@ -999,8 +1251,6 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
|
||||||
{
|
{
|
||||||
errstr = "socks5 server unreachable";
|
errstr = "socks5 server unreachable";
|
||||||
log_error(LOG_LEVEL_CONNECT, "socks5_connect: %s", errstr);
|
log_error(LOG_LEVEL_CONNECT, "socks5_connect: %s", errstr);
|
||||||
/* Free the generic error message provided by connect_to() */
|
|
||||||
freez(csp->error_message);
|
|
||||||
csp->error_message = strdup(errstr);
|
csp->error_message = strdup(errstr);
|
||||||
return(JB_INVALID_SOCKET);
|
return(JB_INVALID_SOCKET);
|
||||||
}
|
}
|
||||||
|
@ -1019,20 +1269,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
|
||||||
return(JB_INVALID_SOCKET);
|
return(JB_INVALID_SOCKET);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data_is_available(sfd, csp->config->socket_timeout))
|
if (read_socket(sfd, sbuf, sizeof(sbuf)) != 2)
|
||||||
{
|
|
||||||
if (socket_is_still_alive(sfd))
|
|
||||||
{
|
|
||||||
errstr = "SOCKS5 negotiation timed out";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
errstr = "SOCKS5 negotiation got aborted by the server";
|
|
||||||
}
|
|
||||||
err = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!err && read_socket(sfd, sbuf, sizeof(sbuf)) != 2)
|
|
||||||
{
|
{
|
||||||
errstr = "SOCKS5 negotiation read failed";
|
errstr = "SOCKS5 negotiation read failed";
|
||||||
err = 1;
|
err = 1;
|
||||||
|
@ -1081,7 +1318,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
|
||||||
|
|
||||||
if (write_socket(sfd, cbuf, client_pos))
|
if (write_socket(sfd, cbuf, client_pos))
|
||||||
{
|
{
|
||||||
errstr = "SOCKS5 negotiation write failed";
|
errstr = "SOCKS5 negotiation read failed";
|
||||||
csp->error_message = strdup(errstr);
|
csp->error_message = strdup(errstr);
|
||||||
log_error(LOG_LEVEL_CONNECT, "%s", errstr);
|
log_error(LOG_LEVEL_CONNECT, "%s", errstr);
|
||||||
close_socket(sfd);
|
close_socket(sfd);
|
||||||
|
@ -1090,33 +1327,44 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
|
||||||
}
|
}
|
||||||
|
|
||||||
server_size = read_socket(sfd, sbuf, sizeof(sbuf));
|
server_size = read_socket(sfd, sbuf, sizeof(sbuf));
|
||||||
if (server_size != sizeof(sbuf))
|
if (server_size < 3)
|
||||||
{
|
{
|
||||||
errstr = "SOCKS5 negotiation read failed";
|
errstr = "SOCKS5 negotiation read failed";
|
||||||
|
err = 1;
|
||||||
}
|
}
|
||||||
else
|
else if (server_size > 20)
|
||||||
{
|
{
|
||||||
if (sbuf[0] != '\x05')
|
/* This is somewhat unexpected but doesn't realy matter. */
|
||||||
{
|
log_error(LOG_LEVEL_CONNECT, "socks5_connect: read %d bytes "
|
||||||
errstr = "SOCKS5 negotiation protocol version error";
|
"from socks server. Would have accepted up to %d.",
|
||||||
}
|
server_size, sizeof(sbuf));
|
||||||
else if (sbuf[2] != '\x00')
|
}
|
||||||
{
|
|
||||||
errstr = "SOCKS5 negotiation protocol error";
|
if (!err && (sbuf[0] != '\x05'))
|
||||||
}
|
{
|
||||||
else if (sbuf[1] != SOCKS5_REQUEST_GRANTED)
|
errstr = "SOCKS5 negotiation protocol version error";
|
||||||
{
|
err = 1;
|
||||||
errstr = translate_socks5_error(sbuf[1]);
|
}
|
||||||
}
|
|
||||||
else
|
if (!err && (sbuf[2] != '\x00'))
|
||||||
|
{
|
||||||
|
errstr = "SOCKS5 negotiation protocol error";
|
||||||
|
err = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!err)
|
||||||
|
{
|
||||||
|
if (sbuf[1] == SOCKS5_REQUEST_GRANTED)
|
||||||
{
|
{
|
||||||
return(sfd);
|
return(sfd);
|
||||||
}
|
}
|
||||||
|
errstr = translate_socks5_error(sbuf[1]);
|
||||||
|
err = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(errstr != NULL);
|
assert(errstr != NULL);
|
||||||
csp->error_message = strdup(errstr);
|
csp->error_message = strdup(errstr);
|
||||||
log_error(LOG_LEVEL_CONNECT, "socks5_connect: %s: %N", errstr, server_size, sbuf);
|
log_error(LOG_LEVEL_CONNECT, "socks5_connect: %s", errstr);
|
||||||
close_socket(sfd);
|
close_socket(sfd);
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef GATEWAY_H_INCLUDED
|
#ifndef GATEWAY_H_INCLUDED
|
||||||
#define GATEWAY_H_INCLUDED
|
#define GATEWAY_H_INCLUDED
|
||||||
#define GATEWAY_H_VERSION "$Id: gateway.h,v 1.21 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define GATEWAY_H_VERSION "$Id: gateway.h,v 1.12 2008/12/24 17:06:19 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/gateway.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/gateway.h,v $
|
||||||
|
@ -9,14 +9,14 @@
|
||||||
* using a "gateway" (i.e. HTTP proxy and/or SOCKS4
|
* using a "gateway" (i.e. HTTP proxy and/or SOCKS4
|
||||||
* proxy). Also contains the list of gateway types.
|
* proxy). Also contains the list of gateway types.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -34,8 +34,74 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: gateway.h,v $
|
||||||
|
* Revision 1.12 2008/12/24 17:06:19 fabiankeil
|
||||||
|
* Keep a thread around to timeout alive connections
|
||||||
|
* even if no new requests are coming in.
|
||||||
|
*
|
||||||
|
* Revision 1.11 2008/11/13 09:08:42 fabiankeil
|
||||||
|
* Add new config option: keep-alive-timeout.
|
||||||
|
*
|
||||||
|
* Revision 1.10 2008/10/09 18:21:41 fabiankeil
|
||||||
|
* Flush work-in-progress changes to keep outgoing connections
|
||||||
|
* alive where possible. Incomplete and mostly #ifdef'd out.
|
||||||
|
*
|
||||||
|
* Revision 1.9 2006/07/18 14:48:46 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/25 22:12:45 oes
|
||||||
|
* Added fix for undefined INADDR_NONE on Solaris by Bart Schelstraete
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.4 2002/03/09 20:03:52 jongfoster
|
||||||
|
* - Making various functions return int rather than size_t.
|
||||||
|
* (Undoing a recent change). Since size_t is unsigned on
|
||||||
|
* Windows, functions like read_socket that return -1 on
|
||||||
|
* error cannot return a size_t.
|
||||||
|
*
|
||||||
|
* THIS WAS A MAJOR BUG - it caused frequent, unpredictable
|
||||||
|
* crashes, and also frequently caused JB to jump to 100%
|
||||||
|
* CPU and stay there. (Because it thought it had just
|
||||||
|
* read ((unsigned)-1) == 4Gb of data...)
|
||||||
|
*
|
||||||
|
* - The signature of write_socket has changed, it now simply
|
||||||
|
* returns success=0/failure=nonzero.
|
||||||
|
*
|
||||||
|
* - Trying to get rid of a few warnings --with-debug on
|
||||||
|
* Windows, I've introduced a new type "jb_socket". This is
|
||||||
|
* used for the socket file descriptors. On Windows, this
|
||||||
|
* is SOCKET (a typedef for unsigned). Everywhere else, it's
|
||||||
|
* an int. The error value can't be -1 any more, so it's
|
||||||
|
* now JB_INVALID_SOCKET (which is -1 on UNIX, and in
|
||||||
|
* Windows it maps to the #define INVALID_SOCKET.)
|
||||||
|
*
|
||||||
|
* - The signature of bind_port has changed.
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/07/29 18:58:15 jongfoster
|
||||||
|
* Removing nested #includes, adding forward declarations for needed
|
||||||
|
* structures, and changing the #define _FILENAME_H to FILENAME_H_INCLUDED.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/06/07 23:12:14 jongfoster
|
||||||
|
* Removing gateways[] list - no longer used.
|
||||||
|
* Replacing function pointer in struct gateway with a directly
|
||||||
|
* called function forwarded_connect(), which can do the common
|
||||||
|
* task of deciding whether to connect to the web server or HTTP
|
||||||
|
* proxy.
|
||||||
|
* Replacing struct gateway with struct forward_spec
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:54 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -45,9 +111,10 @@ struct forward_spec;
|
||||||
struct http_request;
|
struct http_request;
|
||||||
struct client_state;
|
struct client_state;
|
||||||
|
|
||||||
extern jb_socket forwarded_connect(const struct forward_spec * fwd,
|
extern jb_socket forwarded_connect(const struct forward_spec * fwd,
|
||||||
struct http_request *http,
|
struct http_request *http,
|
||||||
struct client_state *csp);
|
struct client_state *csp);
|
||||||
|
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default number of seconds after which an
|
* Default number of seconds after which an
|
||||||
|
@ -55,20 +122,22 @@ extern jb_socket forwarded_connect(const struct forward_spec * fwd,
|
||||||
*/
|
*/
|
||||||
#define DEFAULT_KEEP_ALIVE_TIMEOUT 180
|
#define DEFAULT_KEEP_ALIVE_TIMEOUT 180
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_SHARING
|
extern void set_keep_alive_timeout(int timeout);
|
||||||
extern void set_keep_alive_timeout(unsigned int timeout);
|
|
||||||
extern void initialize_reusable_connections(void);
|
extern void initialize_reusable_connections(void);
|
||||||
extern void forget_connection(jb_socket sfd);
|
extern void forget_connection(jb_socket sfd);
|
||||||
extern void remember_connection(const struct reusable_connection *connection);
|
extern void remember_connection(jb_socket sfd,
|
||||||
|
const struct http_request *http,
|
||||||
|
const struct forward_spec *fwd);
|
||||||
extern int close_unusable_connections(void);
|
extern int close_unusable_connections(void);
|
||||||
#endif /* FEATURE_CONNECTION_SHARING */
|
#endif /* FEATURE_CONNECTION_KEEP_ALIVE */
|
||||||
|
|
||||||
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
|
||||||
extern void mark_connection_closed(struct reusable_connection *closed_connection);
|
/*
|
||||||
extern int connection_destination_matches(const struct reusable_connection *connection,
|
* Solaris fix
|
||||||
const struct http_request *http,
|
*/
|
||||||
const struct forward_spec *fwd);
|
#ifndef INADDR_NONE
|
||||||
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
|
#define INADDR_NONE -1
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Revision control strings from this header and associated .c file
|
* Revision control strings from this header and associated .c file
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 318 B |
Binary file not shown.
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 318 B |
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
#ifndef JBSOCKETS_H_INCLUDED
|
#ifndef JBSOCKETS_H_INCLUDED
|
||||||
#define JBSOCKETS_H_INCLUDED
|
#define JBSOCKETS_H_INCLUDED
|
||||||
#define JBSOCKETS_H_VERSION "$Id: jbsockets.h,v 1.20 2011/09/04 11:10:56 fabiankeil Exp $"
|
#define JBSOCKETS_H_VERSION "$Id: jbsockets.h,v 1.14 2008/12/20 14:53:55 fabiankeil Exp $"
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
*
|
*
|
||||||
* File : $Source: /cvsroot/ijbswa/current/jbsockets.h,v $
|
* File : $Source: /cvsroot/ijbswa/current/jbsockets.h,v $
|
||||||
|
@ -10,14 +10,14 @@
|
||||||
* OS-independent. Contains #ifdefs to make this work
|
* OS-independent. Contains #ifdefs to make this work
|
||||||
* on many platforms.
|
* on many platforms.
|
||||||
*
|
*
|
||||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||||
* Privoxy team. http://www.privoxy.org/
|
* Privoxy team. http://www.privoxy.org/
|
||||||
*
|
*
|
||||||
* Based on the Internet Junkbuster originally written
|
* Based on the Internet Junkbuster originally written
|
||||||
* by and Copyright (C) 1997 Anonymous Coders and
|
* by and Copyright (C) 1997 Anonymous Coders and
|
||||||
* Junkbusters Corporation. http://www.junkbusters.com
|
* Junkbusters Corporation. http://www.junkbusters.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it
|
* This program is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU General
|
* and/or modify it under the terms of the GNU General
|
||||||
* Public License as published by the Free Software
|
* Public License as published by the Free Software
|
||||||
* Foundation; either version 2 of the License, or (at
|
* Foundation; either version 2 of the License, or (at
|
||||||
|
@ -35,8 +35,78 @@
|
||||||
* or write to the Free Software Foundation, Inc., 59
|
* or write to the Free Software Foundation, Inc., 59
|
||||||
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
|
* Revisions :
|
||||||
|
* $Log: jbsockets.h,v $
|
||||||
|
* Revision 1.14 2008/12/20 14:53:55 fabiankeil
|
||||||
|
* Add config option socket-timeout to control the time
|
||||||
|
* Privoxy waits for data to arrive on a socket. Useful
|
||||||
|
* in case of stale ssh tunnels or when fuzz-testing.
|
||||||
|
*
|
||||||
|
* Revision 1.13 2008/03/21 11:13:59 fabiankeil
|
||||||
|
* Only gather host information if it's actually needed.
|
||||||
|
* Also move the code out of accept_connection() so it's less likely
|
||||||
|
* to delay other incoming connections if the host is misconfigured.
|
||||||
|
*
|
||||||
|
* Revision 1.12 2006/07/18 14:48:46 david__schmidt
|
||||||
|
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||||
|
* with what was really the latest development (the v_3_0_branch branch)
|
||||||
|
*
|
||||||
|
* Revision 1.9.2.1 2002/05/26 23:41:27 joergs
|
||||||
|
* AmigaOS: Fixed wrong type of len in write_socket()
|
||||||
|
*
|
||||||
|
* Revision 1.9 2002/04/08 20:31:41 swa
|
||||||
|
* fixed JB spelling
|
||||||
|
*
|
||||||
|
* Revision 1.8 2002/03/26 22:29:54 swa
|
||||||
|
* we have a new homepage!
|
||||||
|
*
|
||||||
|
* Revision 1.7 2002/03/24 13:25:43 swa
|
||||||
|
* name change related issues
|
||||||
|
*
|
||||||
|
* Revision 1.6 2002/03/13 00:27:05 jongfoster
|
||||||
|
* Killing warnings
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/03/09 20:03:52 jongfoster
|
||||||
|
* - Making various functions return int rather than size_t.
|
||||||
|
* (Undoing a recent change). Since size_t is unsigned on
|
||||||
|
* Windows, functions like read_socket that return -1 on
|
||||||
|
* error cannot return a size_t.
|
||||||
|
*
|
||||||
|
* THIS WAS A MAJOR BUG - it caused frequent, unpredictable
|
||||||
|
* crashes, and also frequently caused JB to jump to 100%
|
||||||
|
* CPU and stay there. (Because it thought it had just
|
||||||
|
* read ((unsigned)-1) == 4Gb of data...)
|
||||||
|
*
|
||||||
|
* - The signature of write_socket has changed, it now simply
|
||||||
|
* returns success=0/failure=nonzero.
|
||||||
|
*
|
||||||
|
* - Trying to get rid of a few warnings --with-debug on
|
||||||
|
* Windows, I've introduced a new type "jb_socket". This is
|
||||||
|
* used for the socket file descriptors. On Windows, this
|
||||||
|
* is SOCKET (a typedef for unsigned). Everywhere else, it's
|
||||||
|
* an int. The error value can't be -1 any more, so it's
|
||||||
|
* now JB_INVALID_SOCKET (which is -1 on UNIX, and in
|
||||||
|
* Windows it maps to the #define INVALID_SOCKET.)
|
||||||
|
*
|
||||||
|
* - The signature of bind_port has changed.
|
||||||
|
*
|
||||||
|
* Revision 1.4 2002/03/07 03:51:36 oes
|
||||||
|
* - Improved handling of failed DNS lookups
|
||||||
|
* - Fixed compiler warnings etc
|
||||||
|
*
|
||||||
|
* Revision 1.3 2001/07/29 19:01:11 jongfoster
|
||||||
|
* Changed _FILENAME_H to FILENAME_H_INCLUDED.
|
||||||
|
* Added forward declarations for needed structures.
|
||||||
|
*
|
||||||
|
* Revision 1.2 2001/06/07 23:06:09 jongfoster
|
||||||
|
* The host parameter to connect_to() is now const.
|
||||||
|
*
|
||||||
|
* Revision 1.1.1.1 2001/05/15 13:58:54 oes
|
||||||
|
* Initial import of version 2.9.3 source tree
|
||||||
|
*
|
||||||
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "project.h"
|
#include "project.h"
|
||||||
|
|
||||||
|
@ -57,26 +127,15 @@ extern int data_is_available(jb_socket fd, int seconds_to_wait);
|
||||||
extern void close_socket(jb_socket fd);
|
extern void close_socket(jb_socket fd);
|
||||||
|
|
||||||
extern int bind_port(const char *hostnam, int portnum, jb_socket *pfd);
|
extern int bind_port(const char *hostnam, int portnum, jb_socket *pfd);
|
||||||
extern int accept_connection(struct client_state * csp, jb_socket fds[]);
|
extern int accept_connection(struct client_state * csp, jb_socket fd);
|
||||||
extern void get_host_information(jb_socket afd, char **ip_address, char **port, char **hostname);
|
extern void get_host_information(jb_socket afd, char **ip_address, char **hostname);
|
||||||
|
|
||||||
extern unsigned long resolve_hostname_to_ip(const char *host);
|
extern unsigned long resolve_hostname_to_ip(const char *host);
|
||||||
|
|
||||||
extern int socket_is_still_alive(jb_socket sfd);
|
|
||||||
|
|
||||||
/* Revision control strings from this header and associated .c file */
|
/* Revision control strings from this header and associated .c file */
|
||||||
extern const char jbsockets_rcs[];
|
extern const char jbsockets_rcs[];
|
||||||
extern const char jbsockets_h_rcs[];
|
extern const char jbsockets_h_rcs[];
|
||||||
|
|
||||||
/*
|
|
||||||
* Solaris workaround
|
|
||||||
* XXX: still necessary?
|
|
||||||
*/
|
|
||||||
#ifndef INADDR_NONE
|
|
||||||
#define INADDR_NONE -1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue