privoxy 3.0.12 clean checkin

This commit is contained in:
n8fr8 2012-06-27 23:42:39 -04:00
parent f5183d8128
commit 3313e38ac9
170 changed files with 59129 additions and 37625 deletions

View File

@ -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,7 +58,6 @@ 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
@ -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>

View File

@ -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 &apos;
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.
@ -1276,13 +570,13 @@ 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 ***
@ -1395,8 +689,9 @@ 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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -4,7 +4,7 @@
* *
* 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
@ -32,7 +32,7 @@
* *
*********************************************************************/ *********************************************************************/
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.

View File

@ -10,7 +10,7 @@
* 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
@ -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@
/* /*
@ -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,7 +334,7 @@
* 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
@ -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.
*/ */
@ -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

View File

@ -12,7 +12,7 @@
* 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
@ -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)

View File

@ -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 == '{')
{ {
@ -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)
@ -1429,7 +1549,7 @@ static int load_one_actions_file(struct client_state *csp, int 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);
@ -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,7 +1929,7 @@ 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.
* *

View File

@ -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 $
@ -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" {

View File

@ -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 $
@ -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"

View File

@ -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 $
@ -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>

896
external/privoxy/cgi.c vendored

File diff suppressed because it is too large Load Diff

172
external/privoxy/cgi.h vendored
View File

@ -1,6 +1,6 @@
#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 $
@ -11,7 +11,7 @@
* Functions declared include: * Functions declared include:
* *
* *
* Copyright : Written by and Copyright (C) 2001-2009 the * 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
@ -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
@ -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

View File

@ -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&amp;ver=1011487572&amp;section=12&amp;pattern=13
* &amp;oldval=www.oesterhelt.org%2Fdeanimate-demo">
*
* is now this:
*
* <a href="eau?f=ijb&amp;v=1011487572&amp;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"
@ -321,6 +674,11 @@ 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,
@ -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
@ -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.

View File

@ -1,6 +1,6 @@
#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 $
@ -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"

View File

@ -1,4 +1,4 @@
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 $
@ -9,7 +9,7 @@ const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.111 2011/09/04 11:10:56 fabia
* Functions declared include: * Functions declared include:
* *
* *
* 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
@ -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"
@ -181,20 +588,6 @@ 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 */
@ -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
@ -746,22 +1088,15 @@ 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;
} }
@ -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))
@ -1558,12 +1898,6 @@ 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 */
@ -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;
} }

View File

@ -1,6 +1,6 @@
#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 $
@ -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"

View File

@ -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

466
external/privoxy/config.guess vendored Executable file → Normal file
View File

@ -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

243
external/privoxy/config.sub vendored Executable file → Normal file
View File

@ -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*)

View File

@ -1,8 +1,8 @@
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
@ -27,12 +27,546 @@ 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
dnl $Log: configure.in,v $
dnl Revision 1.126 2009/03/21 10:45:06 fabiankeil
dnl Declare the code stable.
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
@ -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,8 +652,8 @@ 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)
@ -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
@ -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"
@ -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.
@ -845,8 +1326,8 @@ AC_ARG_ENABLE(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,7 +1397,7 @@ 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.
@ -936,19 +1405,6 @@ if test $enableval2 = yes; then
fi 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
# If we have libpcre and either we also have pcreposix or # If we have libpcre and either we also have pcreposix or
# we don't need pcreposix, then link pcre dynamically; else # we don't need pcreposix, then link pcre dynamically; else
@ -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)

View File

@ -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 $
@ -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. */

View 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 $
@ -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"

View File

@ -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 $
@ -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" {

View File

@ -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&section_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&section_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.
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------

View File

@ -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 "&lt;".
#
# 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.
#

View File

@ -3,7 +3,7 @@
Purpose : AUTHORS file for Privoxy Purpose : AUTHORS file for Privoxy
$Id: authors.sgml,v 2.21 2011/12/26 17:05:40 fabiankeil Exp $ $Id: authors.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/
@ -26,7 +26,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 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">

View File

@ -3,7 +3,7 @@
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.

View File

@ -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">
@ -13,7 +13,7 @@
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.

View File

@ -3,9 +3,9 @@
Purpose : Entity included in other project documents. Purpose : Entity included in other project documents.
$Id: contacting.sgml,v 2.30 2011/11/19 14:44:01 fabiankeil Exp $ $Id: contacting.sgml,v 2.14 2008/04/26 11:38:51 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/ Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
See LICENSE. See LICENSE.
====================================================================== ======================================================================
@ -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
@ -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>
@ -223,28 +214,7 @@
<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>
@ -253,28 +223,16 @@ debug 8192 # Non-fatal errors</literallayout>
<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>
@ -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>.

View File

@ -3,9 +3,9 @@
Purpose : Entity included in other project documents. Purpose : Entity included in other project documents.
$Id: copyright.sgml,v 2.14 2011/09/04 11:10:12 fabiankeil Exp $ $Id: copyright.sgml,v 2.10 2009/02/10 16:13:30 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/ Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE. See LICENSE.
====================================================================== ======================================================================
@ -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>

View File

@ -8,7 +8,7 @@
<!entity contacting SYSTEM "contacting.sgml"> <!entity contacting SYSTEM "contacting.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">
@ -24,7 +24,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: developer-manual.sgml,v 2.38 2011/12/26 17:05:40 fabiankeil Exp $ $Id: developer-manual.sgml,v 2.27 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.
@ -51,7 +51,7 @@
</pubdate> </pubdate>
<pubdate>$Id: developer-manual.sgml,v 2.38 2011/12/26 17:05:40 fabiankeil Exp $</pubdate> <pubdate>$Id: developer-manual.sgml,v 2.27 2009/02/19 02:20:22 hal9 Exp $</pubdate>
<!-- <!--
@ -1854,6 +1854,9 @@ const char FILENAME_rcs[] = "$I<!-- Break CVS Substitution -->d$";
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 , * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
* USA * USA
* *
* Revisions :
* $L<!-- Break CVS Substitution -->og$
*
*********************************************************************/ *********************************************************************/
@ -1908,6 +1911,9 @@ const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 , * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
* USA * USA
* *
* Revisions :
* $L<!-- Break CVS Substitution -->og$
*
*********************************************************************/ *********************************************************************/
@ -3005,41 +3011,6 @@ at sourceforge. Three simple steps:
Temple Place - Suite 330, Boston, MA 02111-1307, USA. Temple Place - Suite 330, Boston, MA 02111-1307, USA.
$Log: developer-manual.sgml,v $ $Log: developer-manual.sgml,v $
Revision 2.38 2011/12/26 17:05:40 fabiankeil
Bump entities for 3.0.19
Revision 2.37 2011/11/13 17:03:54 fabiankeil
Bump entities for 3.0.18 stable
Revision 2.36 2011/09/04 11:10:12 fabiankeil
Ditch trailing whitespace
Revision 2.35 2011/08/17 10:40:07 fabiankeil
Update the entities.
This commit is chronological out of order.
Revision 2.34 2010/11/06 12:55:48 fabiankeil
Set p-version to 3.0.17
Revision 2.33 2010/02/13 17:38:27 fabiankeil
Update entities for 3.0.16 stable.
Revision 2.32 2009/11/15 14:24:12 fabiankeil
Prepare to generate docs for 3.0.16 UNRELEASED.
Revision 2.31 2009/10/10 05:48:55 fabiankeil
Prepare for 3.0.15 beta.
Revision 2.30 2009/07/18 16:24:39 fabiankeil
Bump entities for 3.0.14 beta.
Revision 2.29 2009/06/12 14:30:58 fabiankeil
Update entities for 3.0.13 beta.
Revision 2.28 2009/05/16 13:27:21 fabiankeil
Remove CVS revision logs. TODO item #33.
Revision 2.27 2009/02/19 02:20:22 hal9 Revision 2.27 2009/02/19 02:20:22 hal9
Make some links in seealso conditional. Man page is now privoxy only links. Make some links in seealso conditional. Man page is now privoxy only links.

View File

@ -8,7 +8,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">
@ -27,7 +27,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: faq.sgml,v 2.85 2011/12/26 17:05:40 fabiankeil Exp $ $Id: faq.sgml,v 2.58 2009/03/21 12:27:44 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.
@ -73,12 +73,12 @@
<subscript> <subscript>
<!-- Completely the wrong markup, but very little is allowed --> <!-- Completely the wrong markup, but very little is allowed -->
<!-- in this part of an article. FIXME --> <!-- in this part of an article. FIXME -->
<link linkend="copyright">Copyright</link> &my-copy; 2001-2011 by <link linkend="copyright">Copyright</link> &my-copy; 2001-2009 by
<ulink url="http://www.privoxy.org/">Privoxy Developers</ulink> <ulink url="http://www.privoxy.org/">Privoxy Developers</ulink>
</subscript> </subscript>
</pubdate> </pubdate>
<pubdate>$Id: faq.sgml,v 2.85 2011/12/26 17:05:40 fabiankeil Exp $</pubdate> <pubdate>$Id: faq.sgml,v 2.58 2009/03/21 12:27:44 fabiankeil Exp $</pubdate>
<!-- <!--
@ -464,9 +464,9 @@ warranty? Registration?</title>
</para> </para>
</sect2> </sect2>
<sect2 renderas="sect3" id="help-the-developers"><title id="jointeam">I would like to help you, what can I do?</title> <sect2 renderas="sect3" id="jointeam"><title>I would like to help you, what can I do?</title>
<sect3 renderas="sect4" id="participate"><title id="jointeam-work">Would you like to participate?</title> <sect3 renderas="sect4" id="jointeam-work"><title>Would you like to participate?</title>
<para> <para>
Well, we <emphasis>always</emphasis> need help. There is something for Well, we <emphasis>always</emphasis> need help. There is something for
everybody who wants to help us. We welcome new developers, packagers, everybody who wants to help us. We welcome new developers, packagers,
@ -475,92 +475,59 @@ warranty? Registration?</title>
<quote>programmer</quote>. There are many other tasks available. In fact, <quote>programmer</quote>. There are many other tasks available. In fact,
the programmers often can't spend as much time programming because of some the programmers often can't spend as much time programming because of some
of the other, more mundane things that need to be done, like checking the of the other, more mundane things that need to be done, like checking the
Tracker feedback sections or responding to user questions on the mailing Tracker feedback sections.
lists.
</para> </para>
<para> <para>
So first thing, subscribe to the <ulink So first thing, <ulink
url="https://lists.sourceforge.net/lists/listinfo/ijbswa-users">Privoxy Users</ulink>
or the <ulink url="https://lists.sourceforge.net/lists/listinfo/ijbswa-developers">Privoxy
Developers</ulink> mailing list, join the discussion, help out other users, provide general
feedback or report problems you noticed.
</para>
<para>
If you intend to help out with the trackers, you also might want to <ulink
url="https://sourceforge.net/account/register.php">get an account on SourceForge.net</ulink> url="https://sourceforge.net/account/register.php">get an account on SourceForge.net</ulink>
so we don't confuse you with the other name-less users. and mail your id to the <ulink url="mailto:ijbswa-developers@lists.sourceforge.net">developers
</para> mailing list</ulink>. Then, please read the <ulink
url="../developer-manual/index.html">Developer's Manual</ulink>, at least
the pertinent sections.
</para>
<para> <para>
We also have a <ulink You can also start helping out without SourceForge.net account,
url="../developer-manual/index.html">Developer's Manual</ulink>. simply by showing up on the mailing list, helping out other users,
While it is partly out of date, it's still worth reading. providing general feedback or reporting problems you noticed.
</para> </para>
<para>
Our <ulink url="http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO?view=markup">TODO list</ulink>
may be of interest to you as well.
Please let us know if you want to work on one of the items listed.
</para>
</sect3> </sect3>
<sect3 renderas="sect4" id="donate"><title>Would you like to donate?</title> <sect3 renderas="sect4" id="donate"><title>Would you like to donate?</title>
<para> <para>
<application>Privoxy</application> is developed by unpaid volunteers <application>Privoxy</application> is developed by unpaid volunteers
and thus our current running costs are pretty low. Nevertheless, we and thus our current running costs are pretty low. Nevertheless, we
have plans that will cost money in the future. They include, have plans that will cost money in the future. We would like to get
but aren't limited to spending money on: this money through donations made by our users.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Hardware to help make sure <application>Privoxy</application>
keeps running on platforms the developers currently can't test
on and can be ported to others.
</para>
</listitem>
<listitem>
<para>
Technical books to educate our developers about said platforms
or to improve their knowledge in general.
</para>
</listitem>
<listitem>
<para>
More reliable hosting,
</para>
</listitem>
</itemizedlist>
</para>
<para>
We would like to get this money through donations made by our users.
</para> </para>
<para> <para>
<application>Privoxy</application> has therefore become an associated <application>Privoxy</application> has therefore become an associated
project of <ulink url="http://www.spi-inc.org/about-spi/about-spi">Software project of <ulink url="http://www.spi-inc.org/about-spi/about-spi">Software
in the Public Interest (SPI)</ulink>, which allows us to receive donations. in the Public Interest (SPI)</ulink>, which allows us to receive tax-deductible
In the United States they are tax-deductible, in a few other western countries donations in most western countries.
they might be tax-deductible in the future.
</para> </para>
<para> <para>
If you read this section before you may notice that paying for the We intend to use the donations to pay for our domain after transfering
project domain privoxy.org is no longer on the list. It has been it to SPI. Our goal is to make sure there's no single point of failure
transferred to SPI is sponsored by Mythic Beasts Ltd. and the bill gets paid and the site keeps running even if a some of
the currently active developers were to suddenly disappear for a while.
</para>
<para>
We would also like to spend some money on more reliable hosting,
on hardware to help make sure <application>Privoxy</application>
keeps running on platforms the developers currently can't test on,
and on technical books to educate our developers about said platforms
or to improve their knowledge in general.
</para> </para>
<para> <para>
If you enjoy our software and feel like helping out with a donation, If you enjoy our software and feel like helping out with a donation,
please have a look at please have a look at
<ulink url="http://www.spi-inc.org/donations">SPI's donation page</ulink> <ulink url="http://www.spi-inc.org/donations">SPI's donation page</ulink>
to see what the options are. If you have any questions regarding donations to see what the options are.
please mail to either the public user mailing list or, if it's a private <para>
matter, to <ulink url="mailto:fk@fabiankeil.de">Fabian Keil</ulink>
(Privoxy's SPI liason) directly.
</para>
</sect3> </sect3>
</sect2> </sect2>
@ -831,8 +798,23 @@ way to do this?</title>
<title>There are several different <quote>actions</quote> files. What are <title>There are several different <quote>actions</quote> files. What are
the differences?</title> the differences?</title>
<para> <para>
Please have a look at the <ulink url="../user-manual/actions-file.html">the actions chapter</ulink> Three actions files
in the <ulink url="../user-manual/index.html">User Manual</ulink> for a detailed explanation. are being included by the developers, to be used for
different purposes: These are
<filename>default.action</filename>, the <quote>main</quote> actions file
which is actively maintained by the <application>Privoxy</application>
developers and typically sets the default policies, <filename>user.action</filename>,
where users are encouraged to make their private customizations.
Please see <ulink url="../user-manual/actions-file.html">the actions chapter</ulink>
in the <ulink url="../user-manual/index.html">User Manual</ulink> for a more
detailed explanation.
</para>
<para>
Earlier versions included three different versions of the
<filename>default.action</filename> file. The new scheme allows for
greater flexibility of local configuration, and for browser based
selection of pre-defined <quote>aggressiveness</quote> levels.
</para> </para>
</sect2> </sect2>
@ -971,7 +953,7 @@ with a browser? Does that not raise security issues?</title>
<para> <para>
If you run <application>Privoxy</application> for multiple untrusted users (e.g. in If you run <application>Privoxy</application> for multiple untrusted users (e.g. in
a LAN) or aren't entirely in control of your own browser, you will probably want a LAN) or aren't entirely in control of your own browser, you will probably want
to make sure that the web-based editor and remote toggle features are to make sure that the the web-based editor and remote toggle features are
<quote>off</quote> by setting <quote><literal><ulink <quote>off</quote> by setting <quote><literal><ulink
url="../user-manual/config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</ulink> url="../user-manual/config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</ulink>
0</literal></quote> and <quote><literal><ulink 0</literal></quote> and <quote><literal><ulink
@ -1001,7 +983,7 @@ with a browser? Does that not raise security issues?</title>
<ulink <ulink
url="../user-manual/actions-file.html#FILTER"><literal>filter</literal> url="../user-manual/actions-file.html#FILTER"><literal>filter</literal>
action</ulink> in one of the actions files. Content filtering is automatically action</ulink> in one of the actions files. Content filtering is automatically
disabled for inappropriate MIME types, but if you know better than Privoxy disabled for inappropriate MIME types, but if you now better than Privoxy
what should or should not be filtered you can filter any content you like. what should or should not be filtered you can filter any content you like.
</para> </para>
<para> <para>
@ -1188,17 +1170,17 @@ on Win2K/NT/XP?</title>
<sect2 renderas="sect3" id="otherproxy"> <sect2 renderas="sect3" id="otherproxy">
<title>How can I make Privoxy work with other proxies?</title> <title>How can I make Privoxy work with other
proxies like Squid or Tor?</title>
<para> <para>
This can be done and is often useful to combine the benefits of This can be done and is often useful to combine the benefits of
<application>Privoxy</application> with those of a another proxy, <application>Privoxy</application> with those of a another proxy.
for example to cache content.
See the <ulink See the <ulink
url="../user-manual/config.html#FORWARDING">forwarding chapter</ulink> url="../user-manual/config.html#FORWARDING">forwarding chapter</ulink>
in the <ulink url="../user-manual/index.html">User Manual</ulink> which in the <ulink url="../user-manual/index.html">User Manual</ulink> which
describes how to do this. If you intend to use Privoxy with Tor, describes how to do this, and the <link linkend="TOR">
please also have a look at How do I use Privoxy together with
<link linkend="TOR">How do I use Privoxy together with Tor</link>. Tor</link> section below.
</para> </para>
</sect2> </sect2>
@ -1208,8 +1190,7 @@ and thus avoid individual browser configuration?</title>
<para> <para>
No, its more complicated than that. This only works with special kinds No, its more complicated than that. This only works with special kinds
of proxies known as <quote>intercepting</quote> proxies of proxies known as <quote>intercepting</quote> proxies (see below).
(<link linkend="INTERCEPTING">see below</link>).
</para> </para>
</sect2> </sect2>
@ -1226,7 +1207,7 @@ and thus avoid individual browser configuration?</title>
<para> <para>
However, some people say <quote>transparent proxy</quote> when they However, some people say <quote>transparent proxy</quote> when they
mean <quote>intercepting proxy</quote>. If you are one of them, mean <quote>intercepting proxy</quote>. If you are one of them,
please read the <link linkend="INTERCEPTING">next entry</link>. please read the <ulink url="#intercepting">next entry</ulink>.
</para> </para>
</sect2> </sect2>
@ -1786,11 +1767,9 @@ us help you. Your efforts are not wasted, and we do appreciate them.
If you verified that <application>Privoxy</application> and <application>Tor</application> If you verified that <application>Privoxy</application> and <application>Tor</application>
are working, it is time to connect them. As far as <application>Privoxy</application> are working, it is time to connect them. As far as <application>Privoxy</application>
is concerned, <application>Tor</application> is just another proxy that can be reached is concerned, <application>Tor</application> is just another proxy that can be reached
by socks4, socks4a and socks5. Most likely you are interested in <application>Tor</application> by socks4 or socks4a. Most likely you are interested in <application>Tor</application>
to increase your anonymity level, therefore you should use socks5, to make sure DNS to increase your anonymity level, therefore you should use socks4a, to make sure DNS requests are
requests are done through <application>Tor</application> and thus invisible to your done through <application>Tor</application> and thus invisible to your local network.
local network. Using socks4a would work too, but with socks5 you get more precise error
messages.
</para> </para>
<![%p-newstuff;[ <![%p-newstuff;[
@ -1805,7 +1784,7 @@ us help you. Your efforts are not wasted, and we do appreciate them.
</para> </para>
<para> <para>
<screen> <screen>
# forward-socks5 / 127.0.0.1:9050 . # forward-socks4a / 127.0.0.1:9050 .
</screen> </screen>
</para> </para>
<para> <para>
@ -2220,42 +2199,6 @@ and related issues?</title>
</para> </para>
</sect2> </sect2>
<sect2 renderas="sect3" id="surprise-privoxy">
<title>How did you manage to get Privoxy on my computer without my consent?</title>
<para>
We didn't. We make Privoxy available for download, but we don't go
around installing it on other people's systems behind their back.
If you discover Privoxy running on your system and are sure you didn't
install it yourself, somebody else did. You may not even be running
the real Privoxy, but maybe something else that only pretends to be
Privoxy, or maybe something that is based on the real Privoxy,
but has been modified.
</para>
<para>
Lately there have been reports of problems with some kind of
Privoxy versions that come preinstalled on some Netbooks.
Some of the problems described are inconsistent with the behaviour
of official Privoxy versions, which suggests that the preinstalled
software may contain vendor modifications that we don't know about
and thus can't debug.
</para>
<para>
Privoxy's <link linkend="copyright">license</link> allows vendor
modifications, but the vendor has to comply with the license,
which involves informing the user about the changes and to make
the changes available under the same license as Privoxy itself.
</para>
<para>
If you are having trouble with a modified Privoxy version,
please try to talk to whoever made the modifications before
reporting the problem to us. Please also try to convince
whoever made the modifications to talk to us. If you think
somebody gave you a modified Privoxy version without complying
to the license, please let us know.
</para>
</sect2>
</sect1> </sect1>
@ -2992,108 +2935,6 @@ browsing has slowed to a crawl. What gives? </title>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
$Log: faq.sgml,v $ $Log: faq.sgml,v $
Revision 2.85 2011/12/26 17:05:40 fabiankeil
Bump entities for 3.0.19
Revision 2.84 2011/11/13 17:03:54 fabiankeil
Bump entities for 3.0.18 stable
Revision 2.83 2011/11/13 16:53:24 fabiankeil
Rephrase the donations section some more
Mention that the domain is now sponsored by Mythic Beasts Ltd
and make it clear that asking questions about donations is
possible, too.
Revision 2.82 2011/11/13 16:50:34 fabiankeil
Note that donations for Privoxy are currently only tax-deductible in the US
As it turns out tax-deductible donations in a few other western
countries are theoretically possible through partner organizations
but aren't available out of the box.
Revision 2.81 2011/09/04 11:10:12 fabiankeil
Ditch trailing whitespace
Revision 2.80 2011/08/18 11:42:50 fabiankeil
Bump some more documentation copyright ranges.
Revision 2.79 2011/08/17 10:40:07 fabiankeil
Update the entities.
This commit is chronological out of order.
Revision 2.78 2011/04/19 13:14:10 fabiankeil
Fix spelling errors in the documentation. Found with codespell.
Revision 2.77 2011/03/03 14:22:12 fabiankeil
Remove duplicated 'the'
Revision 2.76 2010/11/22 10:35:02 fabiankeil
Mention socks5 in another part of the Tor section.
Revision 2.75 2010/11/13 10:08:00 fabiankeil
Fix a link to the 'intercepting' entry and add another one
Revision 2.74 2010/11/13 10:07:46 fabiankeil
Remove the product names in the 'otherproxy' entry's title.
I'm tired of getting the 'otherproxy' entry as first hit
when searching the index for the Tor FAQ.
Revision 2.73 2010/11/06 12:55:48 fabiankeil
Set p-version to 3.0.17
Revision 2.72 2010/02/27 12:13:17 fabiankeil
Fix spelling.
Revision 2.71 2010/02/27 12:12:13 fabiankeil
Consistently recommending socks5 in the Tor entry and mention its advantage compared to socks4a.
Reported by David in #2960129.
Revision 2.70 2010/02/20 18:08:31 ler762
fix typo
Revision 2.69 2010/02/13 17:38:27 fabiankeil
Update entities for 3.0.16 stable.
Revision 2.68 2010/01/30 19:51:28 fabiankeil
New FAQ entry: How did you manage to get Privoxy on my computer without my consent?
Also bump copyright.
Revision 2.67 2009/11/15 14:24:12 fabiankeil
Prepare to generate docs for 3.0.16 UNRELEASED.
Revision 2.66 2009/10/10 05:48:55 fabiankeil
Prepare for 3.0.15 beta.
Revision 2.65 2009/07/18 16:24:39 fabiankeil
Bump entities for 3.0.14 beta.
Revision 2.64 2009/07/18 12:18:52 fabiankeil
Don't describe the action files in the FAQ when we can simply link to the description in the User Manual.
Revision 2.63 2009/06/15 15:08:03 fabiankeil
Patch #2806626 from Frédéric Crozat to fix a closing tag.
Revision 2.62 2009/06/12 14:30:58 fabiankeil
Update entities for 3.0.13 beta.
Revision 2.61 2009/06/12 11:52:33 fabiankeil
Mention the TODO list in the participate entry.
Revision 2.60 2009/04/07 12:25:05 fabiankeil
In the "I would like to help ..." entry:
- Change the ids to more general ones as helping out doesn't require
joining the team (and joining the team requires significantly helping
out first, anyway).
- Add links to the subscription pages for the main mailing lists.
Revision 2.59 2009/03/28 15:33:41 fabiankeil
Recommend the use of forward-socks5 when forwarding to Tor.
The error messages are more detailed than with forward-socks4a.
Revision 2.58 2009/03/21 12:27:44 fabiankeil Revision 2.58 2009/03/21 12:27:44 fabiankeil
Turn the donation entry title into a question, Turn the donation entry title into a question,
also rephrase the content a bit. also rephrase the content a bit.

View File

@ -3,7 +3,7 @@
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.

View File

@ -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">
@ -16,7 +16,7 @@
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.

View File

@ -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

View File

@ -3,7 +3,7 @@
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.

View File

@ -3,7 +3,7 @@
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.
@ -34,15 +34,7 @@
--> -->
<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>
</listitem>
<listitem>
<para>
Supports IPv6, provided the operating system does so too,
and the configure script detects it.
</para> </para>
</listitem> </listitem>
@ -75,7 +67,7 @@
<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.
@ -85,7 +77,8 @@
<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>
@ -104,6 +97,12 @@
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Improved cookie management features (e.g. session based cookies).
</para>
</listitem>
<listitem> <listitem>
<para> <para>
GIF de-animation. GIF de-animation.
@ -116,6 +115,12 @@
</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).
@ -130,7 +135,14 @@
<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>
</listitem>
<listitem>
<para>
Every feature now controllable on a per-site or per-location basis, configuration
more powerful and versatile over-all.
</para> </para>
</listitem> </listitem>

View File

@ -3,7 +3,7 @@
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.
@ -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

View File

@ -3,9 +3,9 @@
Purpose : Used with other docs and files only. Purpose : Used with other docs and files only.
$Id: p-config.sgml,v 2.79 2011/09/04 11:10:12 fabiankeil Exp $ $Id: p-config.sgml,v 2.41 2009/02/19 16:59:41 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/ Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE. See LICENSE.
======================================================================== ========================================================================
@ -50,8 +50,8 @@
<title>The Main Configuration File</title> <title>The Main Configuration File</title>
<para> <para>
By default, the main configuration file is named <filename>config</filename>, Again, the main configuration file is named <filename>config</filename> on
with the exception of Windows, where it is named <filename>config.txt</filename>. Linux/Unix/BSD and OS/2, and <filename>config.txt</filename> on Windows.
Configuration lines consist of an initial keyword followed by a list of Configuration lines consist of an initial keyword followed by a list of
values, all separated by whitespace (any number of spaces or tabs). For values, all separated by whitespace (any number of spaces or tabs). For
example: example:
@ -81,9 +81,7 @@
<para> <para>
The main config file controls all aspects of <application>Privoxy</application>'s The main config file controls all aspects of <application>Privoxy</application>'s
operation that are not location dependent (i.e. they apply universally, no matter operation that are not location dependent (i.e. they apply universally, no matter
where you may be surfing). Like the filter and action files, the config file is where you may be surfing).
a plain text file and can be modified with a text editor like emacs, vim or
notepad.exe.
</para> </para>
]]> ]]>
@ -97,10 +95,10 @@
Sample Configuration File for Privoxy v&p-version; Sample Configuration File for Privoxy v&p-version;
</title> </title>
<para> <para>
$Id: p-config.sgml,v 2.79 2011/09/04 11:10:12 fabiankeil Exp $ $Id: p-config.sgml,v 2.41 2009/02/19 16:59:41 fabiankeil Exp $
</para> </para>
<para> <para>
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/ Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
</para> </para>
<para> <para>
@ -796,7 +794,7 @@ actionsfile
</variablelist> </variablelist>
<![%config-file;[<literallayout>@@filterfile default.filter</literallayout>]]> <![%config-file;[<literallayout>@@filterfile default.filter</literallayout>]]>
<![%config-file;[<literallayout>@@filterfile user.filter # User customizations</literallayout>]]> <![%config-file;[<literallayout>@@#filterfile user.filter # User customizations</literallayout>]]>
</sect3> </sect3>
@ -1009,7 +1007,7 @@ actionsfile
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
@ -1019,7 +1017,6 @@ actionsfile
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
</programlisting> </programlisting>
</para> </para>
<para> <para>
@ -1028,7 +1025,7 @@ actionsfile
</para> </para>
<para> <para>
A debug level of 1 is informative because it will show you each request A debug level of 1 is informative because it will show you each request
as it happens. <emphasis>1, 1024, 4096 and 8192 are recommended</emphasis> as it happens. <emphasis>1, 4096 and 8192 are recommended</emphasis>
so that you will notice when things go wrong. The other levels are so that you will notice when things go wrong. The other levels are
probably only of interest if you are hunting down a specific problem. probably only of interest if you are hunting down a specific problem.
They can produce a hell of an output (especially 16). They can produce a hell of an output (especially 16).
@ -1194,7 +1191,7 @@ actionsfile
<term>Specifies:</term> <term>Specifies:</term>
<listitem> <listitem>
<para> <para>
The address and TCP port on which <application>Privoxy</application> will The IP address and TCP port on which <application>Privoxy</application> will
listen for client requests. listen for client requests.
</para> </para>
</listitem> </listitem>
@ -1203,7 +1200,6 @@ actionsfile
<term>Type of value:</term> <term>Type of value:</term>
<listitem> <listitem>
<para>[<replaceable class="parameter">IP-Address</replaceable>]:<replaceable class="parameter">Port</replaceable></para> <para>[<replaceable class="parameter">IP-Address</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
<para>[<replaceable class="parameter">Hostname</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1217,9 +1213,9 @@ actionsfile
<term>Effect if unset:</term> <term>Effect if unset:</term>
<listitem> <listitem>
<para> <para>
Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is suitable and Bind to 127.0.0.1 (localhost), port 8118. This is suitable and recommended for
recommended for home users who run <application>Privoxy</application> on home users who run <application>Privoxy</application> on the same machine as
the same machine as their browser. their browser.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1235,55 +1231,11 @@ actionsfile
will need to override the default. will need to override the default.
</para> </para>
<para> <para>
You can use this statement multiple times to make If you leave out the IP address, <application>Privoxy</application> will
<application>Privoxy</application> listen on more ports or more bind to all interfaces (addresses) on your machine and may become reachable
<abbrev>IP</abbrev> addresses. Suitable if your operating system does not from the Internet. In that case, consider using <link
support sharing <abbrev>IPv6</abbrev> and <abbrev>IPv4</abbrev> protocols linkend="acls">access control lists</link> (ACL's, see below), and/or
on the same socket. a firewall.
</para>
<para>
If a hostname is used instead of an IP address, <application>Privoxy</application>
will try to resolve it to an IP address and if there are multiple, use the first
one returned.
</para>
<para>
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.
</para>
<para>
If the specified address isn't available on the system, or if the
hostname can't be resolved, <application>Privoxy</application>
will fail to start.
</para>
<para>
IPv6 addresses containing colons have to be quoted by brackets.
They can only be used if <application>Privoxy</application> has
been compiled with IPv6 support. If you aren't sure if your version
supports it, have a look at
<literal>http://config.privoxy.org/show-status</literal>.
</para>
<para>
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.
</para>
<para>
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.
</para>
<para>
If you leave out the address, <application>Privoxy</application> will bind to all
IPv4 interfaces (addresses) on your machine and may become reachable from the
Internet and/or the local network. Be aware that some GNU/Linux distributions
modify that behaviour without updating the documentation. Check for non-standard
patches if your <application>Privoxy</application>version behaves differently.
</para>
<para>
If you configure <application>Privoxy</application>to be reachable from the
network, consider using <link linkend="acls">access control lists</link>
(ACL's, see below), and/or a firewall.
</para> </para>
<para> <para>
If you open <application>Privoxy</application> to untrusted users, you will If you open <application>Privoxy</application> to untrusted users, you will
@ -1291,12 +1243,6 @@ actionsfile
linkend="enable-edit-actions">enable-edit-actions</link></literal> and linkend="enable-edit-actions">enable-edit-actions</link></literal> and
<literal><link linkend="enable-remote-toggle">enable-remote-toggle</link></literal> <literal><link linkend="enable-remote-toggle">enable-remote-toggle</link></literal>
</para> </para>
<para>
With the exception noted above, listening on multiple addresses is currently
not supported by <application>Privoxy</application> directly.
It can be done on most operating systems by letting a packet filter
redirect request for certain addresses to Privoxy, though.
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -1311,16 +1257,6 @@ actionsfile
<para> <para>
<programlisting> <programlisting>
listen-address 192.168.0.1:8118 listen-address 192.168.0.1:8118
</programlisting>
</para>
<para>
Suppose you are running <application>Privoxy</application> on an
IPv6-capable machine and you want it to listen on the IPv6 address
of the loopback device:
</para>
<para>
<programlisting>
listen-address [::1]:8118
</programlisting> </programlisting>
</para> </para>
</listitem> </listitem>
@ -1675,41 +1611,23 @@ ACLs: permit-access and deny-access</title>
<term>Type of value:</term> <term>Type of value:</term>
<listitem> <listitem>
<para> <para>
<replaceable class="parameter">src_addr</replaceable>[:<replaceable class="parameter">port</replaceable>][/<replaceable class="parameter">src_masklen</replaceable>] <replaceable class="parameter">src_addr</replaceable>[/<replaceable class="parameter">src_masklen</replaceable>]
[<replaceable class="parameter">dst_addr</replaceable>[:<replaceable class="parameter">port</replaceable>][/<replaceable class="parameter">dst_masklen</replaceable>]] [<replaceable class="parameter">dst_addr</replaceable>[/<replaceable class="parameter">dst_masklen</replaceable>]]
</para> </para>
<para> <para>
Where <replaceable class="parameter">src_addr</replaceable> and Where <replaceable class="parameter">src_addr</replaceable> and
<replaceable class="parameter">dst_addr</replaceable> are IPv4 addresses in dotted decimal notation or valid <replaceable class="parameter">dst_addr</replaceable> are IP addresses in dotted decimal notation or valid
DNS names, <replaceable class="parameter">port</replaceable> is a port DNS names, and <replaceable class="parameter">src_masklen</replaceable> and
number, and <replaceable class="parameter">src_masklen</replaceable> and
<replaceable class="parameter">dst_masklen</replaceable> are subnet masks in CIDR notation, i.e. integer <replaceable class="parameter">dst_masklen</replaceable> are subnet masks in CIDR notation, i.e. integer
values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole
destination part are optional. destination part are optional.
</para> </para>
<para>
If your system implements
<ulink url="http://tools.ietf.org/html/rfc3493">RFC 3493</ulink>, then
<replaceable class="parameter">src_addr</replaceable> and <replaceable
class="parameter">dst_addr</replaceable> can be IPv6 addresses delimeted by
brackets, <replaceable class="parameter">port</replaceable> can be a number
or a service name, and
<replaceable class="parameter">src_masklen</replaceable> and
<replaceable class="parameter">dst_masklen</replaceable> can be a number
from 0 to 128.
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Default value:</term> <term>Default value:</term>
<listitem> <listitem>
<para><emphasis>Unset</emphasis></para> <para><emphasis>Unset</emphasis></para>
<para>
If no <replaceable class="parameter">port</replaceable> is specified,
any port will match. If no <replaceable class="parameter">src_masklen</replaceable> or
<replaceable class="parameter">src_masklen</replaceable> is given, the complete IP
address has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6).
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -1758,13 +1676,6 @@ ACLs: permit-access and deny-access</title>
like <quote>*.org</quote> or partial domain names. If a DNS name resolves to multiple like <quote>*.org</quote> or partial domain names. If a DNS name resolves to multiple
IP addresses, only the first one is used. IP addresses, only the first one is used.
</para> </para>
<para>
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). <application>Privoxy</application> can handle it
and maps such ACL addresses automatically.
</para>
<para> <para>
Denying access to particular sites by ACL may have undesired side effects Denying access to particular sites by ACL may have undesired side effects
if the site in question is hosted on a machine which also hosts other sites if the site in question is hosted on a machine which also hosts other sites
@ -1806,24 +1717,6 @@ ACLs: permit-access and deny-access</title>
deny-access 192.168.45.73 www.dirty-stuff.example.com deny-access 192.168.45.73 www.dirty-stuff.example.com
</screen> </screen>
</para> </para>
<para>
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):
</para>
<para>
<programlisting>
permit-access 192.0.2.0/24
</programlisting>
</para>
<para>
This is equivalent to the following line even if listening on an
IPv4 address (not supported on all platforms):
</para>
<para>
<programlisting>
permit-access [::ffff:192.0.2.0]/120
</programlisting>
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
@ -1945,7 +1838,7 @@ ACLs: permit-access and deny-access</title>
denote <quote>all URLs</quote>. denote <quote>all URLs</quote>.
<replaceable class="parameter">http_parent</replaceable>[:<replaceable class="parameter">port</replaceable>] <replaceable class="parameter">http_parent</replaceable>[:<replaceable class="parameter">port</replaceable>]
is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded, is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded,
optionally followed by its listening port (default: 8000). optionally followed by its listening port (default: 8080).
Use a single dot (<literal>.</literal>) to denote <quote>no forwarding</quote>. Use a single dot (<literal>.</literal>) to denote <quote>no forwarding</quote>.
</para> </para>
</listitem> </listitem>
@ -1971,16 +1864,6 @@ ACLs: permit-access and deny-access</title>
If <replaceable class="parameter">http_parent</replaceable> is <quote>.</quote>, then requests are not If <replaceable class="parameter">http_parent</replaceable> is <quote>.</quote>, then requests are not
forwarded to another HTTP proxy but are made directly to the web servers. forwarded to another HTTP proxy but are made directly to the web servers.
</para> </para>
<para>
<replaceable class="parameter">http_parent</replaceable> can be a
numerical IPv6 address (if
<ulink url="http://tools.ietf.org/html/rfc3493">RFC 3493</ulink> is
implemented). To prevent clashes with the port delimiter, the whole IP
address has to be put into brackets. On the other hand a <replaceable
class="parameter">target_pattern</replaceable> containing an IPv6 address
has to be put into angle brackets (normal brackets are reserved for
regular expressions already).
</para>
<para> <para>
Multiple lines are OK, they are checked in sequence, and the last match wins. Multiple lines are OK, they are checked in sequence, and the last match wins.
</para> </para>
@ -2008,24 +1891,6 @@ ACLs: permit-access and deny-access</title>
forward .isp.example.net . forward .isp.example.net .
</screen> </screen>
</para> </para>
<para>
Parent proxy specified by an IPv6 address:
</para>
<para>
<programlisting>
forward / [2001:DB8::1]:8000
</programlisting>
</para>
<para>
Suppose your parent proxy doesn't support IPv6:
</para>
<para>
<programlisting>
forward / parent-proxy.example.org:8000
forward ipv6-server.example.org .
forward &lt;[2-3][0-9a-f][0-9a-f][0-9a-f]:*&gt; .
</programlisting>
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
@ -2097,17 +1962,6 @@ forward-socks4, forward-socks4a and forward-socks5</title>
<para> <para>
With <literal>forward-socks5</literal> the DNS resolution will happen on the remote server as well. With <literal>forward-socks5</literal> the DNS resolution will happen on the remote server as well.
</para> </para>
<para>
<replaceable class="parameter">socks_proxy</replaceable> and
<replaceable class="parameter">http_parent</replaceable> can be a
numerical IPv6 address (if
<ulink url="http://tools.ietf.org/html/rfc3493">RFC 3493</ulink> is
implemented). To prevent clashes with the port delimiter, the whole IP
address has to be put into brackets. On the other hand a <replaceable
class="parameter">target_pattern</replaceable> containing an IPv6 address
has to be put into angle brackets (normal brackets are reserved for
regular expressions already).
</para>
<para> <para>
If <replaceable class="parameter">http_parent</replaceable> is <quote>.</quote>, then requests are not If <replaceable class="parameter">http_parent</replaceable> is <quote>.</quote>, then requests are not
forwarded to another HTTP proxy but are made (HTTP-wise) directly to the web servers, albeit through forwarded to another HTTP proxy but are made (HTTP-wise) directly to the web servers, albeit through
@ -2145,7 +1999,7 @@ forward-socks4, forward-socks4a and forward-socks5</title>
</para> </para>
<para> <para>
<screen> <screen>
forward-socks5 / 127.0.0.1:9050 . forward-socks4a / 127.0.0.1:9050 .
</screen> </screen>
</para> </para>
@ -2340,11 +2194,6 @@ forward-socks4, forward-socks4a and forward-socks5</title>
<![%config-file;[<literallayout>@@forwarded-connect-retries 0</literallayout>]]> <![%config-file;[<literallayout>@@forwarded-connect-retries 0</literallayout>]]>
</sect3> </sect3>
</sect2>
<sect2 id="misc">
<title>Miscellaneous</title>
<sect3 renderas="sect4" id="accept-intercepted-requests"><title>accept-intercepted-requests</title> <sect3 renderas="sect4" id="accept-intercepted-requests"><title>accept-intercepted-requests</title>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
@ -2561,46 +2410,34 @@ forward-socks4, forward-socks4a and forward-socks5</title>
<term>Effect if unset:</term> <term>Effect if unset:</term>
<listitem> <listitem>
<para> <para>
Connections are not kept alive. Connections are not reused.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Notes:</term> <term>Notes:</term>
<listitem> <listitem>
<para>
This option allows clients to keep the connection to &my-app;
alive. If the server supports it, &my-app; will keep
the connection to the server alive as well. Under certain
circumstances this may result in speed-ups.
</para>
<para>
By default, &my-app; 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 <ulink
url="#CONNECTION-SHARING">connection-sharing</ulink> option.
</para>
<para> <para>
This option has no effect if <application>Privoxy</application> This option has no effect if <application>Privoxy</application>
has been compiled without keep-alive support. has been compiled without keep-alive support.
</para> </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para> <para>
Note that a timeout of five seconds as used in the default Note that reusing connections doesn't necessary cause speedups.
configuration file significantly decreases the number of There are also a few privacy implications you should be aware 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 <quote>grabbing</quote> all the
connections the browser allows, which means connections to
other websites can't be opened until the connections currently
in use time out.
</para> </para>
<para> <para>
Several users have reported this as a Privoxy bug, so the Outgoing connections are shared between clients (if there are more
default value has been reduced. Consider increasing it to than one) and closing the client that initiated the outgoing connection
300 seconds or even more if you think your browser can handle does not affect the connection between &my-app; and the server unless
it. If your browser appears to be hanging it can't. the client's request hasn't been completed yet. If the outgoing connection
is idle, it will not be closed until either <application>Privoxy's</application>
or the server's timeout is reached. While it's open, the server knows
that the system running &my-app; is still there.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2613,187 +2450,7 @@ forward-socks4, forward-socks4a and forward-socks5</title>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
<![%config-file;[<literallayout>@@keep-alive-timeout 5</literallayout>]]> <![%config-file;[<literallayout>@@keep-alive-timeout 300</literallayout>]]>
</sect3>
<sect3 renderas="sect4" id="default-server-timeout"><title>default-server-timeout</title>
<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
Assumed server-side keep-alive timeout if not specified by the server.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Type of value:</term>
<listitem>
<para>
<replaceable>Time in seconds.</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Default value:</term>
<listitem>
<para>None</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if unset:</term>
<listitem>
<para>
Connections for which the server didn't specify the keep-alive
timeout are not reused.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
Enabling this option significantly increases the number of connections
that are reused, provided the <ulink
url="#KEEP-ALIVE-TIMEOUT">keep-alive-timeout</ulink> option
is also enabled.
</para>
<para>
While it also increases the number of connections problems
when &my-app; tries to reuse a connection that already has
been closed on the server side, or is closed while &my-app;
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, &my-app; will simply
close the connection and the client is supposed to retry the
request without bothering the user.
</para>
<para>
Enabling this option is therefore only recommended if the
<ulink
url="#CONNECTION-SHARING">connection-sharing</ulink> option
is disabled.
</para>
<para>
It is an error to specify a value larger than the <ulink
url="#KEEP-ALIVE-TIMEOUT">keep-alive-timeout</ulink> value.
</para>
<para>
This option has no effect if <application>Privoxy</application>
has been compiled without keep-alive support.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Examples:</term>
<listitem>
<para>
default-server-timeout 60
</para>
</listitem>
</varlistentry>
</variablelist>
<![%config-file;[<literallayout>@@#default-server-timeout 60</literallayout>]]>
</sect3>
<sect3 renderas="sect4" id="connection-sharing"><title>connection-sharing</title>
<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
Whether or not outgoing connections that have been kept alive
should be shared between different incoming connections.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Type of value:</term>
<listitem>
<para>
<replaceable>0 or 1</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Default value:</term>
<listitem>
<para>None</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if unset:</term>
<listitem>
<para>
Connections are not shared.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
This option has no effect if <application>Privoxy</application>
has been compiled without keep-alive support, or if it's disabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
Note that reusing connections doesn't necessary cause speedups.
There are also a few privacy implications you should be aware of.
</para>
<para>
If this option is effective, outgoing connections are shared between
clients (if there are more than one) and closing the browser that initiated
the outgoing connection does no longer affect the connection between &my-app;
and the server unless the client's request hasn't been completed yet.
</para>
<para>
If the outgoing connection is idle, it will not be closed until either
<application>Privoxy's</application> or the server's timeout is reached.
While it's open, the server knows that the system running &my-app; is still
there.
</para>
<para>
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.
</para>
<para>
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 &my-app; to keep outgoing connections alive even if the client
itself doesn't support it.
</para>
<para>
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.
</para>
<para>
This option should only be used by experienced users who
understand the risks and can weight them against the benefits.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Examples:</term>
<listitem>
<para>
connection-sharing 1
</para>
</listitem>
</varlistentry>
</variablelist>
<![%config-file;[<literallayout>@@#connection-sharing 1</literallayout>]]>
</sect3> </sect3>
@ -2834,9 +2491,9 @@ forward-socks4, forward-socks4a and forward-socks5</title>
<term>Notes:</term> <term>Notes:</term>
<listitem> <listitem>
<para> <para>
The default is quite high and you probably want to reduce it. For SOCKS requests the timeout currently doesn't start until
If you aren't using an occasionally slow proxy like Tor, reducing the SOCKS server accepted the request. This will be fixed in
it to a few seconds should be fine. the next release.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2853,279 +2510,6 @@ forward-socks4, forward-socks4a and forward-socks5</title>
</sect3> </sect3>
<sect3 renderas="sect4" id="max-client-connections"><title>max-client-connections</title>
<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
Maximum number of client connections that will be served.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Type of value:</term>
<listitem>
<para>
<replaceable>Positive number.</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Default value:</term>
<listitem>
<para>None</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if unset:</term>
<listitem>
<para>
Connections are served until a resource limit is reached.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
&my-app; creates one thread (or process) for every incoming client
connection that isn't rejected based on the access control settings.
</para>
<para>
If the system is powerful enough, &my-app; 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 &my-app; would
require under heavy load.
</para>
<para>
Configuring &my-app; 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 &my-app; isn't the only application running on the system,
you may actually want to limit the resources used by &my-app;.
</para>
<para>
If &my-app; 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 &my-app;.
</para>
<para>
Obviously using this option only makes sense if you choose a limit
below the one enforced by the operating system.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Examples:</term>
<listitem>
<para>
max-client-connections 256
</para>
</listitem>
</varlistentry>
</variablelist>
<![%config-file;[<literallayout>@@#max-client-connections 256</literallayout>]]>
</sect3>
<sect3 renderas="sect4" id="handle-as-empty-doc-returns-ok"><title>handle-as-empty-doc-returns-ok</title>
<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
The status code Privoxy returns for pages blocked with
<!-- URL will only end up in the user manual so the relative link should work. -->
<literal><ulink url="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">+handle-as-empty-document</ulink></literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Type of value:</term>
<listitem>
<para>
<replaceable>0 or 1</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Default value:</term>
<listitem>
<para>0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if unset:</term>
<listitem>
<para>
Privoxy returns a status 403(forbidden) for all blocked pages.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if set:</term>
<listitem>
<para>
Privoxy returns a status 200(OK) for pages blocked with +handle-as-empty-document
and a status 403(Forbidden) for all other blocked pages.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
This is a work-around for Firefox bug 492459:
<quote>
Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.
</quote>
(<ulink url="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
>https://bugzilla.mozilla.org/show_bug.cgi?id=492459</ulink>)
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.
</para>
</listitem>
</varlistentry>
</variablelist>
<![%config-file;[<literallayout>@@#handle-as-empty-doc-returns-ok 1</literallayout>]]>
</sect3>
<sect3 renderas="sect4" id="enable-compression"><title>enable-compression</title>
<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
Whether or not buffered content is compressed before delivery.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Type of value:</term>
<listitem>
<para>
<replaceable>0 or 1</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Default value:</term>
<listitem>
<para>0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if unset:</term>
<listitem>
<para>
Privoxy does not compress buffered content.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Effect if set:</term>
<listitem>
<para>
Privoxy compresses buffered content before delivering it to the client,
provided the client supports it.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
This directive is only supported if Privoxy has been compiled with
FEATURE_COMPRESSION, which should not to be confused with FEATURE_ZLIB.
</para>
<para>
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.
</para>
<para>
Privoxy will not compress buffered content below a certain length.
</para>
</listitem>
</varlistentry>
</variablelist>
<![%config-file;[<literallayout>@@#enable-compression 1</literallayout>]]>
</sect3>
<sect3 renderas="sect4" id="compression-level"><title>compression-level</title>
<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
The compression level that is passed to the zlib library when compressing buffered content.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Type of value:</term>
<listitem>
<para>
<replaceable>Positive number ranging from 0 to 9.</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Default value:</term>
<listitem>
<para>1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
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.
</para>
<para>
If compression is disabled, the compression level is irrelevant.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Examples:</term>
<listitem>
<para>
<screen>
# 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
</screen>
</para>
</listitem>
</varlistentry>
</variablelist>
<![%config-file;[<literallayout>@@#compression-level 1</literallayout>]]>
</sect3>
</sect2> </sect2>
<!-- ~ End section ~ --> <!-- ~ End section ~ -->

View File

@ -5,7 +5,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: 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.
@ -42,7 +42,7 @@
<!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">

View File

@ -3,9 +3,9 @@
Purpose : Entity included in other project documents. Purpose : Entity included in other project documents.
$Id: privoxy.sgml,v 2.12 2011/09/04 11:10:12 fabiankeil Exp $ $Id: privoxy.sgml,v 2.9 2009/03/21 12:42:49 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/ Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE. See LICENSE.
====================================================================== ======================================================================
@ -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>

View File

@ -4,7 +4,7 @@
<!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">
@ -17,9 +17,9 @@
Purpose : README for Privoxy Purpose : README for Privoxy
$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 $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/ Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE. See LICENSE.
======================================================================== ========================================================================
@ -80,7 +80,7 @@
* *
* 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
@ -126,13 +126,37 @@
<!-- 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 ~~~~~ -->
@ -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 &lt;IP&gt;:&lt;Port&gt;, or Be sure to set your browser(s) for HTTP/HTTPS Proxy at &lt;IP&gt;:&lt;Port&gt;, 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>
@ -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>

View File

@ -3,7 +3,7 @@
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.

View File

@ -3,7 +3,7 @@
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.

File diff suppressed because it is too large Load Diff

View File

@ -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://.

View File

@ -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 &apos;
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.
* Most features are controllable on a per-site or per-location basis. * Improved signal handling, and a true daemon mode (Unix).
* 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

View File

@ -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&amp;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&amp;atid=211118" ></TABLE
target="_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&#38;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&#38;atid=211118"
<ul> TARGET="_top"
<li> >http://sourceforge.net/tracker/?group_id=11118&#38;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&amp;atid=460288" the mailing list only, and you won't see them.</P
target= ></DIV
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&amp;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&amp;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&amp;group_id=11118&amp;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&#38;atid=460288"
<li> TARGET="_top"
<p>The operating system and versions you run <span class= > http://sourceforge.net/tracker/?group_id=11118&#38;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&#38;atid=111118"
<span class="APPLICATION">Privoxy</span> work without it?</p> TARGET="_top"
</li> >http://sourceforge.net/tracker/?group_id=11118&#38;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&#38;group_id=11118&#38;atid=111118"
<p class="LITERALLAYOUT"> TARGET="_top"
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;#&nbsp;Log&nbsp;the&nbsp;destination&nbsp;for&nbsp;each&nbsp;request&nbsp;Privoxy&nbsp;let&nbsp;through.&nbsp;See&nbsp;also&nbsp;debug&nbsp;1024.<br> >submit
form</A
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;show&nbsp;each&nbsp;connection&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;show&nbsp;I/O&nbsp;status<br> ><P
> Please try to verify that it is a <SPAN
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;show&nbsp;header&nbsp;parsing<br> CLASS="APPLICATION"
>Privoxy</SPAN
debug&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;debug&nbsp;redirects<br> > bug,
debug&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;debug&nbsp;GIF&nbsp;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&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;Common&nbsp;Log&nbsp;Format<br> try <A
HREF="http://config.privoxy.org/toggle?set=disable"
debug&nbsp;&nbsp;1024&nbsp;#&nbsp;Log&nbsp;the&nbsp;destination&nbsp;for&nbsp;requests&nbsp;Privoxy&nbsp;didn't&nbsp;let&nbsp;through,&nbsp;and&nbsp;the&nbsp;reason&nbsp;why.<br> TARGET="_top"
>toggling
debug&nbsp;&nbsp;4096&nbsp;#&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br> off</A
> <SPAN
debug&nbsp;&nbsp;8192&nbsp;#&nbsp;Non-fatal&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;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&nbsp;32768&nbsp;#&nbsp;log&nbsp;all&nbsp;data&nbsp;read&nbsp;from&nbsp;the&nbsp;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&amp;group_id=11118" > should do,
target="_top">http://sourceforge.net/tracker/?atid=361118&amp;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">&nbsp;</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&#38;group_id=11118"
TARGET="_top"
>http://sourceforge.net/tracker/?atid=361118&#38;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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Privoxy Copyright, License and History</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -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 &copy; 2001-2011 by Privoxy Developers <code class= ALIGN="center"
"EMAIL">&lt;<a href= VALIGN="bottom"
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>&gt;</code></p> ></TD
><TD
<p>Some source code is based on code Copyright &copy; 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">&nbsp;Free&nbsp;Software<br> > Copyright © 2001-2009 by Privoxy Developers <CODE
&nbsp;Foundation,&nbsp;Inc.&nbsp;<span class="STREET">51 Franklin CLASS="EMAIL"
Street, Fifth Floor</span><br> >&#60;<A
&nbsp;<span class="CITY">Boston</span>,&nbsp;<span class= HREF="mailto:ijbswa-developers@lists.sourceforge.net"
"STATE">MA</span>&nbsp;<span class="POSTCODE">02110-1301</span><br> >ijbswa-developers@lists.sourceforge.net</A
&nbsp;<span class="COUNTRY">USA</span>&nbsp;</p> >&#62;</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"> >&nbsp;Free&nbsp;Software<br>
<hr class="c1" width="100%"> &nbsp;Foundation,&nbsp;Inc.&nbsp;<SPAN
CLASS="STREET"
<table summary="Footer navigation table" width="100%" border="0" >51 Franklin Street, Fifth Floor</SPAN
cellpadding="0" cellspacing="0"> ><br>
<tr> &nbsp;<SPAN
<td width="33%" align="left" valign="top"><a href="contact.html" CLASS="CITY"
accesskey="P">Prev</a></td> >Boston</SPAN
>,&nbsp;<SPAN
<td width="34%" align="center" valign="top"><a href="index.html" CLASS="STATE"
accesskey="H">Home</a></td> >MA</SPAN
>&nbsp;<SPAN
<td width="33%" align="right" valign="top"><a href="seealso.html" CLASS="POSTCODE"
accesskey="N">Next</a></td> >02110-1301</SPAN
</tr> ><br>
&nbsp;<SPAN
<tr> CLASS="COUNTRY"
<td width="33%" align="left" valign="top">Contacting the developers, >USA</SPAN
Bug Reporting and Feature Requests</td> >&nbsp;</P
></P
<td width="34%" align="center" valign="top">&nbsp;</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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>See also</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -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 -&gt; 3.0.1 -&gt; 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&amp;group_id=11118&amp;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 -&#62; 3.0.1 -&#62; 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">&nbsp;</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&#38;group_id=11118&#38;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"
>&nbsp;</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

View File

@ -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">&nbsp;</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"
>&nbsp;</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

View File

@ -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
><TITLE
>See also</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="Privoxy Copyright, License and History"
HREF="copyright.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="copyright.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
>&nbsp;</TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="SEEALSO"
>10. See also</A
></H1
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
users:</P
><P
> <P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.privoxy.org/"
TARGET="_top"
>http://www.privoxy.org/</A
>,
the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> Home page.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.privoxy.org/faq/"
TARGET="_top"
>http://www.privoxy.org/faq/</A
>,
the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> FAQ.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.privoxy.org/developer-manual/"
TARGET="_top"
>http://www.privoxy.org/developer-manual/</A
>,
the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> developer manual.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="https://sourceforge.net/projects/ijbswa/"
TARGET="_top"
>https://sourceforge.net/projects/ijbswa/</A
>,
the Project Page for <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> on
<A
HREF="http://sourceforge.net"
TARGET="_top"
>SourceForge</A
>.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://config.privoxy.org/"
TARGET="_top"
>http://config.privoxy.org/</A
>,
the web-based user interface. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> must be
running for this to work. Shortcut: <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
>
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="https://sourceforge.net/tracker/?group_id=11118&#38;atid=460288"
TARGET="_top"
>https://sourceforge.net/tracker/?group_id=11118&#38;atid=460288</A
>, to submit <SPAN
CLASS="QUOTE"
>"misses"</SPAN
> and other
configuration related suggestions to the developers.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>See also</title> <P
<meta name="GENERATOR" content= ></P
"Modular DocBook HTML Stylesheet Version 1.79"> ><TABLE
<link rel="HOME" title="Privoxy Developer Manual" href="index.html"> BORDER="0"
<link rel="PREVIOUS" title="Privoxy Copyright, License and History" href= ><TBODY
"copyright.html"> ><TR
<link rel="STYLESHEET" type="text/css" href="../p_doc.css"> ><TD
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> > <A
<style type="text/css"> HREF="http://www.junkbusters.com/ht/en/cookies.html"
body { TARGET="_top"
background-color: #EEEEEE; >http://www.junkbusters.com/ht/en/cookies.html</A
color: #000000; >,
} an explanation how cookies are used to track web users.
:link { color: #0000FF } </TD
:visited { color: #840084 } ></TR
:active { color: #0000FF } ></TBODY
hr.c1 {text-align: left} ></TABLE
</style> ><P
</head> ></P
>
<body class="SECT1"> <P
<div class="NAVHEADER"> ></P
<table summary="Header navigation table" width="100%" border="0" ><TABLE
cellpadding="0" cellspacing="0"> BORDER="0"
<tr> ><TBODY
<th colspan="3" align="center">Privoxy Developer Manual</th> ><TR
</tr> ><TD
> <A
<tr> HREF="http://www.junkbusters.com/ijb.html"
<td width="10%" align="left" valign="bottom"><a href="copyright.html" TARGET="_top"
accesskey="P">Prev</a></td> >http://www.junkbusters.com/ijb.html</A
>,
<td width="80%" align="center" valign="bottom"></td> the original Internet Junkbuster.
</TD
<td width="10%" align="right" valign="bottom">&nbsp;</td> ></TR
</tr> ></TBODY
</table> ></TABLE
<hr class="c1" width="100%"> ><P
</div> ></P
>
<div class="SECT1"> <P
<h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">10. See also</a></h1> ></P
><TABLE
<p>Other references and sites of interest to <span class= BORDER="0"
"APPLICATION">Privoxy</span> users:</p> ><TBODY
><TR
<table border="0"> ><TD
<tbody> > <A
<tr> HREF="http://www.squid-cache.org/"
<td><a href="http://www.privoxy.org/" target= TARGET="_top"
"_top">http://www.privoxy.org/</a>, the <span class= >http://www.squid-cache.org/</A
"APPLICATION">Privoxy</span> Home page.</td> >, a popular
</tr> caching proxy, which is often used together with <SPAN
</tbody> CLASS="APPLICATION"
</table> >Privoxy</SPAN
>.
<table border="0"> </TD
<tbody> ></TR
<tr> ></TBODY
<td><a href="http://www.privoxy.org/faq/" target= ></TABLE
"_top">http://www.privoxy.org/faq/</a>, the <span class= ><P
"APPLICATION">Privoxy</span> FAQ.</td> ></P
</tr> >
</tbody> <P
</table> ></P
><TABLE
<table border="0"> BORDER="0"
<tbody> ><TBODY
<tr> ><TR
<td><a href="http://www.privoxy.org/developer-manual/" target= ><TD
"_top">http://www.privoxy.org/developer-manual/</a>, the > <A
<span class="APPLICATION">Privoxy</span> developer manual.</td> HREF="http://www.pps.jussieu.fr/~jch/software/polipo/"
</tr> TARGET="_top"
</tbody> >http://www.pps.jussieu.fr/~jch/software/polipo/</A
</table> >,
<SPAN
<table border="0"> CLASS="APPLICATION"
<tbody> >Polipo</SPAN
<tr> > is a caching proxy with advanced features
<td><a href="https://sourceforge.net/projects/ijbswa/" target= like pipelining, multiplexing and caching of partial instances. In many setups
"_top">https://sourceforge.net/projects/ijbswa/</a>, the Project it can be used as <SPAN
Page for <span class="APPLICATION">Privoxy</span> on <a href= CLASS="APPLICATION"
"http://sourceforge.net" target="_top">SourceForge</a>.</td> >Squid</SPAN
</tr> > replacement.
</tbody> </TD
</table> ></TR
></TBODY
<table border="0"> ></TABLE
<tbody> ><P
<tr> ></P
<td><a href="http://config.privoxy.org/" target= >
"_top">http://config.privoxy.org/</a>, the web-based user <P
interface. <span class="APPLICATION">Privoxy</span> must be running ></P
for this to work. Shortcut: <a href="http://p.p/" target= ><TABLE
"_top">http://p.p/</a></td> BORDER="0"
</tr> ><TBODY
</tbody> ><TR
</table> ><TD
> <A
<table border="0"> HREF="https://www.torproject.org/"
<tbody> TARGET="_top"
<tr> >https://www.torproject.org/</A
<td><a href= >,
"https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288" <SPAN
target= CLASS="APPLICATION"
"_top">https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>, >Tor</SPAN
to submit <span class="QUOTE">"misses"</span> and other > can help anonymize web browsing,
configuration related suggestions to the developers.</td> web publishing, instant messaging, IRC, SSH, and other applications.
</tr> </TD
</tbody> ></TR
</table> ></TBODY
></TABLE
<table border="0"> ><P
<tbody> ></P
<tr> >
<td><a href="http://www.junkbusters.com/ht/en/cookies.html" target= </P
"_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an ></DIV
explanation how cookies are used to track web users.</td> ><DIV
</tr> CLASS="NAVFOOTER"
</tbody> ><HR
</table> ALIGN="LEFT"
WIDTH="100%"><TABLE
<table border="0"> SUMMARY="Footer navigation table"
<tbody> WIDTH="100%"
<tr> BORDER="0"
<td><a href="http://www.junkbusters.com/ijb.html" target= CELLPADDING="0"
"_top">http://www.junkbusters.com/ijb.html</a>, the original CELLSPACING="0"
Internet Junkbuster.</td> ><TR
</tr> ><TD
</tbody> WIDTH="33%"
</table> ALIGN="left"
VALIGN="top"
<table border="0"> ><A
<tbody> HREF="copyright.html"
<tr> ACCESSKEY="P"
<td><a href="http://www.squid-cache.org/" target= >Prev</A
"_top">http://www.squid-cache.org/</a>, a popular caching proxy, ></TD
which is often used together with <span class= ><TD
"APPLICATION">Privoxy</span>.</td> WIDTH="34%"
</tr> ALIGN="center"
</tbody> VALIGN="top"
</table> ><A
HREF="index.html"
<table border="0"> ACCESSKEY="H"
<tbody> >Home</A
<tr> ></TD
<td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/" ><TD
target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, WIDTH="33%"
<span class="APPLICATION">Polipo</span> is a caching proxy with ALIGN="right"
advanced features like pipelining, multiplexing and caching of VALIGN="top"
partial instances. In many setups it can be used as <span class= >&nbsp;</TD
"APPLICATION">Squid</span> replacement.</td> ></TR
</tr> ><TR
</tbody> ><TD
</table> WIDTH="33%"
ALIGN="left"
<table border="0"> VALIGN="top"
<tbody> >Privoxy Copyright, License and History</TD
<tr> ><TD
<td><a href="https://www.torproject.org/" target= WIDTH="34%"
"_top">https://www.torproject.org/</a>, <span class= ALIGN="center"
"APPLICATION">Tor</span> can help anonymize web browsing, web VALIGN="top"
publishing, instant messaging, IRC, SSH, and other >&nbsp;</TD
applications.</td> ><TD
</tr> WIDTH="33%"
</tbody> ALIGN="right"
</table> VALIGN="top"
</div> >&nbsp;</TD
></TR
<div class="NAVFOOTER"> ></TABLE
<hr class="c1" width="100%"> ></DIV
></BODY
<table summary="Footer navigation table" width="100%" border="0" ></HTML
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">&nbsp;</td>
</tr>
<tr>
<td width="33%" align="left" valign="top">Privoxy Copyright, License
and History</td>
<td width="34%" align="center" valign="top">&nbsp;</td>
<td width="33%" align="right" valign="top">&nbsp;</td>
</tr>
</table>
</div>
</body>
</html>

View File

@ -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&#38;group_id=11118&#38;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&amp;group_id=11118&amp;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"
>&nbsp;</TD
<tr> ><TD
<td width="33%" align="left" valign="top">Coding Guidelines</td> WIDTH="33%"
ALIGN="right"
<td width="34%" align="center" valign="top">&nbsp;</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>

View File

@ -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">&nbsp;</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"
>&nbsp;</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

View File

@ -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&amp;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&amp;atid=211118" ><HR
target="_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&#38;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&#38;atid=211118"
TARGET="_top"
<ul> >http://sourceforge.net/tracker/?group_id=11118&#38;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&amp;atid=460288" ></DIV
target= ><DIV
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&amp;atid=111118" don't function properly due to one <SPAN
target= CLASS="APPLICATION"
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&amp;group_id=11118&amp;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&#38;atid=460288"
TARGET="_top"
<li> > http://sourceforge.net/tracker/?group_id=11118&#38;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&#38;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&#38;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&#38;group_id=11118&#38;atid=111118"
TARGET="_top"
<p class="LITERALLAYOUT"> >submit
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;#&nbsp;Log&nbsp;the&nbsp;destination&nbsp;for&nbsp;each&nbsp;request&nbsp;Privoxy&nbsp;let&nbsp;through.&nbsp;See&nbsp;also&nbsp;debug&nbsp;1024.<br> form</A
>. If already submitted, please feel free to add any info to the
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;show&nbsp;each&nbsp;connection&nbsp;status<br> original report that might help to solve the issue.</P
><P
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;show&nbsp;I/O&nbsp;status<br> > Please try to verify that it is a <SPAN
CLASS="APPLICATION"
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;show&nbsp;header&nbsp;parsing<br> >Privoxy</SPAN
> bug,
debug&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;debug&nbsp;redirects<br> and not a browser or site bug or documented behaviour that just happens
debug&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;debug&nbsp;GIF&nbsp;de-animation<br> to be different than what you expected. If unsure,
try <A
debug&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;Common&nbsp;Log&nbsp;Format<br> HREF="http://config.privoxy.org/toggle?set=disable"
TARGET="_top"
debug&nbsp;&nbsp;1024&nbsp;#&nbsp;Log&nbsp;the&nbsp;destination&nbsp;for&nbsp;requests&nbsp;Privoxy&nbsp;didn't&nbsp;let&nbsp;through,&nbsp;and&nbsp;the&nbsp;reason&nbsp;why.<br> >toggling
off</A
debug&nbsp;&nbsp;4096&nbsp;#&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br> > <SPAN
CLASS="APPLICATION"
debug&nbsp;&nbsp;8192&nbsp;#&nbsp;Non-fatal&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;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&nbsp;32768&nbsp;#&nbsp;log&nbsp;all&nbsp;data&nbsp;read&nbsp;from&nbsp;the&nbsp;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&amp;group_id=11118" in case of GNU/Linux, please also name the distribution.
target="_top">http://sourceforge.net/tracker/?atid=361118&amp;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">&nbsp;</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&#38;group_id=11118"
TARGET="_top"
>http://sourceforge.net/tracker/?atid=361118&#38;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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Privoxy Copyright, License and History</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -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">&nbsp;</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 &copy; 2001-2011 by Privoxy Developers <code class= ><TD
"EMAIL">&lt;<a href= WIDTH="10%"
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>&gt;</code></p> ALIGN="right"
VALIGN="bottom"
<p>Some source code is based on code Copyright &copy; 1997 by Anonymous >&nbsp;</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 >&#60;<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= >&#62;</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">&nbsp;Free&nbsp;Software<br> License</I
&nbsp;Foundation,&nbsp;Inc.&nbsp;<span class="STREET">51 Franklin >.</P
Street, Fifth Floor</span><br> ><P
&nbsp;<span class="CITY">Boston</span>,&nbsp;<span class= > Portions of this document are <SPAN
"STATE">MA</span>&nbsp;<span class="POSTCODE">02110-1301</span><br> CLASS="QUOTE"
&nbsp;<span class="COUNTRY">USA</span>&nbsp;</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"
>&nbsp;Free&nbsp;Software<br>
<table summary="Footer navigation table" width="100%" border="0" &nbsp;Foundation,&nbsp;Inc.&nbsp;<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> &nbsp;<SPAN
CLASS="CITY"
<td width="34%" align="center" valign="top"><a href="index.html" >Boston</SPAN
accesskey="H">Home</a></td> >,&nbsp;<SPAN
CLASS="STATE"
<td width="33%" align="right" valign="top">&nbsp;</td> >MA</SPAN
</tr> >&nbsp;<SPAN
CLASS="POSTCODE"
<tr> >02110-1301</SPAN
<td width="33%" align="left" valign="top">Contacting the developers, ><br>
Bug Reporting and Feature Requests</td> &nbsp;<SPAN
CLASS="COUNTRY"
<td width="34%" align="center" valign="top">&nbsp;</td> >USA</SPAN
>&nbsp;</P
<td width="33%" align="right" valign="top">&nbsp;</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"
>&nbsp;</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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</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

View File

@ -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
><TITLE
>Installation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="General Information"
HREF="general.html"><LINK
REL="NEXT"
TITLE="Configuration"
HREF="configuration.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 Frequently Asked Questions</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="general.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="configuration.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="INSTALLATION"
>2. Installation</A
></H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="WHICHBROWSERS"
>2.1. Which browsers are supported by Privoxy?</A
></H3
><P
> Any browser that can be configured to use a proxy, which
should be virtually all browsers, including
<SPAN
CLASS="APPLICATION"
>Firefox</SPAN
>, <SPAN
CLASS="APPLICATION"
>Internet
Explorer</SPAN
>, <SPAN
CLASS="APPLICATION"
>Opera</SPAN
>, and
<SPAN
CLASS="APPLICATION"
>Safari</SPAN
> among others.
Direct browser support is not an absolute requirement since
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> runs as a separate application and talks
to the browser in the standardized HTTP protocol, just like a web server
does.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="WHICHOS"
>2.2. Which operating systems are supported?</A
></H3
><P
> At present, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is known to run on
Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, SuSE, Debian,
Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, AmigaOS, FreeBSD,
NetBSD, OpenBSD, Solaris, and various other flavors of Unix.</P
><P
> But any operating system that runs TCP/IP, can conceivably take advantage of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> in a networked situation where
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> would run as a server on a LAN gateway.
Then only the <SPAN
CLASS="QUOTE"
>"gateway"</SPAN
> needs to be running one of the above
operating systems.</P
><P
> Source code is freely available, so porting to other operating systems
is always a possibility.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="EMAIL-CLIENT"
>2.3. Can I use Privoxy with my email client?</A
></H3
><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
<SPAN
CLASS="QUOTE"
>"browser"</SPAN
> or not. Though this may not be the best approach for
dealing with some of the common abuses of HTML in email. See <A
HREF="configuration.html#OUTLOOK"
>How can I configure <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
with <SPAN
CLASS="APPLICATION"
>Outlook</SPAN
>?</A
> below for more on
this. </P
><P
> Be aware that HTML email presents a number of unique security and privacy
related issues, that can require advanced skills to overcome. The developers
recommend using email clients that can be configured to convert HTML to plain
text for these reasons.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="FIRSTSTEP"
>2.4. I just installed Privoxy. Is there anything
special I have to do now?</A
></H3
><P
> All browsers should be told to use <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
as a proxy by specifying the correct proxy address and port number
in the appropriate configuration area for the browser. It's possible
to combine <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with a packet filter to intercept HTTP requests
even if the client isn't explicitly configured to use <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>,
but where possible, configuring the client is recommended. See
<A
HREF="../user-manual/startup.html"
TARGET="_top"
>the User Manual for more
details</A
>. You should also flush your browser's memory and disk
cache to get rid of any cached junk items, and remove any stored
<A
HREF="http://en.wikipedia.org/wiki/Browser_cookie"
TARGET="_top"
>cookies</A
>.&#13;</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="LOCALHOST"
>2.5. What is the proxy address of Privoxy?</A
></H3
><P
> If you set up the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> to run on
the computer you browse from (rather than your ISP's server or some
networked computer on a LAN), the proxy will be on <TT
CLASS="LITERAL"
>127.0.0.1</TT
>
(sometimes referred to as <SPAN
CLASS="QUOTE"
>"localhost"</SPAN
>,
which is the special name used by every computer on the Internet to refer
to itself) and the port will be 8118 (unless you used the <A
HREF="../user-manual/config.html#LISTEN-ADDRESS"
TARGET="_top"
>listen-address</A
>
config option to tell <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> to run on
a different port).
</P
><P
> When configuring your browser's proxy settings you typically enter
the word <SPAN
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
>.
<html> This should take you to a page titled <SPAN
<head> CLASS="QUOTE"
<meta name="generator" content= >"This is Privoxy.."</SPAN
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> > with
access to <SPAN
<title>Installation</title> CLASS="APPLICATION"
<meta name="GENERATOR" content= >Privoxy's</SPAN
"Modular DocBook HTML Stylesheet Version 1.79"> > internal configuration.
<link rel="HOME" title="Privoxy Frequently Asked Questions" href= If you see this, then you are good to go. If you receive a page saying
"index.html"> <SPAN
<link rel="PREVIOUS" title="General Information" href="general.html"> CLASS="QUOTE"
<link rel="NEXT" title="Configuration" href="configuration.html"> >"Privoxy is not running"</SPAN
<link rel="STYLESHEET" type="text/css" href="../p_doc.css"> >, then the browser is not set up to use
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> your <SPAN
<style type="text/css"> CLASS="APPLICATION"
body { >Privoxy</SPAN
background-color: #EEEEEE; > installation.
color: #000000; If you receive anything else (probably nothing at all), it could either
} be that the browser is not set up correctly, or that
:link { color: #0000FF } <SPAN
:visited { color: #840084 } CLASS="APPLICATION"
:active { color: #0000FF } >Privoxy</SPAN
span.c2 {font-style: italic} > is not running at all. Check the <A
hr.c1 {text-align: left} HREF="../user-manual/config.html#LOGFILE"
</style> TARGET="_top"
</head> >log file</A
>. For instructions
<body class="SECT1"> on starting <SPAN
<div class="NAVHEADER"> CLASS="APPLICATION"
<table summary="Header navigation table" width="100%" border="0" >Privoxy</SPAN
cellpadding="0" cellspacing="0"> > and browser configuration,
<tr> see the <A
<th colspan="3" align="center">Privoxy Frequently Asked HREF="http://www.privoxy.org/user-manual/startup.html"
Questions</th> TARGET="_top"
</tr> >chapter
on starting <SPAN
<tr> CLASS="APPLICATION"
<td width="10%" align="left" valign="bottom"><a href="general.html" >Privoxy</SPAN
accesskey="P">Prev</a></td> ></A
> in the
<td width="80%" align="center" valign="bottom"></td> <A
HREF="http://www.privoxy.org/user-manual/"
<td width="10%" align="right" valign="bottom"><a href= TARGET="_top"
"configuration.html" accesskey="N">Next</a></td> >User Manual</A
</tr> >.</P
</table> ></DIV
<hr class="c1" width="100%"> ><DIV
</div> CLASS="SECT2"
><H3
<div class="SECT1"> CLASS="SECT2"
<h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2. ><A
Installation</a></h1> NAME="NOTUSED"
>2.7. I get a <SPAN
<div class="SECT2"> CLASS="QUOTE"
<h3 class="SECT2"><a name="WHICHBROWSERS" id="WHICHBROWSERS">2.1. Which >"Privoxy is not being used"</SPAN
browsers are supported by Privoxy?</a></h3> > dummy page although
Privoxy is running and being used.</A
<p>Any browser that can be configured to use a proxy, which should be ></H3
virtually all browsers, including <span class= ><P
"APPLICATION">Firefox</span>, <span class="APPLICATION">Internet > First, make sure that Privoxy is <SPAN
Explorer</span>, <span class="APPLICATION">Opera</span>, and CLASS="emphasis"
<span class="APPLICATION">Safari</span> among others. Direct browser ><I
support is not an absolute requirement since <span class= CLASS="EMPHASIS"
"APPLICATION">Privoxy</span> runs as a separate application and talks >really</I
to the browser in the standardized HTTP protocol, just like a web ></SPAN
server does.</p> > running and
</div> being used by visiting <A
HREF="http://p.p/"
<div class="SECT2"> TARGET="_top"
<h3 class="SECT2"><a name="WHICHOS" id="WHICHOS">2.2. Which operating >http://p.p/</A
systems are supported?</a></h3> >. You
should see the <SPAN
<p>At present, <span class="APPLICATION">Privoxy</span> is known to run CLASS="APPLICATION"
on Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, SuSE, >Privoxy</SPAN
Debian, Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, AmigaOS, > main page. If not, see
FreeBSD, NetBSD, OpenBSD, Solaris, and various other flavors of the <A
Unix.</p> HREF="http://www.privoxy.org/user-manual/startup.html"
TARGET="_top"
<p>But any operating system that runs TCP/IP, can conceivably take >chapter
advantage of <span class="APPLICATION">Privoxy</span> in a networked on starting <SPAN
situation where <span class="APPLICATION">Privoxy</span> would run as a CLASS="APPLICATION"
server on a LAN gateway. Then only the <span class= >Privoxy</SPAN
"QUOTE">"gateway"</span> needs to be running one of the above operating ></A
systems.</p> > in the
<A
<p>Source code is freely available, so porting to other operating HREF="http://www.privoxy.org/user-manual/"
systems is always a possibility.</p> TARGET="_top"
</div> >User Manual</A
>.</P
<div class="SECT2"> ><P
<h3 class="SECT2"><a name="EMAIL-CLIENT" id="EMAIL-CLIENT">2.3. Can I > Now if <A
use Privoxy with my email client?</a></h3> HREF="http://p.p/"
TARGET="_top"
<p>As long as there is some way to set a HTTP proxy for the client, >http://p.p/</A
then yes, any application can be used, whether it is strictly speaking > works for you, but
a <span class="QUOTE">"browser"</span> or not. Though this may not be other parts of <SPAN
the best approach for dealing with some of the common abuses of HTML in CLASS="APPLICATION"
email. See <a href="configuration.html#OUTLOOK">How can I configure >Privoxy</SPAN
<span class="APPLICATION">Privoxy</span> with <span class= >'s web interface show
"APPLICATION">Outlook</span>?</a> below for more on this.</p> the dummy page, your browser has cached a redirection it encountered before
<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. >Privoxy</SPAN
The developers recommend using email clients that can be configured to > was being used. You need to clear your
convert HTML to plain text for these reasons.</p> browser's cache. Note that shift-reloading the dummy page won't help, since
</div> that'll only refresh the dummy page, not the redirection that lead you there.</P
><P
<div class="SECT2"> > The procedure for clearing the cache varies from browser to browser. For
<h3 class="SECT2"><a name="FIRSTSTEP" id="FIRSTSTEP">2.4. I just example, <SPAN
installed Privoxy. Is there anything special I have to do now?</a></h3> CLASS="APPLICATION"
>Mozilla/Netscape</SPAN
<p>All browsers should be told to use <span class= > users would click
"APPLICATION">Privoxy</span> as a proxy by specifying the correct proxy <SPAN
address and port number in the appropriate configuration area for the CLASS="GUIBUTTON"
browser. It's possible to combine <span class= >Edit</SPAN
"APPLICATION">Privoxy</span> with a packet filter to intercept HTTP > --&#62; <SPAN
requests even if the client isn't explicitly configured to use CLASS="GUIBUTTON"
<span class="APPLICATION">Privoxy</span>, but where possible, >Preferences</SPAN
configuring the client is recommended. See <a href= > --&#62;
"../user-manual/startup.html" target="_top">the User Manual for more <SPAN
details</a>. You should also flush your browser's memory and disk cache CLASS="GUIBUTTON"
to get rid of any cached junk items, and remove any stored <a href= >Advanced</SPAN
"http://en.wikipedia.org/wiki/Browser_cookie" target= > --&#62; <SPAN
"_top">cookies</a>.</p> CLASS="GUIBUTTON"
</div> >Cache</SPAN
> and
<div class="SECT2"> then click both <SPAN
<h3 class="SECT2"><a name="LOCALHOST" id="LOCALHOST">2.5. What is the CLASS="QUOTE"
proxy address of Privoxy?</a></h3> >"<SPAN
CLASS="GUIBUTTON"
<p>If you set up the <span class="APPLICATION">Privoxy</span> to run on >Clear Memory Cache</SPAN
the computer you browse from (rather than your ISP's server or some >"</SPAN
networked computer on a LAN), the proxy will be on <tt class= >
"LITERAL">127.0.0.1</tt> (sometimes referred to as <span class= and <SPAN
"QUOTE">"localhost"</span>, which is the special name used by every CLASS="QUOTE"
computer on the Internet to refer to itself) and the port will be 8118 >"<SPAN
(unless you used the <a href= CLASS="GUIBUTTON"
"../user-manual/config.html#LISTEN-ADDRESS" target= >Clear Disk Cache</SPAN
"_top">listen-address</a> config option to tell <span class= >"</SPAN
"APPLICATION">Privoxy</span> to run on a different port).</p> >.
In some <SPAN
<p>When configuring your browser's proxy settings you typically enter CLASS="APPLICATION"
the word <span class="QUOTE">"localhost"</span> or the IP address >Firefox</SPAN
<span class="QUOTE">"127.0.0.1"</span> in the boxes next to > versions it's
<span class="QUOTE">"HTTP"</span> and <span class= <SPAN
"QUOTE">"Secure"</span> (HTTPS) and then the number <span class= CLASS="GUIBUTTON"
"QUOTE">"8118"</span> for <span class="QUOTE">"port"</span>. This tells >Tools</SPAN
your browser to send all web requests to <span class= > --&#62; <SPAN
"APPLICATION">Privoxy</span> instead of directly to the Internet.</p> CLASS="GUIBUTTON"
>Options</SPAN
<p><span class="APPLICATION">Privoxy</span> can also be used to proxy > --&#62;
for a Local Area Network. In this case, your would enter either the IP <SPAN
address of the LAN host where <span class="APPLICATION">Privoxy</span> CLASS="GUIBUTTON"
is running, or the equivalent hostname, e.g. <tt class= >Privacy</SPAN
"LITERAL">192.168.1.1</tt>. Port assignment would be same as above. > --&#62; <SPAN
Note that <span class="APPLICATION">Privoxy</span> doesn't listen on CLASS="GUIBUTTON"
any LAN interfaces by default.</p> >Cache</SPAN
> and
<p><span class="APPLICATION">Privoxy</span> does not currently handle then click <SPAN
any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.</p> CLASS="QUOTE"
</div> >"<SPAN
CLASS="GUIBUTTON"
<div class="SECT2"> >Clear Cache Now</SPAN
<h3 class="SECT2"><a name="NOTHING" id="NOTHING">2.6. I just installed >"</SPAN
Privoxy, and nothing is happening. All the ads are there. What's >.
wrong?</a></h3> </P
></DIV
<p>Did you configure your browser to use <span class= ></DIV
"APPLICATION">Privoxy</span> as a proxy? It does not sound like it. See ><DIV
above. You might also try flushing the browser's caches to force a full CLASS="NAVFOOTER"
re-reading of pages. You can verify that <span class= ><HR
"APPLICATION">Privoxy</span> is running, and your browser is correctly ALIGN="LEFT"
configured by entering the special URL: <a href="http://p.p/" target= WIDTH="100%"><TABLE
"_top">http://p.p/</a>. This should take you to a page titled SUMMARY="Footer navigation table"
<span class="QUOTE">"This is Privoxy.."</span> with access to WIDTH="100%"
<span class="APPLICATION">Privoxy's</span> internal configuration. If BORDER="0"
you see this, then you are good to go. If you receive a page saying CELLPADDING="0"
<span class="QUOTE">"Privoxy is not running"</span>, then the browser CELLSPACING="0"
is not set up to use your <span class="APPLICATION">Privoxy</span> ><TR
installation. If you receive anything else (probably nothing at all), ><TD
it could either be that the browser is not set up correctly, or that WIDTH="33%"
<span class="APPLICATION">Privoxy</span> is not running at all. Check ALIGN="left"
the <a href="../user-manual/config.html#LOGFILE" target="_top">log VALIGN="top"
file</a>. For instructions on starting <span class= ><A
"APPLICATION">Privoxy</span> and browser configuration, see the HREF="general.html"
<a href="http://www.privoxy.org/user-manual/startup.html" target= ACCESSKEY="P"
"_top">chapter on starting <span class="APPLICATION">Privoxy</span></a> >Prev</A
in the <a href="http://www.privoxy.org/user-manual/" target="_top">User ></TD
Manual</a>.</p> ><TD
</div> WIDTH="34%"
ALIGN="center"
<div class="SECT2"> VALIGN="top"
<h3 class="SECT2"><a name="NOTUSED" id="NOTUSED">2.7. I get a ><A
<span class="QUOTE">"Privoxy is not being used"</span> dummy page HREF="index.html"
although Privoxy is running and being used.</a></h3> ACCESSKEY="H"
>Home</A
<p>First, make sure that Privoxy is <span class= ></TD
"emphasis EMPHASIS c2">really</span> running and being used by visiting ><TD
<a href="http://p.p/" target="_top">http://p.p/</a>. You should see the WIDTH="33%"
<span class="APPLICATION">Privoxy</span> main page. If not, see the ALIGN="right"
<a href="http://www.privoxy.org/user-manual/startup.html" target= VALIGN="top"
"_top">chapter on starting <span class="APPLICATION">Privoxy</span></a> ><A
in the <a href="http://www.privoxy.org/user-manual/" target="_top">User HREF="configuration.html"
Manual</a>.</p> ACCESSKEY="N"
>Next</A
<p>Now if <a href="http://p.p/" target="_top">http://p.p/</a> works for ></TD
you, but other parts of <span class="APPLICATION">Privoxy</span>'s web ></TR
interface show the dummy page, your browser has cached a redirection it ><TR
encountered before <span class="APPLICATION">Privoxy</span> was being ><TD
used. You need to clear your browser's cache. Note that shift-reloading WIDTH="33%"
the dummy page won't help, since that'll only refresh the dummy page, ALIGN="left"
not the redirection that lead you there.</p> VALIGN="top"
>General Information</TD
<p>The procedure for clearing the cache varies from browser to browser. ><TD
For example, <span class="APPLICATION">Mozilla/Netscape</span> users WIDTH="34%"
would click <span class="GUIBUTTON">Edit</span> --&gt; <span class= ALIGN="center"
"GUIBUTTON">Preferences</span> --&gt; <span class= VALIGN="top"
"GUIBUTTON">Advanced</span> --&gt; <span class="GUIBUTTON">Cache</span> >&nbsp;</TD
and then click both <span class="QUOTE">"<span class="GUIBUTTON">Clear ><TD
Memory Cache</span>"</span> and <span class="QUOTE">"<span class= WIDTH="33%"
"GUIBUTTON">Clear Disk Cache</span>"</span>. In some <span class= ALIGN="right"
"APPLICATION">Firefox</span> versions it's <span class= VALIGN="top"
"GUIBUTTON">Tools</span> --&gt; <span class="GUIBUTTON">Options</span> >Configuration</TD
--&gt; <span class="GUIBUTTON">Privacy</span> --&gt; <span class= ></TR
"GUIBUTTON">Cache</span> and then click <span class= ></TABLE
"QUOTE">"<span class="GUIBUTTON">Clear Cache Now</span>"</span>.</p> ></DIV
</div> ></BODY
</div> ></HTML
>
<div class="NAVFOOTER">
<hr class="c1" 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">&nbsp;</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

View File

@ -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
><TITLE
>Privoxy - Home Page</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><META
NAME="KEYWORD"
CONTENT="privoxy"><META
NAME="KEYWORD"
CONTENT="HTTP"><META
NAME="KEYWORD"
CONTENT="proxy"><META
NAME="KEYWORD"
CONTENT="privacy"><META
NAME="KEYWORD"
CONTENT="popups"><META
NAME="KEYWORD"
CONTENT="po-ups"><META
NAME="KEYWORD"
CONTENT="HTML"><META
NAME="KEYWORD"
CONTENT="JavaScript"><META
NAME="KEYWORD"
CONTENT="cleaning"><META
NAME="KEYWORD"
CONTENT="blocking"><META
NAME="KEYWORD"
CONTENT="cleaner"><META
NAME="KEYWORD"
CONTENT="blocker"><META
NAME="KEYWORD"
CONTENT="filter"><META
NAME="KEYWORD"
CONTENT="proxy"><META
NAME="KEYWORD"
CONTENT="junk"><META
NAME="KEYWORD"
CONTENT="ad"><META
NAME="KEYWORD"
CONTENT="advertisement"><META
NAME="KEYWORD"
CONTENT="banner"><META
NAME="KEYWORD"
CONTENT="webbugs"><META
NAME="KEYWORD"
CONTENT="web-bugs"><META
NAME="KEYWORD"
CONTENT="werbung"><META
NAME="KEYWORD"
CONTENT="junkbusters"><META
NAME="KEYWORD"
CONTENT="junkbuster"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="p_doc.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html;
charset=ISO-8859-1">
<meta name="description" content="Privoxy helps users to protect their privacy.">
<meta name="MSSmartTagsPreventParsing" content="TRUE"></HEAD
><BODY
CLASS="ARTICLE"
BGCOLOR="#EEEEEE"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
>Privoxy - Home Page</A
></H1
><DIV
><DIV
CLASS="ABSTRACT"
><P
></P
><A
NAME="AEN28"
></A
><P
> Privoxy is a non-caching web proxy with advanced filtering capabilities
for enhancing privacy, modifying web page data and HTTP headers, controlling
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
><P
> Privoxy is Free Software and licensed under the GPL2.</P
><P
> Privoxy is an associated project of Software in the Public Interest (SPI).
<A
HREF="http://www.privoxy.org/faq/general.html#DONATE"
TARGET="_top"
>Donations are welcome</A
>.</P
><P
> The most recent release is <A
HREF="announce.txt"
TARGET="_top"
>3.0.12 (stable)</A
>.
</P
><P
></P
></DIV
></DIV
><HR></DIV
><DIV
CLASS="SECT1"
><H3
CLASS="SECT1"
><A
NAME="DOWNLOAD"
>Download</A
></H3
><P
> <P
></P
><UL
><LI
><P
> <A
HREF="https://sourceforge.net/project/showfiles.php?group_id=11118"
TARGET="_top"
>Download recent releases</A
>
</P
></LI
><LI
><P
> <A
HREF="user-manual/quickstart.html"
TARGET="_top"
>Quickstart after installation</A
>
</P
></LI
></UL
></P
></DIV
><DIV
CLASS="SECT1"
><HR><H3
CLASS="SECT1"
><A
NAME="DOCS"
>Documentation</A
></H3
><P
> <P
></P
><UL
><LI
><P
> <A
HREF="user-manual/index.html"
TARGET="_top"
>User manual</A
>
</P
></LI
><LI
><P
> <A
HREF="faq/index.html"
TARGET="_top"
>Frequently Asked Questions</A
>
</P
></LI
><LI
><P
> <A
HREF="developer-manual/index.html"
TARGET="_top"
>Developer Manual</A
>
</P
></LI
><LI
><P
> <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 &#38; Service</A
>
</P
></LI
><LI
><P
> <A
HREF="user-manual/copyright.html"
TARGET="_top"
>Copyright, License, History &#38; 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
>
<html> <A
<head> HREF="http://privoxy.org/team/index.html"
<meta name="generator" content= TARGET="_top"
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> >Pictures of the Privoxy Team</A
>
<title>Privoxy - Home Page</title> </P
<meta name="GENERATOR" content= ></LI
"Modular DocBook HTML Stylesheet Version 1.79"> ></UL
<meta name="KEYWORD" content="privoxy"> ></P
<meta name="KEYWORD" content="HTTP"> ></DIV
<meta name="KEYWORD" content="proxy"> ><DIV
<meta name="KEYWORD" content="privacy"> CLASS="SECT1"
<meta name="KEYWORD" content="popups"> ><HR><H2
<meta name="KEYWORD" content="po-ups"> CLASS="SECT1"
<meta name="KEYWORD" content="HTML"> ><A
<meta name="KEYWORD" content="JavaScript"> NAME="AEN83"
<meta name="KEYWORD" content="cleaning"> ></A
<meta name="KEYWORD" content="blocking"> ></H2
<meta name="KEYWORD" content="cleaner"> ><P
<meta name="KEYWORD" content="blocker"> ><DIV
<meta name="KEYWORD" content="filter"> CLASS="INFORMALTABLE"
<meta name="KEYWORD" content="proxy"> ><P
<meta name="KEYWORD" content="junk"> ></P
<meta name="KEYWORD" content="ad"> ><A
<meta name="KEYWORD" content="advertisement"> NAME="AEN86"
<meta name="KEYWORD" content="banner"> ></A
<meta name="KEYWORD" content="webbugs"> ><TABLE
<meta name="KEYWORD" content="web-bugs"> BORDER="0"
<meta name="KEYWORD" content="werbung"> FRAME="void"
<meta name="KEYWORD" content="junkbusters"> RULES="all"
<meta name="KEYWORD" content="junkbuster"> WIDTH="100%"
<link rel="STYLESHEET" type="text/css" href="p_doc.css"> CLASS="CALSTABLE"
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> ><COL
<meta name="description" content= WIDTH="100%"
"Privoxy helps users to protect their privacy."> ALIGN="CENTER"
<meta name="MSSmartTagsPreventParsing" content="TRUE"> TITLE="C1"><TBODY
<style type="text/css"> ><TR
body { ><TD
background-color: #EEEEEE; ALIGN="CENTER"
color: #000000; >Privoxy is developed on:</TD
} ></TR
:link { color: #0000FF } ><TR
:visited { color: #840084 } ><TD
:active { color: #0000FF } ALIGN="CENTER"
col.c1 {text-align: center} > <A
</style> HREF="http://sourceforge.net/"
</head> TARGET="_top"
> <IMG
<body class="ARTICLE"> SRC="http://sourceforge.net/sflogo.php?group_id=11118&#38;type=1&#38;dummy=.gif">
<div class="ARTICLE"> </A
<div class="TITLEPAGE"> >
<h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - Home Page</a></h1> </TD
></TR
<div class="ABSTRACT"> ></TBODY
<a name="AEN28" id="AEN28"></a> ></TABLE
><P
<p>Privoxy is a non-caching web proxy with advanced filtering ></P
capabilities for enhancing privacy, modifying web page data and HTTP ></DIV
headers, controlling access, and removing ads and other obnoxious ></P
Internet junk. Privoxy has a flexible configuration and can be ><P
customized to suit individual needs and tastes. It has application > <SUB
for both stand-alone systems and multi-user networks.</p> > Copyright &copy; 2001-2009 by Privoxy Developers
</SUB
<p>Privoxy is Free Software and licensed under the GNU GPLv2.</p> ></P
></DIV
<p>Privoxy is an associated project of Software in the Public ></DIV
Interest (SPI).</p> ></BODY
></HTML
<p>Helping hands and donations are welcome:</p> >
<ul>
<li>
<p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE"
target=
"_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
</li>
<li>
<p><a href="http://www.privoxy.org/faq/general.html#DONATE"
target=
"_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
</li>
</ul>
<p>The most recent release is <a href="announce.txt" target=
"_top">3.0.19 (stable)</a>.</p>
</div>
<hr>
</div>
<div class="SECT1">
<h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3>
<ul>
<li>
<p><a href="https://sourceforge.net/projects/ijbswa/files/" target=
"_top">Download recent releases</a></p>
</li>
<li>
<p><a href="user-manual/quickstart.html" target="_top">Quickstart
after installation</a></p>
</li>
</ul>
</div>
<div class="SECT1">
<hr>
<h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3>
<ul>
<li>
<p><a href="user-manual/index.html" target="_top">User
manual</a></p>
</li>
<li>
<p><a href="faq/index.html" target="_top">Frequently Asked
Questions</a></p>
</li>
<li>
<p><a href="developer-manual/index.html" target="_top">Developer
Manual</a></p>
</li>
<li>
<p><a href="man-page/privoxy-man-page.html" target="_top">Classic
Man Page</a></p>
</li>
</ul>
</div>
<div class="SECT1">
<hr>
<h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More
information</a></h3>
<ul>
<li>
<p><a href="user-manual/contact.html" target="_top">Support &amp;
Service</a></p>
</li>
<li>
<p><a href="user-manual/copyright.html" target="_top">Copyright,
License, History &amp; 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://www.privoxy.org/team/index.html" target=
"_top">Pictures of the Privoxy Team</a></p>
</li>
</ul>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN90" id="AEN90"></a></h2>
<div class="INFORMALTABLE">
<a name="AEN93" id="AEN93"></a>
<table border="0" frame="void" rules="all" width="100%" class=
"CALSTABLE">
<col class="c1" width="100%" 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&amp;type=1&amp;dummy=.gif"></a></td>
</tr>
</tbody>
</table>
</div>
<p><sub>Copyright &copy; 2001-2010 by Privoxy Developers</sub></p>
</div>
</div>
</body>
</html>

View File

@ -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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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>
</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>
<h2>INSTALLATION AND USAGE</h2> <P>
<pre>
Browsers can either be individually configured to use <b>Privoxy</b> as a HTTP
proxy (recommended), or <b>Privoxy</b> can be combined with a packet 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</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> Various other files should be included, but may vary depending on platform
<b>tions</b>; <b>LAN</b> <b>Settings</b>. and build configuration. Additional documentation should be included in the local
documentation directory.
<A NAME="lbAI">&nbsp;</A>
<H2>SIGNALS</H2>
The Secure (SSL) Proxy should also be set to the same values, otherwise <P>
https: URLs will not be proxied. Note: <b>Privoxy</b> can only 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
connections.
For other browsers, check the documentation. <B>Privoxy</B> terminates on the <B>SIGINT</B>,
<B>SIGTERM</B> and <B>SIGABRT</B> signals. Log
rotation scripts may cause a re-opening of the logfile by sending a
<B>SIGHUP</B> to <B>Privoxy</B>. Note that unlike
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">&nbsp;</A>
<H2>NOTES</H2>
<P>
</pre> Please see the <I>User Manual</I> on how to contact the
developers, for feature requests, reporting problems, and other questions.
<A NAME="lbAK">&nbsp;</A>
<H2>SEE ALSO</H2>
<h2>CONFIGURATION</h2> <P>
<pre>
<b>Privoxy</b> can be configured with the various configuration files. The
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 Other references and sites of interest to <B>Privoxy</B>
stream between the browser and remote sites. There are various actions users:
available with specific functions for such things as blocking web <P>
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.
The actions list (ad blocks, etc) can also be configured with your web <P>
browser at http://config.privoxy.org/ (assuming the configuration <A HREF="http://www.privoxy.org/">http://www.privoxy.org/,</A>
allows it). <b>Privoxy's</b> configuration parameters can also be viewed at the <B>Privoxy</B> Home page.
the same page. In addition, <b>Privoxy</b> can be toggled on/off. This is an <P>
internal page, and does not require Internet access. <A HREF="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/,</A>
the <B>Privoxy</B> FAQ.
<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>&amp;atid=460288, to submit ``misses'' and other
configuration related suggestions to the developers.
<A NAME="lbAL">&nbsp;</A>
<H2>DEVELOPMENT TEAM</H2>
See the <i>User</i> <i>Manual</i> for a detailed explanation of installation, general <P>
usage, all configuration options, new features and notes on upgrading. <PRE>
Fabian Keil, lead developer
David Schmidt, developer
Hal Burgiss
Mark Miller
Gerry Murphy
Lee Rian
Roland Rosenfeld
J&ouml;rg Strohmayer
</PRE>
</pre> <A NAME="lbAM">&nbsp;</A>
<H2>COPYRIGHT AND LICENSE</H2>
<h2>FILES</h2> <A NAME="lbAN">&nbsp;</A>
<pre> <H3>COPYRIGHT</H3>
<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.
<P>
</pre> Copyright (C) 2001-2009 by Privoxy Developers &lt;<A HREF="mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</A>&gt;
<P>
<h2>NOTES</h2> Some source code is based on code Copyright (C) 1997 by Anonymous Coders
<pre> and Junkbusters, Inc. and licensed under the <I>GNU General Public
This is a UNRELEASED version of <b>Privoxy</b>. Not all features are well License</I>.
tested. <A NAME="lbAO">&nbsp;</A>
<H3>LICENSE</H3>
Please see the <i>User</i> <i>Manual</i> on how to contact the developers, for fea- <P>
ture requests, reporting problems, and other questions.
<B>Privoxy</B> is free software; you can
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>
</pre> 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>
<h2>SEE ALSO</h2> You should have received a copy of the <I>GNU GPL</I>
<pre> along with this program; if not, write to the Free Software
Other references and sites of interest to <b>Privoxy</b> users: Foundation, Inc. 51 Franklin Street, Fifth Floor
Boston, MA 02110-1301
USA
<P>
<HR>
http://www.privoxy.org/, the <b>Privoxy</b> Home page. <A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
http://www.privoxy.org/faq/, the <b>Privoxy</b> FAQ. <DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
http://www.privoxy.org/developer-manual/, the <b>Privoxy</b> developer manual. <DT><A HREF="#lbAD">OPTIONS</A><DD>
<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
https://sourceforge.net/projects/ijbswa/, the Project Page for <b>Privoxy</b> <DT><A HREF="#lbAF">INSTALLATION AND USAGE</A><DD>
on SourceForge. <DT><A HREF="#lbAG">CONFIGURATION</A><DD>
<DT><A HREF="#lbAH">FILES</A><DD>
http://config.privoxy.org/, the web-based user interface. <b>Privoxy</b> must <DT><A HREF="#lbAI">SIGNALS</A><DD>
be running for this to work. Shortcut: http://p.p/ <DT><A HREF="#lbAJ">NOTES</A><DD>
<DT><A HREF="#lbAK">SEE ALSO</A><DD>
https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288, to submit <DT><A HREF="#lbAL">DEVELOPMENT TEAM</A><DD>
``misses'' and other configuration related suggestions to the develop- <DT><A HREF="#lbAM">COPYRIGHT AND LICENSE</A><DD>
ers. <DL>
<DT><A HREF="#lbAN">COPYRIGHT</A><DD>
<DT><A HREF="#lbAO">LICENSE</A><DD>
</pre> </DL>
</DL>
<h2>DEVELOPMENT TEAM</h2> <HR>
<pre> This document was created by
Fabian Keil, lead developer man2html,
David Schmidt, developer using the manual pages.<BR>
Time: 11:32:52 GMT, March 21, 2009
Hal Burgiss </BODY>
Lee Rian </HTML>
Roland Rosenfeld
</pre>
<h2>COPYRIGHT AND LICENSE</h2>
<pre>
<b>COPYRIGHT</b>
Copyright (C) 2001-2011 by Privoxy Developers &lt;ijbswa-develop-
ers@lists.sourceforge.net&gt;
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>

View File

@ -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
><TITLE
>Privoxy - The Privacy Enhancing Proxy</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><META
NAME="KEYWORD"
CONTENT="privoxy"><META
NAME="KEYWORD"
CONTENT="HTTP"><META
NAME="KEYWORD"
CONTENT="proxy"><META
NAME="KEYWORD"
CONTENT="privacy"><META
NAME="KEYWORD"
CONTENT="popups"><META
NAME="KEYWORD"
CONTENT="po-ups"><META
NAME="KEYWORD"
CONTENT="HTML"><META
NAME="KEYWORD"
CONTENT="JavaScript"><META
NAME="KEYWORD"
CONTENT="cleaning"><META
NAME="KEYWORD"
CONTENT="blocking"><META
NAME="KEYWORD"
CONTENT="cleaner"><META
NAME="KEYWORD"
CONTENT="blocker"><META
NAME="KEYWORD"
CONTENT="filter"><META
NAME="KEYWORD"
CONTENT="proxy"><META
NAME="KEYWORD"
CONTENT="junk"><META
NAME="KEYWORD"
CONTENT="ad"><META
NAME="KEYWORD"
CONTENT="advertisement"><META
NAME="KEYWORD"
CONTENT="banner"><META
NAME="KEYWORD"
CONTENT="webbugs"><META
NAME="KEYWORD"
CONTENT="web-bugs"><META
NAME="KEYWORD"
CONTENT="werbung"><META
NAME="KEYWORD"
CONTENT="junkbusters"><META
NAME="KEYWORD"
CONTENT="junkbuster"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="p_doc.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html;
charset=ISO-8859-1">
<meta name="description" content="Privoxy helps users to protect their privacy.">
<meta name="MSSmartTagsPreventParsing" content="TRUE"></HEAD
><BODY
CLASS="ARTICLE"
BGCOLOR="#EEEEEE"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
>Privoxy - The Privacy Enhancing Proxy</A
></H1
><H2
CLASS="SUBTITLE"
>Project Index Page v3.0.12</H2
><DIV
><DIV
CLASS="ABSTRACT"
><P
></P
><A
NAME="AEN29"
></A
><P
> Privoxy is a non-caching web proxy with advanced filtering capabilities
for enhancing privacy, modifying web page data and HTTP headers, controlling
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
><P
> Privoxy is Free Software and licensed under the GPL2.</P
><P
> Privoxy is an associated project of Software in the Public Interest (SPI).
<A
HREF="http://www.privoxy.org/faq/general.html#DONATE"
TARGET="_top"
>Donations are welcome</A
>.</P
><P
></P
></DIV
></DIV
><HR></DIV
><DIV
CLASS="SECT1"
><H3
CLASS="SECT1"
><A
NAME="DOWNLOAD"
>Download</A
></H3
><P
> <P
></P
><UL
><LI
><P
> <A
HREF="https://sourceforge.net/project/showfiles.php?group_id=11118"
TARGET="_top"
>Download recent releases</A
>
</P
></LI
><LI
><P
> <A
HREF="user-manual/quickstart.html"
TARGET="_top"
>Quickstart after installation</A
>
</P
></LI
></UL
></P
></DIV
><DIV
CLASS="SECT1"
><HR><H3
CLASS="SECT1"
><A
NAME="DOCS"
>Documentation</A
></H3
><P
> <P
></P
><UL
><LI
><P
> <A
HREF="user-manual/index.html"
TARGET="_top"
>User manual</A
>
</P
></LI
><LI
><P
> <A
HREF="faq/index.html"
TARGET="_top"
>Frequently Asked Questions</A
>
</P
></LI
><LI
><P
> <A
HREF="developer-manual/index.html"
TARGET="_top"
>Developer Manual</A
>
</P
></LI
><LI
><P
> <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 &#38; Service</A
>
</P
></LI
><LI
><P
> <A
HREF="user-manual/copyright.html"
TARGET="_top"
>Copyright, License, History &#38; 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
>
<html> <A
<head> HREF="http://privoxy.org/team/index.html"
<meta name="generator" content= TARGET="_top"
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> >Pictures of the Privoxy Team</A
>
<title>Privoxy - The Privacy Enhancing Proxy</title> </P
<meta name="GENERATOR" content= ></LI
"Modular DocBook HTML Stylesheet Version 1.79"> ></UL
<meta name="KEYWORD" content="privoxy"> ></P
<meta name="KEYWORD" content="HTTP"> ></DIV
<meta name="KEYWORD" content="proxy"> ><DIV
<meta name="KEYWORD" content="privacy"> CLASS="SECT1"
<meta name="KEYWORD" content="popups"> ><HR><H2
<meta name="KEYWORD" content="po-ups"> CLASS="SECT1"
<meta name="KEYWORD" content="HTML"> ><A
<meta name="KEYWORD" content="JavaScript"> NAME="AEN82"
<meta name="KEYWORD" content="cleaning"> ></A
<meta name="KEYWORD" content="blocking"> ></H2
<meta name="KEYWORD" content="cleaner"> ><P
<meta name="KEYWORD" content="blocker"> > <SUB
<meta name="KEYWORD" content="filter"> > Copyright &copy; 2001-2009 by Privoxy Developers
<meta name="KEYWORD" content="proxy"> </SUB
<meta name="KEYWORD" content="junk"> ></P
<meta name="KEYWORD" content="ad"> ></DIV
<meta name="KEYWORD" content="advertisement"> ></DIV
<meta name="KEYWORD" content="banner"> ></BODY
<meta name="KEYWORD" content="webbugs"> ></HTML
<meta name="KEYWORD" content="web-bugs"> >
<meta name="KEYWORD" content="werbung">
<meta name="KEYWORD" content="junkbusters">
<meta name="KEYWORD" content="junkbuster">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="description" content=
"Privoxy helps users to protect their privacy.">
<meta name="MSSmartTagsPreventParsing" content="TRUE">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
</style>
</head>
<body class="ARTICLE">
<div class="ARTICLE">
<div class="TITLEPAGE">
<h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - The Privacy
Enhancing Proxy</a></h1>
<h2 class="SUBTITLE">Project Index Page v3.0.19</h2>
<div class="ABSTRACT">
<a name="AEN29" id="AEN29"></a>
<p>Privoxy is a non-caching web proxy with advanced filtering
capabilities for enhancing privacy, modifying web page data and HTTP
headers, controlling 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>
<p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
<p>Privoxy is an associated project of Software in the Public
Interest (SPI).</p>
<p>Helping hands and donations are welcome:</p>
<ul>
<li>
<p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE"
target=
"_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
</li>
<li>
<p><a href="http://www.privoxy.org/faq/general.html#DONATE"
target=
"_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
</li>
</ul>
</div>
<hr>
</div>
<div class="SECT1">
<h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3>
<ul>
<li>
<p><a href="https://sourceforge.net/projects/ijbswa/files/" target=
"_top">Download recent releases</a></p>
</li>
<li>
<p><a href="user-manual/quickstart.html" target="_top">Quickstart
after installation</a></p>
</li>
</ul>
</div>
<div class="SECT1">
<hr>
<h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3>
<ul>
<li>
<p><a href="user-manual/index.html" target="_top">User
manual</a></p>
</li>
<li>
<p><a href="faq/index.html" target="_top">Frequently Asked
Questions</a></p>
</li>
<li>
<p><a href="developer-manual/index.html" target="_top">Developer
Manual</a></p>
</li>
<li>
<p><a href="man-page/privoxy-man-page.html" target="_top">Classic
Man Page</a></p>
</li>
</ul>
</div>
<div class="SECT1">
<hr>
<h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More
information</a></h3>
<ul>
<li>
<p><a href="user-manual/contact.html" target="_top">Support &amp;
Service</a></p>
</li>
<li>
<p><a href="user-manual/copyright.html" target="_top">Copyright,
License, History &amp; 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://www.privoxy.org/team/index.html" target=
"_top">Pictures of the Privoxy Team</a></p>
</li>
</ul>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN89" id="AEN89"></a></h2>
<p><sub>Copyright &copy; 2001-2010 by Privoxy Developers</sub></p>
</div>
</div>
</body>
</html>

View File

@ -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

View File

@ -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>&nbsp;&nbsp;&nbsp;&nbsp;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
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://config.privoxy.org/show-status" in text files. These files can be edited with a text editor.
target="_top">View &amp; 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
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<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"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<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
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<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
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<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:&#13;</P
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<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= >         &#9642;  <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 &#38; 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 >         &#9642;  <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
>         &#9642;  <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
>         &#9642;  <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> >         &#9642;  <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 >         &#9642;  <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">&nbsp;</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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The Main Configuration File</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -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&amp;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&amp;atid=211118" ></TD
target="_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&#38;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&#38;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&#38;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&amp;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&amp;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&amp;atid=111118" ><UL
target= ><LI
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;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&amp;group_id=11118&amp;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&#38;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&#38;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&#38;atid=111118"
<li> TARGET="_top"
<p>Any other pertinent information to help identify the problem >http://sourceforge.net/tracker/?group_id=11118&#38;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;#&nbsp;Log&nbsp;the&nbsp;destination&nbsp;for&nbsp;each&nbsp;request&nbsp;Privoxy&nbsp;let&nbsp;through.&nbsp;See&nbsp;also&nbsp;debug&nbsp;1024.<br> and observe the additional hints at the top of the <A
HREF="http://sourceforge.net/tracker/?func=add&#38;group_id=11118&#38;atid=111118"
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;show&nbsp;each&nbsp;connection&nbsp;status<br> TARGET="_top"
>submit
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;show&nbsp;I/O&nbsp;status<br> form</A
>. If already submitted, please feel free to add any info to the
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;show&nbsp;header&nbsp;parsing<br> original report that might help to solve the issue.</P
><P
debug&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;debug&nbsp;redirects<br> > Please try to verify that it is a <SPAN
debug&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;debug&nbsp;GIF&nbsp;de-animation<br> CLASS="APPLICATION"
>Privoxy</SPAN
debug&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;Common&nbsp;Log&nbsp;Format<br> > bug,
and not a browser or site bug or documented behaviour that just happens
debug&nbsp;&nbsp;1024&nbsp;#&nbsp;Log&nbsp;the&nbsp;destination&nbsp;for&nbsp;requests&nbsp;Privoxy&nbsp;didn't&nbsp;let&nbsp;through,&nbsp;and&nbsp;the&nbsp;reason&nbsp;why.<br> to be different than what you expected. If unsure,
try <A
debug&nbsp;&nbsp;4096&nbsp;#&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br> HREF="http://config.privoxy.org/toggle?set=disable"
TARGET="_top"
debug&nbsp;&nbsp;8192&nbsp;#&nbsp;Non-fatal&nbsp;errors</p>If you >toggling
are having trouble with a filter, please additionally enable off</A
> <SPAN
<p class="LITERALLAYOUT"> CLASS="APPLICATION"
debug&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;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&nbsp;32768&nbsp;#&nbsp;log&nbsp;all&nbsp;data&nbsp;read&nbsp;from&nbsp;the&nbsp;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&amp;group_id=11118" sending the output of <SPAN
target="_top">http://sourceforge.net/tracker/?atid=361118&amp;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">&nbsp;</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&#38;group_id=11118"
TARGET="_top"
>http://sourceforge.net/tracker/?atid=361118&#38;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"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Privoxy Copyright, License and History</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -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 &copy; 2001-2011 by Privoxy Developers <code class= ><TD
"EMAIL">&lt;<a href= WIDTH="80%"
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>&gt;</code></p> ALIGN="center"
VALIGN="bottom"
<p>Some source code is based on code Copyright &copy; 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">&nbsp;Free&nbsp;Software<br> ></H1
&nbsp;Foundation,&nbsp;Inc.&nbsp;<span class="STREET">51 Franklin ><P
Street, Fifth Floor</span><br> > Copyright © 2001-2009 by Privoxy Developers <CODE
&nbsp;<span class="CITY">Boston</span>,&nbsp;<span class= CLASS="EMAIL"
"STATE">MA</span>&nbsp;<span class="POSTCODE">02110-1301</span><br> >&#60;<A
&nbsp;<span class="COUNTRY">USA</span>&nbsp;</p> HREF="mailto:ijbswa-developers@lists.sourceforge.net"
</div> >ijbswa-developers@lists.sourceforge.net</A
>&#62;</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> >&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<SPAN
<p class="LITERALLAYOUT"> CLASS="STREET"
&nbsp;Fabian&nbsp;Keil,&nbsp;lead&nbsp;developer<br> >51 Franklin Street, Fifth Floor</SPAN
&nbsp;David&nbsp;Schmidt,&nbsp;developer<br> ><br>
&nbsp;Hal&nbsp;Burgiss<br> &nbsp;<SPAN
&nbsp;Lee&nbsp;Rian<br> CLASS="CITY"
&nbsp;Roland&nbsp;Rosenfeld</p> >Boston</SPAN
>,&nbsp;<SPAN
<p>Former Privoxy Team Members:</p> CLASS="STATE"
>MA</SPAN
<p class="LITERALLAYOUT">&nbsp;Johny&nbsp;Agotnes<br> >&nbsp;<SPAN
&nbsp;Rodrigo&nbsp;Barbosa<br> CLASS="POSTCODE"
&nbsp;Moritz&nbsp;Barsnick<br> >02110-1301</SPAN
&nbsp;Ian&nbsp;Cummings<br> ><br>
&nbsp;Brian&nbsp;Dessent<br> &nbsp;<SPAN
&nbsp;Jon&nbsp;Foster<br> CLASS="COUNTRY"
&nbsp;Karsten&nbsp;Hopp<br> >USA</SPAN
&nbsp;Alexander&nbsp;Lazic<br> >&nbsp;</P
&nbsp;Daniel&nbsp;Leite<br> ></P
&nbsp;G&aacute;bor&nbsp;Lipt&aacute;k<br> ></DIV
&nbsp;Adam&nbsp;Lock<br> ><DIV
&nbsp;Guy&nbsp;Laroche<br> CLASS="SECT2"
&nbsp;Justin&nbsp;McMurtry<br> ><H2
&nbsp;Mark&nbsp;Miller<br> CLASS="SECT2"
&nbsp;Gerry&nbsp;Murphy<br> ><A
&nbsp;Andreas&nbsp;Oesterhelt<br> NAME="HISTORY"
&nbsp;Haroon&nbsp;Rafique<br> >12.2. History</A
&nbsp;Georg&nbsp;Sauthoff<br> ></H2
&nbsp;Thomas&nbsp;Steudten<br> ><P
&nbsp;J&ouml;rg&nbsp;Strohmayer<br> > A long time ago, there was the
&nbsp;Rodney&nbsp;Stromlund<br> <A
&nbsp;Sviatoslav&nbsp;Sviridov<br> HREF="http://www.junkbusters.com/ijb.html"
&nbsp;Sarantis&nbsp;Paskalis<br> TARGET="_top"
&nbsp;Stefan&nbsp;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">&nbsp;Ken&nbsp;Arromdee<br> HREF="http://www.junkbusters.com/"
&nbsp;Devin&nbsp;Bayer<br> TARGET="_top"
&nbsp;Havard&nbsp;Berland<br> >Junkbusters
&nbsp;Gergely&nbsp;Bor<br> Corporation</A
&nbsp;Francois&nbsp;Botha<br> >. This saved many users a lot of pain in the early days of
&nbsp;Reiner&nbsp;Buehl<br> web advertising and user tracking.</P
&nbsp;Andrew&nbsp;J.&nbsp;Caines<br> ><P
&nbsp;Clifford&nbsp;Caoile<br> > But the web, its protocols and standards, and with it, the techniques for
&nbsp;Wan-Teh&nbsp;Chang<br> forcing ads on users, give up autonomy over their browsing, and
&nbsp;Billy&nbsp;Crook<br> for tracking them, keeps evolving. Unfortunately, the <SPAN
&nbsp;Fr&eacute;d&eacute;ric&nbsp;Crozat<br> CLASS="APPLICATION"
&nbsp;Michael&nbsp;T.&nbsp;Davis<br> >Internet
&nbsp;Mattes&nbsp;Dolak<br> Junkbuster</SPAN
&nbsp;Matthias&nbsp;Drochner<br> > did not. Version 2.0.2, published in 1998, was
&nbsp;Peter&nbsp;E.<br> (and is) the last official
&nbsp;Florian&nbsp;Effenberger<br> <A
&nbsp;Markus&nbsp;Elfring<br> HREF="http://www.junkbusters.com/ijbdist.html#release"
&nbsp;Dean&nbsp;Gaudet<br> TARGET="_top"
&nbsp;Stephen&nbsp;Gildea<br> >release</A
&nbsp;Daniel&nbsp;Griscom<br> >
&nbsp;Felix&nbsp;Gr&ouml;bert<br> available from <A
&nbsp;Jeff&nbsp;H.<br> HREF="http://www.junkbusters.com"
&nbsp;Aaron&nbsp;Hamid<br> TARGET="_top"
&nbsp;Darel&nbsp;Henman<br> >Junkbusters Corporation</A
&nbsp;Magnus&nbsp;Holmgren<br> >.
&nbsp;Eric&nbsp;M.&nbsp;Hopper<br> Fortunately, it had been released under the GNU
&nbsp;Ralf&nbsp;Horstmann<br> <A
&nbsp;Stefan&nbsp;Huehner<br> HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
&nbsp;Peter&nbsp;Hyman<br> TARGET="_top"
&nbsp;Derek&nbsp;Jennings<br> >GPL</A
&nbsp;Petr&nbsp;Kadlec<br> >,
&nbsp;David&nbsp;Laight<br> which allowed further development by others.</P
&nbsp;Bert&nbsp;van&nbsp;Leeuwen<br> ><P
&nbsp;Don&nbsp;Libes<br> > So Stefan Waldherr started maintaining an improved version of the
&nbsp;Paul&nbsp;Lieverse<br> software, to which eventually a number of people contributed patches.
&nbsp;Han&nbsp;Liu<br> It could already replace banners with a transparent image, and had a first
&nbsp;Toby&nbsp;Lyward<br> version of pop-up killing, but it was still very closely based on the
&nbsp;Wil&nbsp;Mahan<br> original, with all its limitations, such as the lack of HTTP/1.1 support,
&nbsp;Jindrich&nbsp;Makovicka<br> flexible per-site configuration, or content modification. The last release
&nbsp;Raphael&nbsp;Marichez<br> from this effort was version 2.0.2-10, published in 2000.</P
&nbsp;Francois&nbsp;Marier<br> ><P
&nbsp;David&nbsp;Mediavilla<br> > Then, some
&nbsp;Raphael&nbsp;Moll<br> <A
&nbsp;Amuro&nbsp;Namie<br> HREF="http://www.privoxy.org/user-manual/copyright.html#AUTHORS"
&nbsp;Adam&nbsp;Piggott<br> TARGET="_top"
&nbsp;Petr&nbsp;P&iacute;sar<br> >developers</A
&nbsp;Dan&nbsp;Price<br> >
&nbsp;Roberto&nbsp;Ragusa<br> picked up the thread, and started turning the software inside out, upside down,
&nbsp;F&eacute;lix&nbsp;Rauch<br> and then reassembled it, adding many
&nbsp;Maynard&nbsp;Riley<br> <A
&nbsp;Chung-chieh&nbsp;Shan<br> HREF="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
&nbsp;Spinor&nbsp;S.<br> TARGET="_top"
&nbsp;Bart&nbsp;Schelstraete<br> >new
&nbsp;Dan&nbsp;Stahlke<br> features</A
&nbsp;Oliver&nbsp;Stoeneberg<br> > along the way.</P
&nbsp;Peter&nbsp;Thoenen<br> ><P
&nbsp;Martin&nbsp;Thomas<br> > The result of this is <SPAN
&nbsp;Bobby&nbsp;G.&nbsp;Vinyard<br> CLASS="APPLICATION"
&nbsp;Jochen&nbsp;Voss<br> >Privoxy</SPAN
&nbsp;Glenn&nbsp;Washburn<br> >, whose first
&nbsp;Song&nbsp;Weijia<br> stable version, 3.0, was released August, 2002.
&nbsp;J&ouml;rg&nbsp;Weinmann<br> </P
&nbsp;Darren&nbsp;Wiebe<br> ></DIV
&nbsp;Anduin&nbsp;Withers<br> ><DIV
&nbsp;Oliver&nbsp;Yeoh<br> CLASS="SECT2"
&nbsp;Jamie&nbsp;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 >&nbsp;Fabian&nbsp;Keil,&nbsp;lead&nbsp;developer<br>
by Mark Martinec. On systems that lack strptime(), Privoxy is using the &nbsp;David&nbsp;Schmidt,&nbsp;developer<br>
one from the GNU C Library written by Ulrich Drepper.</p> <br>
</div> &nbsp;Hal&nbsp;Burgiss<br>
</div> &nbsp;Mark&nbsp;Miller<br>
&nbsp;Gerry&nbsp;Murphy<br>
<div class="NAVFOOTER"> &nbsp;Lee&nbsp;Rian<br>
<hr class="c1" width="100%"> &nbsp;Roland&nbsp;Rosenfeld<br>
&nbsp;Jörg&nbsp;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> >&nbsp;Johny&nbsp;Agotnes<br>
&nbsp;Rodrigo&nbsp;Barbosa<br>
<td width="34%" align="center" valign="top"><a href="index.html" &nbsp;Moritz&nbsp;Barsnick<br>
accesskey="H">Home</a></td> &nbsp;Ian&nbsp;Cummings<br>
&nbsp;Brian&nbsp;Dessent<br>
<td width="33%" align="right" valign="top"><a href="seealso.html" &nbsp;Jon&nbsp;Foster<br>
accesskey="N">Next</a></td> &nbsp;Karsten&nbsp;Hopp<br>
</tr> &nbsp;Alexander&nbsp;Lazic<br>
&nbsp;Daniel&nbsp;Leite<br>
<tr> &nbsp;Gábor&nbsp;Lipták<br>
<td width="33%" align="left" valign="top">Contacting the Developers, &nbsp;Adam&nbsp;Lock<br>
Bug Reporting and Feature Requests</td> &nbsp;Guy&nbsp;Laroche<br>
&nbsp;Justin&nbsp;McMurtry<br>
<td width="34%" align="center" valign="top">&nbsp;</td> &nbsp;Andreas&nbsp;Oesterhelt<br>
&nbsp;Haroon&nbsp;Rafique<br>
<td width="33%" align="right" valign="top">See Also</td> &nbsp;Georg&nbsp;Sauthoff<br>
</tr> &nbsp;Thomas&nbsp;Steudten<br>
</table> &nbsp;Rodney&nbsp;Stromlund<br>
</div> &nbsp;Sviatoslav&nbsp;Sviridov<br>
</body> &nbsp;Sarantis&nbsp;Paskalis<br>
</html> &nbsp;Stefan&nbsp;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"
>&nbsp;Ken&nbsp;Arromdee<br>
&nbsp;Devin&nbsp;Bayer<br>
&nbsp;Gergely&nbsp;Bor<br>
&nbsp;Reiner&nbsp;Buehl<br>
&nbsp;Andrew&nbsp;J.&nbsp;Caines<br>
&nbsp;Clifford&nbsp;Caoile<br>
&nbsp;Frédéric&nbsp;Crozat<br>
&nbsp;Michael&nbsp;T.&nbsp;Davis<br>
&nbsp;Mattes&nbsp;Dolak<br>
&nbsp;Matthias&nbsp;Drochner<br>
&nbsp;Peter&nbsp;E.<br>
&nbsp;Florian&nbsp;Effenberger<br>
&nbsp;Markus&nbsp;Elfring<br>
&nbsp;Dean&nbsp;Gaudet<br>
&nbsp;Stephen&nbsp;Gildea<br>
&nbsp;Daniel&nbsp;Griscom<br>
&nbsp;Felix&nbsp;Gröbert<br>
&nbsp;Aaron&nbsp;Hamid<br>
&nbsp;Darel&nbsp;Henman<br>
&nbsp;Magnus&nbsp;Holmgren<br>
&nbsp;Eric&nbsp;M.&nbsp;Hopper<br>
&nbsp;Ralf&nbsp;Horstmann<br>
&nbsp;Stefan&nbsp;Huehner<br>
&nbsp;Peter&nbsp;Hyman<br>
&nbsp;Derek&nbsp;Jennings<br>
&nbsp;Petr&nbsp;Kadlec<br>
&nbsp;David&nbsp;Laight<br>
&nbsp;Bert&nbsp;van&nbsp;Leeuwen<br>
&nbsp;Don&nbsp;Libes<br>
&nbsp;Paul&nbsp;Lieverse<br>
&nbsp;Toby&nbsp;Lyward<br>
&nbsp;Wil&nbsp;Mahan<br>
&nbsp;Jindrich&nbsp;Makovicka<br>
&nbsp;David&nbsp;Mediavilla<br>
&nbsp;Raphael&nbsp;Moll<br>
&nbsp;Amuro&nbsp;Namie<br>
&nbsp;Adam&nbsp;Piggott<br>
&nbsp;Dan&nbsp;Price<br>
&nbsp;Roberto&nbsp;Ragusa<br>
&nbsp;Félix&nbsp;Rauch<br>
&nbsp;Maynard&nbsp;Riley<br>
&nbsp;Chung-chieh&nbsp;Shan<br>
&nbsp;Spinor&nbsp;S.<br>
&nbsp;Bart&nbsp;Schelstraete<br>
&nbsp;Oliver&nbsp;Stoeneberg<br>
&nbsp;Peter&nbsp;Thoenen<br>
&nbsp;Martin&nbsp;Thomas<br>
&nbsp;Bobby&nbsp;G.&nbsp;Vinyard<br>
&nbsp;Jochen&nbsp;Voss<br>
&nbsp;Glenn&nbsp;Washburn<br>
&nbsp;Song&nbsp;Weijia<br>
&nbsp;Jörg&nbsp;Weinmann<br>
&nbsp;Darren&nbsp;Wiebe<br>
&nbsp;Anduin&nbsp;Withers<br>
&nbsp;Oliver&nbsp;Yeoh<br>
&nbsp;Jamie&nbsp;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"
>&nbsp;</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

View File

@ -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">&nbsp;</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"
>&nbsp;</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

View File

@ -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
><TITLE
>See Also</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Privoxy 3.0.12 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Privoxy Copyright, License and History"
HREF="copyright.html"><LINK
REL="NEXT"
TITLE="Appendix"
HREF="appendix.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="../p_doc.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html;
charset=ISO-8859-1">
<LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
</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 3.0.12 User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="copyright.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="appendix.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="SEEALSO"
>13. See Also</A
></H1
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
users:</P
><P
> <P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.privoxy.org/"
TARGET="_top"
>http://www.privoxy.org/</A
>,
the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> Home page.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.privoxy.org/faq/"
TARGET="_top"
>http://www.privoxy.org/faq/</A
>,
the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> FAQ.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.privoxy.org/developer-manual/"
TARGET="_top"
>http://www.privoxy.org/developer-manual/</A
>,
the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> developer manual.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="https://sourceforge.net/projects/ijbswa/"
TARGET="_top"
>https://sourceforge.net/projects/ijbswa/</A
>,
the Project Page for <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> on
<A
HREF="http://sourceforge.net"
TARGET="_top"
>SourceForge</A
>.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://config.privoxy.org/"
TARGET="_top"
>http://config.privoxy.org/</A
>,
the web-based user interface. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> must be
running for this to work. Shortcut: <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
>
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="https://sourceforge.net/tracker/?group_id=11118&#38;atid=460288"
TARGET="_top"
>https://sourceforge.net/tracker/?group_id=11118&#38;atid=460288</A
>, to submit <SPAN
CLASS="QUOTE"
>"misses"</SPAN
> and other
configuration related suggestions to the developers.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>See Also</title> <P
<meta name="GENERATOR" content= ></P
"Modular DocBook HTML Stylesheet Version 1.79"> ><TABLE
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html"> BORDER="0"
<link rel="PREVIOUS" title="Privoxy Copyright, License and History" href= ><TBODY
"copyright.html"> ><TR
<link rel="NEXT" title="Appendix" href="appendix.html"> ><TD
<link rel="STYLESHEET" type="text/css" href="../p_doc.css"> > <A
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> HREF="http://www.junkbusters.com/ht/en/cookies.html"
<link rel="STYLESHEET" type="text/css" href="p_doc.css"> TARGET="_top"
<style type="text/css"> >http://www.junkbusters.com/ht/en/cookies.html</A
body { >,
background-color: #EEEEEE; an explanation how cookies are used to track web users.
color: #000000; </TD
} ></TR
:link { color: #0000FF } ></TBODY
:visited { color: #840084 } ></TABLE
:active { color: #0000FF } ><P
hr.c1 {text-align: left} ></P
</style> >
</head> <P
></P
<body class="SECT1"> ><TABLE
<div class="NAVHEADER"> BORDER="0"
<table summary="Header navigation table" width="100%" border="0" ><TBODY
cellpadding="0" cellspacing="0"> ><TR
<tr> ><TD
<th colspan="3" align="center">Privoxy 3.0.19 User Manual</th> > <A
</tr> HREF="http://www.junkbusters.com/ijb.html"
TARGET="_top"
<tr> >http://www.junkbusters.com/ijb.html</A
<td width="10%" align="left" valign="bottom"><a href="copyright.html" >,
accesskey="P">Prev</a></td> the original Internet Junkbuster.
</TD
<td width="80%" align="center" valign="bottom"></td> ></TR
></TBODY
<td width="10%" align="right" valign="bottom"><a href="appendix.html" ></TABLE
accesskey="N">Next</a></td> ><P
</tr> ></P
</table> >
<hr class="c1" width="100%"> <P
</div> ></P
><TABLE
<div class="SECT1"> BORDER="0"
<h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">13. See Also</a></h1> ><TBODY
><TR
<p>Other references and sites of interest to <span class= ><TD
"APPLICATION">Privoxy</span> users:</p> > <A
HREF="http://www.squid-cache.org/"
<table border="0"> TARGET="_top"
<tbody> >http://www.squid-cache.org/</A
<tr> >, a popular
<td><a href="http://www.privoxy.org/" target= caching proxy, which is often used together with <SPAN
"_top">http://www.privoxy.org/</a>, the <span class= CLASS="APPLICATION"
"APPLICATION">Privoxy</span> Home page.</td> >Privoxy</SPAN
</tr> >.
</tbody> </TD
</table> ></TR
></TBODY
<table border="0"> ></TABLE
<tbody> ><P
<tr> ></P
<td><a href="http://www.privoxy.org/faq/" target= >
"_top">http://www.privoxy.org/faq/</a>, the <span class= <P
"APPLICATION">Privoxy</span> FAQ.</td> ></P
</tr> ><TABLE
</tbody> BORDER="0"
</table> ><TBODY
><TR
<table border="0"> ><TD
<tbody> > <A
<tr> HREF="http://www.pps.jussieu.fr/~jch/software/polipo/"
<td><a href="http://www.privoxy.org/developer-manual/" target= TARGET="_top"
"_top">http://www.privoxy.org/developer-manual/</a>, the >http://www.pps.jussieu.fr/~jch/software/polipo/</A
<span class="APPLICATION">Privoxy</span> developer manual.</td> >,
</tr> <SPAN
</tbody> CLASS="APPLICATION"
</table> >Polipo</SPAN
> is a caching proxy with advanced features
<table border="0"> like pipelining, multiplexing and caching of partial instances. In many setups
<tbody> it can be used as <SPAN
<tr> CLASS="APPLICATION"
<td><a href="https://sourceforge.net/projects/ijbswa/" target= >Squid</SPAN
"_top">https://sourceforge.net/projects/ijbswa/</a>, the Project > replacement.
Page for <span class="APPLICATION">Privoxy</span> on <a href= </TD
"http://sourceforge.net" target="_top">SourceForge</a>.</td> ></TR
</tr> ></TBODY
</tbody> ></TABLE
</table> ><P
></P
<table border="0"> >
<tbody> <P
<tr> ></P
<td><a href="http://config.privoxy.org/" target= ><TABLE
"_top">http://config.privoxy.org/</a>, the web-based user BORDER="0"
interface. <span class="APPLICATION">Privoxy</span> must be running ><TBODY
for this to work. Shortcut: <a href="http://p.p/" target= ><TR
"_top">http://p.p/</a></td> ><TD
</tr> > <A
</tbody> HREF="https://www.torproject.org/"
</table> TARGET="_top"
>https://www.torproject.org/</A
<table border="0"> >,
<tbody> <SPAN
<tr> CLASS="APPLICATION"
<td><a href= >Tor</SPAN
"https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288" > can help anonymize web browsing,
target= web publishing, instant messaging, IRC, SSH, and other applications.
"_top">https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>, </TD
to submit <span class="QUOTE">"misses"</span> and other ></TR
configuration related suggestions to the developers.</td> ></TBODY
</tr> ></TABLE
</tbody> ><P
</table> ></P
>
<table border="0"> </P
<tbody> ></DIV
<tr> ><DIV
<td><a href="http://www.junkbusters.com/ht/en/cookies.html" target= CLASS="NAVFOOTER"
"_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an ><HR
explanation how cookies are used to track web users.</td> ALIGN="LEFT"
</tr> WIDTH="100%"><TABLE
</tbody> SUMMARY="Footer navigation table"
</table> WIDTH="100%"
BORDER="0"
<table border="0"> CELLPADDING="0"
<tbody> CELLSPACING="0"
<tr> ><TR
<td><a href="http://www.junkbusters.com/ijb.html" target= ><TD
"_top">http://www.junkbusters.com/ijb.html</a>, the original WIDTH="33%"
Internet Junkbuster.</td> ALIGN="left"
</tr> VALIGN="top"
</tbody> ><A
</table> HREF="copyright.html"
ACCESSKEY="P"
<table border="0"> >Prev</A
<tbody> ></TD
<tr> ><TD
<td><a href="http://www.squid-cache.org/" target= WIDTH="34%"
"_top">http://www.squid-cache.org/</a>, a popular caching proxy, ALIGN="center"
which is often used together with <span class= VALIGN="top"
"APPLICATION">Privoxy</span>.</td> ><A
</tr> HREF="index.html"
</tbody> ACCESSKEY="H"
</table> >Home</A
></TD
<table border="0"> ><TD
<tbody> WIDTH="33%"
<tr> ALIGN="right"
<td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/" VALIGN="top"
target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, ><A
<span class="APPLICATION">Polipo</span> is a caching proxy with HREF="appendix.html"
advanced features like pipelining, multiplexing and caching of ACCESSKEY="N"
partial instances. In many setups it can be used as <span class= >Next</A
"APPLICATION">Squid</span> replacement.</td> ></TD
</tr> ></TR
</tbody> ><TR
</table> ><TD
WIDTH="33%"
<table border="0"> ALIGN="left"
<tbody> VALIGN="top"
<tr> >Privoxy Copyright, License and History</TD
<td><a href="https://www.torproject.org/" target= ><TD
"_top">https://www.torproject.org/</a>, <span class= WIDTH="34%"
"APPLICATION">Tor</span> can help anonymize web browsing, web ALIGN="center"
publishing, instant messaging, IRC, SSH, and other VALIGN="top"
applications.</td> >&nbsp;</TD
</tr> ><TD
</tbody> WIDTH="33%"
</table> ALIGN="right"
</div> VALIGN="top"
>Appendix</TD
<div class="NAVFOOTER"> ></TR
<hr class="c1" width="100%"> ></TABLE
></DIV
<table summary="Footer navigation table" width="100%" border="0" ></BODY
cellpadding="0" cellspacing="0"> ></HTML
<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">&nbsp;</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

View File

@ -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
&lt;!-- @if-unstable-start --&gt; 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"
>&#60;!-- @if-unstable-start --&#62;
... beta warning HTML code goes here ... ... beta warning HTML code goes here ...
&lt;!-- if-unstable-end@ --&gt; &#60;!-- if-unstable-end@ --&#62;</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
&lt;!-- --&gt; ><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"
>&#60;!-- --&#62;</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">&nbsp;</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"
>&nbsp;</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

View File

@ -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,7 +6,7 @@ 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
@ -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,"&quot;",NULL,NULL,NULL,"&amp;","&#39;", NULL, NULL, NULL, NULL,"&quot;",NULL,NULL,NULL,"&amp;",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,
"&lt;",NULL,"&gt;",NULL,NULL, NULL, NULL, NULL, NULL, NULL, "&lt;",NULL,"&gt;",NULL,NULL, NULL, NULL, NULL, NULL, NULL,
@ -207,9 +253,6 @@ 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.
* *
@ -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);
@ -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;
@ -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

View File

@ -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 $
@ -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[];

View File

@ -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,7 +6,7 @@ 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
@ -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"
@ -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();
@ -438,11 +827,12 @@ 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);
@ -450,7 +840,7 @@ static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
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);
@ -500,7 +890,7 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
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,7 +899,7 @@ 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);
@ -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;
@ -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 */
@ -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";

View File

@ -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 $
@ -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

View File

@ -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,7 +12,7 @@
* `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
@ -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"
@ -101,22 +337,32 @@ 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
*/ */

View File

@ -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"
@ -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;
@ -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.";
@ -845,18 +1097,18 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
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;

View File

@ -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,7 +9,7 @@
* 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
@ -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" {
@ -48,6 +114,7 @@ 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

View File

@ -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,7 +10,7 @@
* 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
@ -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

2600
external/privoxy/jcc.c vendored

File diff suppressed because it is too large Load Diff

147
external/privoxy/jcc.h vendored
View File

@ -1,6 +1,6 @@
#ifndef JCC_H_INCLUDED #ifndef JCC_H_INCLUDED
#define JCC_H_INCLUDED #define JCC_H_INCLUDED
#define JCC_H_VERSION "$Id: jcc.h,v 1.32 2011/11/06 11:48:23 fabiankeil Exp $" #define JCC_H_VERSION "$Id: jcc.h,v 1.25 2008/10/09 18:21:41 fabiankeil Exp $"
/********************************************************************* /*********************************************************************
* *
* File : $Source: /cvsroot/ijbswa/current/jcc.h,v $ * File : $Source: /cvsroot/ijbswa/current/jcc.h,v $
@ -33,8 +33,143 @@
* 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: jcc.h,v $
* Revision 1.25 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.24 2008/09/07 12:35:05 fabiankeil
* Add mutex lock support for _WIN32.
*
* Revision 1.23 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.22 2007/06/01 18:16:36 fabiankeil
* Use the same mutex for gethostbyname() and gethostbyaddr() to prevent
* deadlocks and crashes on OpenBSD and possibly other OS with neither
* gethostbyname_r() nor gethostaddr_r(). Closes BR#1729174.
* Thanks to Ralf Horstmann for report and solution.
*
* Revision 1.21 2007/04/22 13:18:06 fabiankeil
* Keep the HTTP snippets local.
*
* Revision 1.20 2006/12/26 17:31:41 fabiankeil
* Mutex protect rand() if POSIX threading
* is used, warn the user if that's not possible
* and stop using it on _WIN32 where it could
* cause crashes.
*
* Revision 1.19 2006/12/06 19:41:39 fabiankeil
* Privoxy is now able to run as intercepting
* proxy in combination with any packet filter
* that does the port redirection. The destination
* is extracted from the "Host:" header which
* should be available for nearly all requests.
*
* Moved HTTP snipplets into jcc.c.
* Added error message for gopher proxy requests.
*
* Revision 1.18 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.17 2006/11/06 19:58:23 fabiankeil
* Move pthread.h inclusion from jcc.c to jcc.h.
* Fixes build on x86-freebsd1 (FreeBSD 5.4-RELEASE).
*
* Revision 1.16 2006/09/02 15:36:42 fabiankeil
* Follow the OpenBSD port's lead and protect the resolve
* functions on OpenBSD as well.
*
* Revision 1.15 2006/09/02 10:24:30 fabiankeil
* Include pthread.h for OpenBSD to make Privoxy build again.
*
* Tested shortly on OpenBSD 3.9 without problems, but the OpenBSD
* port has additional patches to use the mutexes OSX_DARWIN needs,
* and it should be investigated if they are still required for
* reliable operation.
*
* Revision 1.14 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.12.2.3 2006/01/21 16:16:08 david__schmidt
* Thanks to Edward Carrel for his patch to modernize OSX's pthreads support. See bug #1409623.
*
* Revision 1.12.2.2 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.12.2.1 2003/03/07 03:41:05 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.12 2002/03/26 22:29:55 swa
* we have a new homepage!
*
* Revision 1.11 2002/03/24 13:25:43 swa
* name change related issues
*
* Revision 1.10 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.9 2002/03/07 03:52:44 oes
* Set logging to tty for --no-daemon mode
*
* Revision 1.8 2002/03/04 18:19:49 oes
* Added extern const char *pidfile
*
* Revision 1.7 2001/11/05 21:41:43 steudten
* Add changes to be a real daemon just for unix os.
* (change cwd to /, detach from controlling tty, set
* process group and session leader to the own process.
* Add DBG() Macro.
* Add some fatal-error log message for failed malloc().
* Add '-d' if compiled with 'configure --with-debug' to
* enable debug output.
*
* Revision 1.6 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.5 2001/07/29 19:32:00 jongfoster
* Renaming _main() [mingw32 only] to real_main(), for ANSI compliance.
*
* Revision 1.4 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.3 2001/07/18 12:31:58 oes
* moved #define freez from jcc.h to project.h
*
* Revision 1.2 2001/05/31 21:24:47 jongfoster
* Changed "permission" to "action" throughout.
* Removed DEFAULT_USER_AGENT - it must now be specified manually.
* Moved vanilla wafer check into chat(), since we must now
* decide whether or not to add it based on the URL.
*
* Revision 1.1.1.1 2001/05/15 13:58:56 oes
* Initial import of version 2.9.3 source tree
*
*
*********************************************************************/ *********************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -50,13 +185,13 @@ extern int urls_read;
extern int urls_rejected; extern int urls_rejected;
#endif /*def FEATURE_STATISTICS*/ #endif /*def FEATURE_STATISTICS*/
extern struct client_states clients[1]; extern struct client_state clients[1];
extern struct file_list files[1]; extern struct file_list files[1];
#ifdef unix #ifdef unix
extern const char *pidfile; extern const char *pidfile;
#endif #endif
extern int daemon_mode; extern int no_daemon;
#ifdef FEATURE_GRACEFUL_TERMINATION #ifdef FEATURE_GRACEFUL_TERMINATION
extern int g_terminate; extern int g_terminate;
@ -104,9 +239,9 @@ extern privoxy_mutex_t rand_mutex;
/* Functions */ /* Functions */
#ifdef __MINGW32__ #ifdef __MINGW32__
int real_main(int argc, char **argv); int real_main(int argc, const char *argv[]);
#else #else
int main(int argc, char **argv); int main(int argc, const char *argv[]);
#endif #endif
/* Revision control strings from this header and associated .c file */ /* Revision control strings from this header and associated .c file */

Some files were not shown because too many files have changed in this diff Show More