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
Hal Burgiss
Mark Miller
Gerry Murphy
Lee Rian
Roland Rosenfeld
Jörg Strohmayer
Former Privoxy Team Members:
@ -25,13 +28,10 @@ Former Privoxy Team Members:
Adam Lock
Guy Laroche
Justin McMurtry
Mark Miller
Gerry Murphy
Andreas Oesterhelt
Haroon Rafique
Georg Sauthoff
Thomas Steudten
Jörg Strohmayer
Rodney Stromlund
Sviatoslav Sviridov
Sarantis Paskalis
@ -43,15 +43,11 @@ alphabetical order):
Ken Arromdee
Devin Bayer
Havard Berland
Gergely Bor
Francois Botha
Reiner Buehl
Andrew J. Caines
Clifford Caoile
Wan-Teh Chang
Frédéric Crozat
Billy Crook
Michael T. Davis
Mattes Dolak
Matthias Drochner
@ -62,13 +58,12 @@ alphabetical order):
Stephen Gildea
Daniel Griscom
Felix Gröbert
Jeff H.
Aaron Hamid
Darel Henman
Magnus Holmgren
Eric M. Hopper
Ralf Horstmann
Stefan Huehner
Stefan Huehner
Peter Hyman
Derek Jennings
Petr Kadlec
@ -76,17 +71,13 @@ alphabetical order):
Bert van Leeuwen
Don Libes
Paul Lieverse
Han Liu
Toby Lyward
Wil Mahan
Jindrich Makovicka
Raphael Marichez
Francois Marier
David Mediavilla
Raphael Moll
Amuro Namie
Adam Piggott
Petr Písar
Dan Price
Roberto Ragusa
Félix Rauch
@ -94,7 +85,6 @@ alphabetical order):
Chung-chieh Shan
Spinor S.
Bart Schelstraete
Dan Stahlke
Oliver Stoeneberg
Peter Thoenen
Martin Thomas
@ -124,4 +114,3 @@ If we've missed you off this list, please let us know!
Privoxy team. http://www.privoxy.org/
<ijbswa-developers@lists.sourceforge.net>

View File

@ -1,713 +1,7 @@
--------------------------------------------------------------------
ChangeLog for Privoxy
--------------------------------------------------------------------
*** Version 3.0.19 Stable ***
- 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 ***
*** Version 3.0.12 (UNRELEASED) ***
- The socket-timeout option now also works on platforms whose
select() implementation modifies the timeout structure.
@ -742,7 +36,7 @@ ChangeLog for Privoxy
skip reason.
*** Version 3.0.11 ***
- On most platforms, outgoing connections can be kept alive and
reused if the server supports it. Whether or not this improves
things depends on the connection.
@ -957,7 +251,7 @@ ChangeLog for Privoxy
forbidden characters like dots.
- New trust entries are saved with a comment that contains the
trusted referring URL (Suggested by Daniel Griscom).
- Filter descriptions are HTML encoded automatically.
- Filter descriptions are HTML encoded automatically.
- New config option "split-large-forms" to work
around a browser bug that caused IE6 and IE7 to ignore
the Submit button on the edit-actions-for-url CGI page.
@ -996,11 +290,11 @@ ChangeLog for Privoxy
Privoxy detection "attack". Note that detecting Privoxy is
still possible through other ways and Privoxy was never intended
to be invisible anyway.
- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
- The show-url-info CGI page displays a warning if Privoxy
is currently toggled off.
- The show-status CGI page suppresses the edit button
for action files if Privoxy has no write access.
for action files if Privoxy has no write access.
- Most CGI error pages react properly to HEAD requests.
- Requests with RFC 3253 HTTP methods (used by Subversion)
are accepted. (Patch provided by Petr Kadlec)
@ -1075,18 +369,18 @@ ChangeLog for Privoxy
- Improved the filters img-reorder, js-annoyances, webbugs,
banners-by-size, banners-by-link and ie-exploits to make them
less likely to break anything.
- Removed outdated URL patterns in default.action and added new ones.
- Removed outdated URL patterns in default.action and added new ones.
- Added redirection from http://p.p/user-manual to http://p.p/user-manual/
- Changed webinterface default values for hide-user-agent, hide-referrer
and set-image-blocker.
*** Version 3.0.5 Beta ***
- Windows version can be installed/started as a service.
- Windows icon stays blue when Privoxy is idle, green when busy.
- Integrated Fabian Keil's extensive patch. See:
http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
following new or significantly improved actions (among many
http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
following new or significantly improved actions (among many
other improvements):
content-type-overwrite{}
@ -1114,17 +408,17 @@ ChangeLog for Privoxy
- Added jpeg filtering to defend against MS jpeg vulnerability MS04-028
with the new inspect-jpegs action.
- Removed the "arbitrary" 1000 filter limit - addresses tracker #911950
- Thanks to Jindrich Makovicka for a race condition fix for the log
- Thanks to Jindrich Makovicka for a race condition fix for the log
file. The race condition remains for non-pthread implementations.
Reference patch #1175720. Various other logging enhancements.
- A pile of assorted bug fixes, memory leaks, enhancements, etc.
- Moved Actions file reporting mechanism to SF tracker.
- Two new options for config: enable-remote-http-toggle and
- Two new options for config: enable-remote-http-toggle and
forwarded-connect-retries.
- Trap unsupported FTP requests.
- Let text/xml be filtered.
- Numerous updates to default.action
- Increase the compiled in limit of trusted referrers from 64 to 512
- Increase the compiled in limit of trusted referrers from 64 to 512
(for trustfile users).
*** Version 3.0.3 ***
@ -1141,15 +435,15 @@ ChangeLog for Privoxy
- Workarounds for client (iTunes etc) and server (PHP < 4.2.3) bugs
including the notorious "blank page" problem.
- Various filter improvements; most notably the unsolicited-popups
filter became less destructive
filter became less destructive
- Major revamp of the actions file
*** Version 3.0.2 ***
- Fixed two memory leaks, one serious
- Fixed bug in pcrs which could cause crashes with user-defined filters
- Fixed bug in domain name matching
- Assorted small fixes (Win32 menu, CGI URL editor, ..)
- Assorted small fixes (Win32 menu, CGI URL editor, ..)
- Added basic support for the OPTIONS and TRACE http methods
- Added workaround for Bug in Mac OSX that made Privoxy crash occasionally
- Refined the default action file through >400 items of user feedback
@ -1160,7 +454,7 @@ ChangeLog for Privoxy
- Replaced filter "popups" by choice between two modes:
- "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 "tiny-textforms" Help those tiny or hard-wrap textareas.
- New filter "jumping-windows" that prevents windows from resizing
and moving themselves
- New filter "demoronizer" which fixes MS's abuse of std charsets
@ -1184,7 +478,7 @@ ChangeLog for Privoxy
- Added quicktime-kioskmode filter and improved frameset-borders
- Updated default.action based on latest feedback
- New PDF doc build process
- Add a user contrib module to cvs:
- Add a user contrib module to cvs:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/
*** Version 2.9.18 ***
@ -1194,7 +488,7 @@ ChangeLog for Privoxy
- Three filters fixed (again!)
- Assorted small fixes and doc enhancements
*** Version 2.9.16 ***
*** Version 2.9.16 ***
- Major revamp of default.action to get rid of years of cruft.
- Same for default.filter
@ -1206,11 +500,11 @@ ChangeLog for Privoxy
- user-manual directive added to config for help links from within CGI
editor.
- Multiple actions files can now be specified in config.
- Actions files are changed to: default.action, standard.action, and
- Actions files are changed to: default.action, standard.action, and
user.action. user.action is for personal/local configuration.
- The usual many small and miscellaneous bug and security fixes.
*** Version 2.9.14 Beta ***
*** Version 2.9.14 Beta ***
- Fix Solaris compile problem (gateway.h and filters.h)
- Makefile fixes for Solaris, FreeBSD (?)
@ -1224,30 +518,30 @@ ChangeLog for Privoxy
- #include mechansim for common text in templates
- Various other minor fixes.
*** Version 2.9.13 Beta ***
*** Version 2.9.13 Beta ***
- *NEWS*: The project has been renamed to Privoxy! The new name is
- *NEWS*: The project has been renamed to Privoxy! The new name is
reflected throughout (file locations, etc).
- ijb.action is now default.action. re_filterfile is now
- ijb.action is now default.action. re_filterfile is now
default.filter.
- http://i.j.b/ is now http://p.p/
- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
(checkerboard) is now the default.
- RPM spec file make over.
*** Version 2.9.12 Beta ***
*** Version 2.9.12 Beta ***
- **READ**: The default listening PORT is NOW 8118!!! Changed from
8000 due to conflict with NAS (Network Audio Server, whatever that
- **READ**: The default listening PORT is NOW 8118!!! Changed from
8000 due to conflict with NAS (Network Audio Server, whatever that
is.)
- More CGI actions editor fixes and improvements.
- Win32 command line fix ups.
- re_filterfile now has modular sections that can be activated on a
- re_filterfile now has modular sections that can be activated on a
per site basis. Some new goodies there too.
- +filter now takes arguments to match FILTER sections in re_filterfile
for even more flexibility.
- Added a new image blocker option: +image-blocker{pattern}, which
for even more flexibility.
- Added a new image blocker option: +image-blocker{pattern}, which
displays a checkerboard patthern and scales better than the logo.
- PNG images will be used in place of GIF for JB built-in images
if configured with --enable-no-gif.
@ -1260,14 +554,14 @@ ChangeLog for Privoxy
- CGI Editor works on OS/2 now.
- Fix restart failure where sockets were in TIME_WAIT.
- Fixes for actions cgi editor, make sure we have right file.
- A --pidfile command line option now, in addition to --help,
- A --pidfile command line option now, in addition to --help,
--version, --no-daemon, --user and configfile. --no-daemon replaces
the former -d option and _DEBUG define. --user will drop privileges
the former -d option and _DEBUG define. --user will drop privileges
to the specified user.
- Signal handling cleanups (*nix).
- CGI actions editor improvements and fixes.
- Error handling improvements, especially out of memory.
- Default re_filterfile fix that caused spurious IJB logos
- Default re_filterfile fix that caused spurious IJB logos
(instead of 'blank').
- configure.in threading fixes for Solaris.
- Various other minor fixes.
@ -1275,14 +569,14 @@ ChangeLog for Privoxy
*** Version 2.9.11 Beta Changes ***
- Add "session" cookie concept where cookies exist for the life
of that browser session only (ie never goes to disk).
- Add "session" cookie concept where cookies exist for the life
of that browser session only (ie never goes to disk).
- Checks for correct header length.
- Fix user:pass@host.domain.com auth bug.
- Better signal handling on *nix.
- Fix CFLAGS hard-coded in configure.in
- Fix threading bug re: gethostbyname() that caused random
URLs to fail in some cases.
- Fix threading bug re: gethostbyname() that caused random
URLs to fail in some cases.
*** Version 2.9.11 Alpha Changes ***
@ -1322,7 +616,7 @@ The only other URLs left are the GNU GPL:
and the home page:
http://ijbswa.sourceforge.net/
... and various URLs which will be intercepted by Junkbuster anyway.
TODO: Still need to do something with the URLs in Junkbuster Corp's
TODO: Still need to do something with the URLs in Junkbuster Corp's
copyright/trademark notice on the bottom of the show-proxy-args page.
- PCRE or GNU Regex is now a #define option.
@ -1346,7 +640,7 @@ parsers.c (again). They obviously got lost in our current
patch war ;-)
- Cut the credit for the §-referrer-option from the config file,
that Stefan had placed there.
- Improved the re_filterfile
- Improved the re_filterfile
*** Version 2.9.0 pre-Alpha Changes ***
@ -1354,9 +648,9 @@ that Stefan had placed there.
- Now use PCRE, not GNU REGEX. I have not yet had chance to check the
syntax of the block/image/cookie file to ensure that they match what
is expected - however they seem to work.
- Replaced "configure" script with one generated by "autoconf". Also
use a header "config.h" (was ijbconfig.h in my previous release) for
the #defines. "config.h" is now generated with "autoheader" from
- Replaced "configure" script with one generated by "autoconf". Also
use a header "config.h" (was ijbconfig.h in my previous release) for
the #defines. "config.h" is now generated with "autoheader" from
"acconfig.h" and "configure.in". (Note that to install you do not
need autoconf or autoheader - just run "./configure".)
To see command-line options, run "./configure --help".
@ -1369,7 +663,7 @@ apply all of these, since I had already independently done conditional
popup file, conditional image file, and integration of popup code.
- ACL, Jar and trust files conditionally compiled.
- New source file headers.
- Various cosmetic changes. (But I have not consistently ordered the
- Various cosmetic changes. (But I have not consistently ordered the
config files - I think that's worthwhile, but it's 1am and I want to
get this released!)
- RCS tags on .h files.
@ -1395,15 +689,16 @@ being a mix of "U.S. English", "U.K. English" and "Irish English".
- Version number changes to 2.9.0
----------------------------------------------------------------------
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/
Based on the Internet Junkbuster originally written
by and Copyright (C) 1997 Anonymous Coders and
by and Copyright (C) 1997 Anonymous Coders and
Junkbusters Corporation. http://www.junkbusters.com/
This program is free software; you can redistribute it
This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General
Public License as published by the Free Software
Foundation; either version 2 of the License, or (at

File diff suppressed because it is too large Load Diff

View File

@ -8,10 +8,10 @@
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -26,8 +26,8 @@
* The GNU General Public License should be included with
* this file. If not, you can view it at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA
*
*********************************************************************/
@ -40,8 +40,9 @@ compiler like gcc are required.
When building from a source tarball, first unpack the source:
tar xzvf privoxy-3.0.19-stable-src.tar.gz
cd privoxy-3.0.19-stable
tar xzvf privoxy-3.0.12-stable-src.tar.gz
cd privoxy-3.0.12-stable
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
@ -52,6 +53,7 @@ documentation, which might give commands like:
cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
cd current
This will create a directory named current/, which will contain the source
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
And then /etc/group, like:
privoxy:*:7777:
Some binary packages may do this for you.
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 -s install # (to really install, -s to silence output)
Using GNU make, you can have the first four steps automatically done for you by
just typing:
make
in the freshly downloaded or unpacked source directory.
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
Then build as above. In Privoxy 3.0.7 and later, all of these options can also
be disabled through the configuration file.
@ -117,6 +124,7 @@ sure both already exist:
make -s install USER=privoxy GROUP=privoxy
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
doing an install to anywhere besides /usr/local, be sure to set the appropriate

View File

@ -4,14 +4,14 @@
*
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -26,13 +26,13 @@
* The GNU General Public License should be included with
* this file. If not, you can view it at
* http://www.gnu.org/copyleft/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA
*
*********************************************************************/
This README is included with Privoxy 3.0.19. See http://www.privoxy.org/ for
This README is included with Privoxy 3.0.12. See http://www.privoxy.org/ for
more information. The current code maturity level is "stable".
-------------------------------------------------------------------------------
@ -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
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).
Helping hands and donations are welcome:
* http://www.privoxy.org/faq/general.html#PARTICIPATE
* http://www.privoxy.org/faq/general.html#DONATE
Donations are welcome.
-------------------------------------------------------------------------------
1. CHANGES
1. IMPORTANT CHANGES
For a list of changes in this release, please have a look at the "ChangeLog",
the "What's New" section or the "Upgrader's Notes" in the User Manual.
March 2009, Privoxy 3.0.12 is released.
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
'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
@ -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
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.
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,
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
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
@ -235,49 +246,16 @@ Please be sure to provide the following information:
* 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). To get a meaningful logfile, please make sure that the logfile
directive is being used and the following debug options are enabled:
taken).
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
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.
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.
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. 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.
If you are new to reporting problems, you might be interested in How to Report
Bugs Effectively.
automatically get a mail when someone responds to your request.
The appendix of the Privoxy User Manual also has helpful information on
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,
feel free to use one of the mailing lists. 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 Privoxy-related
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 Privoxy-related
mailing lists, including list archives, at: http://sourceforge.net/mail/?
group_id=11118.

View File

@ -5,19 +5,19 @@
* File : $Source: /cvsroot/ijbswa/current/acconfig.h,v $
*
* Purpose : This file should be the first thing included in every
* .c file. (Before even system headers). It contains
* .c file. (Before even system headers). It contains
* #define statements for various features. It was
* introduced because the compile command line started
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -35,8 +35,211 @@
* or write to the Free Software Foundation, Inc., 59
* 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@
/*
@ -64,7 +267,7 @@
*/
#undef CODE_STATUS
/*
/*
* Should pcre be statically built in instead of linkling with libpcre?
* (This is determined by configure depending on the availiability of
* libpcre and user preferences). The name is ugly, but pcre needs it.
@ -72,7 +275,7 @@
*/
#undef STATIC_PCRE
/*
/*
* Should pcrs be statically built in instead of linkling with libpcrs?
* (This is determined by configure depending on the availiability of
* libpcrs and user preferences).
@ -85,11 +288,6 @@
*/
#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
* have a shared proxy, you might want to turn this off.
@ -136,14 +334,14 @@
* User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
* 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
* the image "blocked" page, not the HTML "blocked" page.
* 2) Once an image "blocked" page has been sent, viewing it
* 2) Once an image "blocked" page has been sent, viewing it
* in it's own browser window *should* bring up the HTML
* "blocked" page, but it doesn't. You need to clear the
* "blocked" page, but it doesn't. You need to clear the
* browser cache to get the HTML version again.
*
* These limitations are due to IE making inconsistent choices
@ -151,6 +349,11 @@
*/
#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
*/
@ -167,15 +370,10 @@
#undef FEATURE_EXTENDED_HOST_PATTERNS
/*
* Keep connections alive if possible.
* Keep outgoing connections alive if possible.
*/
#undef FEATURE_CONNECTION_KEEP_ALIVE
/*
* Allow to share outgoing connections between incoming connections.
*/
#undef FEATURE_CONNECTION_SHARING
/*
* Use POSIX threads instead of native threads.
*/
@ -237,7 +435,7 @@
#undef HAVE_GMTIME_R
#undef HAVE_LOCALTIME_R
/* Define to 'int' if <sys/socket.h> doesn't have it.
/* Define to 'int' if <sys/socket.h> doesn't have it.
*/
#undef socklen_t
@ -287,7 +485,7 @@
/*
* 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.
*/
#ifdef _MSC_VER

View File

@ -12,14 +12,14 @@
* DEFINE_ACTION_BOOL()
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -37,8 +37,156 @@
* or write to the Free Software Foundation, Inc., 59
* 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))
#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, "last", 1)
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_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)
#endif /* def FEATURE_FAST_REDIRECTS */
DEFINE_ACTION_MULTI ("filter", ACTION_MULTI_FILTER)
DEFINE_ACTION_BOOL ("force-text-mode", ACTION_FORCE_TEXT_MODE)
DEFINE_ACTION_STRING ("forward-override", ACTION_FORWARD_OVERRIDE, ACTION_STRING_FORWARD_OVERRIDE)
@ -121,19 +267,19 @@ DEFINE_CGI_PARAM_CUSTOM ("set-image-blocker", ACTION_IMAGE_BLOCKER,
#if DEFINE_ACTION_ALIAS
/*
/*
* Alternative spellings
*/
DEFINE_ACTION_STRING ("hide-referer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER)
DEFINE_ACTION_BOOL ("prevent-keeping-cookies", ACTION_NO_COOKIE_KEEP)
/*
/*
* Pre-3.0.7 (pseudo) compatibility
*/
DEFINE_ACTION_MULTI ("filter-client-headers", ACTION_MULTI_CLIENT_HEADER_FILTER)
DEFINE_ACTION_MULTI ("filter-server-headers", ACTION_MULTI_SERVER_HEADER_FILTER)
/*
/*
* Pre-3.0 compatibility
*/
DEFINE_ACTION_BOOL ("no-cookie-read", ACTION_NO_COOKIE_READ)

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 $
@ -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
* 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/
*
* 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
* 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"
@ -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 const char * const formerly_valid_actions[] = {
static const char *formerly_valid_actions[] = {
"inspect-jpegs",
"kill-popups",
"send-vanilla-wafer",
@ -522,7 +773,7 @@ jb_err get_actions(char *line,
if ((value == NULL) || (*value == '\0'))
{
if (0 == strcmpic(action->name, "+block"))
if (0 != strcmpic(action->name, "block"))
{
/*
* 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
*
*********************************************************************/
void free_current_action(struct current_action_spec *src)
void free_current_action (struct current_action_spec *src)
{
int i;
@ -1033,108 +1284,6 @@ int load_action_files(struct client_state *csp)
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
@ -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
* sometimes tested with <=
*/
enum {
MODE_START_OF_FILE = 1,
MODE_SETTINGS = 2,
MODE_DESCRIPTION = 3,
MODE_ALIAS = 4,
MODE_ACTIONS = 5
} mode;
#define MODE_START_OF_FILE 1
#define MODE_SETTINGS 2
#define MODE_DESCRIPTION 3
#define MODE_ALIAS 4
#define MODE_ACTIONS 5
int mode = MODE_START_OF_FILE;
FILE *fp;
struct url_actions *last_perm;
struct url_actions *perm;
char *buf;
char buf[BUFFER_SIZE];
struct file_list *fs;
struct action_spec * cur_action = NULL;
int cur_action_used = 0;
struct action_alias * alias_list = NULL;
unsigned long linenum = 0;
mode = MODE_START_OF_FILE;
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 */
}
log_error(LOG_LEVEL_INFO, "Loading actions file: %s", csp->config->actions_file[fileid]);
while (read_config_line(fp, &linenum, &buf) != NULL)
while (read_config_line(buf, sizeof(buf), fp, &linenum) != NULL)
{
if (*buf == '{')
{
@ -1223,7 +1369,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
/* too short */
fclose(fp);
log_error(LOG_LEVEL_FATAL,
"can't load actions file '%s': invalid line (%lu): %s",
"can't load actions file '%s': invalid line (%lu): %s",
csp->config->actions_file[fileid], linenum, buf);
return 1; /* never get here */
}
@ -1324,11 +1470,11 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
{
/* It's an actions block */
char *actions_buf;
char actions_buf[BUFFER_SIZE];
char * end;
/* set mode */
mode = MODE_ACTIONS;
mode = MODE_ACTIONS;
/* free old action */
if (cur_action)
@ -1351,23 +1497,8 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
}
init_action(cur_action);
/*
* Copy the buffer before messing with it as we may need the
* 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 */
}
/* trim { */
strlcpy(actions_buf, buf + 1, sizeof(actions_buf));
/* check we have a trailing } and then trim it */
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 } */
fclose(fp);
freez(actions_buf);
log_error(LOG_LEVEL_FATAL, "can't load actions file '%s': "
"Missing trailing '}' in action section starting at line (%lu): %s",
log_error(LOG_LEVEL_FATAL,
"can't load actions file '%s': invalid line (%lu): %s",
csp->config->actions_file[fileid], linenum, buf);
return 1; /* never get here */
}
@ -1390,21 +1520,11 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
{
/* error */
fclose(fp);
freez(actions_buf);
log_error(LOG_LEVEL_FATAL, "can't load actions file '%s': "
"can't completely parse the action section starting at line (%lu): %s",
log_error(LOG_LEVEL_FATAL,
"can't load actions file '%s': invalid line (%lu): %s",
csp->config->actions_file[fileid], linenum, buf);
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)
@ -1428,8 +1548,8 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
csp->config->actions_file[fileid]);
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)
{
@ -1538,7 +1658,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
}
else if (mode == MODE_ACTIONS)
{
/* it's an URL pattern */
/* it's a URL pattern */
/* allocate a new node */
if ((perm = zalloc(sizeof(*perm))) == NULL)
@ -1558,7 +1678,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
{
fclose(fp);
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);
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. */
fclose(fp);
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);
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);
return 1; /* never get here */
}
freez(buf);
}
fclose(fp);
@ -1619,7 +1738,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid)
*
* Description : Converts a actionsfile entry from the internal
* structure into a text line. The output is split
* into one line for each action with line continuation.
* into one line for each action with line continuation.
*
* Parameters :
* 1 : action = The action to format.
@ -1704,7 +1823,7 @@ char * actions_to_text(const struct action_spec *action)
* Function : actions_to_html
*
* 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
* the user manual.
*
@ -1810,12 +1929,12 @@ char * actions_to_html(const struct client_state *csp,
*
* 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
* the user manual.
*
* Parameters :
* 1 : csp = Client state (for config)
* 1 : csp = Client state (for config)
* 2 : action = Current action spec to be converted
*
* Returns : A string. Caller must free it.

View File

@ -1,6 +1,6 @@
#ifndef 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 $
@ -12,10 +12,10 @@
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -33,8 +33,87 @@
* or write to the Free Software Foundation, Inc., 59
* 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
extern "C" {
@ -56,27 +135,27 @@ struct action_alias
};
extern jb_err get_actions (char *line,
extern jb_err get_actions (char *line,
struct action_alias * alias_list,
struct action_spec *cur_action);
extern void free_alias_list(struct action_alias *alias_list);
extern void init_action(struct action_spec *dest);
extern void free_action(struct action_spec *src);
extern jb_err merge_actions (struct action_spec *dest,
extern jb_err merge_actions (struct action_spec *dest,
const struct action_spec *src);
#if 0
extern int update_action_bits_for_all_tags(struct client_state *csp);
#endif
extern int update_action_bits_for_tag(struct client_state *csp, const char *tag);
extern jb_err copy_action (struct action_spec *dest,
extern jb_err copy_action (struct action_spec *dest,
const struct action_spec *src);
extern char * actions_to_text (const struct action_spec *action);
extern char * actions_to_html (const struct client_state *csp,
const struct action_spec *action);
extern void init_current_action (struct current_action_spec *dest);
extern void free_current_action (struct current_action_spec *src);
extern jb_err merge_current_action (struct current_action_spec *dest,
extern jb_err merge_current_action (struct current_action_spec *dest,
const struct action_spec *src);
extern char * current_action_to_html(const struct client_state *csp,
const struct current_action_spec *action);

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 $
@ -8,7 +8,7 @@ const char amiga_rcs[] = "$Id: amiga.c,v 1.14 2011/09/04 11:10:56 fabiankeil Exp
* Copyright : Written by and Copyright (C) 2001 the SourceForge
* Privoxy team. http://www.privoxy.org/
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -26,8 +26,66 @@ const char amiga_rcs[] = "$Id: amiga.c,v 1.14 2011/09/04 11:10:56 fabiankeil Exp
* or write to the Free Software Foundation, Inc., 59
* 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"

View File

@ -1,7 +1,7 @@
#ifdef AMIGA
#ifndef 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 $
@ -11,7 +11,7 @@
* Copyright : Written by and Copyright (C) 2001 the SourceForge
* Privoxy team. http://www.privoxy.org/
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -29,8 +29,47 @@
* or write to the Free Software Foundation, Inc., 59
* 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
#include <sys/socket.h>

1084
external/privoxy/cgi.c vendored

File diff suppressed because it is too large Load Diff

182
external/privoxy/cgi.h vendored
View File

@ -1,24 +1,24 @@
#ifndef 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 $
*
* Purpose : Declares functions to intercept request, generate
* html or gif answers, and to compose HTTP resonses.
*
*
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -36,8 +36,161 @@
* or write to the Free Software Foundation, Inc., 59
* 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"
@ -51,8 +204,9 @@ extern "C" {
extern struct http_response *dispatch_cgi(struct client_state *csp);
/* Not exactly a CGI */
extern struct http_response *error_response(struct client_state *csp,
const char *templatename);
extern struct http_response * error_response(struct client_state *csp,
const char *templatename,
int err);
/*
* CGI support functions
@ -69,7 +223,7 @@ extern jb_err map_block_killer (struct map *exports, const char *name);
extern jb_err map_block_keep (struct map *exports, const char *name);
extern jb_err map_conditional (struct map *exports, const char *name, int choose_first);
extern jb_err template_load(const struct client_state *csp, char ** template_ptr,
extern jb_err template_load(const struct client_state *csp, char ** template_ptr,
const char *templatename, int recursive);
extern jb_err template_fill(char ** template_ptr, const struct map *exports);
extern jb_err template_fill_for_cgi(const struct client_state *csp,
@ -101,14 +255,6 @@ extern jb_err get_string_param(const struct map *parameters,
const char **pparam);
extern char get_char_param(const struct map *parameters,
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

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 $
@ -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
* 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"
@ -85,10 +438,10 @@ struct file_line
{
/** Next entry in the linked list */
struct file_line * next;
/** The raw data, to write out if this line is unmodified. */
char * raw;
/** Comments and/or whitespace to put before this line if it's modified
and then written out. */
char * prefix;
@ -97,7 +450,7 @@ struct file_line
are performed on the data read from file before it's stored here, so
it will be a single line of data. */
char * unprocessed;
/** The type of data on this line. One of the FILE_LINE_xxx constants. */
int type;
@ -321,10 +674,15 @@ static jb_err actions_from_radio(const struct map * parameters,
static jb_err map_copy_parameter_html(struct map *out,
const struct map *in,
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,
const struct map *parameters,
const char *param_name,
static jb_err get_file_name_param(struct client_state *csp,
const struct map *parameters,
const char *param_name,
const char **pfilename);
/* Internal convenience functions */
@ -428,6 +786,56 @@ static jb_err map_copy_parameter_html(struct map *out,
}
#if 0 /* unused function */
/*********************************************************************
*
* Function : map_copy_parameter_url
*
* Description : Copy a CGI parameter from one map to another, URL
* encoding it.
*
* Parameters :
* 1 : out = target map
* 2 : in = source map
* 3 : name = name of cgi parameter to copy
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory
* JB_ERR_CGI_PARAMS if the parameter doesn't exist
* in the source map
*
*********************************************************************/
static jb_err map_copy_parameter_url(struct map *out,
const struct map *in,
const char *name)
{
const char * value;
jb_err err;
assert(out);
assert(in);
assert(name);
value = lookup(in, name);
err = map(out, name, 1, url_encode(value), 0);
if (err)
{
/* Out of memory */
return err;
}
else if (*value == '\0')
{
return JB_ERR_CGI_PARAMS;
}
else
{
return JB_ERR_OK;
}
}
#endif /* 0 - unused function */
/*********************************************************************
*
* Function : cgi_edit_actions_url_form
@ -652,7 +1060,7 @@ jb_err cgi_edit_actions_remove_url_form(struct client_state *csp,
if (cur_line->type == FILE_LINE_ACTION)
{
section_start_line_number = line_number;
}
}
cur_line = cur_line->next;
}
@ -1428,7 +1836,7 @@ jb_err edit_read_file_lines(FILE *fp, struct file_line ** pfile, int *newline)
if (rval)
{
/* 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);
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
* 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)
@ -1679,7 +2087,7 @@ jb_err edit_read_actions_file(struct client_state *csp,
{
log_error(LOG_LEVEL_INFO,
"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;
}
}
@ -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);
/*
* 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
* 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).
*
* 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
* and work in broken browsers as well, but the user can no longer change
* all actions with one submit.
@ -3360,7 +3768,7 @@ jb_err cgi_edit_actions_url(struct client_state *csp,
if (cur_line->type == FILE_LINE_ACTION)
{
section_start_line_number = line_number;
}
}
cur_line = cur_line->next;
line_number++;
}
@ -4128,7 +4536,7 @@ jb_err cgi_edit_actions_section_swap(struct client_state *csp,
*
* Description : Converts a string into a form JavaScript will like.
*
* Netscape 4's JavaScript sucks - it doesn't use
* Netscape 4's JavaScript sucks - it doesn't use
* "id" parameters, so you have to set the "name"
* used to submit a form element to something JavaScript
* will like. (Or access the elements by index in an

View File

@ -1,23 +1,23 @@
#ifndef 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 $
*
* Purpose : CGI-based actionsfile editor.
*
*
* Functions declared include:
*
*
*
* Copyright : Written by and Copyright (C) 2001 the SourceForge
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -35,8 +35,72 @@
* or write to the Free Software Foundation, Inc., 59
* 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"

View File

@ -1,22 +1,22 @@
const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.111 2011/09/04 11:10:56 fabiankeil Exp $";
const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.91 2009/03/08 14:19:23 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
*
* Purpose : Simple CGIs to get information about Privoxy's
* status.
*
*
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -34,8 +34,415 @@ const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.111 2011/09/04 11:10:56 fabia
* or write to the Free Software Foundation, Inc., 59
* 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"
@ -80,7 +487,7 @@ static jb_err load_file(const char *filename, char **buffer, size_t *length);
* Description : CGI function that is called for the CGI_SITE_1_HOST
* and CGI_SITE_2_HOST/CGI_SITE_2_PATH base URLs.
* Boring - only exports the default exports.
*
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
* 2 : rsp = http_response data structure for output
@ -118,7 +525,7 @@ jb_err cgi_default(struct client_state *csp,
*
* Description : CGI function that is called if an unknown action was
* given.
*
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
* 2 : rsp = http_response data structure for output
@ -127,7 +534,7 @@ jb_err cgi_default(struct client_state *csp,
* CGI Parameters : none
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_error_404(struct client_state *csp,
@ -165,7 +572,7 @@ jb_err cgi_error_404(struct client_state *csp,
* NOTE: Turning this on in a production build
* would be a BAD idea. An EXTREMELY BAD idea.
* In short, don't do it.
*
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
* 2 : rsp = http_response data structure for output
@ -174,27 +581,13 @@ jb_err cgi_error_404(struct client_state *csp,
* CGI Parameters : none
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_die (struct client_state *csp,
struct http_response *rsp,
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(rsp);
assert(parameters);
@ -202,21 +595,12 @@ jb_err cgi_die (struct client_state *csp,
/* quit */
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;
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;
return JB_ERR_MEMORY;
}
#endif /* def FEATURE_GRACEFUL_TERMINATION */
@ -227,7 +611,7 @@ jb_err cgi_die (struct client_state *csp,
*
* Description : Show the client's request and what sed() would have
* made of it.
*
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
* 2 : rsp = http_response data structure for output
@ -236,7 +620,7 @@ jb_err cgi_die (struct client_state *csp,
* CGI Parameters : none
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_show_request(struct client_state *csp,
@ -254,7 +638,7 @@ jb_err cgi_show_request(struct client_state *csp,
{
return JB_ERR_MEMORY;
}
/*
* Repair the damage done to the IOB by get_header()
*/
@ -289,7 +673,7 @@ jb_err cgi_show_request(struct client_state *csp,
*
* Function : cgi_send_banner
*
* Description : CGI function that returns a banner.
* Description : CGI function that returns a banner.
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
@ -304,7 +688,7 @@ jb_err cgi_show_request(struct client_state *csp,
* equivalent).
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_send_banner(struct client_state *csp,
@ -317,7 +701,7 @@ jb_err cgi_send_banner(struct client_state *csp,
* If type is auto, then determine the right thing
* to do from the set-image-blocker action
*/
if (imagetype == 'a')
if (imagetype == 'a')
{
/*
* Default to pattern
@ -368,14 +752,14 @@ jb_err cgi_send_banner(struct client_state *csp,
}
#endif /* def FEATURE_IMAGE_BLOCKING */
}
/*
* Now imagetype is either the non-auto type we were called with,
* or it was auto and has since been determined. In any case, we
* can proceed to actually answering the request by sending a redirect
* or an image as appropriate:
*/
if (imagetype == 'r')
if (imagetype == 'r')
{
rsp->status = strdup("302 Local Redirect from Privoxy");
if (rsp->status == NULL)
@ -390,7 +774,7 @@ jb_err cgi_send_banner(struct client_state *csp,
}
else
{
if ((imagetype == 'b') || (imagetype == 't'))
if ((imagetype == 'b') || (imagetype == 't'))
{
rsp->body = bindup(image_blank_data, image_blank_length);
rsp->content_length = image_blank_length;
@ -432,7 +816,7 @@ jb_err cgi_send_banner(struct client_state *csp,
* CGI Parameters : None
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_transparent_image(struct client_state *csp,
@ -476,7 +860,7 @@ jb_err cgi_transparent_image(struct client_state *csp,
* CGI Parameters : None
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_send_default_favicon(struct client_state *csp,
@ -537,7 +921,7 @@ jb_err cgi_send_default_favicon(struct client_state *csp,
* CGI Parameters : None
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_send_error_favicon(struct client_state *csp,
@ -599,7 +983,7 @@ jb_err cgi_send_error_favicon(struct client_state *csp,
* CGI Parameters : None
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_send_stylesheet(struct client_state *csp,
@ -607,7 +991,7 @@ jb_err cgi_send_stylesheet(struct client_state *csp,
const struct map *parameters)
{
jb_err err;
assert(csp);
assert(rsp);
@ -653,7 +1037,7 @@ jb_err cgi_send_stylesheet(struct client_state *csp,
* CGI Parameters : None
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_send_url_info_osd(struct client_state *csp,
@ -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
@ -739,29 +1081,22 @@ static const char *get_content_type(const char *filename)
* (relative to user-manual from config)
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_send_user_manual(struct client_state *csp,
struct http_response *rsp,
const struct map *parameters)
{
const char *filename;
const char * filename;
char *full_path;
jb_err err = JB_ERR_OK;
const char *content_type;
size_t length;
assert(csp);
assert(rsp);
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)
{
/* 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);
if (filename == NULL)
/* Check paramter for hack attempts */
if (filename && strchr(filename, '/'))
{
/* It's '/' so serve the index.html if there is one. */
filename = "index.html";
return JB_ERR_CGI_PARAMS;
}
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;
}
full_path = make_path(csp->config->usermanual, filename);
full_path = make_path(csp->config->usermanual, filename ? filename : "index.html");
if (full_path == NULL)
{
return JB_ERR_MEMORY;
@ -805,12 +1133,29 @@ jb_err cgi_send_user_manual(struct client_state *csp,
}
freez(full_path);
content_type = get_content_type(filename);
log_error(LOG_LEVEL_CGI,
"Content-Type guessed for %s: %s", filename, content_type);
return enlist_unique_header(rsp->headers, "Content-Type", content_type);
/* Guess correct Content-Type based on the filename's ending */
if (filename)
{
length = strlen(filename);
}
else
{
length = 0;
}
if((length>=4) && !strcmp(&filename[length-4], ".css"))
{
err = enlist(rsp->headers, "Content-Type: text/css");
}
else if((length>=4) && !strcmp(&filename[length-4], ".jpg"))
{
err = enlist(rsp->headers, "Content-Type: image/jpeg");
}
else
{
err = enlist(rsp->headers, "Content-Type: text/html");
}
return err;
}
@ -829,7 +1174,7 @@ jb_err cgi_send_user_manual(struct client_state *csp,
* CGI Parameters : none
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_show_version(struct client_state *csp,
@ -878,7 +1223,7 @@ jb_err cgi_show_version(struct client_state *csp,
* Default is to show menu and other information.
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_show_status(struct client_state *csp,
@ -924,7 +1269,7 @@ jb_err cgi_show_status(struct client_state *csp,
if (!err) err = map(exports, "options", 1, csp->config->proxy_args, 1);
if (!err) err = show_defines(exports);
if (err)
if (err)
{
free_map(exports);
return JB_ERR_MEMORY;
@ -968,8 +1313,8 @@ jb_err cgi_show_status(struct client_state *csp,
#else /* ndef FEATURE_STATISTICS */
err = err || map_block_killer(exports, "statistics");
#endif /* ndef FEATURE_STATISTICS */
/*
/*
* List all action files in use, together with view and edit links,
* except for standard.action, which should only be viewable. (Not
* enforced in the editor itself)
@ -1010,7 +1355,7 @@ jb_err cgi_show_status(struct client_state *csp,
if (!err) err = string_append(&s, "</td></tr>\n");
}
}
if (*s != '\0')
if (*s != '\0')
{
if (!err) err = map(exports, "actions-filenames", 1, s, 0);
}
@ -1019,7 +1364,7 @@ jb_err cgi_show_status(struct client_state *csp,
if (!err) err = map(exports, "actions-filenames", 1, "<tr><td>None specified</td></tr>", 1);
}
/*
/*
* List all re_filterfiles in use, together with view options.
* FIXME: Shouldn't include hardwired HTML here, use line template instead!
*/
@ -1036,7 +1381,7 @@ jb_err cgi_show_status(struct client_state *csp,
if (!err) err = string_append(&s, "</td></tr>\n");
}
}
if (*s != '\0')
if (*s != '\0')
{
if (!err) err = map(exports, "re-filter-filenames", 1, s, 0);
}
@ -1076,7 +1421,7 @@ jb_err cgi_show_status(struct client_state *csp,
return template_fill_for_cgi(csp, "show-status", exports, rsp);
}
/*********************************************************************
*
* Function : cgi_show_url_info
@ -1097,7 +1442,7 @@ jb_err cgi_show_status(struct client_state *csp,
* the template.
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_show_url_info(struct client_state *csp,
@ -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
* 2) Only the "http://" or "https://" part is present, no URL - change
* 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.
* 4) Parameter not specified or is empty string - let this fall through
* 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';
}
}
else if ((url_param[0] != '\0')
&& ((NULL == strstr(url_param, "://")
|| (strstr(url_param, "://") > strstr(url_param, "/")))))
else if ((url_param[0] != '\0') && (NULL == strstr(url_param, "://")))
{
/*
* No prefix or at least no prefix before
* the first slash - assume http://
*/
/* No prefix - assume http:// */
char *url_param_prefixed = strdup("http://");
if (JB_ERR_OK != string_join(&url_param_prefixed, url_param))
@ -1215,7 +1555,7 @@ jb_err cgi_show_url_info(struct client_state *csp,
struct http_request url_to_query[1];
struct current_action_spec action[1];
int i;
if (map(exports, "url", 1, html_encode(url_param), 0))
{
free(url_param);
@ -1503,7 +1843,7 @@ jb_err cgi_show_url_info(struct client_state *csp,
* CGI Parameters : None
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
jb_err cgi_robots_txt(struct client_state *csp,
@ -1551,19 +1891,13 @@ jb_err cgi_robots_txt(struct client_state *csp,
* 1 : exports = map to extend
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
static jb_err show_defines(struct map *exports)
{
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
if (!err) err = map_conditional(exports, "FEATURE_ACL", 1);
#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);
#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
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);
#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
if (!err) err = map_conditional(exports, "FEATURE_FAST_REDIRECTS", 1);
#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);
#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
if (!err) err = map_conditional(exports, "FEATURE_NO_GIFS", 1);
#else /* ifndef FEATURE_NO_GIFS */
@ -1801,7 +2117,7 @@ static char *show_rcs(void)
* Default is to show menu and other information.
*
* Returns : JB_ERR_OK on success
* JB_ERR_MEMORY on out-of-memory error.
* JB_ERR_MEMORY on out-of-memory error.
*
*********************************************************************/
static jb_err cgi_show_file(struct client_state *csp,
@ -1895,7 +2211,7 @@ static jb_err cgi_show_file(struct client_state *csp,
return JB_ERR_CGI_PARAMS;
}
/*********************************************************************
*
* Function : load_file
@ -1922,7 +2238,6 @@ static jb_err load_file(const char *filename, char **buffer, size_t *length)
fp = fopen(filename, "rb");
if (NULL == fp)
{
log_error(LOG_LEVEL_ERROR, "Failed to open %s: %E", filename);
return JB_ERR_FILE;
}

View File

@ -1,24 +1,24 @@
#ifndef 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 $
*
* Purpose : Declares functions to intercept request, generate
* html or gif answers, and to compose HTTP resonses.
*
*
* Functions declared include:
*
*
*
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -36,8 +36,78 @@
* or write to the Free Software Foundation, Inc., 59
* 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"

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
#
#
# The User Manual is then available to anyone with
# access to Privoxy, by following the built-in URL:
# http://config.privoxy.org/user-manual/ (or the shortcut:
@ -123,6 +124,7 @@
#
# user-manual http://example.com/privoxy/user-manual/
#
#
# WARNING!!!
#
# 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.
#
filterfile default.filter
filterfile user.filter # User customizations
#filterfile user.filter # User customizations
#
#
# 2.6. logfile
@ -558,7 +560,7 @@ logfile logfile
# debug 2 # show each connection status
# debug 4 # show I/O status
# debug 8 # show header parsing
# debug 16 # log all data written to the network
# debug 16 # log all data written to the network into the logfile
# debug 32 # debug force feature
# debug 64 # debug regular expression filters
# debug 128 # debug redirects
@ -568,16 +570,15 @@ logfile logfile
# debug 2048 # CGI user interface
# debug 4096 # Startup banner and warnings.
# 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
# use multiple debug lines.
#
# A debug level of 1 is informative because it will show you each
# request as it happens. 1, 1024, 4096 and 8192 are recommended
# so that you will notice when things go wrong. The other levels
# are probably only of interest if you are hunting down a specific
# request as it happens. 1, 4096 and 8192 are recommended 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. They can produce a hell of an output (especially 16).
#
# Privoxy used to ship with the debug levels recommended above
@ -681,24 +682,22 @@ logfile logfile
#
# 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.
#
# Type of value:
#
# [IP-Address]:Port
#
# [Hostname]:Port
#
# Default value:
#
# 127.0.0.1:8118
#
# Effect if unset:
#
# Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is suitable
# and recommended for home users who run Privoxy on the same
# machine as their browser.
# Bind to 127.0.0.1 (localhost), port 8118. This is suitable and
# recommended for home users who run Privoxy on the same machine
# as their browser.
#
# Notes:
#
@ -709,56 +708,15 @@ logfile logfile
# if you want to serve requests from other machines (e.g. on your
# local network) as well, you will need to override the default.
#
# You can use this statement multiple times to make Privoxy listen
# 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
# If you leave out the IP address, Privoxy will bind to all
# 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 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.
# from the Internet. In that case, consider using access control
# lists (ACL's, see below), and/or a firewall.
#
# If you open Privoxy to untrusted users, you will also
# want to make sure that the following actions are disabled:
# 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:
#
# Suppose you are running Privoxy on a machine which has the
@ -768,10 +726,6 @@ logfile logfile
#
# 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
#
@ -988,28 +942,18 @@ enforce-blocks 0
#
# 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
# decimal notation or valid DNS names, port is a port number, and
# src_masklen and dst_masklen 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
# 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.
# Where src_addr and dst_addr are IP addresses in dotted decimal
# notation or valid DNS names, and src_masklen and dst_masklen 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 destination part are optional.
#
# Default value:
#
# 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:
#
# 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
# 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
# side effects if the site in question is hosted on a machine
# which also hosts other sites (most sites are).
@ -1078,16 +1016,6 @@ enforce-blocks 0
# permit-access 192.168.45.64/26
# 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
@ -1165,7 +1093,7 @@ buffer-limit 4096
# to denote "all URLs". http_parent[:port] 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). Use a single dot (.) to denote "no forwarding".
# (default: 8080). Use a single dot (.) to denote "no forwarding".
#
# Default value:
#
@ -1180,13 +1108,6 @@ buffer-limit 4096
# If http_parent is ".", then requests are not forwarded to
# 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
# last match wins.
#
@ -1206,16 +1127,6 @@ buffer-limit 4096
# 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
@ -1258,13 +1169,6 @@ buffer-limit 4096
# With forward-socks5 the DNS resolution will happen on the remote
# 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
# HTTP proxy but are made (HTTP-wise) directly to the web servers,
# albeit through a SOCKS proxy.
@ -1289,7 +1193,7 @@ buffer-limit 4096
# To chain Privoxy and Tor, both running on the same system,
# 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,
@ -1315,6 +1219,7 @@ buffer-limit 4096
#
#
#
#
# 5.3. forwarded-connect-retries
# ===============================
#
@ -1355,9 +1260,6 @@ buffer-limit 4096
# manually. Start with a small value and check Privoxy's logfile
# 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:
#
# forwarded-connect-retries 1
@ -1365,10 +1267,7 @@ buffer-limit 4096
forwarded-connect-retries 0
#
#
# 6. MISCELLANEOUS
# =================
#
# 6.1. accept-intercepted-requests
# 5.4. accept-intercepted-requests
# =================================
#
# Specifies:
@ -1407,7 +1306,7 @@ forwarded-connect-retries 0
accept-intercepted-requests 0
#
#
# 6.2. allow-cgi-request-crunching
# 5.5. allow-cgi-request-crunching
# =================================
#
# Specifies:
@ -1445,7 +1344,7 @@ accept-intercepted-requests 0
allow-cgi-request-crunching 0
#
#
# 6.3. split-large-forms
# 5.6. split-large-forms
# =======================
#
# Specifies:
@ -1487,7 +1386,7 @@ allow-cgi-request-crunching 0
split-large-forms 0
#
#
# 6.4. keep-alive-timeout
# 5.7. keep-alive-timeout
# ========================
#
# Specifies:
@ -1505,168 +1404,36 @@ split-large-forms 0
#
# Effect if unset:
#
# Connections are not kept alive.
# Connections are not reused.
#
# 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
# 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:
#
# Note that reusing connections doesn't necessary cause
# speedups. There are also a few privacy implications you should
# be aware of.
#
# 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 Privoxy and the server unless
# the client's request hasn't been completed yet.
#
# If the outgoing connection is idle, it will not be closed until
# either Privoxy's or the server's timeout is reached. While
# Outgoing connections are shared between clients (if there are
# more than one) and closing the client that initiated the outgoing
# connection does not affect the connection between Privoxy and
# the server unless the client's request hasn't been completed
# yet. 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
# 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:
#
# connection-sharing 1
# keep-alive-timeout 300
#
#connection-sharing 1
keep-alive-timeout 300
#
#
# 6.7. socket-timeout
# 5.8. socket-timeout
# ====================
#
# Specifies:
@ -1699,187 +1466,7 @@ keep-alive-timeout 5
socket-timeout 300
#
#
# 6.8. max-client-connections
# ============================
#
# 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
# 6. WINDOWS GUI OPTIONS
# =======================
#
# 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
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
# 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
# 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.
# Originally written by Per Bothner. Please send patches (context
# diff format) to <config-patches@gnu.org> and include a ChangeLog
# entry.
# Originally written by Per Bothner <per@bothner.com>.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
# The plan is that this can be called by configure scripts if you
# don't specify an explicit build system type.
me=`echo "$0" | sed -e 's,.*/,,'`
@ -56,9 +56,8 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
Software Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
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)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
| grep __ELF__ >/dev/null
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@ -181,7 +180,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
os=netbsd
os=netbsd
;;
esac
# 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}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# 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.
# 1.2 uses "1.2" for uname -r.
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.
exitcode=$?
trap '' 0
exit $exitcode ;;
exit ;;
Alpha\ *:Windows_NT*:*)
# 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
@ -299,7 +295,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
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
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
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/[^.]*//'`
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# 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
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@ -484,8 +461,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@ -498,7 +475,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@ -555,7 +532,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[4567])
*:AIX:*:[456])
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
IBM_ARCH=rs6000
@ -598,52 +575,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
esac ;;
esac
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@ -663,7 +640,7 @@ EOF
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
@ -734,22 +711,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@ -773,14 +750,14 @@ EOF
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@ -792,12 +769,13 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
case ${UNAME_MACHINE} in
pc98)
echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
amd64)
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
exit ;;
i*:CYGWIN*:*)
@ -806,22 +784,19 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
case ${UNAME_MACHINE} in
*:Interix*:[3456]*)
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
authenticamd | genuineintel | EM64T)
EM64T | authenticamd)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
@ -831,9 +806,6 @@ EOF
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
8664:Windows_NT:*)
echo x86_64-pc-mks
exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# 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
@ -863,20 +835,6 @@ EOF
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
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:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@ -884,13 +842,7 @@ EOF
then
echo ${UNAME_MACHINE}-unknown-linux-gnu
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
else
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
fi
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
fi
exit ;;
avr32*:Linux:*:*)
@ -903,21 +855,7 @@ EOF
echo crisv32-axis-linux-gnu
exit ;;
frv:Linux:*:*)
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}"
echo frv-unknown-linux-gnu
exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@ -928,33 +866,74 @@ EOF
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#undef mips
#undef mipsel
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
CPU=mipsel
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
CPU=mips
#else
CPU=
#endif
#endif
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; }
;;
or32:Linux:*:*)
echo or32-unknown-linux-gnu
exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-gnu
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
ppc64:Linux:*:*)
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 ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
@ -964,17 +943,14 @@ EOF
*) echo hppa-unknown-linux-gnu ;;
esac
exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@ -982,9 +958,6 @@ EOF
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
@ -992,8 +965,71 @@ EOF
echo x86_64-unknown-linux-gnu
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux-gnu
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*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
@ -1001,11 +1037,11 @@ EOF
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# 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}
exit ;;
i*86:OS/2:*:*)
@ -1022,7 +1058,7 @@ EOF
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
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}
exit ;;
i*86:*DOS:*:*)
@ -1037,7 +1073,7 @@ EOF
fi
exit ;;
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
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@ -1065,13 +1101,10 @@ EOF
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@ -1106,18 +1139,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { 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; } ;;
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
@ -1130,7 +1153,7 @@ EOF
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
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}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@ -1150,10 +1173,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@ -1179,11 +1202,11 @@ EOF
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@ -1193,9 +1216,6 @@ EOF
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@ -1223,16 +1243,6 @@ EOF
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
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 ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@ -1248,9 +1258,6 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-?:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
@ -1296,13 +1303,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@ -1317,9 +1324,6 @@ EOF
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@ -1342,11 +1346,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
"4"
#else
""
""
#endif
); exit (0);
); exit (0);
#endif
#endif

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

@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
# Free Software Foundation, Inc.
timestamp='2011-11-11'
timestamp='2008-02-05'
# This file is (in principle) common to ALL 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
# diff and a properly formatted GNU ChangeLog entry.
# diff and a properly formatted ChangeLog entry.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# 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.
# 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
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
@ -75,9 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
Software Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
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.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@ -154,13 +148,10 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis | -knuth | -cray | -microblaze)
-apple | -axis | -knuth | -cray)
os=
basic_machine=$1
;;
-bluegene*)
os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@ -175,10 +166,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
;;
-hiux*)
os=-hiuxwe2
;;
@ -251,20 +242,15 @@ case $basic_machine in
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
| maxq | mb | microblaze | mcore | mep \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@ -284,42 +270,28 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
| nios | nios2 \
| ns16k | ns32k \
| open8 \
| or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| rl78 | rx \
| 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 \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu \
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
c54x)
basic_machine=tic54x-unknown
;;
c55x)
basic_machine=tic55x-unknown
;;
c6x)
basic_machine=tic6x-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
os=-none
@ -330,18 +302,6 @@ case $basic_machine in
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'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@ -361,23 +321,19 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
| m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@ -399,32 +355,27 @@ case $basic_machine in
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| romp-* | rs6000-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
| tahoe-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
| z8k-*)
;;
# Recognize the basic CPU types without company name, with glob match.
xtensa*)
@ -446,7 +397,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
abacus)
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@ -492,10 +443,6 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-bsd
;;
aros)
basic_machine=i386-pc
os=-aros
;;
aux)
basic_machine=m68k-apple
os=-aux
@ -512,27 +459,10 @@ case $basic_machine in
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
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)
basic_machine=c90-cray
os=-unicos
;;
cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@ -561,7 +491,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
cr16 | cr16-*)
cr16)
basic_machine=cr16-unknown
os=-elf
;;
@ -600,10 +530,6 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
dicos)
basic_machine=i686-pc
os=-dicos
;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
@ -777,9 +703,6 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
microblaze)
basic_machine=microblaze-xilinx
;;
mingw32)
basic_machine=i386-pc
os=-mingw32
@ -816,18 +739,10 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
basic_machine=i386-pc
os=-msys
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
nacl)
basic_machine=le32-unknown
os=-nacl
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@ -892,12 +807,6 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@ -980,10 +889,9 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
ppc | ppcbe) basic_machine=powerpc-unknown
ppc) basic_machine=powerpc-unknown
;;
ppc-* | ppcbe-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@ -1077,9 +985,6 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
strongarm-* | thumb-*)
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
;;
@ -1136,8 +1041,20 @@ case $basic_machine in
basic_machine=t90-cray
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*)
basic_machine=$basic_machine-unknown
basic_machine=tile-unknown
os=-linux-gnu
;;
tx39)
@ -1207,9 +1124,6 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
;;
ymp)
basic_machine=ymp-cray
os=-unicos
@ -1218,10 +1132,6 @@ case $basic_machine in
basic_machine=z8k-unknown
os=-sim
;;
z80-*-coff)
basic_machine=z80-unknown
os=-sim
;;
none)
basic_machine=none-none
os=-none
@ -1260,7 +1170,7 @@ case $basic_machine in
we32k)
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
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@ -1307,12 +1217,9 @@ esac
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-auroraux)
os=-auroraux
;;
-solaris1 | -solaris1.*)
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.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@ -1346,10 +1252,9 @@ case $os in
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-uclibc* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@ -1357,7 +1262,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -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.
;;
-qnx*)
@ -1396,7 +1301,7 @@ case $os in
-opened*)
os=-openedition
;;
-os400*)
-os400*)
os=-os400
;;
-wince*)
@ -1445,7 +1350,7 @@ case $os in
-sinix*)
os=-sysv4
;;
-tpf*)
-tpf*)
os=-tpf
;;
-triton*)
@ -1487,11 +1392,6 @@ case $os in
-zvmoe)
os=-zvmoe
;;
-dicos*)
os=-dicos
;;
-nacl*)
;;
-none)
;;
*)
@ -1514,10 +1414,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
score-*)
score-*)
os=-elf
;;
spu-*)
spu-*)
os=-elf
;;
*-acorn)
@ -1529,17 +1429,8 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
c4x-* | tic4x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
@ -1566,7 +1457,7 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
mep-*)
mep-*)
os=-elf
;;
mips*-cisco)
@ -1593,7 +1484,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
*-knuth)
*-knuth)
os=-mmixware
;;
*-wec)
@ -1698,7 +1589,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
-cnk*|-aix*)
-aix*)
vendor=ibm
;;
-beos*)

View File

@ -1,38 +1,572 @@
dnl Process this file with autoconf to produce a configure script.
dnl
dnl $Id: configure.in,v 1.166 2011/12/26 17:03:31 fabiankeil Exp $
dnl
dnl Written by and Copyright (C) 2001-2010 the
dnl
dnl $Id: configure.in,v 1.126 2009/03/21 10:45:06 fabiankeil Exp $
dnl
dnl Written by and Copyright (C) 2001-2009 the
dnl Privoxy team. http://www.privoxy.org/
dnl
dnl Based on the Internet Junkbuster originally written
dnl by and Copyright (C) 1997 Anonymous Coders and
dnl by and Copyright (C) 1997 Anonymous Coders and
dnl Junkbusters Corporation. http://www.junkbusters.com
dnl
dnl This program is free software; you can redistribute it
dnl This program is free software; you can redistribute it
dnl and/or modify it under the terms of the GNU General
dnl Public License as published by the Free Software
dnl Foundation; either version 2 of the License, or (at
dnl your option) any later version.
dnl
dnl
dnl This program is distributed in the hope that it will
dnl be useful, but WITHOUT ANY WARRANTY; without even the
dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE. See the GNU General Public
dnl License for more details.
dnl
dnl
dnl The GNU General Public License should be included with
dnl this file. If not, you can view it at
dnl http://www.gnu.org/copyleft/gpl.html
dnl or write to the Free Software Foundation, Inc., 59
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl
dnl $Log: configure.in,v $
dnl Revision 1.126 2009/03/21 10:45:06 fabiankeil
dnl Declare the code stable.
dnl
dnl 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 AutoConf Initialization
dnl =================================================================
AC_REVISION($Revision: 1.166 $)
AC_REVISION($Revision: 1.126 $)
AC_INIT(jcc.c)
if test ! -f config.h.in; then
@ -44,7 +578,7 @@ if test ! -f config.h.in; then
else
autoheader
fi
fi
fi
AC_CONFIG_HEADER([config.h])
AC_CANONICAL_HOST
@ -52,13 +586,13 @@ AC_CANONICAL_HOST
dodk=auto
DKPREFIX=none
AC_ARG_WITH(docbook, dnl
--with-docbook=[[yes|no|directory]]
Enable docbook documentation creation
--with-docbook=[[yes|no|directory]]
Enable docbook documentation creation
(default = yes, for gnu and linux),[dnl
case "$with_docbook" in
yes) dodk=yes;;
no) dodk=no;;
*)
*)
dodk=yes
DKPREFIX=$withval
;;
@ -78,13 +612,12 @@ dnl =================================================================
VERSION_MAJOR=3
VERSION_MINOR=0
VERSION_POINT=19
VERSION_POINT=12
CODE_STATUS="stable"
dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED",
dnl and will be used for CGI output. Increment version number and
dnl set status to "UNRELEASED" whenever CVS differs from the last
dnl release and no new release is near.
dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
dnl whenever CVS in a stable branch differs from the last release.
dnl =================================================================
dnl Substitute the version numbers
@ -119,13 +652,13 @@ AC_PROG_MAKE_SET
AC_PROG_AWK
AC_CHECK_PROG(GDB,gdb,yes,no)
AC_PATH_PROG(BGROUPS,groups,no,$PATH:/bin:/usr/bin:/usr/local/bin)
AC_PATH_PROG(ID,id,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,/bin:/usr/bin:/usr/local/bin)
AC_SUBST(ID)
AC_SUBST(BGROUPS)
dnl =================================================================
dnl debug, gcc and gdb support
dnl debug, gcc and gdb support
dnl =================================================================
AC_ARG_WITH(debug,
@ -203,7 +736,7 @@ else
AC_MSG_CHECKING([for group])
AC_ARG_WITH(group,
[ --with-group=privoxy Set group for privoxy],
[
[
if test "x$withval" != "xyes"; then
if test $BGROUPS = no ; then
AC_MSG_ERROR(There is no 'groups' program on this system)
@ -242,7 +775,7 @@ fi
dnl =================================================================
dnl additional gcc flags
dnl =================================================================
dnl
dnl
if test "$GCC"; then
if test "$host" != "powerpc-unknown-amigaos"; then
CFLAGS="-pipe $CFLAGS"
@ -260,7 +793,7 @@ dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
dnl the compiler will use completely different sets of library
dnl and include files.
dnl
dnl
dnl =================================================================
AC_MINGW32
@ -299,7 +832,6 @@ fi])
if test $target_type = mingw; then
WIN_ONLY=
CFLAGS="$CFLAGS -DWINVER=0x501"
SPECIAL_CFLAGS="-mwindows -mno-cygwin"
PTHREAD_LIB=-lpthreadGC
echo "Using mingw32 (Win32 GUI)"
@ -316,7 +848,7 @@ else
fi
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
AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
if test "$WDUMP" = false; then
@ -324,7 +856,7 @@ if test $dodk != no; then
fi
if test $DB2HTML = false; then
dnl We need to clean the variable, otherwise AC_CHECK_PROGS
dnl will fail
dnl will fail
DB2HTML=""
AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
fi
@ -400,13 +932,6 @@ fi
AC_SUBST(JADECAT)
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
old_CFLAGS_nospecial=$CFLAGS
CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
@ -430,7 +955,7 @@ AC_ARG_ENABLE(pthread,
[if test $enableval = no; then
# Disable pthreads
if test $have_pthread = yes; then
AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.])
AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.])
AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.])
fi
have_pthread=no
@ -648,10 +1173,10 @@ AC_SUBST(SOCKET_LIB)
dnl =================================================================
dnl Mac OSX specific
dnl =================================================================
case "$host" in
*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
;;
;;
esac
dnl =================================================================
@ -701,63 +1226,19 @@ dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
dnl Checks for library functions.
dnl bcopy is for PCRE
AC_CHECK_FUNCS([bcopy])
dnl AC_TYPE_SIGNAL
dnl AC_CHECK_FUNC(strstr)
dnl bcopy and memmove are for PCRE
AC_CHECK_FUNCS([strerror bcopy memmove])
AC_PROG_GCC_TRADITIONAL
dnl uncommenting does not work for swa. suse linux
dnl AC_FUNC_MALLOC
AC_FUNC_SETPGRP
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])
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 Checks for libraries.
@ -774,7 +1255,7 @@ AC_CHECK_LIB(pcre, pcre_compile, [
], [have_pcre=no])
])
], [have_pcre=no])
AC_CHECK_LIB(pcreposix, regcomp, [
AC_CHECK_HEADER(pcreposix.h, [
AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
@ -783,7 +1264,7 @@ AC_CHECK_LIB(pcreposix, regcomp, [
AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
], [have_pcreposix=no])
])
], [have_pcreposix=no], -lpcre)
], [have_pcreposix=no], -lpcre)
dnl ================================================================
dnl libpcrs is temporarily disabled.
@ -838,15 +1319,15 @@ AC_ARG_ENABLE(ie-images,
fi],)
AC_ARG_ENABLE(image-blocking,
[ --disable-image-blocking Don't try to figure out whether a request is
[ --disable-image-blocking Don't try to figure out whether a request is
for an image or HTML - assume HTML.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_IMAGE_BLOCKING)
fi],
AC_DEFINE(FEATURE_IMAGE_BLOCKING))
AC_ARG_ENABLE(acl-support,
[ --disable-acl-support Prevents the use of ACLs to control access to
AC_ARG_ENABLE(acl-files,
[ --disable-acl-files Prevents the use of ACL files to control access to
Privoxy by IP address.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_ACL)
@ -882,23 +1363,11 @@ AC_ARG_ENABLE(graceful-termination,
fi])
AC_ARG_ENABLE(extended-host-patterns,
[ --enable-extended-host-patterns Enable and require PCRE syntax in host patterns. This feature hasn't
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.],
[ --enable-extended-host-patterns Allow extended regular expressions in host patterns.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
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 the choice is only between static and
dnl dynamic:
@ -928,25 +1397,12 @@ if test $enableval2 = yes; then
AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"])
if test $have_zlib = "yes"; then
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
AC_MSG_WARN([No zlib found.
Privoxy will not be able to filter compressed content.
This may become a fatal error in the future.])
fi
fi
AC_ARG_ENABLE(compression,
[ --enable-compression Allow Privoxy to compress buffered content if the client supports it. Requires zlib support.],
[enableval2=$enableval],
[enableval2=no])
if test $enableval2 = yes; then
if test $have_zlib = "yes"; then
echo Enabling compression support.
AC_DEFINE(FEATURE_COMPRESSION,1,[Define to 1 to use compression through the zlib library.])
else
AC_MSG_WARN([No zlib found. Privoxy will not be able to (re-)compressed buffered content.])
fi
fi
fi
@ -960,18 +1416,16 @@ if test $have_pcre = "yes"; then
STATIC_PCRE_ONLY=#
LIBS="$LIBS -lpcre -lpcreposix"
else
AC_MSG_WARN([You are using the static PCRE code which is out of date and scheduled for removal, for details see:
http://sourceforge.net/mailarchive/forum.php?thread_name=20080511195555.2dc6cfdc%40fabiankeil.de&forum_name=ijbswa-developers])
AC_MSG_WARN([You are using the static PCRE code which is scheduled for removal, for details see:
https://sourceforge.net/mailarchive/message.php?msg_id=20080511195555.2dc6cfdc%40fabiankeil.de])
pcre_dyn=no
AC_DEFINE(STATIC_PCRE)
STATIC_PCRE_ONLY=
fi
AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
if test $have_pthread = "yes" -o $target_type = "mingw"; then
echo Enabling connection-sharing support.
AC_DEFINE(FEATURE_CONNECTION_SHARING)
echo Enabling keep-alive support for outgoing connections.
AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
fi
dnl =================================================
@ -999,7 +1453,7 @@ dnl =================================================================
dnl Final cleanup and output
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
CFLAGS=$old_CFLAGS_nospecial
AC_SUBST(SPECIAL_CFLAGS)

View File

@ -1,6 +1,6 @@
#ifndef 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 $
@ -13,10 +13,10 @@
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -34,6 +34,26 @@
* or write to the Free Software Foundation, Inc., 59
* 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. */

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 $
@ -6,7 +6,7 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
* Purpose : Declares functions to manipulate binary images on the
* fly. High-level functions include:
* - Deanimation of GIF images
*
*
* Functions declared include: gif_deanimate, buf_free,
* buf_copy, buf_getbyte, gif_skip_data_block
* and gif_extract_image
@ -19,7 +19,7 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
* and ideas from the Image::DeAnim Perl module by
* Ken MacFarlane, <ksm+cpan@universal.dca.net>
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -37,8 +37,77 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
* or write to the Free Software Foundation, Inc., 59
* 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"
@ -53,7 +122,7 @@ const char deanimate_rcs[] = "$Id: deanimate.c,v 1.21 2011/09/04 11:10:56 fabian
const char deanimate_h_rcs[] = DEANIMATE_H_VERSION;
/*********************************************************************
*
*
* Function : buf_free
*
* Description : Safely frees a struct binbuffer
@ -79,7 +148,7 @@ void buf_free(struct binbuffer *buf)
/*********************************************************************
*
*
* Function : buf_extend
*
* Description : Ensure that a given binbuffer can hold a given amount
@ -90,7 +159,7 @@ void buf_free(struct binbuffer *buf)
* Parameters :
* 1 : buf = Pointer to the binbuffer
* 2 : length = Desired minimum size
*
*
*
* Returns : 0 on success, 1 on failure.
*
@ -121,7 +190,7 @@ static int buf_extend(struct binbuffer *buf, size_t length)
/*********************************************************************
*
*
* Function : buf_copy
*
* Description : Safely copies a given amount of bytes from one
@ -142,7 +211,7 @@ static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
/*
* Sanity check: Can't copy more data than we have
*/
if (src->offset + length > src->size)
if (src->offset + length > src->size)
{
return 1;
}
@ -150,7 +219,7 @@ static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
/*
* Ensure that dst can hold the new data
*/
if (buf_extend(dst, length))
if (buf_extend(dst, length))
{
return 1;
}
@ -169,7 +238,7 @@ static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
/*********************************************************************
*
*
* Function : buf_getbyte
*
* Description : Safely gets a byte from a given binbuffer at a
@ -197,7 +266,7 @@ static unsigned char buf_getbyte(const struct binbuffer *src, size_t offset)
/*********************************************************************
*
*
* Function : gif_skip_data_block
*
* Description : Safely advances the offset of a given struct binbuffer
@ -215,7 +284,7 @@ static int gif_skip_data_block(struct binbuffer *buf)
{
unsigned char c;
/*
/*
* Data blocks are sequences of chunks, which are headed
* by a one-byte length field, with the last chunk having
* zero length.
@ -236,12 +305,12 @@ static int gif_skip_data_block(struct binbuffer *buf)
/*********************************************************************
*
*
* Function : gif_extract_image
*
* Description : Safely extracts an image data block from a given
* struct binbuffer that contains a GIF image and whose
* offset is positioned at the start of a data block
* offset is positioned at the start of a data block
* into a given destination binbuffer.
*
* Parameters :
@ -279,7 +348,7 @@ static int gif_extract_image(struct binbuffer *src, struct binbuffer *dst)
if (buf_copy(src, dst, (size_t)map_length))
{
return 1;
}
}
}
if (buf_copy(src, dst, 1)) return 1;
@ -304,7 +373,7 @@ static int gif_extract_image(struct binbuffer *src, struct binbuffer *dst)
}
/*********************************************************************
*
*
* Function : gif_deanimate
*
* Description : Deanimate a given GIF image, i.e. given a GIF with
@ -336,9 +405,9 @@ int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_im
c = buf_getbyte(src, 10);
/*
* Check & copy GIF header
* Check & copy GIF header
*/
if (strncmp(src->buffer, "GIF89a", 6) && strncmp(src->buffer, "GIF87a", 6))
if (strncmp(src->buffer, "GIF89a", 6) && strncmp(src->buffer, "GIF87a", 6))
{
return 1;
}
@ -390,7 +459,7 @@ int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_im
case 0x3b:
goto write;
/*
/*
* Image block: Extract to current image buffer.
*/
case 0x2c:
@ -450,13 +519,13 @@ int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_im
*/
default:
goto failed;
}
} /* -END- while src */
/*
* Either we got here by goto, or because the GIF is
* bogus and EOF was reached before an end-of-gif marker
* bogus and EOF was reached before an end-of-gif marker
* was found.
*/

View File

@ -1,6 +1,6 @@
#ifndef 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 $
@ -8,9 +8,9 @@
* Purpose : Declares functions to manipulate binary images on the
* fly. High-level functions include:
* - Deanimation of GIF images
*
*
* Functions declared include: gif_deanimate and buf_free.
*
*
*
* Copyright : Written by and Copyright (C) 2001 - 2004 by the the
* SourceForge Privoxy team. http://www.privoxy.org/
@ -19,10 +19,10 @@
* Ken MacFarlane, <ksm+cpan@universal.dca.net>
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -40,8 +40,51 @@
* or write to the Free Software Foundation, Inc., 59
* 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
extern "C" {
@ -64,7 +107,7 @@ struct binbuffer
extern int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_image);
extern void buf_free(struct binbuffer *buf);
/*
/*
* Revision control strings from this header and associated .c file
*/
extern const char deanimate_rcs[];

View File

@ -11,7 +11,7 @@
#
# 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
# syntax changes.
@ -23,7 +23,7 @@
# and enhancements are better placed in user.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/
#
# 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
# 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
# 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} \
+client-header-tagger{css-requests} \
+client-header-tagger{image-requests} \
+hide-from-header{block} \
+set-image-blocker{pattern} \
}
@ -576,8 +574,6 @@ standard.Cautious
#
{ \
+change-x-forwarded-for{block} \
+client-header-tagger{css-requests} \
+client-header-tagger{image-requests} \
+deanimate-gifs{last} \
+filter{refresh-tags} \
+filter{img-reorder} \
@ -644,16 +640,6 @@ standard.Advanced
{-handle-as-image}
/.*\.(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:
#############################################################################
@ -681,7 +667,6 @@ metrics.
# Generic unblockers by host:
#############################################################################
{-block}
# Sticky Actions = -block
adsl.
ad[udmw]*.
adbl*.
@ -698,11 +683,6 @@ adventure*.
.*[epu]ad*.
county*.
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:
@ -728,8 +708,6 @@ linuxcounter.net/
/.*(lo|thre|he|d|gr|l|ro|re|squ|class(ified)?)ads
/.*account
support./(.*/)?track
# URL = http://repo.or.cz/r/vlc.git/objects/ad/1d316efd83157217fdf9b5d417dddca54bbf41
/.*\.git/objects/
#############################################################################
# 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
/.*(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;
#############################################################################
@ -916,10 +748,6 @@ go.idmnet.bbelements.com/please/showit/
landing.trafficz.com/
# Blocked URL = http://www.searchnut.com/?domain=www.inetcat.org
.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.}}
#MASTER# BLOCK-REFERRER: http://www.brooksbrothers.com/ 10/18/06
@ -1059,52 +887,128 @@ static.lycos-europe.net
#MASTER# BLOCK-REFERRER: http://hitta.se
# Blocked URL = http://82.99.18.195/media.1/112/9460/146016/150x175_Hitta_FV_Feb08.gif
82.99.18.195
#MASTER# REMARKS: Actionsfile feedback item #1888197 and #2975927.
#MASTER# REMARKS: Have a "go there anyway" link for clk.atdmt.com and view.atdmt.com.
#MASTER# REMARKS: Actionsfile feedback item #1888197 2008-02-06
#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
# Blocked URL = http://clk.atdmt.com/
# Blocked URL = http://view.atdmt.com/action/mrtiwy_FY10Office2010BetaHomeandBiz1_1
.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
#----------------------------------------------------------------------------
#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
# Blocked URL = http://a.tfag.de/js.ng/
/js\.ng/
#MASTER# BLOCK-REFERRER: http://www.britannica.com/ 10/23/06
/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
/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# BLOCK-REFERRER: http://www.securityfocus.com/archive/1/461489/30/0/threaded
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# REMARKS: Actionsfile feedback item #1736794 2007-06-13
js.adsonar.
@ -1114,7 +1018,10 @@ js.adsonar.
bwp.
# Blocked URL = http://us.mc123.mail.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:
@ -1145,8 +1052,6 @@ bwp.
# Blocked URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
# URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
/(.*/)?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:
@ -1175,20 +1080,15 @@ bwp.
#.yimg.com/a/.*/flash/
#MASTER# REMARKS: The above replaced with below. Actions file tracker #1645616 2007-01-27
.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*.einets.com
.qkimg.net
#MASTER# BLOCK-REFERRER: http://salon.com/ 10/19/06
#MASTER# BLOCK-REFERRER: http://maps.yahoo.com/
#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: (Actionsfile feedback item #1888197 and #2975927)
[abd-ux-z]*.atdmt.com/
#MASTER# REMARKS: and have a "go there anyway" link for clk.atdmt.com
#MASTER# REMARKS: (Actionsfile feedback item #1888197)
[abd-vx-z]*.atdmt.com/
#MASTER# BLOCK-REFERRER: http://www.exactaudiocopy.de/ 09/11/06
#MASTER# BLOCK-REFERRER: http://stanford.facebook.com/home.php
# URL = http://www.fastclick.net/
@ -1215,7 +1115,7 @@ a.tribalfusion.com/
#MASTER# REMARKS: Pointdexter
.ru4.com/
#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
admedia.
#MASTER# REMARKS: Bannerfarm used by Morpheus file sharing software
@ -1305,15 +1205,6 @@ img.directtrack.com
.pclick.yahoo.com/images/
# Blocked URL = http://rover.ebay.com/ar/1/2/3?mpt=123&adtype=1&size=728x90
/.*\&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
@ -1406,19 +1297,6 @@ feeds.feedburner.com/~a/DilbertDailyStrip\?
#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
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)
@ -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/
# URL = http://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: 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
@ -1724,8 +1594,7 @@ fritz.box/
# URL = http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402747&sliceId=1
.adobe.com
# 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
qa.debian.org/popcon\.php
#MASTER# REMARKS: Support Requests item #2432535 2008-12-16
# URL = http://www.mta.info/bandt/traffic/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/homepage/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
.update.microsoft.com
#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
@ -1844,7 +1664,7 @@ mail.google.*
.dabs.com
.overclockers.co.uk
.db24.de
.ebay.*
.ebay.
.mobile.de
www.fondationlejeu.com
www.techtv.com
@ -1893,21 +1713,21 @@ i.cnn.net/cnn/.*/clickability/button
# Sticky Actions = -fast-redirects
www.ukc.ac.uk/cgi-bin/wac\.cgi\?
#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
.altavista.com/(.*(like|url|link):|trans.*urltext=)http
#MASTER# PROBLEM-URL: http://www.speedfind.de/cgi-bin/search?q=foo&t=STANDARD
.speedfind.de
#MASTER# PROBLEM-URL: http://www.nytimes.com/
.nytimes.com
#MASTER# REMARKS: Disable fast-redirects for all of yahoo.com/.
#MASTER# REMARKS: Apparently we can't keep up with maintaining more precise exceptions.
# URL = http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
#MASTER# REMARKS: Yahoo logout URL after first redirect. fk 2007-01-19
#MASTER# REMARKS: Logout fails if we fast-redirect to the URL after "done=".
#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.
.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
.w3.org
#MASTER# PROBLEM-URL: http://www.ask.com/
@ -1974,23 +1794,6 @@ view.samurajdata.se/ps\.php\?url=
.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
.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
@ -2135,10 +1938,6 @@ javabog.dk/ijk/
.fsfe.org/
# URL = http://www.couchsurfing.com/mapsurf.html
.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}}
# 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: These are movie clips, linked from http://us.imdb.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
# URL = http://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
blogs.msdn.com
{-filter{jumping-windows}}
# Sticky Actions = -filter{jumping-windows}
# URL = http://www.openstreetmap.org
.openstreetmap.org
{+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# 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/
rds.yahoo.com/
# Redirected URL = http://rds.yahoo.com/_ylt=A0geuryczbBF._YAEmxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11b3qg40n/EXP=1169301276/**http%3a//www.privoxy.org/
# Redirect Destination = http://www.privoxy.org/
#MASTER# COMMENTS: Verified 2007-01-19 fk
#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
dw.com.com/redir\?
# 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
dw.com.com/
#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
# 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\?
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
# 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\?
# 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.}}
#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.
/antitheft\.php
{ +prevent-compression }
.compusa.com/
{+filter{tiny-textforms}}
.sourceforge.net/tracker
@ -2326,8 +2116,6 @@ www.skweezer.net/bloglines
{+redirect{http://config.privoxy.org/}}
# Sticky Actions = +redirect{http://config.privoxy.org/}
# URL = http://www.privoxy.org/config
# Redirected URL = http://www.privoxy.org/config
# Redirect Destination = http://config.privoxy.org/
.privoxy.org/config
#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.
# 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
# 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://
#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.
#----------------------------------------------------------------------------

View File

@ -2,11 +2,11 @@
#
# 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
#
# Copyright : Written by and Copyright (C) 2001-2010 the
# Copyright : Written by and Copyright (C) 2001-2009 the
# Privoxy team. http://www.privoxy.org/
#
# 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
# Not events, but abused on the same type of sites:
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
# 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
#
s/microsoft(?!\.[^\s])/MicroSuck/ig
s/microsoft(?!.[^\s])/MicroSuck/ig
# 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\
\#tpa1,\#tpa2,\#tpa3,\#tpa4,\#tpa5,\#tpa5, \#spl, .ch, \#ads,\
\#toolbar, \#google_ads_frame, \#mbEnd {display: none !important;}\n\
.main_body, .j, \#res, .med, .hd, .g, .s\n\
{width: 99%; max-width: 100%; margin-left: 0; margin-right: 0;}\n\
</style>\n$0@
.main_body, .j {width: 100%}\n</style>\n$0@
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\
|</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\
\#symadbn, \#ymadbn, .yschbox, .yschhd, .bbox, \#yschsec, \#sec,\
\#yschanswr, .yschftad, .yschspn, .yschspns, \#ygrp-sponsored-links,\
\#nwad, \#MWA2, \#MSCM, \#yregad, \#sponsored-links,\
\#ks-ypn-ads, .ad, \#east, \#ygrp-vital, .ads {display: none !important;}\n\
\#yschpri, \#yschweb, \#pri, \#web, \#main, .yschttl, .abstr, .res \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\
\#nwad, \#MWA2, \#MSCM, \#yregad, \
\#ks-ypn-ads, .ad, \#east, \#ygrp-vital {display: none !important;}\n\
\#yschpri, \#yschweb, \#pri, \#web, \#main {width: 100% !important; max-width: 100% !important;}\n\
\#yschqcon, \#yschtg {width: auto !important; /* No useless horizontal scrollbar please */}\n\
\#composebox \#compose_editorArea {width: 70% !important; /* reasonably sized reply textarea please */\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\
.msn_ads, \#at, \#ar, .mktmsg {display: none !important;}\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\
{width: 99% !important; min-width: 99% !important;\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\
.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\
</style>\n$0@
# 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
#################################################################################
#
# 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.
@ -870,3 +834,456 @@ s@^X-Privoxy-Control:\s*@@i
SERVER-HEADER-FILTER: privoxy-control Removes X-Privoxy-Control headers.
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

@ -28,7 +28,7 @@ pcrs - Perl-compatible regular substitution.
.B "#include <pcrs.h>"
.PP
.br
.BI "pcrs_job *pcrs_compile(const char *" pattern ","
.BI "pcrs_job *pcrs_compile(const char *" pattern ","
.ti +5n
.BI "const char *" substitute ", const char *" options ,
.ti +5n
@ -68,7 +68,7 @@ pcrs - Perl-compatible regular substitution.
The
.SM PCRS
library is a supplement to the
library is a supplement to the
.SB PCRE(3)
library that implements
.RB "regular expression based substitution, like provided by " Perl(1) "'s 's'"
@ -77,10 +77,10 @@ differences (see below).
In a first step, the information on a substitution, i.e. the pattern, the
substitute and the options are compiled from Perl syntax to an internal form
.RB "called " pcrs_job " by using either the " pcrs_compile() " or "
.RB "called " pcrs_job " by using either the " pcrs_compile() " or "
.BR pcrs_compile_command() " functions."
Once the job is compiled, it can be used on subjects, which are arbitrary
Once the job is compiled, it can be used on subjects, which are arbitrary
memory areas containing string or binary data, by calling
.BR pcrs_execute() ". Jobs can be chained to joblists and whole"
.RB "joblists can be applied to a subject using " pcrs_execute_list() .
@ -104,7 +104,7 @@ There are also convenience functions for freeing the jobs and for errno-to-strin
.RB "follows the '" "s" "' will be used as the delimiter. Patterns or substitutes"
that contain the delimiter need to quote it:
\fBs/th\\/is/th\\/at/\fR
.RB "will replace " "th/is" " by " "th/at" " and can be written more simply as"
.RB "will replace " "th/is" " by " "th/at" " and can be written more simply as"
.BR "s|th/is|th/at|" "."
.IR "pattern" ", " "substitute" ", " "options" " and " "command" " must be"
@ -123,7 +123,7 @@ On success, both functions return a pointer to the compiled job.
.SS Substitutes
.RI "The " "substitute" " uses"
.RB "Perl syntax as documented in the " "perlre(1)" " manual page, with"
some exceptions:
some exceptions:
Most notably and evidently, since
.SM PCRS
@ -147,9 +147,9 @@ refers to what the last capturing subpattern matched.
if a global substitution previously matched.
.PP
Perl4-style references to subpattern matches of the form
Perl4-style references to subpattern matches of the form
\fB\\1, \\2, ...\fR
.RB "which only exist in Perl5 for backwards compatibility, are " "not"
.RB "which only exist in Perl5 for backwards compatibility, are " "not"
supported.
Also, since the substitute is a double-quoted string in Perl, you
@ -269,7 +269,7 @@ is set.
.SS String subjects
If your
If your
.SS Return value and diagnostics
@ -298,7 +298,7 @@ contains pointers to other dynamically allocated structures.
Chaining the jobs is up to you, but once you have built a linked list of jobs,
.RI "you can execute a whole " joblist " on a given subject by"
.RB "a single call to " pcrs_execute_list() ", which will sequentially traverse"
.RB "the linked list until it reaches a " NULL " pointer, and call " pcrs_execute()
.RB "the linked list until it reaches a " NULL " pointer, and call " pcrs_execute()
.RI "for each job it encounters, feeding the " result " and " result_length " of each"
.RI "call into the next as the " subject " and " subject_length ". As in the single"
.RI "job case, the original " subject " remains untouched, but all interim " result "s"
@ -335,22 +335,22 @@ Under normal circumstances, it can take the following values:
While compiling the pattern,
.SM PCRE
ran out of memory.
.TP
.TP
.B PCRS_ERR_NOMEM
While compiling the job,
.SM PCRS
ran out of memory.
.TP
.TP
.B PCRS_ERR_CMDSYNTAX
.BR pcrs_compile_command() " didn't find four tokens while parsing the"
.IR command .
.TP
.TP
.B PCRS_ERR_STUDY
A
.SM PCRE
.RB "error occured while studying the compiled pattern. Since " pcre_study()
only provides textual diagnostic information, the details are lost.
.TP
.TP
.B PCRS_WARN_BADREF
.RI "The " substitute " contains a reference to a capturing subpattern that"
.RI "has a higher index than the number of capturing subpatterns in the " pattern
@ -368,12 +368,12 @@ While matching the pattern,
ran out of memory. This can only happen if there are more than 33 backrefrences
.RI "in the " pattern "(!)"
.BR and " memory is too tight to extend storage for more."
.TP
.TP
.B PCRS_ERR_NOMEM
While executing the job,
.SM PCRS
ran out of memory.
.TP
.TP
.B PCRS_ERR_BADJOB
.RB "The " pcrs_job "* passed to " pcrs_execute " was NULL, or the"
.RB "job is bogus (it contains " NULL " pointers to the compiled

View File

@ -2,31 +2,31 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/authors.sgml,v $
Purpose : AUTHORS file for Privoxy
$Id: authors.sgml,v 2.11 2009/02/12 16:08:26 fabiankeil Exp $
$Id: authors.sgml,v 2.21 2011/12/26 17:05:40 fabiankeil Exp $
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE.
========================================================================
NOTE: Please read developer-manual/documentation.html before touching
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation. You have been warned!
Failure to abide by this rule will result in the revocation of your license
Failure to abide by this rule will result in the revocation of your license
to live a peaceful existence!
========================================================================
===================================================================
READ: Document Note: This file generates the AUTHORS file in the
READ: Document Note: This file generates the AUTHORS file in the
top level source directory. See p-authors.sgml for list of developers
and contributors, etc. They were split from here for use in man page.
===================================================================
-->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!entity % dummy "IGNORE">
<!entity % dummy "IGNORE">
<!entity authors SYSTEM "p-authors.sgml">
<!entity p-version "3.0.19">
<!entity p-version "3.0.11">
<!entity p-status "stable">
<!entity % p-not-stable "IGNORE">
<!entity % p-stable "INCLUDE">

View File

@ -2,8 +2,8 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/buildsource.sgml,v $
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/
See LICENSE.
@ -12,7 +12,7 @@
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -22,7 +22,7 @@
-->
<para>
To build <application>Privoxy</application> from source,
To build <application>Privoxy</application> from source,
<ulink url="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</ulink>,
<ulink
url="http://www.gnu.org/software/make/make.html">GNU make
@ -32,12 +32,12 @@
<para>
When building from a source tarball,
<!--
<!--
no longer available ...
<ulink
url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz">nightly CVS
tarball</ulink>),
--> first unpack the source:
tarball</ulink>),
--> first unpack the source:
</para>
<para>
@ -63,7 +63,7 @@
</para>
<para>
This will create a directory named <filename>current/</filename>, which will
This will create a directory named <filename>current/</filename>, which will
contain the source tree.
</para>
@ -81,7 +81,7 @@
and group just for this purpose. See your local documentation for the correct
command line to do add new users and groups (something like
<command>adduser</command>, but the command syntax may vary from platform
to platform).
to platform).
</para>
<para>
@ -113,7 +113,7 @@
autoheader
autoconf
./configure # (--help to see options)
make # (the make from GNU, sometimes called gmake)
make # (the make from GNU, sometimes called gmake)
su # Possibly required
make -n install # (to see where all the files will go)
make -s install # (to really install, -s to silence output)</screen>
@ -135,14 +135,14 @@
</para>
<para>
To build an executable with security enhanced features so that
To build an executable with security enhanced features so that
users cannot easily bypass the proxy (e.g. <quote>Go There Anyway</quote>), or
alter their own configurations, <command>configure</command> like this:
</para>
<para>
<screen>
./configure --disable-toggle --disable-editor --disable-force</screen>
</para>
</para>
<para>
Then build as above. In Privoxy 3.0.7 and later, all of these options
can also be disabled through the configuration file.
@ -177,9 +177,9 @@ can also be disabled through the configuration file.
</para>
<para>
The default installation path for <command>make install</command> is
<filename>/usr/local</filename>. This may of course be customized with
the various <command>./configure</command> path options. If you are doing
The default installation path for <command>make install</command> is
<filename>/usr/local</filename>. This may of course be customized with
the various <command>./configure</command> path options. If you are doing
an install to anywhere besides <filename>/usr/local</filename>, be
sure to set the appropriate paths with the correct configure options
(<command>./configure --help</command>). Non-privileged users must of course
@ -209,15 +209,15 @@ can also be disabled through the configuration file.
<literal>localstatedir</literal> (ie: <filename>var/</filename>) will default
to <filename>/var</filename> instead of <literal>$prefix/var</literal> so
the logs will go to <filename>/var/log/privoxy/</filename>, and the pid file
will be created in <filename>/var/run/privoxy.pid</filename>.
will be created in <filename>/var/run/privoxy.pid</filename>.
</para>
<para>
<command>make install</command> will attempt to set the correct values
in <filename>config</filename> (main configuration file). You should
<command>make install</command> will attempt to set the correct values
in <filename>config</filename> (main configuration file). You should
check this to make sure all values are correct. If appropriate,
an init script will be installed, but it is up to the user to determine
how and where to start <application>Privoxy</application>. The init
an init script will be installed, but it is up to the user to determine
how and where to start <application>Privoxy</application>. The init
script should be checked for correct paths and values, if anything other than
a default install is done.
</para>
@ -248,9 +248,9 @@ can also be disabled through the configuration file.
<!-- Actually this is now in INSTALL -->
<![%p-readme;[
<para>
The simplest command line to start <application>Privoxy</application> is
<command>$path/privoxy --user=privoxy $path/etc/privoxy/config</command>.
See <command>privoxy --usage</command>, or the man page, for other options,
The simplest command line to start <application>Privoxy</application> is
<command>$path/privoxy --user=privoxy $path/etc/privoxy/config</command>.
See <command>privoxy --usage</command>, or the man page, for other options,
and configuration.
</para>
]]>

View File

@ -1,7 +1,7 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
<!entity % dummy "IGNORE">
<!entity % dummy "IGNORE">
<!entity config SYSTEM "p-config.sgml">
<!entity p-version "3.0.19">
<!entity p-version "3.0.11">
<!entity p-status "stable">
<!entity % p-not-stable "IGNORE">
<!entity % user-man "IGNORE">
@ -12,19 +12,19 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/config.sgml,v $
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/
See LICENSE.
========================================================================
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation.
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation.
========================================================================
This file is used to generate the main Privoxy config file. It is mostly
content included from p-config.sgml (where all the data is). See that
This file is used to generate the main Privoxy config file. It is mostly
content included from p-config.sgml (where all the data is). See that
file for more comments.
-->

View File

@ -2,10 +2,10 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/contacting.sgml,v $
Purpose : Entity included in other project documents.
$Id: contacting.sgml,v 2.14 2008/04/26 11:38:51 fabiankeil Exp $
$Id: contacting.sgml,v 2.30 2011/11/19 14:44:01 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
See LICENSE.
======================================================================
@ -29,13 +29,13 @@
<para>
We value your feedback. In fact, we rely on it to improve
<application>Privoxy</application> and its configuration.
However, please note the following hints, so we can
However, please note the following hints, so we can
provide you with the best support:
</para>
<sect2 id="contact-support"><title>Get Support</title>
<para>
For casual users, our
For casual users, our
<ulink url="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118">support forum at SourceForge</ulink>
is probably best suited:
<ulink url="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118">http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</ulink>
@ -52,15 +52,6 @@
developers, either use the mailing lists or the support trackers.
</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>
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
addresses have to be accepted manually by a moderator. This may cause a
@ -86,30 +77,30 @@
<listitem>
<para>
Configuration issues, such as ads that slip through, or sites that
don't function properly due to one <application>Privoxy</application>
Configuration issues, such as ads that slip through, or sites that
don't function properly due to one <application>Privoxy</application>
<quote>action</quote> or another being turned <quote>on</quote>.
</para>
</listitem>
</listitem>
<listitem>
<para>
<quote>Bugs</quote> in the programming code that makes up
<quote>Bugs</quote> in the programming code that makes up
<application>Privoxy</application>, such as that might cause a crash.
</para>
</listitem>
</listitem>
</itemizedlist>
<sect3 id="contact-ads"><title>Reporting Ads or Other Configuration Problems</title>
<para>
Please send feedback on ads that slipped through, innocent images that were
blocked, sites that don't work properly, and other configuration related problem of
<filename>default.action</filename> file, to
blocked, sites that don't work properly, and other configuration related problem of
<filename>default.action</filename> file, to
<ulink url="http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288">
http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</ulink>,
the Actions File Tracker.
</para>
</para>
<para>
New, improved <filename>default.action</filename> files may occasionally be made
@ -124,15 +115,15 @@
<sect3 id="contact-bugs"><title>Reporting Bugs</title>
<para>
Please report all bugs through our bug tracker:
<ulink url="http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118">http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118</ulink>.
Please report all bugs through our bug tracker:
<ulink url="http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118">http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118</ulink>.
</para>
<para>
Before doing so, please make sure that the bug has <emphasis>not already been submitted</emphasis>
and observe the additional hints at the top of the <ulink
url="http://sourceforge.net/tracker/?func=add&amp;group_id=11118&amp;atid=111118">submit
form</ulink>. If already submitted, please feel free to add any info to the
form</ulink>. If already submitted, please feel free to add any info to the
original report that might help to solve the issue.
</para>
@ -159,7 +150,7 @@
that your bug still exists.
</para>
<para>
Please be sure to provide the following information:
Please be sure to provide the following information:
</para>
<para>
<itemizedlist>
@ -170,7 +161,7 @@
(if you got the source from CVS, please also provide the source code revisions
as shown in <ulink url="http://config.privoxy.org/show-version">http://config.privoxy.org/show-version</ulink>).
</para>
</listitem>
</listitem>
<listitem>
<para>
@ -180,11 +171,11 @@
sending the output of <quote>uname -a</quote> should do,
in case of GNU/Linux, please also name the distribution.
</para>
</listitem>
</listitem>
<listitem>
<para>
The name, platform, and version of the <application>browser</application>
The name, platform, and version of the <application>browser</application>
you were using (e.g. <application>Internet Explorer v5.5</application> for Mac).
</para>
</listitem>
@ -192,9 +183,9 @@
<listitem>
<para>
The URL where the problem occurred, or some way for us to duplicate the
problem (e.g. <literal>http://somesite.example.com/?somethingelse=123</literal>).
problem (e.g. <literal>http://somesite.example.com/?somethingelse=123</literal>).
</para>
</listitem>
</listitem>
<listitem>
<para>
@ -202,85 +193,52 @@
by the <application>Privoxy</application> developers via SourceForge,
or if you got your copy somewhere else.
</para>
</listitem>
</listitem>
<listitem>
<para>
Whether you are using <application>Privoxy</application> in tandem with
Whether you are using <application>Privoxy</application> in tandem with
another proxy such as <application>Tor</application>. If so, please
temporary disable the other proxy to see if the symptoms change.
</para>
</listitem>
</listitem>
<listitem>
<para>
Whether you are using a personal firewall product. If so, does
Whether you are using a personal firewall product. If so, does
<application>Privoxy</application> work without it?
</para>
</listitem>
</listitem>
<listitem>
<para>
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). To get a meaningful logfile, please make sure that the
<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.
action taken).
</para>
</listitem>
</listitem>
</itemizedlist>
</para>
<para>
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
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. 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.
found a solution.
</para>
<para>
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.
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>
The <ulink url="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT">appendix
of the Privoxy User Manual</ulink> also has helpful information
on understanding <literal>actions</literal>, and <literal>action</literal> debugging.
of the Privoxy User Manual</ulink> also has helpful information
on understanding <literal>actions</literal>, and <literal>action</literal> debugging.
</para>
</sect3>
</sect2>
@ -293,13 +251,10 @@ debug 8192 # Non-fatal errors</literallayout>
</para>
</sect2>
<sect2 id="mailing-lists"><title>Mailing Lists</title>
<sect2 id="contact-other"><title>Other</title>
<para>
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 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.
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 <application>Privoxy</application>-related mailing lists,
including list archives, at:
<ulink url="http://sourceforge.net/mail/?group_id=11118">http://sourceforge.net/mail/?group_id=11118</ulink>.

View File

@ -2,17 +2,17 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/copyright.sgml,v $
Purpose : Entity included in other project documents.
$Id: copyright.sgml,v 2.10 2009/02/10 16:13:30 fabiankeil Exp $
$Id: copyright.sgml,v 2.14 2011/09/04 11:10:12 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE.
======================================================================
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -23,8 +23,8 @@
faq
**************************************************************
NOTE: the &my-copy entity must be defined in any file that will
include this file. (This is a workaround for docbook2man not
NOTE: the &my-copy entity must be defined in any file that will
include this file. (This is a workaround for docbook2man not
handling the standard &copy entity in the man page processing.)
**************************************************************
@ -36,7 +36,7 @@
-->
<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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,8 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/history.sgml,v $
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/
See LICENSE.
@ -12,7 +12,7 @@
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -26,7 +26,7 @@
<para>
A long time ago, there was the
<ulink url="http://www.junkbusters.com/ijb.html"><application>Internet Junkbuster</application></ulink>,
<ulink url="http://www.junkbusters.com/ijb.html"><application>Internet Junkbuster</application></ulink>,
by Anonymous Coders and <ulink url="http://www.junkbusters.com/">Junkbusters
Corporation</ulink>. This saved many users a lot of pain in the early days of
web advertising and user tracking.
@ -36,7 +36,7 @@
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 <application>Internet
Junkbuster</application> did not. Version 2.0.2, published in 1998, was
Junkbuster</application> did not. Version 2.0.2, published in 1998, was
(and is) the last official
<ulink url="http://www.junkbusters.com/ijbdist.html#release">release</ulink>
available from <ulink url="http://www.junkbusters.com">Junkbusters Corporation</ulink>.
@ -66,6 +66,6 @@
<para>
The result of this is <application>Privoxy</application>, whose first
stable version, 3.0, was released August, 2002.
stable version, 3.0, was released August, 2002.
<!-- Cautious!!!!!!!!! ;) -->
</para>

View File

@ -1,7 +1,7 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!entity % dummy "IGNORE">
<!entity % dummy "IGNORE">
<!entity buildsource SYSTEM "buildsource.sgml">
<!entity p-version "3.0.19">
<!entity p-version "3.0.11">
<!entity p-status "stable">
<!entity % p-stable "INCLUDE">
<!entity % p-not-stable "IGNORE">
@ -15,16 +15,16 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/install.sgml,v $
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/
See LICENSE.
========================================================================
NOTE: Please read developer-manual/documentation.html before touching
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation. You have been warned!
Failure to abide by this rule will result in the revocation of your license
Failure to abide by this rule will result in the revocation of your license
to live a peaceful existence!
========================================================================
@ -62,10 +62,10 @@
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -80,8 +80,8 @@
* The GNU General Public License should be included with
* this file. If not, you can view it at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA
*
*********************************************************************/

View File

@ -83,7 +83,7 @@
;; REFENTRY body-attr
;; PURP What attributes should be hung off of BODY?
;; 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
;; name and value of a BODY attribute.
;; /DESC

View File

@ -2,17 +2,17 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/license.sgml,v $
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/
See LICENSE.
======================================================================
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -27,7 +27,7 @@
<para>
<application>Privoxy</application> is free software; you can
redistribute it and/or modify it under the terms of the
redistribute it and/or modify it under the terms of the
<citetitle>GNU General Public License</citetitle>, version 2,
as published by the Free Software Foundation.
</para>

View File

@ -2,8 +2,8 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/newfeatures.sgml,v $
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/
See LICENSE.
@ -12,7 +12,7 @@
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -30,64 +30,57 @@
FIXME: complete the list of features. change the order: most important
features to the top of the list. prefix new features with "NEW".
</para>
</listitem>
</listitem>
-->
<listitem>
<para>
Supports "Connection: keep-alive". Outgoing connections can
be kept alive independently from the client.
Can keep outgoing connections alive and reuse them later on.
</para>
</listitem>
<listitem>
<para>
Supports IPv6, provided the operating system does so too,
and the configure script detects it.
</para>
</listitem>
</listitem>
<listitem>
<para>
Supports tagging which allows to change the behaviour
based on client and server headers.
</para>
</listitem>
</listitem>
<listitem>
<para>
Can be run as an "intercepting" proxy, which obviates the need to
configure browsers individually.
</para>
</listitem>
</listitem>
<listitem>
<para>
Sophisticated actions and filters for manipulating both server and client
headers.
headers.
</para>
</listitem>
</listitem>
<listitem>
<para>
Can be chained with other proxies.
</para>
</listitem>
</listitem>
<listitem>
<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>
(shortcut: <ulink url="http://p.p/">http://p.p/</ulink>). Browser-based
tracing of rule and filter effects. Remote toggling.
</para>
</listitem>
</listitem>
<listitem>
<para>
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>
</listitem>
</listitem>
<listitem>
<para>
@ -95,50 +88,69 @@
user settings to reside in separate files, so that installing updated
actions files won't overwrite individual user settings.
</para>
</listitem>
</listitem>
<listitem>
<para>
Support for Perl Compatible Regular Expressions in the configuration files, and
Support for Perl Compatible Regular Expressions in the configuration files, and
a more sophisticated and flexible configuration syntax.
</para>
</listitem>
</listitem>
<listitem>
<para>
GIF de-animation.
Improved cookie management features (e.g. session based cookies).
</para>
</listitem>
</listitem>
<listitem>
<para>
GIF de-animation.
</para>
</listitem>
<listitem>
<para>
Bypass many click-tracking scripts (avoids script redirection).
</para>
</listitem>
</listitem>
<listitem>
<para>
Multi-threaded (POSIX and native threads).
</para>
</listitem>
<listitem>
<para>
User-customizable HTML templates for most proxy-generated pages (e.g. "blocked" page).
</para>
</listitem>
</listitem>
<listitem>
<para>
Auto-detection and re-reading of config file changes.
</para>
</listitem>
</listitem>
<listitem>
<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>
<listitem>
<para>
Every feature now controllable on a per-site or per-location basis, configuration
more powerful and versatile over-all.
</para>
</listitem>
<listitem>
<para>
Many smaller new features added, limitations and bugs removed.
</para>
</listitem>
</listitem>
</itemizedlist>
</para>

View File

@ -2,8 +2,8 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/p-authors.sgml,v $
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/
See LICENSE.
@ -12,7 +12,7 @@
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -35,8 +35,11 @@ Current Privoxy Team:
]]>
Hal Burgiss
Mark Miller
Gerry Murphy
Lee Rian
Roland Rosenfeld
Jörg Strohmayer
<![%p-authors-formal;[
</literallayout>
@ -58,13 +61,10 @@ Current Privoxy Team:
Adam Lock
Guy Laroche
Justin McMurtry
Mark Miller
Gerry Murphy
Andreas Oesterhelt
Haroon Rafique
Georg Sauthoff
Thomas Steudten
Jörg Strohmayer
Rodney Stromlund
Sviatoslav Sviridov
Sarantis Paskalis
@ -80,14 +80,10 @@ Current Privoxy Team:
<literallayout>
Ken Arromdee
Devin Bayer
Havard Berland
Gergely Bor
Francois Botha
Reiner Buehl
Andrew J. Caines
Clifford Caoile
Wan-Teh Chang
Billy Crook
Frédéric Crozat
Michael T. Davis
Mattes Dolak
@ -99,7 +95,6 @@ Current Privoxy Team:
Stephen Gildea
Daniel Griscom
Felix Gröbert
Jeff H.
Aaron Hamid
Darel Henman
Magnus Holmgren
@ -113,17 +108,13 @@ Current Privoxy Team:
Bert van Leeuwen
Don Libes
Paul Lieverse
Han Liu
Toby Lyward
Wil Mahan
Jindrich Makovicka
Raphael Marichez
Francois Marier
David Mediavilla
Raphael Moll
Amuro Namie
Adam Piggott
Petr Písar
Dan Price
Roberto Ragusa
Félix Rauch
@ -131,7 +122,6 @@ Current Privoxy Team:
Chung-chieh Shan
Spinor S.
Bart Schelstraete
Dan Stahlke
Oliver Stoeneberg
Peter Thoenen
Martin Thomas

File diff suppressed because it is too large Load Diff

View File

@ -4,22 +4,22 @@
Purpose : Manual Page
This file belongs into
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/
See LICENSE.
========================================================================
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation.
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation.
========================================================================
Doc NOTES: This is some tricky markup! There are some quirks
to how this markup is handled. It is not always so co-operative.
Please don't change the markup unless you can verify the changes
will improve finished output!
Please don't change the markup unless you can verify the changes
will improve finished output!
literallayout tags are particularly sensitive to where they are placed.
The 'replaceable' and 'command' tags are used here somewhat unconventionally,
since it seems to generate the proper formatting (at least for me :).
@ -28,21 +28,21 @@
Requires docbook2man (short perl script), see CVS
http://sources.redhat.com/docbook-tools/. Also requires openjade and SGMLSpm
perl module.
perl module.
For man page references, see:
http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/using.html
http://docbook.org/tdg/en/html/ch02.html#making-refentry
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[
<!entity % dummy "IGNORE">
<!entity % dummy "IGNORE">
<!entity p-intro SYSTEM "privoxy.sgml">
<!entity seealso SYSTEM "seealso.sgml">
<!entity copyright SYSTEM "copyright.sgml">
<!entity license SYSTEM "license.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-not-stable "IGNORE">
<!entity % p-stable "INCLUDE">
@ -57,7 +57,7 @@
<date>2009-02-15</date>
</refentryinfo>
<refmeta>
<refentrytitle>privoxy</refentrytitle>
<refentrytitle>privoxy</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>
Privoxy &p-version;<![%p-not-stable;[ &p-status;]]>
@ -70,16 +70,16 @@
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<cmdsynopsis>
<command>privoxy</command>
<arg><option>--help</option></arg>
<arg><option>--version</option></arg>
<arg><option>--no-daemon</option></arg>
<arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>
<arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg>
<arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>
<arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg>
<arg><option>--chroot</option></arg>
<arg><option>--pre-chroot-nslookup </option><replaceable class="parameter">hostname</replaceable></arg>
<arg><replaceable class="parameter">configfile</replaceable></arg>
<arg><option>--pre-chroot-nslookup </option><replaceable class="parameter">hostname</replaceable></arg>
<arg><replaceable class="parameter">configfile</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@ -92,7 +92,7 @@
options:
</para>
<variablelist>
<variablelist>
<varlistentry>
<term>--help</term>
<listitem>
@ -157,7 +157,7 @@
<command>Privoxy</command> process that the directory tree starts
there. If set up carefully, this can limit the impact of possible
vulnerabilities in <command>Privoxy</command> to the files contained in
that hierarchy.
that hierarchy.
</para>
</listitem>
</varlistentry>
@ -177,7 +177,7 @@
If the <filename>configfile</filename> is not specified on the command line,
<command>Privoxy</command> will look for a file named
<filename>config</filename> in the current directory. If no
<filename>configfile</filename> is found, <command>Privoxy</command> will
<filename>configfile</filename> is found, <command>Privoxy</command> will
fail to start.
</para>
@ -201,21 +201,21 @@
filter to build an intercepting proxy
(see <filename>config</filename>). The default setting is for
localhost, on port 8118 (configurable in the main config file). To set the
HTTP proxy in Firefox, go through: <command>Tools</command>;
HTTP proxy in Firefox, go through: <command>Tools</command>;
<command>Options</command>; <command>General</command>;
<command>Connection Settings</command>;
<command>Manual Proxy Configuration</command>.
<command>Manual Proxy Configuration</command>.
</para>
<para>
For Internet Explorer, go through: <command>Tools</command>;
For Internet Explorer, go through: <command>Tools</command>;
<command>Internet Properties</command>; <command>Connections</command>;
<command>LAN Settings</command>.
<command>LAN Settings</command>.
</para>
<para>
The Secure (SSL) Proxy should also be set to the same values, otherwise
https: URLs will not be proxied. Note: <command>Privoxy</command> can only
proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
HTTPS presents some limitations, and not all features will work with HTTPS
HTTPS presents some limitations, and not all features will work with HTTPS
connections.
</para>
@ -231,25 +231,25 @@
<command>Privoxy</command> can be configured with the various configuration
files. The default configuration files are: <filename>config</filename>,
<filename>default.filter</filename>, <filename>default.action</filename> and
<filename>default.action</filename>. <filename>user.action</filename> should
<filename>default.action</filename>. <filename>user.action</filename> should
be used for locally defined exceptions to the default rules in
<filename>match-all.action</filename> and <filename>default.action</filename>,
and <filename>user.filter</filename> for locally defined filters. These are
well commented. On Unix and Unix-like systems, these are located in
<filename>/etc/privoxy/</filename> by default.
<filename>/etc/privoxy/</filename> by default.
</para>
<para>
<command>Privoxy</command> uses the concept of <command>actions</command>
<para>
<command>Privoxy</command> uses the concept of <command>actions</command>
in order to manipulate the data stream between the browser and remote sites.
There are various actions available with specific functions for such things
There are various actions available with specific functions for such things
as blocking web sites, managing cookies, etc. These actions can be invoked
individually or combined, and used against individual URLs, or groups of URLs
individually or combined, and used against individual URLs, or groups of URLs
that can be defined using wildcards and regular expressions. The result is
that the user has greatly enhanced control and freedom.
</para>
<para>
The actions list (ad blocks, etc) can also be configured with your
web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
(assuming the configuration allows it).
<command>Privoxy's</command> configuration parameters can also be viewed at
the same page. In addition, <command>Privoxy</command> can be toggled on/off.
@ -268,7 +268,7 @@
<!-- ~~~~~ New section ~~~~~ -->
<refsect1><title>Files</title>
<!-- this is a cheesy way to do this, but WTF. -->
<literallayout>
<literallayout>
<filename>/usr/sbin/privoxy</filename>
<filename>/etc/privoxy/config</filename>
<filename>/etc/privoxy/match-all.action</filename>
@ -296,11 +296,11 @@
<!-- command tag is used here to get proper looking format -->
<command>Privoxy</command> terminates on the <command>SIGINT</command>,
<command>SIGTERM</command> and <command>SIGABRT</command> signals. Log
rotation scripts may cause a re-opening of the logfile by sending a
rotation scripts may cause a re-opening of the logfile by sending a
<command>SIGHUP</command> to <command>Privoxy</command>. Note that unlike
other daemons, <command>Privoxy</command> does not need to be made aware of
config file changes by <command>SIGHUP</command> -- it will detect them
automatically.
automatically.
</para>
</refsect1>
@ -309,7 +309,7 @@
<refsect1><title>Notes</title>
<![%p-not-stable;[
<para>
This is a &p-status; version of <command>Privoxy</command>. Not
This is a &p-status; version of <command>Privoxy</command>. Not
all features are well tested.
</para>]]>
<para>

View File

@ -2,17 +2,17 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/privoxy.sgml,v $
Purpose : Entity included in other project documents.
$Id: privoxy.sgml,v 2.9 2009/03/21 12:42:49 fabiankeil Exp $
$Id: privoxy.sgml,v 2.12 2011/09/04 11:10:12 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE.
======================================================================
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -35,27 +35,10 @@
</para>
<para>
Privoxy is Free Software and licensed under the GNU GPLv2.
Privoxy is Free Software and licensed under the GPL2.
</para>
<para>
Privoxy is an associated project of Software in the Public Interest (SPI).
</para>
<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>
<ulink url="http://www.privoxy.org/faq/general.html#DONATE">Donations are welcome</ulink>.
</para>

View File

@ -1,10 +1,10 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!entity % dummy "IGNORE">
<!entity % dummy "IGNORE">
<!entity supported SYSTEM "supported.sgml">
<!entity p-intro SYSTEM "privoxy.sgml">
<!entity contacting SYSTEM "contacting.sgml">
<!entity buildsource SYSTEM "buildsource.sgml">
<!entity p-version "3.0.19">
<!entity p-version "3.0.12">
<!entity p-status "stable">
<!entity % p-not-stable "IGNORE">
<!entity % p-stable "INCLUDE">
@ -16,23 +16,23 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/readme.sgml,v $
Purpose : README for Privoxy
$Id: readme.sgml,v 2.26 2009/03/21 11:32:38 hal9 Exp $
$Id: readme.sgml,v 2.49 2011/12/26 17:05:40 fabiankeil Exp $
Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
See LICENSE.
========================================================================
NOTE: Please read developer-manual/documentation.html before touching
NOTE: Please read developer-manual/documentation.html before touching
anything in this, or other Privoxy documentation. You have been warned!
Failure to abide by this rule will result in the revocation of your license
Failure to abide by this rule will result in the revocation of your license
to live a peaceful existence!
========================================================================
===================================================================
READ: Document Note: This file generates the README in the top level
source directory. It is generated as only a plain text file. The
current markup is not suitable for other formats. Build from
READ: Document Note: This file generates the README in the top level
source directory. It is generated as only a plain text file. The
current markup is not suitable for other formats. Build from
Makefile with 'make dok-readme'.
===================================================================
@ -40,21 +40,21 @@
======================================================================
NOTE: The left margin spacing is *important* when using 'literallayout'
WYSISWYG!!! Don't mess this up!!! Careful with linebreaks too, ie
WYSISWYG!!! Don't mess this up!!! Careful with linebreaks too, ie
the para tag forces a linebreak. Tags need to be carefully placed as a result
to avoid extra blank lines, etc.
to avoid extra blank lines, etc.
======================================================================
For stable releases, change
entity % p-not-stable "INCLUDE"
to
entity % p-not-stable "IGNORE"
For stable releases, change
entity % p-not-stable "INCLUDE"
to
entity % p-not-stable "IGNORE"
in the DTD at the top. This will toggle various text 'off'. BOTH
MUST be toggled in this case or you will get both text referencing
MUST be toggled in this case or you will get both text referencing
stable and unstable versions. You only want one or the other!
-->
@ -80,14 +80,14 @@
*
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -102,8 +102,8 @@
* The GNU General Public License should be included with
* this file. If not, you can view it at
* http://www.gnu.org/copyleft/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA
*
*********************************************************************/
@ -126,21 +126,45 @@
<!-- end boilerplate -->
<!-- ~~~~~ New section ~~~~~ -->
<sect1 id="changes" ><title>CHANGES</title>
<sect1 id="importantchanges" ><title>IMPORTANT CHANGES</title>
<para>
For a list of changes in this release, please have a
look at the "ChangeLog", the "What's New" section or
the "Upgrader's Notes" in <citetitle>the User Manual</citetitle>.
March 2009, Privoxy 3.0.12 is released.
</para>
<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>
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>
<!-- ~~~~~ New section ~~~~~ -->
<sect1 id="install" ><title>INSTALL</title>
<para>
<para>
See the <filename>INSTALL</filename> file in this directory, for installing
from raw source, and the <citetitle>User Manual</citetitle>, for all other
installation types.
installation types.
</para>
</sect1>
@ -152,7 +176,7 @@
HOSTNAME ][config_file]
</para>
<para>
See the man page or <citetitle>User Manual</citetitle> for an explanation of each option, and
See the man page or <citetitle>User Manual</citetitle> for an explanation of each option, and
other configuration and usage issues.
</para>
<para>
@ -160,6 +184,12 @@
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.
</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>
<!-- ~~~~~ New section ~~~~~ -->
@ -178,7 +208,7 @@
<para>
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
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.
</para>
<para>
@ -197,10 +227,10 @@
<sect1 id="documentation"><title>DOCUMENTATION</title>
<para>
There should be documentation in the 'doc' subdirectory<![%p-not-stable;[, but it
may not be completed at this point]]>. In particular, see the
may not be completed at this point]]>. In particular, see the
<citetitle>User Manual</citetitle> there,
the <citetitle>FAQ</citetitle>, and those interested in Privoxy development, should look at
<citetitle>developer-manual</citetitle>.
<citetitle>developer-manual</citetitle>.
</para>
<para>
<![%p-not-stable;[
@ -208,12 +238,12 @@
may still be either comments in the source code, or the included
configuration files. ]]>The source and configuration files are all well
commented. The main configuration files are: 'config', 'default.action', and
'default.filter'<![%p-not-stable;[ in the top-level source directory]]>.
'default.filter'<![%p-not-stable;[ in the top-level source directory]]>.
</para>
<para>
Included documentation may vary according to platform and packager. All
documentation is posted on http://www.privoxy.org, in case you don't have it,
Included documentation may vary according to platform and packager. All
documentation is posted on http://www.privoxy.org, in case you don't have it,
or can't find it.
</para>
</sect1>
@ -232,7 +262,7 @@
<!-- </LiteralLayout> -->
<!-- </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> -->
</article>

View File

@ -2,8 +2,8 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/seealso.sgml,v $
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/
See LICENSE.
@ -12,7 +12,7 @@
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -22,7 +22,7 @@
faq
developer-manual
NOTE: 04/05/02, HB Removed &nbsp; tags. They were causing docbook2man
NOTE: 04/05/02, HB Removed &nbsp; tags. They were causing docbook2man
to barf.
-->
@ -36,28 +36,28 @@
<simplelist>
<member>
<ulink
url="http://www.privoxy.org/">http://www.privoxy.org/</ulink>,
the <application>Privoxy</application> Home page.
url="http://www.privoxy.org/">http://www.privoxy.org/</ulink>,
the <application>Privoxy</application> Home page.
</member>
</simplelist>
<simplelist>
<member>
<ulink
url="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/</ulink>,
the <application>Privoxy</application> FAQ.
url="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/</ulink>,
the <application>Privoxy</application> FAQ.
</member>
</simplelist>
<simplelist>
<member>
<ulink
url="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/</ulink>,
the <application>Privoxy</application> developer manual.
url="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/</ulink>,
the <application>Privoxy</application> developer manual.
</member>
</simplelist>
<simplelist>
<member>
<ulink url="https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/</ulink>,
the Project Page for <application>Privoxy</application> on
<ulink url="https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/</ulink>,
the Project Page for <application>Privoxy</application> on
<ulink url="http://sourceforge.net">SourceForge</ulink>.
</member>
</simplelist>
@ -71,7 +71,7 @@
<simplelist>
<member>
<ulink url="https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288">https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</ulink>, to submit <quote>misses</quote> and other
configuration related suggestions to the developers.
configuration related suggestions to the developers.
</member>
</simplelist>
<![%seealso-extra;[
@ -104,8 +104,8 @@
</simplelist>
<simplelist>
<member>
<ulink url="https://www.torproject.org/">https://www.torproject.org/</ulink>,
<application>Tor</application> can help anonymize web browsing,
<ulink url="https://www.torproject.org/">https://www.torproject.org/</ulink>,
<application>Tor</application> can help anonymize web browsing,
web publishing, instant messaging, IRC, SSH, and other applications.
</member>
</simplelist>

View File

@ -2,8 +2,8 @@
File : $Source: /cvsroot/ijbswa/current/doc/source/supported.sgml,v $
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/
See LICENSE.
@ -12,7 +12,7 @@
This file used for inclusion with other documents only.
======================================================================
If you make changes to this file, please verify the finished
If you make changes to this file, please verify the finished
docs all display as intended.
This file is included into:
@ -34,13 +34,13 @@
<para>
But any operating system that runs TCP/IP, can conceivably take advantage of
<application>Privoxy</application> in a networked situation where
<application>Privoxy</application> would run as a server on a LAN gateway.
<application>Privoxy</application> would run as a server on a LAN gateway.
Then only the <quote>gateway</quote> needs to be running one of the above
operating systems.
</para>
<para>
Source code is freely available, so porting to other operating systems
Source code is freely available, so porting to other operating systems
is always a possibility.
</para>
]]>

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
<!entity history SYSTEM "history.sgml">
<!entity copyright SYSTEM "copyright.sgml">
<!entity license SYSTEM "license.sgml">
<!entity p-version "3.0.19">
<!entity p-version "3.0.11">
<!entity p-status "stable">
<!entity % p-not-stable "IGNORE">
<!entity % p-stable "INCLUDE">
@ -20,7 +20,7 @@
This file belongs into
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>
See LICENSE.
@ -90,7 +90,7 @@
<itemizedlist>
<listitem>
<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>
</listitem>
<!--
@ -169,7 +169,7 @@
<para>
<!-- please leave this link absolute so this file can be bundled with -->
<!-- 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>
</listitem>
</itemizedlist>
@ -222,7 +222,7 @@
<!-- GNUMakefile is inserting this now -->
<para>
<subscript>
Copyright __copy 2001-2010 by Privoxy Developers
Copyright __copy 2001-2009 by Privoxy Developers
</subscript>
</para>
@ -249,42 +249,6 @@
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
$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
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.18. One of the fixes addresses a security issue.
Privoxy 3.0.12-stable is primarily a bugfix release.
See http://www.privoxy.org/3.0.12/user-manual/whatsnew.html for details.
--------------------------------------------------------------------
ChangeLog for Privoxy
--------------------------------------------------------------------
*** Version 3.0.19 Stable ***
*** Version 3.0.12 ***
- 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.
- The socket-timeout option now also works on platforms whose
select() implementation modifies the timeout structure.
Previously the timeout was triggered even if the connection
didn't stall. Reported by cyberpatrol.
- The Connection: keep-alive code properly deals with files
larger than 2GB. Previously the connection was closed too
early.
- The content length for files above 2GB is logged correctly.
- The user-manual directive on the show-status page links to
the documentation location specified with the directive,
not to the Privoxy website.
- When running in daemon mode, Privoxy doesn't log anything
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:
@ -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
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).
Helping hands and donations are welcome:
* http://www.privoxy.org/faq/general.html#PARTICIPATE
* http://www.privoxy.org/faq/general.html#DONATE
Donations are welcome: http://www.privoxy.org/faq/general.html#DONATE
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
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:
* Supports "Connection: keep-alive". Outgoing connections can be kept
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.
* Can keep outgoing connections alive and reuse them later on.
* Supports tagging which allows to change the behaviour based on client
and server headers.
@ -426,7 +87,8 @@ more control, more privacy and more freedom:
tracing of rule and filter effects. Remote toggling.
* 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
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
files, and a more sophisticated and flexible configuration syntax.
* Improved cookie management features (e.g. session based cookies).
* GIF de-animation.
* 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.
"blocked" page).
* Auto-detection and re-reading of config file changes.
* Improved signal handling, and a true daemon mode (Unix).
* Most features are controllable on a per-site or per-location basis.
* Every feature now controllable on a per-site or per-location basis,
configuration more powerful and versatile over-all.
Download location:

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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Contacting the developers, Bug Reporting and Feature
Requests</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="Update the Webserver" href=
"webserver-update.html">
<link rel="NEXT" 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=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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=
"webserver-update.html" accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href=
"copyright.html" accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="CONTACT" id="CONTACT">8. Contacting the
developers, Bug Reporting and Feature Requests</a></h1>
<p>We value your feedback. In fact, we rely on it to improve <span class=
"APPLICATION">Privoxy</span> and its configuration. However, please note
the following hints, so we can provide you with the best support:</p>
<div class="SECT2">
<h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">8.1.
Get Support</a></h2>
<p>For casual users, our <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118"
target="_top">support forum at SourceForge</a> is probably best suited:
<a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118"
target="_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118</a></p>
<p>All users are of course welcome to discuss their issues on the
<a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
target="_top">users mailing list</a>, where the developers also hang
around.</p>
<p>Please don't sent private support requests to individual Privoxy
developers, either use the mailing lists or the support trackers.</p>
<p>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.</p>
<p>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 of several days and if you use a subject that
doesn't clearly mention Privoxy or one of its features, your message
may be accidentally discarded as spam.</p>
<p>If you aren't subscribed, you should therefore spend a few seconds
to come up with a proper subject. Additionally you should make it clear
that you want to get CC'd. Otherwise some responses will be directed to
the mailing list only, and you won't see them.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="REPORTING" id="REPORTING">8.2. Reporting
Problems</a></h2>
<p><span class="QUOTE">"Problems"</span> for our purposes, come in two
forms:</p>
<ul>
<li>
<p>Configuration issues, such as ads that slip through, or sites
that don't function properly due to one <span class=
"APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
another being turned <span class="QUOTE">"on"</span>.</p>
</li>
<li>
<p><span class="QUOTE">"Bugs"</span> in the programming code that
makes up <span class="APPLICATION">Privoxy</span>, such as that
might cause a crash.</p>
</li>
</ul>
<div class="SECT3">
<h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">8.2.1.
Reporting Ads or Other Configuration Problems</a></h3>
<p>Please send feedback on ads that slipped through, innocent images
that were blocked, sites that don't work properly, and other
configuration related problem of <tt class=
"FILENAME">default.action</tt> file, to <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288"
target=
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>,
the Actions File Tracker.</p>
<p>New, improved <tt class="FILENAME">default.action</tt> files may
occasionally be made available based on your feedback. These will be
announced on the <a href=
"http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
"_top">ijbswa-announce</a> list and available from our the <a href=
"http://sourceforge.net/project/showfiles.php?group_id=11118" target=
"_top">files section</a> of our <a href=
"http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
</div>
<div class="SECT3">
<h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">8.2.2.
Reporting Bugs</a></h3>
<p>Please report all bugs through our bug tracker: <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118"
target=
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118</a>.</p>
<p>Before doing so, please make sure that the bug has <span class=
"emphasis EMPHASIS c2">not already been submitted</span> and observe
the additional hints at the top of the <a href=
"http://sourceforge.net/tracker/?func=add&amp;group_id=11118&amp;atid=111118"
target="_top">submit form</a>. If already submitted, please feel free
to add any info to the original report that might help to solve the
issue.</p>
<p>Please try to verify that it is a <span class=
"APPLICATION">Privoxy</span> bug, and not a browser or site bug or
documented behaviour that just happens to be different than what you
expected. If unsure, try <a href=
"http://config.privoxy.org/toggle?set=disable" target="_top">toggling
off</a> <span class="APPLICATION">Privoxy</span>, and see if the
problem persists.</p>
<p>If you are using your own custom configuration, please try the
stock configs to see if the problem is configuration related. 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>If you aren't using the latest Privoxy version, the bug may have
been found and fixed in the meantime. We would appreciate if you
could take the time to <a href=
"http://www.privoxy.org/user-manual/installation.html" target=
"_top">upgrade to the latest version</a> (or even the latest CVS
snapshot) and verify that your bug still exists.</p>
<p>Please be sure to provide the following information:</p>
<ul>
<li>
<p>The exact <span class="APPLICATION">Privoxy</span> version you
are using (if you got the source from CVS, please also provide
the source code revisions as shown in <a href=
"http://config.privoxy.org/show-version" target=
"_top">http://config.privoxy.org/show-version</a>).</p>
</li>
<li>
<p>The operating system and versions you run <span class=
"APPLICATION">Privoxy</span> on, (e.g. <span class=
"APPLICATION">Windows XP SP2</span>), if you are using a Unix
flavor, sending the output of <span class="QUOTE">"uname
-a"</span> should do, in case of GNU/Linux, please also name the
distribution.</p>
</li>
<li>
<p>The name, platform, and version of the <span class=
"APPLICATION">browser</span> you were using (e.g. <span class=
"APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
</li>
<li>
<p>The URL where the problem occurred, or some way for us to
duplicate the problem (e.g. <tt class=
"LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
</li>
<li>
<p>Whether your version of <span class=
"APPLICATION">Privoxy</span> is one supplied by the <span class=
"APPLICATION">Privoxy</span> developers via SourceForge, or if
you got your copy somewhere else.</p>
</li>
<li>
<p>Whether you are using <span class="APPLICATION">Privoxy</span>
in tandem with another proxy such as <span 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). To get a meaningful logfile,
please make sure that the <a href=
"../user-manual/config.html#LOGFILE" target="_top">logfile
directive</a> is being used and the following <a href=
"../user-manual/config.html#DEBUG" target="_top">debug
options</a> are enabled:</p>
<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>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;show&nbsp;each&nbsp;connection&nbsp;status<br>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;show&nbsp;I/O&nbsp;status<br>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;show&nbsp;header&nbsp;parsing<br>
debug&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;debug&nbsp;redirects<br>
debug&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;debug&nbsp;GIF&nbsp;de-animation<br>
debug&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;Common&nbsp;Log&nbsp;Format<br>
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>
debug&nbsp;&nbsp;4096&nbsp;#&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br>
debug&nbsp;&nbsp;8192&nbsp;#&nbsp;Non-fatal&nbsp;errors</p>If you
are having trouble with a filter, please additionally enable
<p class="LITERALLAYOUT">
debug&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;filters</p>If
you are using Privoxy 3.0.17 or later and suspect that it
interprets the request or the response incorrectly, please enable
<p class="LITERALLAYOUT">
debug&nbsp;32768&nbsp;#&nbsp;log&nbsp;all&nbsp;data&nbsp;read&nbsp;from&nbsp;the&nbsp;network</p>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.
</li>
</ul>
<p>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.</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. 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.</p>
<p>If you are new to reporting problems, you might be interested in
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
target="_top">How to Report Bugs Effectively</a>.</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" id="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&amp;group_id=11118"
target="_top">http://sourceforge.net/tracker/?atid=361118&amp;group_id=11118</a>.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">8.4.
Mailing Lists</a></h2>
<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
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 <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 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=
"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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Contacting the developers, Bug Reporting and Feature Requests</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="Update the Webserver"
HREF="webserver-update.html"><LINK
REL="NEXT"
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="webserver-update.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="copyright.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CONTACT"
>8. Contacting the developers, Bug Reporting and Feature Requests</A
></H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> and its configuration.
However, please note the following hints, so we can
provide you with the best support:</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
>8.1. Get Support</A
></H2
><P
> For casual users, our
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118"
TARGET="_top"
>support forum at SourceForge</A
>
is probably best suited:
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118"
TARGET="_top"
>http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</A
></P
><P
> All users are of course welcome to discuss their issues on the <A
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
TARGET="_top"
>users
mailing list</A
>, where the developers also hang around.</P
><P
> Please don't sent private support requests to individual Privoxy
developers, either use the mailing lists or the support trackers.</P
><P
> 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 of several days and if you use a subject that doesn't clearly
mention Privoxy or one of its features, your message may be accidentally
discarded as spam.</P
><P
> If you aren't subscribed, you should therefore spend a few seconds
to come up with a proper subject. Additionally you should make it clear
that you want to get CC'd. Otherwise some responses will be directed to
the mailing list only, and you won't see them.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="REPORTING"
>8.2. Reporting Problems</A
></H2
><P
><SPAN
CLASS="QUOTE"
>"Problems"</SPAN
> for our purposes, come in two forms:</P
><P
></P
><UL
><LI
><P
> Configuration issues, such as ads that slip through, or sites that
don't function properly due to one <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
<SPAN
CLASS="QUOTE"
>"action"</SPAN
> or another being turned <SPAN
CLASS="QUOTE"
>"on"</SPAN
>.
</P
></LI
><LI
><P
> <SPAN
CLASS="QUOTE"
>"Bugs"</SPAN
> in the programming code that makes up
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, such as that might cause a crash.
</P
></LI
></UL
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONTACT-ADS"
>8.2.1. Reporting Ads or Other Configuration Problems</A
></H3
><P
> Please send feedback on ads that slipped through, innocent images that were
blocked, sites that don't work properly, and other configuration related problem of
<TT
CLASS="FILENAME"
>default.action</TT
> file, to
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288"
TARGET="_top"
> http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288</A
>,
the Actions File Tracker.</P
><P
> New, improved <TT
CLASS="FILENAME"
>default.action</TT
> files may occasionally be made
available based on your feedback. These will be announced on the <A
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
TARGET="_top"
>ijbswa-announce</A
>
list and available from our the <A
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
TARGET="_top"
>files section</A
> of
our <A
HREF="http://sf.net/projects/ijbswa/"
TARGET="_top"
>project page</A
>.</P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONTACT-BUGS"
>8.2.2. Reporting Bugs</A
></H3
><P
> Please report all bugs through our bug tracker:
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118"
TARGET="_top"
>http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
>. </P
><P
> Before doing so, please make sure that the bug has <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>not already been submitted</I
></SPAN
>
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"
TARGET="_top"
>submit
form</A
>. If already submitted, please feel free to add any info to the
original report that might help to solve the issue.</P
><P
> Please try to verify that it is a <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> bug,
and not a browser or site bug or documented behaviour that just happens
to be different than what you expected. If unsure,
try <A
HREF="http://config.privoxy.org/toggle?set=disable"
TARGET="_top"
>toggling
off</A
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and see if the problem persists.</P
><P
> If you are using your own custom configuration, please try
the stock configs to see if the problem is configuration related.
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
> If you aren't using the latest Privoxy version, the bug may have been found
and fixed in the meantime. We would appreciate if you could take the time
to <A
HREF="http://www.privoxy.org/user-manual/installation.html"
TARGET="_top"
>upgrade
to the latest version</A
> (or even the latest CVS snapshot) and verify
that your bug still exists.</P
><P
>Please be sure to provide the following information:</P
><P
> <P
></P
><UL
><LI
><P
> The exact <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> version you are using
(if you got the source from CVS, please also provide the source code revisions
as shown in <A
HREF="http://config.privoxy.org/show-version"
TARGET="_top"
>http://config.privoxy.org/show-version</A
>).
</P
></LI
><LI
><P
> The operating system and versions you run
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> on, (e.g. <SPAN
CLASS="APPLICATION"
>Windows
XP SP2</SPAN
>), if you are using a Unix flavor,
sending the output of <SPAN
CLASS="QUOTE"
>"uname -a"</SPAN
> should do,
in case of GNU/Linux, please also name the distribution.
</P
></LI
><LI
><P
> The name, platform, and version of the <SPAN
CLASS="APPLICATION"
>browser</SPAN
>
you were using (e.g. <SPAN
CLASS="APPLICATION"
>Internet Explorer v5.5</SPAN
> for Mac).
</P
></LI
><LI
><P
> The URL where the problem occurred, or some way for us to duplicate the
problem (e.g. <TT
CLASS="LITERAL"
>http://somesite.example.com/?somethingelse=123</TT
>).
</P
></LI
><LI
><P
> Whether your version of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is one supplied
by the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> developers via SourceForge,
or if you got your copy somewhere else.
</P
></LI
><LI
><P
> Whether you are using <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> in tandem with
another proxy such as <SPAN
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"
>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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Privoxy Copyright, License and History</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=
"Contacting the developers, Bug Reporting and Feature Requests" href=
"contact.html">
<link rel="NEXT" title="See also" href="seealso.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
a.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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="contact.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href="seealso.html"
accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">9. Privoxy
Copyright, License and History</a></h1>
<p>Copyright &copy; 2001-2011 by Privoxy Developers <code class=
"EMAIL">&lt;<a href=
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>&gt;</code></p>
<p>Some source code is based on code Copyright &copy; 1997 by Anonymous
Coders and Junkbusters, Inc. and licensed under the <i class=
"CITETITLE">GNU General Public License</i>.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="AEN1231" id="AEN1231">9.1. License</a></h2>
<p><span class="APPLICATION">Privoxy</span> is free software; you can
redistribute it and/or modify it under the terms of the <i class=
"CITETITLE">GNU General Public License</i>, version 2, as published by
the Free Software Foundation.</p>
<p>This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class=
"CITETITLE c2" href=
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
"_top">GNU General Public License</a> for details.</p>
<p>You should have received a copy of the <i class="CITETITLE">GNU
GPL</i> along with this program; if not, write to the</p>
<p class="ADDRESS">&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<span class="STREET">51 Franklin
Street, Fifth Floor</span><br>
&nbsp;<span class="CITY">Boston</span>,&nbsp;<span class=
"STATE">MA</span>&nbsp;<span class="POSTCODE">02110-1301</span><br>
&nbsp;<span class="COUNTRY">USA</span>&nbsp;</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="AEN1247" id="AEN1247">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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Privoxy Copyright, License and History</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="Contacting the developers, Bug Reporting and Feature Requests"
HREF="contact.html"><LINK
REL="NEXT"
TITLE="See also"
HREF="seealso.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="contact.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="seealso.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="COPYRIGHT"
>9. Privoxy Copyright, License and History</A
></H1
><P
> Copyright © 2001-2009 by Privoxy Developers <CODE
CLASS="EMAIL"
>&#60;<A
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
>ijbswa-developers@lists.sourceforge.net</A
>&#62;</CODE
></P
><P
> Some source code is based on code Copyright © 1997 by Anonymous Coders
and Junkbusters, Inc. and licensed under the <I
CLASS="CITETITLE"
>GNU General Public
License</I
>.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN1223"
>9.1. License</A
></H2
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is free software; you can
redistribute it and/or modify it under the terms of the
<I
CLASS="CITETITLE"
>GNU General Public License</I
>, version 2,
as published by the Free Software Foundation.</P
><P
> This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the <A
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
TARGET="_top"
> <I
CLASS="CITETITLE"
>GNU General Public License</I
></A
> for details.</P
><P
> You should have received a copy of the <I
CLASS="CITETITLE"
>GNU GPL</I
>
along with this program; if not, write to the <P
CLASS="ADDRESS"
>&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<SPAN
CLASS="STREET"
>51 Franklin Street, Fifth Floor</SPAN
><br>
&nbsp;<SPAN
CLASS="CITY"
>Boston</SPAN
>,&nbsp;<SPAN
CLASS="STATE"
>MA</SPAN
>&nbsp;<SPAN
CLASS="POSTCODE"
>02110-1301</SPAN
><br>
&nbsp;<SPAN
CLASS="COUNTRY"
>USA</SPAN
>&nbsp;</P
></P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN1239"
>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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>The CVS Repository</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="Introduction" href="introduction.html">
<link rel="NEXT" title="Documentation Guidelines" href=
"documentation.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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=
"introduction.html" accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href=
"documentation.html" accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="CVS" id="CVS">2. The CVS Repository</a></h1>
<p>If you become part of the active development team, you will eventually
need write access to our holy grail, the CVS repository. One of the team
members will need to set this up for you. Please read this chapter
completely before accessing via CVS.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="CVSACCESS" id="CVSACCESS">2.1. Access to
CVS</a></h2>
<p>The project's CVS repository is hosted on <a href=
"http://sourceforge.net/" target="_top">SourceForge.</a> Please refer
to the chapters 6 and 7 in <a href=
"http://sourceforge.net/docman/?group_id=1" target="_top">SF's site
documentation</a> for the technical access details for your operating
system. For historical reasons, the CVS server is called <tt class=
"LITERAL">ijbswa.cvs.sourceforge.net</tt>, the repository is called
<tt class="LITERAL">ijbswa</tt>, and the source tree module is called
<tt class="LITERAL">current</tt>.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="CVSBRANCHES" id="CVSBRANCHES">2.2.
Branches</a></h2>
<p>Within the CVS repository, there are modules and branches. As
mentioned, the sources are in the <tt class="LITERAL">current</tt>
<span class="QUOTE">"module"</span>. Other modules are present for
platform specific issues. There is a webview of the CVS hierarchy at
<a href="http://ijbswa.cvs.sourceforge.net/ijbswa/" target=
"_top">http://ijbswa.cvs.sourceforge.net/ijbswa/</a>, which might help
with visualizing how these pieces fit together.</p>
<p>Branches are used to fork a sub-development path from the main
trunk. Within the <tt class="LITERAL">current</tt> module where the
sources are, there is always at least one <span class=
"QUOTE">"branch"</span> from the main trunk 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). So just prior to each stable series
(e.g. 3.0.x), a branch is created just for stable series releases (e.g.
3.0.0 -&gt; 3.0.1 -&gt; 3.0.2, etc). Once the initial stable release of
any stable branch has taken place, this branch is <span class=
"emphasis EMPHASIS c2">only used for bugfixes</span>, which have had
prior testing before being committed to CVS. (See <a href=
"newrelease.html#VERSIONNUMBERS">Version Numbers</a> below for details
on versioning.)</p>
<p>At one time there were two distinct branches: stable and unstable.
The more drastic changes were to be in the unstable branch. These
branches have now been merged to minimize time and effort of
maintaining two branches.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="CVSCOMMIT" id="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>
<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 EMPHASIS c2">what you changed</span> (no big
details) and <span class="emphasis EMPHASIS c2">why you changed
it</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&amp;group_id=11118&amp;func=browse"
target="_top">patch tracker</a> instead.</p>
</li>
</ul>
</div>
</div>
<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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>The CVS Repository</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="Introduction"
HREF="introduction.html"><LINK
REL="NEXT"
TITLE="Documentation Guidelines"
HREF="documentation.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="introduction.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="documentation.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CVS"
>2. The CVS Repository</A
></H1
><P
> If you become part of the active development team, you will eventually
need write access to our holy grail, the CVS repository. One of the
team members will need to set this up for you. Please read
this chapter completely before accessing via CVS.
</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CVSACCESS"
>2.1. Access to CVS</A
></H2
><P
> The project's CVS repository is hosted on
<A
HREF="http://sourceforge.net/"
TARGET="_top"
>SourceForge.</A
>
Please refer to the chapters 6 and 7 in
<A
HREF="http://sourceforge.net/docman/?group_id=1"
TARGET="_top"
>SF's site
documentation</A
> for the technical access details for your
operating system. For historical reasons, the CVS server is
called <TT
CLASS="LITERAL"
>ijbswa.cvs.sourceforge.net</TT
>, the repository is
called <TT
CLASS="LITERAL"
>ijbswa</TT
>, and the source tree module is called
<TT
CLASS="LITERAL"
>current</TT
>.
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CVSBRANCHES"
>2.2. Branches</A
></H2
><P
> Within the CVS repository, there are modules and branches. As
mentioned, the sources are in the <TT
CLASS="LITERAL"
>current</TT
>
<SPAN
CLASS="QUOTE"
>"module"</SPAN
>. Other modules are present for platform specific
issues. There is a webview of the CVS hierarchy at <A
HREF="http://ijbswa.cvs.sourceforge.net/ijbswa/"
TARGET="_top"
>http://ijbswa.cvs.sourceforge.net/ijbswa/</A
>,
which might help with visualizing how these pieces fit together.
</P
><P
> Branches are used to fork a sub-development path from the main trunk.
Within the <TT
CLASS="LITERAL"
>current</TT
> module where the sources are, there
is always at least one <SPAN
CLASS="QUOTE"
>"branch"</SPAN
> from the main trunk
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).
So just prior to each stable series (e.g. 3.0.x), a branch is created
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,
this branch is <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>only used for bugfixes</I
></SPAN
>, which have
had prior testing before being committed to CVS. (See <A
HREF="newrelease.html#VERSIONNUMBERS"
>Version Numbers</A
> below for details on
versioning.)
</P
><P
> At one time there were two distinct branches: stable and unstable. The
more drastic changes were to be in the unstable branch. These branches
have now been merged to minimize time and effort of maintaining two
branches.
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Introduction</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 Developer Manual" href="index.html">
<link rel="NEXT" title="The CVS Repository" href="cvs.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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="index.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href="cvs.html"
accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1.
Introduction</a></h1>
<p><span class="APPLICATION">Privoxy</span>, as an heir to <span class=
"APPLICATION">Junkbuster</span>, is a Free Software project and the code
is licensed under the GNU General Public License version 2. As such,
<span class="APPLICATION">Privoxy</span> development is potentially open
to anyone who has the time, knowledge, and desire to contribute in any
capacity. Our goals are simply to continue the mission, to improve
<span class="APPLICATION">Privoxy</span>, and to make it available to as
wide an audience as possible.</p>
<p>One does not have to be a programmer to contribute. Packaging,
testing, documenting and porting, are all important jobs as well.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="QUICKSTART" id="QUICKSTART">1.1. Quickstart
to Privoxy Development</a></h2>
<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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Introduction</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 Developer Manual"
HREF="index.html"><LINK
REL="NEXT"
TITLE="The CVS Repository"
HREF="cvs.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="index.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cvs.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="INTRODUCTION"
>1. Introduction</A
></H1
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, as an heir to
<SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
>, is a Free Software project
and the code is licensed under the GNU General Public License version 2.
As such, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> development is potentially open
to anyone who has the time, knowledge, and desire to contribute
in any capacity. Our goals are simply to continue the mission,
to improve <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and
to make it available to as wide an audience as possible.
</P
><P
> One does not have to be a programmer to contribute. Packaging, testing,
documenting and porting, are all important jobs as well.
</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="QUICKSTART"
>1.1. Quickstart to Privoxy Development</A
></H2
><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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<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=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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 class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">10. See also</a></h1>
<p>Other references and sites of interest to <span class=
"APPLICATION">Privoxy</span> users:</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>
<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>
<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>
<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>
<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>
<table border="0">
<tbody>
<tr>
<td><a href=
"https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288"
target=
"_top">https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>,
to submit <span class="QUOTE">"misses"</span> and other
configuration related suggestions to the developers.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.junkbusters.com/ht/en/cookies.html" target=
"_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an
explanation how cookies are used to track web users.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.junkbusters.com/ijb.html" target=
"_top">http://www.junkbusters.com/ijb.html</a>, the original
Internet Junkbuster.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.squid-cache.org/" target=
"_top">http://www.squid-cache.org/</a>, a popular caching proxy,
which is often used together with <span class=
"APPLICATION">Privoxy</span>.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/"
target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>,
<span class="APPLICATION">Polipo</span> is a caching proxy with
advanced features like pipelining, multiplexing and caching of
partial instances. In many setups it can be used as <span class=
"APPLICATION">Squid</span> replacement.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="https://www.torproject.org/" target=
"_top">https://www.torproject.org/</a>, <span class=
"APPLICATION">Tor</span> can help anonymize web browsing, web
publishing, instant messaging, IRC, SSH, and other
applications.</td>
</tr>
</tbody>
</table>
</div>
<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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""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
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.junkbusters.com/ht/en/cookies.html"
TARGET="_top"
>http://www.junkbusters.com/ht/en/cookies.html</A
>,
an explanation how cookies are used to track web users.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.junkbusters.com/ijb.html"
TARGET="_top"
>http://www.junkbusters.com/ijb.html</A
>,
the original Internet Junkbuster.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.squid-cache.org/"
TARGET="_top"
>http://www.squid-cache.org/</A
>, a popular
caching proxy, which is often used together with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.pps.jussieu.fr/~jch/software/polipo/"
TARGET="_top"
>http://www.pps.jussieu.fr/~jch/software/polipo/</A
>,
<SPAN
CLASS="APPLICATION"
>Polipo</SPAN
> is a caching proxy with advanced features
like pipelining, multiplexing and caching of partial instances. In many setups
it can be used as <SPAN
CLASS="APPLICATION"
>Squid</SPAN
> replacement.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="https://www.torproject.org/"
TARGET="_top"
>https://www.torproject.org/</A
>,
<SPAN
CLASS="APPLICATION"
>Tor</SPAN
> can help anonymize web browsing,
web publishing, instant messaging, IRC, SSH, and other applications.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="copyright.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&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"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""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>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<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=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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 class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="TESTING" id="TESTING">5. Testing
Guidelines</a></h1>
<p>To be filled.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="TESTING-PLAN" id="TESTING-PLAN">5.1.
Testplan for releases</a></h2>
<p>Explain release numbers. major, minor. developer releases. etc.</p>
<ol type="1">
<li>
<p>Remove any existing rpm with rpm -e</p>
</li>
<li>
<p>Remove any file that was left over. This includes (but is not
limited to)</p>
<ul>
<li>
<p>/var/log/privoxy</p>
</li>
<li>
<p>/etc/privoxy</p>
</li>
<li>
<p>/usr/sbin/privoxy</p>
</li>
<li>
<p>/etc/init.d/privoxy</p>
</li>
<li>
<p>/usr/doc/privoxy*</p>
</li>
</ul>
</li>
<li>
<p>Install the rpm. Any error messages?</p>
</li>
<li>
<p>start,stop,status <span class="APPLICATION">Privoxy</span> with
the specific script (e.g. /etc/rc.d/init/privoxy stop). Reboot your
machine. Does autostart work?</p>
</li>
<li>
<p>Start browsing. Does <span class="APPLICATION">Privoxy</span>
work? Logfile written?</p>
</li>
<li>
<p>Remove the rpm. Any error messages? All files removed?</p>
</li>
</ol>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="TESTING-REPORT" id="TESTING-REPORT">5.2.
Test reports</a></h2>
<p>Please submit test reports only with the <a href=
"http://sourceforge.net/tracker/?func=add&amp;group_id=11118&amp;atid=395005"
target="_top">test form</a> at sourceforge. Three simple steps:</p>
<ul>
<li>
<p>Select category: the distribution you test on.</p>
</li>
<li>
<p>Select group: the version of <span class=
"APPLICATION">Privoxy</span> that we are about to release.</p>
</li>
<li>
<p>Fill the Summary and Detailed Description with something
intelligent (keep it short and precise).</p>
</li>
</ul>Do not mail to the mailing list (we cannot keep track on issues
there).
</div>
</div>
<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="coding.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="newrelease.html"
accesskey="N">Next</a></td>
</tr>
<tr>
<td width="33%" align="left" valign="top">Coding Guidelines</td>
<td width="34%" align="center" valign="top">&nbsp;</td>
<td width="33%" align="right" valign="top">Releasing a New
Version</td>
</tr>
</table>
</div>
</body>
</html>
<P
></P
><OL
TYPE="1"
><LI
><P
>Remove any existing rpm with rpm -e</P
></LI
><LI
><P
>Remove any file that was left over. This includes (but is not limited to)
<P
></P
><UL
><LI
><P
>/var/log/privoxy</P
></LI
><LI
><P
>/etc/privoxy</P
></LI
><LI
><P
>/usr/sbin/privoxy</P
></LI
><LI
><P
>/etc/init.d/privoxy</P
></LI
><LI
><P
>/usr/doc/privoxy*</P
></LI
></UL
></P
></LI
><LI
><P
>Install the rpm. Any error messages?</P
></LI
><LI
><P
>start,stop,status <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with the specific script
(e.g. /etc/rc.d/init/privoxy stop). Reboot your machine. Does
autostart work?</P
></LI
><LI
><P
>Start browsing. Does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> work? Logfile written?</P
></LI
><LI
><P
>Remove the rpm. Any error messages? All files removed?</P
></LI
></OL
></P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="TESTING-REPORT"
>5.2. Test reports</A
></H2
><P
>Please submit test reports only with the <A
HREF="http://sourceforge.net/tracker/?func=add&#38;group_id=11118&#38;atid=395005"
TARGET="_top"
>test form</A
>
at sourceforge. Three simple steps:
<P
></P
><UL
><LI
><P
>Select category: the distribution you test on.</P
></LI
><LI
><P
>Select group: the version of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> that we are about to release.</P
></LI
><LI
><P
>Fill the Summary and Detailed Description with something
intelligent (keep it short and precise).</P
></LI
></UL
>
Do not mail to the mailing list (we cannot keep track on issues there).
</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="coding.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="newrelease.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Coding Guidelines</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Releasing a New Version</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,147 +1,260 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Update the Webserver</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="Releasing a New Version" href=
"newrelease.html">
<link rel="NEXT" title=
"Contacting the developers, Bug Reporting and Feature Requests" href=
"contact.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c3 {font-style: italic}
table.c2 {background-color: #E0E0E0}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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=
"newrelease.html" accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href="contact.html"
accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="WEBSERVER-UPDATE" id="WEBSERVER-UPDATE">7.
Update the Webserver</a></h1>
<p>The webserver should be updated at least with each stable release.
When updating, please follow these steps to make sure that no broken
links, inconsistent contents or permission problems will occur (as it has
many times in the past!):</p>
<p>If you have changed anything in the stable-branch documentation source
SGML files, do:</p>
<table class="c2" border="0" width="100%">
<tr>
<td>
<pre class="PROGRAMLISTING">
make dok dok-pdf # (or 'make redhat-dok dok-pdf' if 'make dok' doesn't work for you)
</pre>
</td>
</tr>
</table>
<p>That will generate <tt class=
"FILENAME">doc/webserver/user-manual</tt>, <tt class=
"FILENAME">doc/webserver/developer-manual</tt>, <tt class=
"FILENAME">doc/webserver/faq</tt>, <tt class=
"FILENAME">doc/pdf/*.pdf</tt> and <tt class=
"FILENAME">doc/webserver/index.html</tt> automatically.</p>
<p>If you changed the manual page sources, generate <tt class=
"FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt> by running
<span class="QUOTE">"<b class="COMMAND">make man</b>"</span>. (This is a
separate target due to dependencies on some obscure perl scripts [now in
CVS, but not well tested]. See comments in <tt class=
"FILENAME">GNUmakefile</tt>.)</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>
<table class="c2" border="0" width="100%">
<tr>
<td>
<pre class="PROGRAMLISTING">
make webserver
</pre>
</td>
</tr>
</table>
<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 EMPHASIS c3">NOT</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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Update the Webserver</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="Releasing a New Version"
HREF="newrelease.html"><LINK
REL="NEXT"
TITLE="Contacting the developers, Bug Reporting and Feature Requests"
HREF="contact.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="newrelease.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="contact.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="WEBSERVER-UPDATE"
>7. Update the Webserver</A
></H1
><P
> The webserver should be updated at least with each stable release. When
updating, please follow these steps to make sure that no broken links,
inconsistent contents or permission problems will occur (as it has many
times in the past!):
</P
><P
> If you have changed anything in the stable-branch documentation source
SGML files, do:
</P
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> make dok dok-pdf # (or 'make redhat-dok dok-pdf' if 'make dok' doesn't work for you)</PRE
></TD
></TR
></TABLE
>
</P
><P
> That will generate <TT
CLASS="FILENAME"
>doc/webserver/user-manual</TT
>,
<TT
CLASS="FILENAME"
>doc/webserver/developer-manual</TT
>,
<TT
CLASS="FILENAME"
>doc/webserver/faq</TT
>,
<TT
CLASS="FILENAME"
>doc/pdf/*.pdf</TT
> and
<TT
CLASS="FILENAME"
>doc/webserver/index.html</TT
> automatically.
</P
><P
> If you changed the manual page sources, generate
<TT
CLASS="FILENAME"
>doc/webserver/man-page/privoxy-man-page.html</TT
>
by running <SPAN
CLASS="QUOTE"
>"<B
CLASS="COMMAND"
>make man</B
>"</SPAN
>. (This is
a separate target due to dependencies on some obscure perl scripts
[now in CVS, but not well tested]. See comments in <TT
CLASS="FILENAME"
>GNUmakefile</TT
>.)
</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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Contacting the developers, Bug Reporting and Feature
Requests</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="Troubleshooting" href="trouble.html">
<link rel="NEXT" 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=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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="trouble.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href=
"copyright.html" accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="CONTACT" id="CONTACT">6. Contacting the
developers, Bug Reporting and Feature Requests</a></h1>
<p>We value your feedback. In fact, we rely on it to improve <span class=
"APPLICATION">Privoxy</span> and its configuration. However, please note
the following hints, so we can provide you with the best support:</p>
<div class="SECT2">
<h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">6.1.
Get Support</a></h2>
<p>For casual users, our <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118"
target="_top">support forum at SourceForge</a> is probably best suited:
<a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118"
target="_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118</a></p>
<p>All users are of course welcome to discuss their issues on the
<a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
target="_top">users mailing list</a>, where the developers also hang
around.</p>
<p>Please don't sent private support requests to individual Privoxy
developers, either use the mailing lists or the support trackers.</p>
<p>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.</p>
<p>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 of several days and if you use a subject that
doesn't clearly mention Privoxy or one of its features, your message
may be accidentally discarded as spam.</p>
<p>If you aren't subscribed, you should therefore spend a few seconds
to come up with a proper subject. Additionally you should make it clear
that you want to get CC'd. Otherwise some responses will be directed to
the mailing list only, and you won't see them.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="REPORTING" id="REPORTING">6.2. Reporting
Problems</a></h2>
<p><span class="QUOTE">"Problems"</span> for our purposes, come in two
forms:</p>
<ul>
<li>
<p>Configuration issues, such as ads that slip through, or sites
that don't function properly due to one <span class=
"APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
another being turned <span class="QUOTE">"on"</span>.</p>
</li>
<li>
<p><span class="QUOTE">"Bugs"</span> in the programming code that
makes up <span class="APPLICATION">Privoxy</span>, such as that
might cause a crash.</p>
</li>
</ul>
<div class="SECT3">
<h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">6.2.1.
Reporting Ads or Other Configuration Problems</a></h3>
<p>Please send feedback on ads that slipped through, innocent images
that were blocked, sites that don't work properly, and other
configuration related problem of <tt class=
"FILENAME">default.action</tt> file, to <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288"
target=
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>,
the Actions File Tracker.</p>
<p>New, improved <tt class="FILENAME">default.action</tt> files may
occasionally be made available based on your feedback. These will be
announced on the <a href=
"http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
"_top">ijbswa-announce</a> list and available from our the <a href=
"http://sourceforge.net/project/showfiles.php?group_id=11118" target=
"_top">files section</a> of our <a href=
"http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
</div>
<div class="SECT3">
<h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">6.2.2.
Reporting Bugs</a></h3>
<p>Please report all bugs through our bug tracker: <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118"
target=
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118</a>.</p>
<p>Before doing so, please make sure that the bug has <span class=
"emphasis EMPHASIS c2">not already been submitted</span> and observe
the additional hints at the top of the <a href=
"http://sourceforge.net/tracker/?func=add&amp;group_id=11118&amp;atid=111118"
target="_top">submit form</a>. If already submitted, please feel free
to add any info to the original report that might help to solve the
issue.</p>
<p>Please try to verify that it is a <span class=
"APPLICATION">Privoxy</span> bug, and not a browser or site bug or
documented behaviour that just happens to be different than what you
expected. If unsure, try <a href=
"http://config.privoxy.org/toggle?set=disable" target="_top">toggling
off</a> <span class="APPLICATION">Privoxy</span>, and see if the
problem persists.</p>
<p>If you are using your own custom configuration, please try the
stock configs to see if the problem is configuration related. 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>If you aren't using the latest Privoxy version, the bug may have
been found and fixed in the meantime. We would appreciate if you
could take the time to <a href=
"http://www.privoxy.org/user-manual/installation.html" target=
"_top">upgrade to the latest version</a> (or even the latest CVS
snapshot) and verify that your bug still exists.</p>
<p>Please be sure to provide the following information:</p>
<ul>
<li>
<p>The exact <span class="APPLICATION">Privoxy</span> version you
are using (if you got the source from CVS, please also provide
the source code revisions as shown in <a href=
"http://config.privoxy.org/show-version" target=
"_top">http://config.privoxy.org/show-version</a>).</p>
</li>
<li>
<p>The operating system and versions you run <span class=
"APPLICATION">Privoxy</span> on, (e.g. <span class=
"APPLICATION">Windows XP SP2</span>), if you are using a Unix
flavor, sending the output of <span class="QUOTE">"uname
-a"</span> should do, in case of GNU/Linux, please also name the
distribution.</p>
</li>
<li>
<p>The name, platform, and version of the <span class=
"APPLICATION">browser</span> you were using (e.g. <span class=
"APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
</li>
<li>
<p>The URL where the problem occurred, or some way for us to
duplicate the problem (e.g. <tt class=
"LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
</li>
<li>
<p>Whether your version of <span class=
"APPLICATION">Privoxy</span> is one supplied by the <span class=
"APPLICATION">Privoxy</span> developers via SourceForge, or if
you got your copy somewhere else.</p>
</li>
<li>
<p>Whether you are using <span class="APPLICATION">Privoxy</span>
in tandem with another proxy such as <span 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). To get a meaningful logfile,
please make sure that the <a href=
"../user-manual/config.html#LOGFILE" target="_top">logfile
directive</a> is being used and the following <a href=
"../user-manual/config.html#DEBUG" target="_top">debug
options</a> are enabled:</p>
<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>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;show&nbsp;each&nbsp;connection&nbsp;status<br>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;show&nbsp;I/O&nbsp;status<br>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;show&nbsp;header&nbsp;parsing<br>
debug&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;debug&nbsp;redirects<br>
debug&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;debug&nbsp;GIF&nbsp;de-animation<br>
debug&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;Common&nbsp;Log&nbsp;Format<br>
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>
debug&nbsp;&nbsp;4096&nbsp;#&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br>
debug&nbsp;&nbsp;8192&nbsp;#&nbsp;Non-fatal&nbsp;errors</p>If you
are having trouble with a filter, please additionally enable
<p class="LITERALLAYOUT">
debug&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;filters</p>If
you are using Privoxy 3.0.17 or later and suspect that it
interprets the request or the response incorrectly, please enable
<p class="LITERALLAYOUT">
debug&nbsp;32768&nbsp;#&nbsp;log&nbsp;all&nbsp;data&nbsp;read&nbsp;from&nbsp;the&nbsp;network</p>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.
</li>
</ul>
<p>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.</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. 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.</p>
<p>If you are new to reporting problems, you might be interested in
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
target="_top">How to Report Bugs Effectively</a>.</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" id="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&amp;group_id=11118"
target="_top">http://sourceforge.net/tracker/?atid=361118&amp;group_id=11118</a>.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">6.4.
Mailing Lists</a></h2>
<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
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 <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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Contacting the developers, Bug Reporting and Feature Requests</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="Troubleshooting"
HREF="trouble.html"><LINK
REL="NEXT"
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 Frequently Asked Questions</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trouble.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="copyright.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CONTACT"
>6. Contacting the developers, Bug Reporting and Feature Requests</A
></H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> and its configuration.
However, please note the following hints, so we can
provide you with the best support:</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
>6.1. Get Support</A
></H2
><P
> For casual users, our
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118"
TARGET="_top"
>support forum at SourceForge</A
>
is probably best suited:
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118"
TARGET="_top"
>http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</A
></P
><P
> All users are of course welcome to discuss their issues on the <A
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
TARGET="_top"
>users
mailing list</A
>, where the developers also hang around.</P
><P
> Please don't sent private support requests to individual Privoxy
developers, either use the mailing lists or the support trackers.</P
><P
> 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 of several days and if you use a subject that doesn't clearly
mention Privoxy or one of its features, your message may be accidentally
discarded as spam.</P
><P
> If you aren't subscribed, you should therefore spend a few seconds
to come up with a proper subject. Additionally you should make it clear
that you want to get CC'd. Otherwise some responses will be directed to
the mailing list only, and you won't see them.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="REPORTING"
>6.2. Reporting Problems</A
></H2
><P
><SPAN
CLASS="QUOTE"
>"Problems"</SPAN
> for our purposes, come in two forms:</P
><P
></P
><UL
><LI
><P
> Configuration issues, such as ads that slip through, or sites that
don't function properly due to one <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
<SPAN
CLASS="QUOTE"
>"action"</SPAN
> or another being turned <SPAN
CLASS="QUOTE"
>"on"</SPAN
>.
</P
></LI
><LI
><P
> <SPAN
CLASS="QUOTE"
>"Bugs"</SPAN
> in the programming code that makes up
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, such as that might cause a crash.
</P
></LI
></UL
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONTACT-ADS"
>6.2.1. Reporting Ads or Other Configuration Problems</A
></H3
><P
> Please send feedback on ads that slipped through, innocent images that were
blocked, sites that don't work properly, and other configuration related problem of
<TT
CLASS="FILENAME"
>default.action</TT
> file, to
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288"
TARGET="_top"
> http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288</A
>,
the Actions File Tracker.</P
><P
> New, improved <TT
CLASS="FILENAME"
>default.action</TT
> files may occasionally be made
available based on your feedback. These will be announced on the <A
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
TARGET="_top"
>ijbswa-announce</A
>
list and available from our the <A
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
TARGET="_top"
>files section</A
> of
our <A
HREF="http://sf.net/projects/ijbswa/"
TARGET="_top"
>project page</A
>.</P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONTACT-BUGS"
>6.2.2. Reporting Bugs</A
></H3
><P
> Please report all bugs through our bug tracker:
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118"
TARGET="_top"
>http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
>. </P
><P
> Before doing so, please make sure that the bug has <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>not already been submitted</I
></SPAN
>
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"
TARGET="_top"
>submit
form</A
>. If already submitted, please feel free to add any info to the
original report that might help to solve the issue.</P
><P
> Please try to verify that it is a <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> bug,
and not a browser or site bug or documented behaviour that just happens
to be different than what you expected. If unsure,
try <A
HREF="http://config.privoxy.org/toggle?set=disable"
TARGET="_top"
>toggling
off</A
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and see if the problem persists.</P
><P
> If you are using your own custom configuration, please try
the stock configs to see if the problem is configuration related.
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
> If you aren't using the latest Privoxy version, the bug may have been found
and fixed in the meantime. We would appreciate if you could take the time
to <A
HREF="http://www.privoxy.org/user-manual/installation.html"
TARGET="_top"
>upgrade
to the latest version</A
> (or even the latest CVS snapshot) and verify
that your bug still exists.</P
><P
>Please be sure to provide the following information:</P
><P
> <P
></P
><UL
><LI
><P
> The exact <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> version you are using
(if you got the source from CVS, please also provide the source code revisions
as shown in <A
HREF="http://config.privoxy.org/show-version"
TARGET="_top"
>http://config.privoxy.org/show-version</A
>).
</P
></LI
><LI
><P
> The operating system and versions you run
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> on, (e.g. <SPAN
CLASS="APPLICATION"
>Windows
XP SP2</SPAN
>), if you are using a Unix flavor,
sending the output of <SPAN
CLASS="QUOTE"
>"uname -a"</SPAN
> should do,
in case of GNU/Linux, please also name the distribution.
</P
></LI
><LI
><P
> The name, platform, and version of the <SPAN
CLASS="APPLICATION"
>browser</SPAN
>
you were using (e.g. <SPAN
CLASS="APPLICATION"
>Internet Explorer v5.5</SPAN
> for Mac).
</P
></LI
><LI
><P
> The URL where the problem occurred, or some way for us to duplicate the
problem (e.g. <TT
CLASS="LITERAL"
>http://somesite.example.com/?somethingelse=123</TT
>).
</P
></LI
><LI
><P
> Whether your version of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is one supplied
by the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> developers via SourceForge,
or if you got your copy somewhere else.
</P
></LI
><LI
><P
> Whether you are using <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> in tandem with
another proxy such as <SPAN
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"
>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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Privoxy Copyright, License and History</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=
"Contacting the developers, Bug Reporting and Feature Requests" href=
"contact.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
a.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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="contact.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 class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">7. Privoxy
Copyright, License and History</a></h1>
<p>Copyright &copy; 2001-2011 by Privoxy Developers <code class=
"EMAIL">&lt;<a href=
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>&gt;</code></p>
<p>Some source code is based on code Copyright &copy; 1997 by Anonymous
Coders and Junkbusters, Inc. and licensed under the <i class=
"CITETITLE">GNU General Public License</i>.</p>
<p>Portions of this document are <span class="QUOTE">"borrowed"</span>
from the original <span class="APPLICATION">Junkbuster</span> (tm) FAQ,
and modified as appropriate for <span class=
"APPLICATION">Privoxy</span>.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="AEN1475" id="AEN1475">7.1. License</a></h2>
<p><span class="APPLICATION">Privoxy</span> is free software; you can
redistribute it and/or modify it under the terms of the <i class=
"CITETITLE">GNU General Public License</i>, version 2, as published by
the Free Software Foundation.</p>
<p>This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class=
"CITETITLE c2" href=
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
"_top">GNU General Public License</a> for details.</p>
<p>You should have received a copy of the <i class="CITETITLE">GNU
GPL</i> along with this program; if not, write to the</p>
<p class="ADDRESS">&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<span class="STREET">51 Franklin
Street, Fifth Floor</span><br>
&nbsp;<span class="CITY">Boston</span>,&nbsp;<span class=
"STATE">MA</span>&nbsp;<span class="POSTCODE">02110-1301</span><br>
&nbsp;<span class="COUNTRY">USA</span>&nbsp;</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="AEN1491" id="AEN1491">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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Privoxy Copyright, License and History</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="Contacting the developers, Bug Reporting and Feature Requests"
HREF="contact.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="contact.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="COPYRIGHT"
>7. Privoxy Copyright, License and History</A
></H1
><P
> Copyright © 2001-2009 by Privoxy Developers <CODE
CLASS="EMAIL"
>&#60;<A
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
>ijbswa-developers@lists.sourceforge.net</A
>&#62;</CODE
></P
><P
> Some source code is based on code Copyright © 1997 by Anonymous Coders
and Junkbusters, Inc. and licensed under the <I
CLASS="CITETITLE"
>GNU General Public
License</I
>.</P
><P
> Portions of this document are <SPAN
CLASS="QUOTE"
>"borrowed"</SPAN
> from the original
<SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
> (tm) FAQ, and modified as
appropriate for <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>.
</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN1451"
>7.1. License</A
></H2
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is free software; you can
redistribute it and/or modify it under the terms of the
<I
CLASS="CITETITLE"
>GNU General Public License</I
>, version 2,
as published by the Free Software Foundation.</P
><P
> This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the <A
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
TARGET="_top"
> <I
CLASS="CITETITLE"
>GNU General Public License</I
></A
> for details.</P
><P
> You should have received a copy of the <I
CLASS="CITETITLE"
>GNU GPL</I
>
along with this program; if not, write to the <P
CLASS="ADDRESS"
>&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<SPAN
CLASS="STREET"
>51 Franklin Street, Fifth Floor</SPAN
><br>
&nbsp;<SPAN
CLASS="CITY"
>Boston</SPAN
>,&nbsp;<SPAN
CLASS="STATE"
>MA</SPAN
>&nbsp;<SPAN
CLASS="POSTCODE"
>02110-1301</SPAN
><br>
&nbsp;<SPAN
CLASS="COUNTRY"
>USA</SPAN
>&nbsp;</P
></P
></DIV
><DIV
CLASS="SECT2"
><H2
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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<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=us-ascii">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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 class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2.
Installation</a></h1>
<div class="SECT2">
<h3 class="SECT2"><a name="WHICHBROWSERS" id="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" id="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" id="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" id="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>.</p>
</div>
<div class="SECT2">
<h3 class="SECT2"><a name="LOCALHOST" id="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" id="NOTHING">2.6. I just installed
Privoxy, and nothing is happening. All the ads are there. What's
wrong?</a></h3>
<p>Did you configure your browser to use <span class=
"APPLICATION">Privoxy</span> as a proxy? It does not sound like it. See
above. You might also try flushing the browser's caches to force a full
re-reading of pages. You can verify that <span class=
"APPLICATION">Privoxy</span> is running, and your browser is correctly
configured by entering the special URL: <a href="http://p.p/" target=
"_top">http://p.p/</a>. This should take you to a page titled
<span class="QUOTE">"This is Privoxy.."</span> with access to
<span class="APPLICATION">Privoxy's</span> internal configuration. If
you see this, then you are good to go. If you receive a page saying
<span class="QUOTE">"Privoxy is not running"</span>, then the browser
is not set up to use your <span class="APPLICATION">Privoxy</span>
installation. If you receive anything else (probably nothing at all),
it could either be that the browser is not set up correctly, or that
<span class="APPLICATION">Privoxy</span> is not running at all. Check
the <a href="../user-manual/config.html#LOGFILE" target="_top">log
file</a>. For instructions on starting <span class=
"APPLICATION">Privoxy</span> and browser configuration, see the
<a href="http://www.privoxy.org/user-manual/startup.html" target=
"_top">chapter on starting <span class="APPLICATION">Privoxy</span></a>
in the <a href="http://www.privoxy.org/user-manual/" target="_top">User
Manual</a>.</p>
</div>
<div class="SECT2">
<h3 class="SECT2"><a name="NOTUSED" id="NOTUSED">2.7. I get a
<span class="QUOTE">"Privoxy is not being used"</span> dummy page
although Privoxy is running and being used.</a></h3>
<p>First, make sure that Privoxy is <span class=
"emphasis EMPHASIS c2">really</span> running and being used by visiting
<a href="http://p.p/" target="_top">http://p.p/</a>. You should see the
<span class="APPLICATION">Privoxy</span> main page. If not, see the
<a href="http://www.privoxy.org/user-manual/startup.html" target=
"_top">chapter on starting <span class="APPLICATION">Privoxy</span></a>
in the <a href="http://www.privoxy.org/user-manual/" target="_top">User
Manual</a>.</p>
<p>Now if <a href="http://p.p/" target="_top">http://p.p/</a> works for
you, but other parts of <span class="APPLICATION">Privoxy</span>'s web
interface show the dummy page, your browser has cached a redirection it
encountered before <span class="APPLICATION">Privoxy</span> was being
used. You need to clear your browser's cache. Note that shift-reloading
the dummy page won't help, since that'll only refresh the dummy page,
not the redirection that lead you there.</p>
<p>The procedure for clearing the cache varies from browser to browser.
For example, <span class="APPLICATION">Mozilla/Netscape</span> users
would click <span class="GUIBUTTON">Edit</span> --&gt; <span class=
"GUIBUTTON">Preferences</span> --&gt; <span class=
"GUIBUTTON">Advanced</span> --&gt; <span class="GUIBUTTON">Cache</span>
and then click both <span class="QUOTE">"<span class="GUIBUTTON">Clear
Memory Cache</span>"</span> and <span class="QUOTE">"<span class=
"GUIBUTTON">Clear Disk Cache</span>"</span>. In some <span class=
"APPLICATION">Firefox</span> versions it's <span class=
"GUIBUTTON">Tools</span> --&gt; <span class="GUIBUTTON">Options</span>
--&gt; <span class="GUIBUTTON">Privacy</span> --&gt; <span class=
"GUIBUTTON">Cache</span> and then click <span class=
"QUOTE">"<span class="GUIBUTTON">Clear Cache Now</span>"</span>.</p>
</div>
</div>
<div class="NAVFOOTER">
<hr 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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""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
>.
This should take you to a page titled <SPAN
CLASS="QUOTE"
>"This is Privoxy.."</SPAN
> with
access to <SPAN
CLASS="APPLICATION"
>Privoxy's</SPAN
> internal configuration.
If you see this, then you are good to go. If you receive a page saying
<SPAN
CLASS="QUOTE"
>"Privoxy is not running"</SPAN
>, then the browser is not set up to use
your <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> installation.
If you receive anything else (probably nothing at all), it could either
be that the browser is not set up correctly, or that
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is not running at all. Check the <A
HREF="../user-manual/config.html#LOGFILE"
TARGET="_top"
>log file</A
>. For instructions
on starting <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> and browser configuration,
see the <A
HREF="http://www.privoxy.org/user-manual/startup.html"
TARGET="_top"
>chapter
on starting <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></A
> in the
<A
HREF="http://www.privoxy.org/user-manual/"
TARGET="_top"
>User Manual</A
>.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="NOTUSED"
>2.7. I get a <SPAN
CLASS="QUOTE"
>"Privoxy is not being used"</SPAN
> dummy page although
Privoxy is running and being used.</A
></H3
><P
> First, make sure that Privoxy is <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>really</I
></SPAN
> running and
being used by visiting <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
>. You
should see the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> main page. If not, see
the <A
HREF="http://www.privoxy.org/user-manual/startup.html"
TARGET="_top"
>chapter
on starting <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></A
> in the
<A
HREF="http://www.privoxy.org/user-manual/"
TARGET="_top"
>User Manual</A
>.</P
><P
> Now if <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
> works for you, but
other parts of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>'s web interface show
the dummy page, your browser has cached a redirection it encountered before
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> was being used. You need to clear your
browser's cache. Note that shift-reloading the dummy page won't help, since
that'll only refresh the dummy page, not the redirection that lead you there.</P
><P
> The procedure for clearing the cache varies from browser to browser. For
example, <SPAN
CLASS="APPLICATION"
>Mozilla/Netscape</SPAN
> users would click
<SPAN
CLASS="GUIBUTTON"
>Edit</SPAN
> --&#62; <SPAN
CLASS="GUIBUTTON"
>Preferences</SPAN
> --&#62;
<SPAN
CLASS="GUIBUTTON"
>Advanced</SPAN
> --&#62; <SPAN
CLASS="GUIBUTTON"
>Cache</SPAN
> and
then click both <SPAN
CLASS="QUOTE"
>"<SPAN
CLASS="GUIBUTTON"
>Clear Memory Cache</SPAN
>"</SPAN
>
and <SPAN
CLASS="QUOTE"
>"<SPAN
CLASS="GUIBUTTON"
>Clear Disk Cache</SPAN
>"</SPAN
>.
In some <SPAN
CLASS="APPLICATION"
>Firefox</SPAN
> versions it's
<SPAN
CLASS="GUIBUTTON"
>Tools</SPAN
> --&#62; <SPAN
CLASS="GUIBUTTON"
>Options</SPAN
> --&#62;
<SPAN
CLASS="GUIBUTTON"
>Privacy</SPAN
> --&#62; <SPAN
CLASS="GUIBUTTON"
>Cache</SPAN
> and
then click <SPAN
CLASS="QUOTE"
>"<SPAN
CLASS="GUIBUTTON"
>Clear Cache Now</SPAN
>"</SPAN
>.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="general.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="configuration.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>General Information</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<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=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 }
col.c1 {text-align: center}
</style>
</head>
<body class="ARTICLE">
<div class="ARTICLE">
<div class="TITLEPAGE">
<h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - Home Page</a></h1>
<div class="ABSTRACT">
<a name="AEN28" id="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 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>
<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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""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
>
<A
HREF="http://privoxy.org/team/index.html"
TARGET="_top"
>Pictures of the Privoxy Team</A
>
</P
></LI
></UL
></P
></DIV
><DIV
CLASS="SECT1"
><HR><H2
CLASS="SECT1"
><A
NAME="AEN83"
></A
></H2
><P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN86"
></A
><TABLE
BORDER="0"
FRAME="void"
RULES="all"
WIDTH="100%"
CLASS="CALSTABLE"
><COL
WIDTH="100%"
ALIGN="CENTER"
TITLE="C1"><TBODY
><TR
><TD
ALIGN="CENTER"
>Privoxy is developed on:</TD
></TR
><TR
><TD
ALIGN="CENTER"
> <A
HREF="http://sourceforge.net/"
TARGET="_top"
> <IMG
SRC="http://sourceforge.net/sflogo.php?group_id=11118&#38;type=1&#38;dummy=.gif">
</A
>
</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></P
><P
> <SUB
> Copyright &copy; 2001-2009 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>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of PRIVOXY</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="../p_doc.css"></HEAD><BODY>
<H1>PRIVOXY</H1>
Section: (1)<BR>Updated: 21 March 2009<BR><A HREF="#index">Index</A>
<HR>
<title>Privoxy Man page</title>
<link rel="stylesheet" type="text/css" href="../p_web.css">
</head>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
<body>
<h2>NAME</h2>
<pre>
<!-- Manpage converted by man2html 3.0.1 -->
privoxy - Privacy Enhancing Proxy
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
</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>
<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> ]
<P>
<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>
<pre>
<b>Privoxy</b> may be invoked with the following command line options:
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>
<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>
Print version info and exit.
<P>
<b>--no-daemon</b>
Don't become a daemon, i.e. don't fork and become process
group leader, don't detach from controlling tty, and do all log-
ging there.
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 Settings</B>;
<B>Manual Proxy Configuration</B>.
<P>
<b>--pidfile</b> <i>pidfile</i>
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.
For Internet Explorer, go through: <B>Tools</B>;
<B>Internet Properties</B>; <B>Connections</B>;
<B>LAN Settings</B>.
<P>
<b>--user</b> <i>user[.group]</i>
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.
The Secure (SSL) Proxy should also be set to the same values, otherwise
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.
<P>
<b>--chroot</b>
Before changing to the user ID given in the --user option,
chroot to that user's home directory, i.e. make the kernel pre-
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.
For other browsers, check the documentation.
<A NAME="lbAG">&nbsp;</A>
<H2>CONFIGURATION</H2>
<b>--pre-chroot-nslookup</b> <i>hostname</i>
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.
<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>con-</i>
<i>figfile</i> is found, <b>Privoxy</b> will fail to start.
<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.
<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>
<pre>
Privoxy is a non-caching web proxy with advanced filtering capabilities
for enhancing privacy, modifying web page data and HTTP headers, con-
trolling access, and removing ads and other obnoxious Internet junk.
Privoxy has a flexible configuration and can be customized to suit
See the <I>User Manual</I> for a detailed
explanation of installation, general usage, all configuration options, new
features and notes on upgrading.
<A NAME="lbAH">&nbsp;</A>
<H2>FILES</H2>
<P>
<PRE>
<I>/usr/sbin/privoxy</I>
<I>/etc/privoxy/config</I>
<I>/etc/privoxy/match-all.action</I>
<I>/etc/privoxy/default.action</I>
<I>/etc/privoxy/user.action</I>
<I>/etc/privoxy/default.filter</I>
<I>/etc/privoxy/user.filter</I>
<I>/etc/privoxy/trust</I>
<I>/etc/privoxy/templates/*</I>
<I>/var/log/privoxy/logfile</I>
</PRE>
</pre>
<P>
<h2>INSTALLATION AND USAGE</h2>
<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>.
Various other files should be included, but may vary depending on platform
and build configuration. Additional documentation should be included in the local
documentation directory.
<A NAME="lbAI">&nbsp;</A>
<H2>SIGNALS</H2>
For Internet Explorer, go through: <b>Tools</b>; <b>Internet</b> <b>Properties</b>; <b>Connec-</b>
<b>tions</b>; <b>LAN</b> <b>Settings</b>.
<P>
The Secure (SSL) Proxy should also be set to the same values, otherwise
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.
<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>
For other browsers, check the documentation.
<P>
Please see the <I>User Manual</I> on how to contact the
developers, for feature requests, reporting problems, and other questions.
<A NAME="lbAK">&nbsp;</A>
<H2>SEE ALSO</H2>
</pre>
<P>
<h2>CONFIGURATION</h2>
<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.
Other references and sites of interest to <B>Privoxy</B>
users:
<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>
<A HREF="http://www.privoxy.org/">http://www.privoxy.org/,</A>
the <B>Privoxy</B> Home page.
<P>
<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>
The actions list (ad blocks, etc) can also be configured with your web
browser at http://config.privoxy.org/ (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>
<PRE>
Fabian Keil, lead developer
David Schmidt, developer
See the <i>User</i> <i>Manual</i> for a detailed explanation of installation, general
usage, all configuration options, new features and notes on upgrading.
Hal Burgiss
Mark Miller
Gerry Murphy
Lee Rian
Roland Rosenfeld
J&ouml;rg Strohmayer
</PRE>
<A NAME="lbAM">&nbsp;</A>
<H2>COPYRIGHT AND LICENSE</H2>
</pre>
<A NAME="lbAN">&nbsp;</A>
<H3>COPYRIGHT</H3>
<h2>FILES</h2>
<pre>
<i>/usr/sbin/privoxy</i>
<i>/etc/privoxy/config</i>
<i>/etc/privoxy/match-all.action</i>
<i>/etc/privoxy/default.action</i>
<i>/etc/privoxy/user.action</i>
<i>/etc/privoxy/default.filter</i>
detect them automatically.
<P>
Copyright (C) 2001-2009 by Privoxy Developers &lt;<A HREF="mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</A>&gt;
<P>
</pre>
Some source code is based on code Copyright (C) 1997 by Anonymous Coders
and Junkbusters, Inc. and licensed under the <I>GNU General Public
License</I>.
<A NAME="lbAO">&nbsp;</A>
<H3>LICENSE</H3>
<h2>NOTES</h2>
<pre>
This is a UNRELEASED version of <b>Privoxy</b>. Not all features are well
tested.
<P>
Please see the <i>User</i> <i>Manual</i> on how to contact the developers, for fea-
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>
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the <I>GNU General Public License</I> for details.
<P>
</pre>
You should have received a copy of the <I>GNU GPL</I>
along with this program; if not, write to the Free Software
Foundation, Inc. 51 Franklin Street, Fifth Floor
Boston, MA 02110-1301
USA
<P>
<h2>SEE ALSO</h2>
<pre>
Other references and sites of interest to <b>Privoxy</b> users:
http://www.privoxy.org/, the <b>Privoxy</b> Home page.
http://www.privoxy.org/faq/, the <b>Privoxy</b> FAQ.
http://www.privoxy.org/developer-manual/, the <b>Privoxy</b> developer manual.
https://sourceforge.net/projects/ijbswa/, the Project Page for <b>Privoxy</b>
on SourceForge.
http://config.privoxy.org/, the web-based user interface. <b>Privoxy</b> must
be running for this to work. Shortcut: http://p.p/
https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288, to submit
``misses'' and other configuration related suggestions to the develop-
ers.
</pre>
<h2>DEVELOPMENT TEAM</h2>
<pre>
Fabian Keil, lead developer
David Schmidt, developer
Hal Burgiss
Lee Rian
Roland Rosenfeld
</pre>
<h2>COPYRIGHT AND LICENSE</h2>
<pre>
<b>COPYRIGHT</b>
Copyright (C) 2001-2011 by Privoxy Developers &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>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT><A HREF="#lbAD">OPTIONS</A><DD>
<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
<DT><A HREF="#lbAF">INSTALLATION AND USAGE</A><DD>
<DT><A HREF="#lbAG">CONFIGURATION</A><DD>
<DT><A HREF="#lbAH">FILES</A><DD>
<DT><A HREF="#lbAI">SIGNALS</A><DD>
<DT><A HREF="#lbAJ">NOTES</A><DD>
<DT><A HREF="#lbAK">SEE ALSO</A><DD>
<DT><A HREF="#lbAL">DEVELOPMENT TEAM</A><DD>
<DT><A HREF="#lbAM">COPYRIGHT AND LICENSE</A><DD>
<DL>
<DT><A HREF="#lbAN">COPYRIGHT</A><DD>
<DT><A HREF="#lbAO">LICENSE</A><DD>
</DL>
</DL>
<HR>
This document was created by
man2html,
using the manual pages.<BR>
Time: 11:32:52 GMT, March 21, 2009
</BODY>
</HTML>

View File

@ -1,185 +1,283 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<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=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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""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
>
<A
HREF="http://privoxy.org/team/index.html"
TARGET="_top"
>Pictures of the Privoxy Team</A
>
</P
></LI
></UL
></P
></DIV
><DIV
CLASS="SECT1"
><HR><H2
CLASS="SECT1"
><A
NAME="AEN82"
></A
></H2
><P
> <SUB
> Copyright &copy; 2001-2009 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>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<head>
<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1">
<title>Privoxy - Team Photos</title>
<link rel="stylesheet" type="text/css" href="../p_doc.css">
<style type="text/css">
h1.c1 {margin-left: 0%}
</style>
</head>
<body>
<h1 class="c1">Privoxy - Team Photos</h1>
</head>
<body>
<h1 style="margin-left: 0%">Privoxy - Team Photos</h1>
<hr>
<p>In our day jobs, we're all models ;-)</p>
<table align="center">
<tr>
<td><a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80"
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="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height=
"80" border="0" title="Rodney Stromlund"></a></td>
</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>
<tr>
<td><a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80" 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="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height="80" border="0" title="Rodney Stromlund"></a></td>
</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>
</body>
</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,282 +1,514 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Privoxy Configuration</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
<link rel="PREVIOUS" title="Starting Privoxy" href="startup.html">
<link rel="NEXT" title="The Main Configuration File" href="config.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c3 {font-style: italic}
table.c2 {background-color: #E0E0E0}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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.19 User Manual</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href="startup.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href="config.html"
accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="CONFIGURATION" id="CONFIGURATION">6. Privoxy
Configuration</a></h1>
<p>All <span class="APPLICATION">Privoxy</span> configuration is stored
in text files. These files can be edited with a text editor. Many
important aspects of <span class="APPLICATION">Privoxy</span> can also be
controlled easily with a web browser.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="AEN1090" id="AEN1090">6.1. Controlling
Privoxy with Your Web Browser</a></h2>
<p><span class="APPLICATION">Privoxy</span>'s user interface can be
reached through the special URL <a href="http://config.privoxy.org/"
target="_top">http://config.privoxy.org/</a> (shortcut: <a href=
"http://p.p/" target="_top">http://p.p/</a>), which is a built-in page
and works without Internet access. You will see the following
section:</p>
<table class="c2" border="0" width="100%">
<tr>
<td>
<pre class="SCREEN">
</pre>
<h2 class="BRIDGEHEAD"><a name="AEN1098" id=
"AEN1098"></a>&nbsp;&nbsp;&nbsp;&nbsp;Privoxy Menu</h2>
<pre>
</pre>
<table border="0">
<tbody>
<tr>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://config.privoxy.org/show-status"
target="_top">View &amp; change the current
configuration</a></td>
</tr>
<tr>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://config.privoxy.org/show-version"
target="_top">View the source code version numbers</a></td>
</tr>
<tr>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://config.privoxy.org/show-request"
target="_top">View the request headers.</a></td>
</tr>
<tr>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://config.privoxy.org/show-url-info"
target="_top">Look up which actions apply to a URL and
why</a></td>
</tr>
<tr>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://config.privoxy.org/toggle"
target="_top">Toggle Privoxy on or off</a></td>
</tr>
<tr>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9642;&nbsp;&nbsp;<a href="http://www.privoxy.org/3.0.19/user-manual/"
target="_top">Documentation</a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<p>This should be self-explanatory. Note the first item leads to an
editor for the <a href="actions-file.html">actions files</a>, which is
where the ad, banner, cookie, and URL blocking magic is configured as
well as other advanced features of <span class=
"APPLICATION">Privoxy</span>. This is an easy way to adjust various
aspects of <span class="APPLICATION">Privoxy</span> configuration. The
actions file, and other configuration files, are explained in detail
below.</p>
<p><span class="QUOTE">"Toggle Privoxy On or Off"</span> is handy for
sites that might have problems with your current actions and filters.
You can in fact use it as a test to see whether it is <span class=
"APPLICATION">Privoxy</span> causing the problem or not. <span class=
"APPLICATION">Privoxy</span> continues to run as a proxy in this case,
but all manipulation is disabled, i.e. <span class=
"APPLICATION">Privoxy</span> acts like a normal forwarding proxy. There
is even a toggle <a href="appendix.html#BOOKMARKLETS">Bookmarklet</a>
offered, so that you can toggle <span class=
"APPLICATION">Privoxy</span> with one click from your browser.</p>
<p>Note that several of the features described above are disabled by
default in <span class="APPLICATION">Privoxy</span> 3.0.7 beta and
later. Check the <a href="config.html" target="_top">configuration
file</a> to learn why and in which cases it's safe to enable them
again.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="CONFOVERVIEW" id="CONFOVERVIEW">6.2.
Configuration Files Overview</a></h2>
<p>For Unix, *BSD and Linux, all configuration files are located in
<tt class="FILENAME">/etc/privoxy/</tt> by default. For MS Windows,
OS/2, and AmigaOS these are all in the same directory as the
<span class="APPLICATION">Privoxy</span> executable.</p>
<p>The installed defaults provide a reasonable starting point, though
some settings may be aggressive by some standards. For the time being,
the principle configuration files are:</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>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 EMPHASIS c3">old</span> listening address.</p>
</div>
</div>
<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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Privoxy Configuration</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="Starting Privoxy"
HREF="startup.html"><LINK
REL="NEXT"
TITLE="The Main Configuration File"
HREF="config.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="startup.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="config.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CONFIGURATION"
>6. Privoxy Configuration</A
></H1
><P
> All <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> configuration is stored
in text files. These files can be edited with a text editor.
Many important aspects of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> can
also be controlled easily with a web browser.
</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN776"
>6.1. Controlling Privoxy with Your Web Browser</A
></H2
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>'s user interface can be reached through the special
URL <A
HREF="http://config.privoxy.org/"
TARGET="_top"
>http://config.privoxy.org/</A
>
(shortcut: <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
>),
which is a built-in page and works without Internet access.
You will see the following section:&#13;</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> <H2
CLASS="BRIDGEHEAD"
><A
NAME="AEN784"
></A
>    Privoxy Menu</H2
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>         &#9642;  <A
HREF="http://config.privoxy.org/show-status"
TARGET="_top"
>View &#38; change the current configuration</A
>
</TD
></TR
><TR
><TD
>         &#9642;  <A
HREF="http://config.privoxy.org/show-version"
TARGET="_top"
>View the source code version numbers</A
>
</TD
></TR
><TR
><TD
>         &#9642;  <A
HREF="http://config.privoxy.org/show-request"
TARGET="_top"
>View the request headers.</A
>
</TD
></TR
><TR
><TD
>         &#9642;  <A
HREF="http://config.privoxy.org/show-url-info"
TARGET="_top"
>Look up which actions apply to a URL and why</A
>
</TD
></TR
><TR
><TD
>         &#9642;  <A
HREF="http://config.privoxy.org/toggle"
TARGET="_top"
>Toggle Privoxy on or off</A
>
</TD
></TR
><TR
><TD
>         &#9642;  <A
HREF="http://www.privoxy.org/3.0.12/user-manual/"
TARGET="_top"
>Documentation</A
>
</TD
></TR
></TBODY
></TABLE
><P
></P
></PRE
></TD
></TR
></TABLE
><P
> This should be self-explanatory. Note the first item leads to an editor for the
<A
HREF="actions-file.html"
>actions files</A
>, which is where the ad, banner,
cookie, and URL blocking magic is configured as well as other advanced features of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>. This is an easy way to adjust various
aspects of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> configuration. The actions
file, and other configuration files, are explained in detail below. </P
><P
> <SPAN
CLASS="QUOTE"
>"Toggle Privoxy On or Off"</SPAN
> is handy for sites that might
have problems with your current actions and filters. You can in fact use
it as a test to see whether it is <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
causing the problem or not. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> continues
to run as a proxy in this case, but all manipulation is disabled, i.e.
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> acts like a normal forwarding proxy. There
is even a toggle <A
HREF="appendix.html#BOOKMARKLETS"
>Bookmarklet</A
> offered, so
that you can toggle <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with one click from
your browser.</P
><P
> Note that several of the features described above are disabled by default
in <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> 3.0.7 beta and later.
Check the
<A
HREF="config.html"
TARGET="_top"
>configuration file</A
> to learn why
and in which cases it's safe to enable them again.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CONFOVERVIEW"
>6.2. Configuration Files Overview</A
></H2
><P
> For Unix, *BSD and Linux, all configuration files are located in
<TT
CLASS="FILENAME"
>/etc/privoxy/</TT
> by default. For MS Windows, OS/2, and
AmigaOS these are all in the same directory as the
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> executable. </P
><P
> The installed defaults provide a reasonable starting point, though
some settings may be aggressive by some standards. For the time being, the
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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Contacting the Developers, Bug Reporting and Feature
Requests</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
<link rel="PREVIOUS" title="Privoxy's Template Files" href=
"templates.html">
<link rel="NEXT" 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=us-ascii">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
span.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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.19 User Manual</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href="templates.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href=
"copyright.html" accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="CONTACT" id="CONTACT">11. Contacting the
Developers, Bug Reporting and Feature Requests</a></h1>
<p>We value your feedback. In fact, we rely on it to improve <span class=
"APPLICATION">Privoxy</span> and its configuration. However, please note
the following hints, so we can provide you with the best support:</p>
<div class="SECT2">
<h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">11.1.
Get Support</a></h2>
<p>For casual users, our <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118"
target="_top">support forum at SourceForge</a> is probably best suited:
<a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118"
target="_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=211118</a></p>
<p>All users are of course welcome to discuss their issues on the
<a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
target="_top">users mailing list</a>, where the developers also hang
around.</p>
<p>Please don't sent private support requests to individual Privoxy
developers, either use the mailing lists or the support trackers.</p>
<p>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.</p>
<p>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 of several days and if you use a subject that
doesn't clearly mention Privoxy or one of its features, your message
may be accidentally discarded as spam.</p>
<p>If you aren't subscribed, you should therefore spend a few seconds
to come up with a proper subject. Additionally you should make it clear
that you want to get CC'd. Otherwise some responses will be directed to
the mailing list only, and you won't see them.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="REPORTING" id="REPORTING">11.2. Reporting
Problems</a></h2>
<p><span class="QUOTE">"Problems"</span> for our purposes, come in two
forms:</p>
<ul>
<li>
<p>Configuration issues, such as ads that slip through, or sites
that don't function properly due to one <span class=
"APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
another being turned <span class="QUOTE">"on"</span>.</p>
</li>
<li>
<p><span class="QUOTE">"Bugs"</span> in the programming code that
makes up <span class="APPLICATION">Privoxy</span>, such as that
might cause a crash.</p>
</li>
</ul>
<div class="SECT3">
<h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">11.2.1.
Reporting Ads or Other Configuration Problems</a></h3>
<p>Please send feedback on ads that slipped through, innocent images
that were blocked, sites that don't work properly, and other
configuration related problem of <tt class=
"FILENAME">default.action</tt> file, to <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288"
target=
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>,
the Actions File Tracker.</p>
<p>New, improved <tt class="FILENAME">default.action</tt> files may
occasionally be made available based on your feedback. These will be
announced on the <a href=
"http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
"_top">ijbswa-announce</a> list and available from our the <a href=
"http://sourceforge.net/project/showfiles.php?group_id=11118" target=
"_top">files section</a> of our <a href=
"http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
</div>
<div class="SECT3">
<h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">11.2.2.
Reporting Bugs</a></h3>
<p>Please report all bugs through our bug tracker: <a href=
"http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118"
target=
"_top">http://sourceforge.net/tracker/?group_id=11118&amp;atid=111118</a>.</p>
<p>Before doing so, please make sure that the bug has <span class=
"emphasis EMPHASIS c2">not already been submitted</span> and observe
the additional hints at the top of the <a href=
"http://sourceforge.net/tracker/?func=add&amp;group_id=11118&amp;atid=111118"
target="_top">submit form</a>. If already submitted, please feel free
to add any info to the original report that might help to solve the
issue.</p>
<p>Please try to verify that it is a <span class=
"APPLICATION">Privoxy</span> bug, and not a browser or site bug or
documented behaviour that just happens to be different than what you
expected. If unsure, try <a href=
"http://config.privoxy.org/toggle?set=disable" target="_top">toggling
off</a> <span class="APPLICATION">Privoxy</span>, and see if the
problem persists.</p>
<p>If you are using your own custom configuration, please try the
stock configs to see if the problem is configuration related. 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>If you aren't using the latest Privoxy version, the bug may have
been found and fixed in the meantime. We would appreciate if you
could take the time to <a href=
"http://www.privoxy.org/user-manual/installation.html" target=
"_top">upgrade to the latest version</a> (or even the latest CVS
snapshot) and verify that your bug still exists.</p>
<p>Please be sure to provide the following information:</p>
<ul>
<li>
<p>The exact <span class="APPLICATION">Privoxy</span> version you
are using (if you got the source from CVS, please also provide
the source code revisions as shown in <a href=
"http://config.privoxy.org/show-version" target=
"_top">http://config.privoxy.org/show-version</a>).</p>
</li>
<li>
<p>The operating system and versions you run <span class=
"APPLICATION">Privoxy</span> on, (e.g. <span class=
"APPLICATION">Windows XP SP2</span>), if you are using a Unix
flavor, sending the output of <span class="QUOTE">"uname
-a"</span> should do, in case of GNU/Linux, please also name the
distribution.</p>
</li>
<li>
<p>The name, platform, and version of the <span class=
"APPLICATION">browser</span> you were using (e.g. <span class=
"APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
</li>
<li>
<p>The URL where the problem occurred, or some way for us to
duplicate the problem (e.g. <tt class=
"LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
</li>
<li>
<p>Whether your version of <span class=
"APPLICATION">Privoxy</span> is one supplied by the <span class=
"APPLICATION">Privoxy</span> developers via SourceForge, or if
you got your copy somewhere else.</p>
</li>
<li>
<p>Whether you are using <span class="APPLICATION">Privoxy</span>
in tandem with another proxy such as <span 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). To get a meaningful logfile,
please make sure that the <a href=
"../user-manual/config.html#LOGFILE" target="_top">logfile
directive</a> is being used and the following <a href=
"../user-manual/config.html#DEBUG" target="_top">debug
options</a> are enabled:</p>
<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>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;show&nbsp;each&nbsp;connection&nbsp;status<br>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;show&nbsp;I/O&nbsp;status<br>
debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;show&nbsp;header&nbsp;parsing<br>
debug&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;debug&nbsp;redirects<br>
debug&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;debug&nbsp;GIF&nbsp;de-animation<br>
debug&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;Common&nbsp;Log&nbsp;Format<br>
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>
debug&nbsp;&nbsp;4096&nbsp;#&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br>
debug&nbsp;&nbsp;8192&nbsp;#&nbsp;Non-fatal&nbsp;errors</p>If you
are having trouble with a filter, please additionally enable
<p class="LITERALLAYOUT">
debug&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;filters</p>If
you are using Privoxy 3.0.17 or later and suspect that it
interprets the request or the response incorrectly, please enable
<p class="LITERALLAYOUT">
debug&nbsp;32768&nbsp;#&nbsp;log&nbsp;all&nbsp;data&nbsp;read&nbsp;from&nbsp;the&nbsp;network</p>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.
</li>
</ul>
<p>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.</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. 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.</p>
<p>If you are new to reporting problems, you might be interested in
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"
target="_top">How to Report Bugs Effectively</a>.</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" id="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&amp;group_id=11118"
target="_top">http://sourceforge.net/tracker/?atid=361118&amp;group_id=11118</a>.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">11.4.
Mailing Lists</a></h2>
<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
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 <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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Contacting the Developers, Bug Reporting and Feature
Requests</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's Template Files"
HREF="templates.html"><LINK
REL="NEXT"
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">
<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="templates.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="copyright.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CONTACT"
>11. Contacting the Developers, Bug Reporting and Feature
Requests</A
></H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> and its configuration.
However, please note the following hints, so we can
provide you with the best support:</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
>11.1. Get Support</A
></H2
><P
> For casual users, our
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118"
TARGET="_top"
>support forum at SourceForge</A
>
is probably best suited:
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118"
TARGET="_top"
>http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</A
></P
><P
> All users are of course welcome to discuss their issues on the <A
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
TARGET="_top"
>users
mailing list</A
>, where the developers also hang around.</P
><P
> Please don't sent private support requests to individual Privoxy
developers, either use the mailing lists or the support trackers.</P
><P
> 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 of several days and if you use a subject that doesn't clearly
mention Privoxy or one of its features, your message may be accidentally
discarded as spam.</P
><P
> If you aren't subscribed, you should therefore spend a few seconds
to come up with a proper subject. Additionally you should make it clear
that you want to get CC'd. Otherwise some responses will be directed to
the mailing list only, and you won't see them.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="REPORTING"
>11.2. Reporting Problems</A
></H2
><P
><SPAN
CLASS="QUOTE"
>"Problems"</SPAN
> for our purposes, come in two forms:</P
><P
></P
><UL
><LI
><P
> Configuration issues, such as ads that slip through, or sites that
don't function properly due to one <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
<SPAN
CLASS="QUOTE"
>"action"</SPAN
> or another being turned <SPAN
CLASS="QUOTE"
>"on"</SPAN
>.
</P
></LI
><LI
><P
> <SPAN
CLASS="QUOTE"
>"Bugs"</SPAN
> in the programming code that makes up
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, such as that might cause a crash.
</P
></LI
></UL
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONTACT-ADS"
>11.2.1. Reporting Ads or Other Configuration Problems</A
></H3
><P
> Please send feedback on ads that slipped through, innocent images that were
blocked, sites that don't work properly, and other configuration related problem of
<TT
CLASS="FILENAME"
>default.action</TT
> file, to
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288"
TARGET="_top"
> http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288</A
>,
the Actions File Tracker.</P
><P
> New, improved <TT
CLASS="FILENAME"
>default.action</TT
> files may occasionally be made
available based on your feedback. These will be announced on the <A
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
TARGET="_top"
>ijbswa-announce</A
>
list and available from our the <A
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
TARGET="_top"
>files section</A
> of
our <A
HREF="http://sf.net/projects/ijbswa/"
TARGET="_top"
>project page</A
>.</P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONTACT-BUGS"
>11.2.2. Reporting Bugs</A
></H3
><P
> Please report all bugs through our bug tracker:
<A
HREF="http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118"
TARGET="_top"
>http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
>. </P
><P
> Before doing so, please make sure that the bug has <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>not already been submitted</I
></SPAN
>
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"
TARGET="_top"
>submit
form</A
>. If already submitted, please feel free to add any info to the
original report that might help to solve the issue.</P
><P
> Please try to verify that it is a <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> bug,
and not a browser or site bug or documented behaviour that just happens
to be different than what you expected. If unsure,
try <A
HREF="http://config.privoxy.org/toggle?set=disable"
TARGET="_top"
>toggling
off</A
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and see if the problem persists.</P
><P
> If you are using your own custom configuration, please try
the stock configs to see if the problem is configuration related.
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
> If you aren't using the latest Privoxy version, the bug may have been found
and fixed in the meantime. We would appreciate if you could take the time
to <A
HREF="http://www.privoxy.org/user-manual/installation.html"
TARGET="_top"
>upgrade
to the latest version</A
> (or even the latest CVS snapshot) and verify
that your bug still exists.</P
><P
>Please be sure to provide the following information:</P
><P
> <P
></P
><UL
><LI
><P
> The exact <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> version you are using
(if you got the source from CVS, please also provide the source code revisions
as shown in <A
HREF="http://config.privoxy.org/show-version"
TARGET="_top"
>http://config.privoxy.org/show-version</A
>).
</P
></LI
><LI
><P
> The operating system and versions you run
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> on, (e.g. <SPAN
CLASS="APPLICATION"
>Windows
XP SP2</SPAN
>), if you are using a Unix flavor,
sending the output of <SPAN
CLASS="QUOTE"
>"uname -a"</SPAN
> should do,
in case of GNU/Linux, please also name the distribution.
</P
></LI
><LI
><P
> The name, platform, and version of the <SPAN
CLASS="APPLICATION"
>browser</SPAN
>
you were using (e.g. <SPAN
CLASS="APPLICATION"
>Internet Explorer v5.5</SPAN
> for Mac).
</P
></LI
><LI
><P
> The URL where the problem occurred, or some way for us to duplicate the
problem (e.g. <TT
CLASS="LITERAL"
>http://somesite.example.com/?somethingelse=123</TT
>).
</P
></LI
><LI
><P
> Whether your version of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is one supplied
by the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> developers via SourceForge,
or if you got your copy somewhere else.
</P
></LI
><LI
><P
> Whether you are using <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> in tandem with
another proxy such as <SPAN
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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Privoxy Copyright, License and History</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
<link rel="PREVIOUS" title=
"Contacting the Developers, Bug Reporting and Feature Requests" href=
"contact.html">
<link rel="NEXT" title="See Also" href="seealso.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
a.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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.19 User Manual</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href="contact.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href="seealso.html"
accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">12. Privoxy
Copyright, License and History</a></h1>
<p>Copyright &copy; 2001-2011 by Privoxy Developers <code class=
"EMAIL">&lt;<a href=
"mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>&gt;</code></p>
<p>Some source code is based on code Copyright &copy; 1997 by Anonymous
Coders and Junkbusters, Inc. and licensed under the <i class=
"CITETITLE">GNU General Public License</i>.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="AEN5542" id="AEN5542">12.1. License</a></h2>
<p><span class="APPLICATION">Privoxy</span> is free software; you can
redistribute it and/or modify it under the terms of the <i class=
"CITETITLE">GNU General Public License</i>, version 2, as published by
the Free Software Foundation.</p>
<p>This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class=
"CITETITLE c2" href=
"http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
"_top">GNU General Public License</a> for details.</p>
<p>You should have received a copy of the <i class="CITETITLE">GNU
GPL</i> along with this program; if not, write to the</p>
<p class="ADDRESS">&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<span class="STREET">51 Franklin
Street, Fifth Floor</span><br>
&nbsp;<span class="CITY">Boston</span>,&nbsp;<span class=
"STATE">MA</span>&nbsp;<span class="POSTCODE">02110-1301</span><br>
&nbsp;<span class="COUNTRY">USA</span>&nbsp;</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a name="HISTORY" id="HISTORY">12.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 class="SECT2">
<h2 class="SECT2"><a name="AUTHORS" id="AUTHORS">12.3. Authors</a></h2>
<p>Current Privoxy Team:</p>
<p class="LITERALLAYOUT">
&nbsp;Fabian&nbsp;Keil,&nbsp;lead&nbsp;developer<br>
&nbsp;David&nbsp;Schmidt,&nbsp;developer<br>
&nbsp;Hal&nbsp;Burgiss<br>
&nbsp;Lee&nbsp;Rian<br>
&nbsp;Roland&nbsp;Rosenfeld</p>
<p>Former Privoxy Team Members:</p>
<p class="LITERALLAYOUT">&nbsp;Johny&nbsp;Agotnes<br>
&nbsp;Rodrigo&nbsp;Barbosa<br>
&nbsp;Moritz&nbsp;Barsnick<br>
&nbsp;Ian&nbsp;Cummings<br>
&nbsp;Brian&nbsp;Dessent<br>
&nbsp;Jon&nbsp;Foster<br>
&nbsp;Karsten&nbsp;Hopp<br>
&nbsp;Alexander&nbsp;Lazic<br>
&nbsp;Daniel&nbsp;Leite<br>
&nbsp;G&aacute;bor&nbsp;Lipt&aacute;k<br>
&nbsp;Adam&nbsp;Lock<br>
&nbsp;Guy&nbsp;Laroche<br>
&nbsp;Justin&nbsp;McMurtry<br>
&nbsp;Mark&nbsp;Miller<br>
&nbsp;Gerry&nbsp;Murphy<br>
&nbsp;Andreas&nbsp;Oesterhelt<br>
&nbsp;Haroon&nbsp;Rafique<br>
&nbsp;Georg&nbsp;Sauthoff<br>
&nbsp;Thomas&nbsp;Steudten<br>
&nbsp;J&ouml;rg&nbsp;Strohmayer<br>
&nbsp;Rodney&nbsp;Stromlund<br>
&nbsp;Sviatoslav&nbsp;Sviridov<br>
&nbsp;Sarantis&nbsp;Paskalis<br>
&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;Havard&nbsp;Berland<br>
&nbsp;Gergely&nbsp;Bor<br>
&nbsp;Francois&nbsp;Botha<br>
&nbsp;Reiner&nbsp;Buehl<br>
&nbsp;Andrew&nbsp;J.&nbsp;Caines<br>
&nbsp;Clifford&nbsp;Caoile<br>
&nbsp;Wan-Teh&nbsp;Chang<br>
&nbsp;Billy&nbsp;Crook<br>
&nbsp;Fr&eacute;d&eacute;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&ouml;bert<br>
&nbsp;Jeff&nbsp;H.<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;Han&nbsp;Liu<br>
&nbsp;Toby&nbsp;Lyward<br>
&nbsp;Wil&nbsp;Mahan<br>
&nbsp;Jindrich&nbsp;Makovicka<br>
&nbsp;Raphael&nbsp;Marichez<br>
&nbsp;Francois&nbsp;Marier<br>
&nbsp;David&nbsp;Mediavilla<br>
&nbsp;Raphael&nbsp;Moll<br>
&nbsp;Amuro&nbsp;Namie<br>
&nbsp;Adam&nbsp;Piggott<br>
&nbsp;Petr&nbsp;P&iacute;sar<br>
&nbsp;Dan&nbsp;Price<br>
&nbsp;Roberto&nbsp;Ragusa<br>
&nbsp;F&eacute;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;Dan&nbsp;Stahlke<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&ouml;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 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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Privoxy Copyright, License and History</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="Contacting the Developers, Bug Reporting and Feature
Requests"
HREF="contact.html"><LINK
REL="NEXT"
TITLE="See Also"
HREF="seealso.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="contact.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="seealso.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="COPYRIGHT"
>12. Privoxy Copyright, License and History</A
></H1
><P
> Copyright © 2001-2009 by Privoxy Developers <CODE
CLASS="EMAIL"
>&#60;<A
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
>ijbswa-developers@lists.sourceforge.net</A
>&#62;</CODE
></P
><P
> Some source code is based on code Copyright © 1997 by Anonymous Coders
and Junkbusters, Inc. and licensed under the <I
CLASS="CITETITLE"
>GNU General Public
License</I
>.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN4921"
>12.1. License</A
></H2
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is free software; you can
redistribute it and/or modify it under the terms of the
<I
CLASS="CITETITLE"
>GNU General Public License</I
>, version 2,
as published by the Free Software Foundation.</P
><P
> This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the <A
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
TARGET="_top"
> <I
CLASS="CITETITLE"
>GNU General Public License</I
></A
> for details.</P
><P
> You should have received a copy of the <I
CLASS="CITETITLE"
>GNU GPL</I
>
along with this program; if not, write to the <P
CLASS="ADDRESS"
>&nbsp;Free&nbsp;Software<br>
&nbsp;Foundation,&nbsp;Inc.&nbsp;<SPAN
CLASS="STREET"
>51 Franklin Street, Fifth Floor</SPAN
><br>
&nbsp;<SPAN
CLASS="CITY"
>Boston</SPAN
>,&nbsp;<SPAN
CLASS="STATE"
>MA</SPAN
>&nbsp;<SPAN
CLASS="POSTCODE"
>02110-1301</SPAN
><br>
&nbsp;<SPAN
CLASS="COUNTRY"
>USA</SPAN
>&nbsp;</P
></P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="HISTORY"
>12.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
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AUTHORS"
>12.3. Authors</A
></H2
><P
>Current Privoxy Team:</P
><P
CLASS="LITERALLAYOUT"
>&nbsp;Fabian&nbsp;Keil,&nbsp;lead&nbsp;developer<br>
&nbsp;David&nbsp;Schmidt,&nbsp;developer<br>
<br>
&nbsp;Hal&nbsp;Burgiss<br>
&nbsp;Mark&nbsp;Miller<br>
&nbsp;Gerry&nbsp;Murphy<br>
&nbsp;Lee&nbsp;Rian<br>
&nbsp;Roland&nbsp;Rosenfeld<br>
&nbsp;Jörg&nbsp;Strohmayer</P
><P
> Former Privoxy Team Members:</P
><P
CLASS="LITERALLAYOUT"
>&nbsp;Johny&nbsp;Agotnes<br>
&nbsp;Rodrigo&nbsp;Barbosa<br>
&nbsp;Moritz&nbsp;Barsnick<br>
&nbsp;Ian&nbsp;Cummings<br>
&nbsp;Brian&nbsp;Dessent<br>
&nbsp;Jon&nbsp;Foster<br>
&nbsp;Karsten&nbsp;Hopp<br>
&nbsp;Alexander&nbsp;Lazic<br>
&nbsp;Daniel&nbsp;Leite<br>
&nbsp;Gábor&nbsp;Lipták<br>
&nbsp;Adam&nbsp;Lock<br>
&nbsp;Guy&nbsp;Laroche<br>
&nbsp;Justin&nbsp;McMurtry<br>
&nbsp;Andreas&nbsp;Oesterhelt<br>
&nbsp;Haroon&nbsp;Rafique<br>
&nbsp;Georg&nbsp;Sauthoff<br>
&nbsp;Thomas&nbsp;Steudten<br>
&nbsp;Rodney&nbsp;Stromlund<br>
&nbsp;Sviatoslav&nbsp;Sviridov<br>
&nbsp;Sarantis&nbsp;Paskalis<br>
&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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Introduction</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
<link rel="PREVIOUS" title="Privoxy 3.0.19 User Manual" href="index.html">
<link rel="NEXT" title="Installation" href="installation.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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.19 User Manual</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href="index.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href=
"installation.html" accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1.
Introduction</a></h1>
<p>This documentation is included with the current stable version of
<span class="APPLICATION">Privoxy</span>, v.3.0.19.</p>
<div class="SECT2">
<h2 class="SECT2"><a name="FEATURES" id="FEATURES">1.1.
Features</a></h2>
<p>In addition to the core features of ad blocking and <a href=
"http://en.wikipedia.org/wiki/Browser_cookie" target="_top">cookie</a>
management, <span class="APPLICATION">Privoxy</span> provides many
supplemental features, that give the end-user more control, more
privacy and more freedom:</p>
<ul>
<li>
<p>Supports "Connection: keep-alive". Outgoing connections can be
kept alive independently from the client.</p>
</li>
<li>
<p>Supports IPv6, provided the operating system does so too, and
the configure script detects it.</p>
</li>
<li>
<p>Supports tagging which allows to change the behaviour based on
client and server headers.</p>
</li>
<li>
<p>Can be run as an "intercepting" proxy, which obviates the need
to configure browsers individually.</p>
</li>
<li>
<p>Sophisticated actions and filters for manipulating both server
and client headers.</p>
</li>
<li>
<p>Can be chained with other proxies.</p>
</li>
<li>
<p>Integrated browser-based configuration and control utility at
<a href="http://config.privoxy.org/" target=
"_top">http://config.privoxy.org/</a> (shortcut: <a href=
"http://p.p/" target="_top">http://p.p/</a>). Browser-based tracing
of rule and filter effects. Remote toggling.</p>
</li>
<li>
<p>Web page filtering (text replacements, removes banners based on
size, invisible <span class="QUOTE">"web-bugs"</span> and HTML
annoyances, etc.)</p>
</li>
<li>
<p>Modularized configuration that allows for standard settings and
user settings to reside in separate files, so that installing
updated actions files won't overwrite individual user settings.</p>
</li>
<li>
<p>Support for Perl Compatible Regular Expressions in the
configuration files, and a more sophisticated and flexible
configuration syntax.</p>
</li>
<li>
<p>GIF de-animation.</p>
</li>
<li>
<p>Bypass many click-tracking scripts (avoids script
redirection).</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>Most features are controllable on a per-site or per-location
basis.</p>
</li>
<li>
<p>Many smaller new features added, limitations and bugs
removed.</p>
</li>
</ul>
</div>
</div>
<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="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.19 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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Introduction</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 3.0.12 User Manual"
HREF="index.html"><LINK
REL="NEXT"
TITLE="Installation"
HREF="installation.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="index.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="installation.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="INTRODUCTION"
>1. Introduction</A
></H1
><P
> This documentation is included with the current stable version of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, v.3.0.12.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="FEATURES"
>1.1. Features</A
></H2
><P
> In addition to the core
features of ad blocking and
<A
HREF="http://en.wikipedia.org/wiki/Browser_cookie"
TARGET="_top"
>cookie</A
> management,
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> provides many supplemental
features,
that give the end-user more control, more privacy and more freedom:</P
><P
> <P
></P
><UL
><LI
><P
> Can keep outgoing connections alive and reuse them later on.
</P
></LI
><LI
><P
> Supports tagging which allows to change the behaviour
based on client and server headers.
</P
></LI
><LI
><P
> Can be run as an "intercepting" proxy, which obviates the need to
configure browsers individually.
</P
></LI
><LI
><P
> Sophisticated actions and filters for manipulating both server and client
headers.
</P
></LI
><LI
><P
> Can be chained with other proxies.
</P
></LI
><LI
><P
> Integrated browser based configuration and control utility at <A
HREF="http://config.privoxy.org/"
TARGET="_top"
>http://config.privoxy.org/</A
>
(shortcut: <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
>). Browser-based
tracing of rule and filter effects. Remote toggling.
</P
></LI
><LI
><P
> Web page filtering (text replacements, removes banners based on size,
invisible <SPAN
CLASS="QUOTE"
>"web-bugs"</SPAN
>, JavaScript and HTML annoyances,
pop-up windows, etc.)
</P
></LI
><LI
><P
> Modularized configuration that allows for standard settings and
user settings to reside in separate files, so that installing updated
actions files won't overwrite individual user settings.
</P
></LI
><LI
><P
> Support for Perl Compatible Regular Expressions in the configuration files, and
a more sophisticated and flexible configuration syntax.
</P
></LI
><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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>See Also</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="Privoxy 3.0.19 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=us-ascii">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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.19 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 class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">13. See Also</a></h1>
<p>Other references and sites of interest to <span class=
"APPLICATION">Privoxy</span> users:</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>
<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>
<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>
<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>
<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>
<table border="0">
<tbody>
<tr>
<td><a href=
"https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288"
target=
"_top">https://sourceforge.net/tracker/?group_id=11118&amp;atid=460288</a>,
to submit <span class="QUOTE">"misses"</span> and other
configuration related suggestions to the developers.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.junkbusters.com/ht/en/cookies.html" target=
"_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an
explanation how cookies are used to track web users.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.junkbusters.com/ijb.html" target=
"_top">http://www.junkbusters.com/ijb.html</a>, the original
Internet Junkbuster.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.squid-cache.org/" target=
"_top">http://www.squid-cache.org/</a>, a popular caching proxy,
which is often used together with <span class=
"APPLICATION">Privoxy</span>.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/"
target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>,
<span class="APPLICATION">Polipo</span> is a caching proxy with
advanced features like pipelining, multiplexing and caching of
partial instances. In many setups it can be used as <span class=
"APPLICATION">Squid</span> replacement.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a href="https://www.torproject.org/" target=
"_top">https://www.torproject.org/</a>, <span class=
"APPLICATION">Tor</span> can help anonymize web browsing, web
publishing, instant messaging, IRC, SSH, and other
applications.</td>
</tr>
</tbody>
</table>
</div>
<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="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>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""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
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.junkbusters.com/ht/en/cookies.html"
TARGET="_top"
>http://www.junkbusters.com/ht/en/cookies.html</A
>,
an explanation how cookies are used to track web users.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.junkbusters.com/ijb.html"
TARGET="_top"
>http://www.junkbusters.com/ijb.html</A
>,
the original Internet Junkbuster.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.squid-cache.org/"
TARGET="_top"
>http://www.squid-cache.org/</A
>, a popular
caching proxy, which is often used together with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="http://www.pps.jussieu.fr/~jch/software/polipo/"
TARGET="_top"
>http://www.pps.jussieu.fr/~jch/software/polipo/</A
>,
<SPAN
CLASS="APPLICATION"
>Polipo</SPAN
> is a caching proxy with advanced features
like pipelining, multiplexing and caching of partial instances. In many setups
it can be used as <SPAN
CLASS="APPLICATION"
>Squid</SPAN
> replacement.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
> <A
HREF="https://www.torproject.org/"
TARGET="_top"
>https://www.torproject.org/</A
>,
<SPAN
CLASS="APPLICATION"
>Tor</SPAN
> can help anonymize web browsing,
web publishing, instant messaging, IRC, SSH, and other applications.
</TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="copyright.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="appendix.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Privoxy Copyright, License and History</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&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"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<title>Privoxy's Template Files</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
<link rel="PREVIOUS" title="Filter Files" href="filter-file.html">
<link rel="NEXT" title=
"Contacting the Developers, Bug Reporting and Feature Requests" href=
"contact.html">
<link rel="STYLESHEET" type="text/css" href="../p_doc.css">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rel="STYLESHEET" type="text/css" href="p_doc.css">
<style type="text/css">
body {
background-color: #EEEEEE;
color: #000000;
}
:link { color: #0000FF }
:visited { color: #840084 }
:active { color: #0000FF }
table.c3 {background-color: #E0E0E0}
span.c2 {font-style: italic}
hr.c1 {text-align: left}
</style>
</head>
<body class="SECT1">
<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.19 User Manual</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href=
"filter-file.html" accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom"></td>
<td width="10%" align="right" valign="bottom"><a href="contact.html"
accesskey="N">Next</a></td>
</tr>
</table>
<hr class="c1" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="TEMPLATES" id="TEMPLATES">10. Privoxy's
Template Files</a></h1>
<p>All <span class="APPLICATION">Privoxy</span> built-in pages, i.e.
error pages such as the <a href="http://show-the-404-error.page" target=
"_top"><span class="QUOTE">"404 - No Such Domain"</span> error page</a>,
the <a href="http://ads.bannerserver.example.com/nasty-ads/sponsor.html"
target="_top"><span class="QUOTE">"BLOCKED"</span> page</a> and all pages
of its <a href="http://config.privoxy.org/" target="_top">web-based user
interface</a>, are generated from <span class=
"emphasis EMPHASIS c2">templates</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 EMPHASIS c2">Not recommended for the casual
user</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>
<table class="c3" border="0" width="100%">
<tr>
<td>
<pre class="SCREEN">
&lt;!-- @if-unstable-start --&gt;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Privoxy's Template Files</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="Filter Files"
HREF="filter-file.html"><LINK
REL="NEXT"
TITLE="Contacting the Developers, Bug Reporting and Feature
Requests"
HREF="contact.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="filter-file.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="contact.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TEMPLATES"
>10. Privoxy's Template Files</A
></H1
><P
> All <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> built-in pages, i.e. error pages such as the
<A
HREF="http://show-the-404-error.page"
TARGET="_top"
><SPAN
CLASS="QUOTE"
>"404 - No Such Domain"</SPAN
>
error page</A
>, the <A
HREF="http://ads.bannerserver.example.com/nasty-ads/sponsor.html"
TARGET="_top"
><SPAN
CLASS="QUOTE"
>"BLOCKED"</SPAN
>
page</A
>
and all pages of its <A
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 ...
&lt;!-- if-unstable-end@ --&gt;
</pre>
</td>
</tr>
</table>
<p>If the "unstable" symbol is set, everything in between and including
<tt class="LITERAL">@if-unstable-start</tt> and <tt class=
"LITERAL">if-unstable-end@</tt> will disappear, leaving nothing but an
empty comment:</p>
<table class="c3" border="0" width="100%">
<tr>
<td>
<pre class="SCREEN">
&lt;!-- --&gt;
</pre>
</td>
</tr>
</table>
<p>There's also an if-then-else construct and an <tt class=
"LITERAL">#include</tt> mechanism, but you'll sure find out if you are
inclined to edit the templates ;-)</p>
<p>All templates refer to a style located at <a href=
"http://config.privoxy.org/send-stylesheet" target="_top"><tt class=
"LITERAL">http://config.privoxy.org/send-stylesheet</tt></a>. This is, of
course, locally served by <span class="APPLICATION">Privoxy</span> and
the source for it can be found and edited in the <tt class=
"FILENAME">cgi-style.css</tt> template.</p>
</div>
<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="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>
&#60;!-- if-unstable-end@ --&#62;</PRE
></TD
></TR
></TABLE
></P
><P
> If the "unstable" symbol is set, everything in between and including
<TT
CLASS="LITERAL"
>@if-unstable-start</TT
> and <TT
CLASS="LITERAL"
>if-unstable-end@</TT
>
will disappear, leaving nothing but an empty comment:</P
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>&#60;!-- --&#62;</PRE
></TD
></TR
></TABLE
></P
><P
> There's also an if-then-else construct and an <TT
CLASS="LITERAL"
>#include</TT
>
mechanism, but you'll sure find out if you are inclined to edit the
templates ;-)</P
><P
> All templates refer to a style located at
<A
HREF="http://config.privoxy.org/send-stylesheet"
TARGET="_top"
><TT
CLASS="LITERAL"
>http://config.privoxy.org/send-stylesheet</TT
></A
>.
This is, of course, locally served by <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
and the source for it can be found and edited in the
<TT
CLASS="FILENAME"
>cgi-style.css</TT
> template.</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="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 $
@ -6,14 +6,14 @@ const char encode_rcs[] = "$Id: encode.c,v 1.24 2011/11/06 11:51:57 fabiankeil E
* Purpose : Functions to encode and decode URLs, and also to
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -31,8 +31,54 @@ const char encode_rcs[] = "$Id: encode.c,v 1.24 2011/11/06 11:51:57 fabiankeil E
* or write to the Free Software Foundation, Inc., 59
* 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"
@ -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;
/* Maps special characters in a URL to their equivalent % codes. */
static const char const url_code_map[256][4] = {
"", "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09",
static const char * const url_code_map[256] = {
NULL, "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09",
"%0A", "%0B", "%0C", "%0D", "%0E", "%0F", "%10", "%11", "%12", "%13",
"%14", "%15", "%16", "%17", "%18", "%19", "%1A", "%1B", "%1C", "%1D",
"%1E", "%1F", "%20", "%21", "%22", "%23", "%24", "%25", "%26", "%27",
"%28", "%29", "", "%2B", "%2C", "", "", "%2F", "", "",
"", "", "", "", "", "", "", "", "%3A", "%3B",
"%3C", "%3D", "%3E", "%3F", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "%5B", "%5C", "%5D", "%5E", "", "%60", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "%7B", "%7C", "%7D", "%7E", "%7F", "%80", "%81",
"%1E", "%1F", "+", "%21", "%22", "%23", "%24", "%25", "%26", "%27",
"%28", "%29", NULL, "%2B", "%2C", NULL, NULL, "%2F", NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "%3A", "%3B",
"%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,
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,
NULL, NULL, NULL, "%7B", "%7C", "%7D", "%7E", "%7F", "%80", "%81",
"%82", "%83", "%84", "%85", "%86", "%87", "%88", "%89", "%8A", "%8B",
"%8C", "%8D", "%8E", "%8F", "%90", "%91", "%92", "%93", "%94", "%95",
"%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"
};
/* 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] = {
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,
"&lt;",NULL,"&gt;",NULL,NULL, NULL, NULL, NULL, NULL, NULL,
@ -119,7 +165,7 @@ static const char * const html_code_map[256] = {
* Parameters :
* 1 : s = String to encode. Null-terminated.
*
* Returns : Encoded string, newly allocated on the heap.
* Returns : Encoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
* If s is NULL, or on out-of memory, returns NULL.
*
@ -128,7 +174,7 @@ char * html_encode(const char *s)
{
char * buf;
size_t buf_size;
if (s == NULL)
{
return NULL;
@ -178,7 +224,7 @@ char * html_encode(const char *s)
* Parameters :
* 1 : s = String to encode. Null-terminated.
*
* Returns : Encoded string, newly allocated on the heap.
* Returns : Encoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
* If s is NULL, or on out-of memory, returns NULL.
*
@ -186,7 +232,7 @@ char * html_encode(const char *s)
char * html_encode_and_free_original(char *s)
{
char * result;
if (s == NULL)
{
return NULL;
@ -207,13 +253,10 @@ char * html_encode_and_free_original(char *s)
* query string. Replaces special characters with
* the appropriate %xx codes.
*
* XXX: url_query_encode() would be a more fitting
* name.
*
* Parameters :
* 1 : s = String to encode. Null-terminated.
*
* Returns : Encoded string, newly allocated on the heap.
* Returns : Encoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
* If s is NULL, or on out-of memory, returns NULL.
*
@ -238,8 +281,8 @@ char * url_encode(const char *s)
char * p = buf;
while( (c = *s++) != '\0')
{
const char *replace_with = url_code_map[(unsigned char) c];
if (*replace_with != '\0')
const char * replace_with = url_code_map[(unsigned char) c];
if (replace_with != NULL)
{
const size_t bytes_written = (size_t)(p - buf);
assert(bytes_written < buf_size);
@ -278,7 +321,7 @@ static int xdtoi(const int d)
{
return(d - '0');
}
else if ((d >= 'a') && (d <= 'f'))
else if ((d >= 'a') && (d <= 'f'))
{
return(d - 'a' + 10);
}
@ -308,12 +351,12 @@ static int xdtoi(const int d)
*********************************************************************/
int xtoi(const char *s)
{
int d1;
int d1, d2;
d1 = xdtoi(*s);
if(d1 >= 0)
{
int d2 = xdtoi(*(s+1));
d2 = xdtoi(*(s+1));
if(d2 >= 0)
{
return (d1 << 4) + d2;
@ -334,7 +377,7 @@ int xtoi(const char *s)
* Parameters :
* 1 : s = String to decode. Null-terminated.
*
* Returns : Decoded string, newly allocated on the heap.
* Returns : Decoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
*
*********************************************************************/
@ -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:
tab-width: 3

View File

@ -1,6 +1,6 @@
#ifndef 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 $
@ -12,10 +12,10 @@
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -33,8 +33,39 @@
* or write to the Free Software Foundation, Inc., 59
* 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
extern "C" {
@ -45,7 +76,6 @@ extern char * url_encode(const char *s);
extern char * url_decode(const char *str);
extern int xtoi(const 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 */
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 $
@ -6,14 +6,14 @@ const char errlog_rcs[] = "$Id: errlog.c,v 1.112 2011/09/04 11:10:56 fabiankeil
* Purpose : Log errors to a designated destination in an elegant,
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -31,14 +31,418 @@ const char errlog_rcs[] = "$Id: errlog.c,v 1.112 2011/09/04 11:10:56 fabiankeil
* or write to the Free Software Foundation, Inc., 59
* 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 <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include "config.h"
#include "miscutil.h"
@ -121,9 +525,9 @@ static inline void unlock_loginit(void)
#else /* ! MUTEX_LOCKS_AVAILABLE */
/*
* FIXME we need a cross-platform locking mechanism.
* The locking/unlocking functions below should be
* The locking/unlocking functions below should be
* fleshed out for non-pthread implementations.
*/
*/
static inline void lock_logfile() {}
static inline void unlock_logfile() {}
static inline void lock_loginit() {}
@ -134,7 +538,7 @@ static inline void unlock_loginit() {}
*
* Function : fatal_error
*
* Description : Displays a fatal error to standard error (or, on
* Description : Displays a fatal error to standard error (or, on
* a WIN32 GUI, to a dialog box), and exits Privoxy
* with status code 1.
*
@ -154,8 +558,8 @@ static void fatal_error(const char *error_message)
/* Shouldn't happen but ... */
box_message = error_message;
}
MessageBox(g_hwndLogFrame, box_message, "Privoxy Error",
MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND | MB_TOPMOST);
MessageBox(g_hwndLogFrame, box_message, "Privoxy Error",
MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND | MB_TOPMOST);
/* Cleanup - remove taskbar icon etc. */
TermLogWindow();
@ -232,7 +636,7 @@ void init_log_module(void)
* XXX: we should only use the LOG_LEVEL_MINIMUM
* until the first time the configuration file has
* been parsed.
*
*
* Parameters : 1: debug_level = The debug level to set.
*
* Returns : Nothing.
@ -249,7 +653,7 @@ void set_debug_level(int debug_level)
* Function : disable_logging
*
* Description : Disables logging.
*
*
* Parameters : None.
*
* Returns : Nothing.
@ -317,7 +721,7 @@ void init_error_log(const char *prog_name, const char *logfname)
* Currently we reopen it every time the config file
* has been reloaded, but actually we only have to
* 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\'. "
"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);
}
#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;
unlock_logfile();
@ -375,7 +764,7 @@ void init_error_log(const char *prog_name, const char *logfname)
* Description : Returns a number that is different for each thread.
*
* XXX: Should be moved elsewhere (miscutil.c?)
*
*
* Parameters : None
*
* Returns : thread_id
@ -430,7 +819,7 @@ static long get_thread_id(void)
static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
{
size_t length;
time_t now;
time_t now;
struct tm tm_now;
struct timeval tv_now; /* XXX: stupid name */
long msecs;
@ -438,22 +827,23 @@ static inline size_t get_log_timestamp(char *buffer, size_t buffer_size)
gettimeofday(&tv_now, NULL);
msecs = tv_now.tv_usec / 1000;
now = tv_now.tv_sec;
time(&now);
#ifdef HAVE_LOCALTIME_R
tm_now = *localtime_r(&now, &tm_now);
#elif defined(MUTEX_LOCKS_AVAILABLE)
#elif FEATURE_PTHREAD
privoxy_mutex_lock(&localtime_mutex);
tm_now = *localtime(&now);
tm_now = *localtime(&now);
privoxy_mutex_unlock(&localtime_mutex);
#else
tm_now = *localtime(&now);
tm_now = *localtime(&now);
#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)
{
msecs_length = snprintf(buffer+length, buffer_size - length, ".%.3ld", msecs);
msecs_length = snprintf(buffer+length, buffer_size - length, ".%.3ld", msecs);
}
if (msecs_length > 0)
{
@ -488,7 +878,7 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
* the %z field in strftime()
*/
time_t now;
struct tm *tm_now;
struct tm *tm_now;
struct tm gmt;
#ifdef HAVE_LOCALTIME_R
struct tm dummy;
@ -497,10 +887,10 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
size_t length;
int tz_length = 0;
time (&now);
time (&now);
#ifdef HAVE_GMTIME_R
gmt = *gmtime_r(&now, &gmt);
#elif defined(MUTEX_LOCKS_AVAILABLE)
#elif FEATURE_PTHREAD
privoxy_mutex_lock(&gmtime_mutex);
gmt = *gmtime(&now);
privoxy_mutex_unlock(&gmtime_mutex);
@ -509,16 +899,16 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
#endif
#ifdef HAVE_LOCALTIME_R
tm_now = localtime_r(&now, &dummy);
#elif defined(MUTEX_LOCKS_AVAILABLE)
#elif FEATURE_PTHREAD
privoxy_mutex_lock(&localtime_mutex);
tm_now = localtime(&now);
tm_now = localtime(&now);
privoxy_mutex_unlock(&localtime_mutex);
#else
tm_now = localtime(&now);
tm_now = localtime(&now);
#endif
days = tm_now->tm_yday - gmt.tm_yday;
hrs = ((days < -1 ? 24 : 1 < days ? -24 : days * 24) + tm_now->tm_hour - gmt.tm_hour);
mins = hrs * 60 + tm_now->tm_min - gmt.tm_min;
days = tm_now->tm_yday - gmt.tm_yday;
hrs = ((days < -1 ? 24 : 1 < days ? -24 : days * 24) + tm_now->tm_hour - gmt.tm_hour);
mins = hrs * 60 + tm_now->tm_min - gmt.tm_min;
length = strftime(buffer, buffer_size, "%d/%b/%Y:%H:%M:%S ", tm_now);
@ -546,7 +936,7 @@ static inline size_t get_clf_timestamp(char *buffer, size_t buffer_size)
*
* Description : Translates a numerical loglevel into a string.
*
* Parameters :
* Parameters :
* 1 : loglevel = LOG_LEVEL_FOO
*
* Returns : Log level string.
@ -572,12 +962,9 @@ static inline const char *get_log_level_string(int loglevel)
case LOG_LEVEL_CONNECT:
log_level_string = "Connect";
break;
case LOG_LEVEL_WRITING:
case LOG_LEVEL_LOG:
log_level_string = "Writing";
break;
case LOG_LEVEL_RECEIVED:
log_level_string = "Received";
break;
case LOG_LEVEL_HEADER:
log_level_string = "Header";
break;
@ -592,9 +979,11 @@ static inline const char *get_log_level_string(int loglevel)
log_level_string = "Force";
break;
#endif /* def FEATURE_FORCE_LOAD */
#ifdef FEATURE_FAST_REDIRECTS
case LOG_LEVEL_REDIRECTS:
log_level_string = "Redirect";
break;
#endif /* def FEATURE_FAST_REDIRECTS */
case LOG_LEVEL_DEANIMATE:
log_level_string = "Gif-Deanimate";
break;
@ -682,7 +1071,7 @@ void log_error(int loglevel, const char *fmt, ...)
/* protect the whole function because of the static buffer (outbuf) */
lock_logfile();
if (NULL == outbuf_save)
if (NULL == outbuf_save)
{
outbuf_save = (char*)zalloc(log_buffer_size + 1); /* +1 for paranoia */
if (NULL == outbuf_save)
@ -767,7 +1156,7 @@ void log_error(int loglevel, const char *fmt, ...)
{
unsigned long long lluval = va_arg(ap, unsigned long long);
snprintf(tempbuf, sizeof(tempbuf), "%llu", lluval);
src++;
ch = *src++;
}
else
{
@ -792,36 +1181,45 @@ void log_error(int loglevel, const char *fmt, ...)
break;
case 'N':
/*
* Non-standard: Print a counted unterminated string,
* replacing unprintable bytes with their hex value.
* Non-standard: Print a counted unterminated string.
* Takes 2 parameters: int length, const char * string.
*/
ival = va_arg(ap, int);
assert(ival >= 0);
sval = va_arg(ap, char *);
assert(sval != NULL);
while ((ival-- > 0) && (length < log_buffer_size - 6))
if (sval == NULL)
{
if (isprint((int)*sval) && (*sval != '\\'))
format_string = "[null]";
}
else if (ival <= 0)
{
if (0 == ival)
{
outbuf[length++] = *sval;
outbuf[length] = '\0';
/* That's ok (but stupid) */
tempbuf[0] = '\0';
}
else
{
int ret = snprintf(outbuf + length,
log_buffer_size - length - 2, "\\x%.2x", (unsigned char)*sval);
assert(ret == 4);
length += 4;
/*
* That's not ok (and even more stupid)
*/
assert(ival >= 0);
format_string = "[counted string lenght < 0]";
}
sval++;
}
/*
* XXX: In case of printable characters at the end of
* the %N string, we're not using the whole buffer.
*/
format_string = (length < log_buffer_size - 6) ? "" : "[too long]";
else if ((size_t)ival >= sizeof(tempbuf))
{
/*
* String is too long, copy as much as possible.
* 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;
case 'E':
/* Non-standard: Print error code from errno */
@ -840,7 +1238,7 @@ void log_error(int loglevel, const char *fmt, ...)
format_string = strerror(ival);
}
#else /* ifndef _WIN32 */
ival = errno;
ival = errno;
#ifdef HAVE_STRERROR
format_string = strerror(ival);
#else /* ifndef HAVE_STRERROR */
@ -860,14 +1258,14 @@ void log_error(int loglevel, const char *fmt, ...)
snprintf(tempbuf, sizeof(tempbuf), "Bad format string: \"%s\"", fmt);
loglevel = LOG_LEVEL_FATAL;
break;
}
} /* switch( p ) */
assert(length < log_buffer_size);
length += strlcpy(outbuf + length, format_string, log_buffer_size - length);
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 += strlcpy(outbuf + length, warning, log_buffer_size - length);
@ -875,7 +1273,7 @@ void log_error(int loglevel, const char *fmt, ...)
break;
}
}
} /* for( p ... ) */
/* done with var. args */
va_end(ap);
@ -945,14 +1343,14 @@ void log_error(int loglevel, const char *fmt, ...)
* visible to all files that include errlog.h.
*
* Parameters :
* 1 : jb_error = a valid jb_err code
* 1 : error = a valid jb_err code
*
* 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:
return "Success, no error";

View File

@ -1,6 +1,6 @@
#ifndef 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 $
@ -12,10 +12,10 @@
* Privoxy team. http://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -33,8 +33,134 @@
* or write to the Free Software Foundation, Inc., 59
* 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
extern "C" {
@ -47,7 +173,7 @@ extern "C" {
#define LOG_LEVEL_CONNECT 0x0002
#define LOG_LEVEL_IO 0x0004
#define LOG_LEVEL_HEADER 0x0008
#define LOG_LEVEL_WRITING 0x0010
#define LOG_LEVEL_LOG 0x0010
#ifdef FEATURE_FORCE_LOAD
#define LOG_LEVEL_FORCE 0x0020
#endif /* def FEATURE_FORCE_LOAD */
@ -57,7 +183,6 @@ extern "C" {
#define LOG_LEVEL_CLF 0x0200 /* Common Log File format */
#define LOG_LEVEL_CRUNCH 0x0400
#define LOG_LEVEL_CGI 0x0800 /* CGI / templates */
#define LOG_LEVEL_RECEIVED 0x8000
/* Following are always on: */
#define LOG_LEVEL_INFO 0x1000
@ -70,7 +195,7 @@ extern void disable_logging(void);
extern void init_log_module(void);
extern void show_version(const char *prog_name);
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 */
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
#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 $
@ -12,14 +12,14 @@
* `ij_untrusted_url', `intercept_url', `re_process_buffer',
* `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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -37,8 +37,244 @@
* or write to the Free Software Foundation, Inc., 59
* 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"
@ -89,8 +325,8 @@ extern int connect_port_is_forbidden(const struct client_state *csp);
*/
extern void get_url_actions(struct client_state *csp,
struct http_request *http);
extern void apply_url_actions(struct current_action_spec *action,
struct http_request *http,
extern void apply_url_actions(struct current_action_spec *action,
struct http_request *http,
struct url_actions *b);
/*
* Determining parent proxies
@ -101,23 +337,33 @@ extern const struct forward_spec *forward_url(struct client_state *csp,
/*
* 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 *rewrite_url(char *old_url, const char *pcrs_command);
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 int content_requires_filtering(struct client_state *csp);
extern int content_filters_enabled(const struct current_action_spec *action);
extern int filters_available(const struct client_state *csp);
/*
* Handling Max-Forwards:
*/
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
*/
extern const char filters_rcs[];

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 $
@ -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
* 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/
*
* 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
* 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"
@ -68,7 +277,7 @@ const char gateway_rcs[] = "$Id: gateway.c,v 1.83 2011/12/24 15:28:45 fabiankeil
#include "miscutil.h"
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
#ifdef HAVE_POLL
#ifdef __GLIBC__
#ifdef __GLIBC__
#include <sys/poll.h>
#else
#include <poll.h>
@ -88,24 +297,21 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
int target_port,
struct client_state *csp);
enum {
SOCKS4_REQUEST_GRANTED = 90,
SOCKS4_REQUEST_REJECT = 91,
SOCKS4_REQUEST_IDENT_FAILED = 92,
SOCKS4_REQUEST_IDENT_CONFLICT = 93
};
enum {
SOCKS5_REQUEST_GRANTED = 0,
SOCKS5_REQUEST_FAILED = 1,
SOCKS5_REQUEST_DENIED = 2,
SOCKS5_REQUEST_NETWORK_UNREACHABLE = 3,
SOCKS5_REQUEST_HOST_UNREACHABLE = 4,
SOCKS5_REQUEST_CONNECTION_REFUSED = 5,
SOCKS5_REQUEST_TTL_EXPIRED = 6,
SOCKS5_REQUEST_PROTOCOL_ERROR = 7,
SOCKS5_REQUEST_BAD_ADDRESS_TYPE = 8
};
#define SOCKS_REQUEST_GRANTED 90
#define SOCKS_REQUEST_REJECT 91
#define SOCKS_REQUEST_IDENT_FAILED 92
#define SOCKS_REQUEST_IDENT_CONFLICT 93
#define SOCKS5_REQUEST_GRANTED 0
#define SOCKS5_REQUEST_FAILED 1
#define SOCKS5_REQUEST_DENIED 2
#define SOCKS5_REQUEST_NETWORK_UNREACHABLE 3
#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 */
struct socks_op {
@ -128,13 +334,32 @@ struct socks_reply {
static const char socks_userid[] = "anonymous";
#ifdef FEATURE_CONNECTION_SHARING
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
#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 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
*
* Description : Remembers a server connection for reuse later on.
* Description : Remembers a connection for reuse later on.
*
* 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
*
*********************************************************************/
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;
int free_slot_found = FALSE;
assert(NULL != connection);
assert(connection->sfd != JB_INVALID_SOCKET);
assert(sfd != JB_INVALID_SOCKET);
if (mark_connection_unused(connection))
if (mark_connection_unused(sfd))
{
return;
}
@ -203,7 +430,7 @@ void remember_connection(const struct reusable_connection *connection)
assert(reusable_connection[slot].in_use == 0);
log_error(LOG_LEVEL_CONNECT,
"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;
break;
}
@ -213,36 +440,34 @@ void remember_connection(const struct reusable_connection *connection)
{
log_error(LOG_LEVEL_CONNECT,
"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);
close_socket(connection->sfd);
close_socket(sfd);
return;
}
assert(NULL != connection->host);
reusable_connection[slot].host = strdup(connection->host);
assert(NULL != http->host);
reusable_connection[slot].host = strdup(http->host);
if (NULL == reusable_connection[slot].host)
{
log_error(LOG_LEVEL_FATAL, "Out of memory saving socket.");
}
reusable_connection[slot].sfd = connection->sfd;
reusable_connection[slot].port = connection->port;
reusable_connection[slot].sfd = sfd;
reusable_connection[slot].port = http->port;
reusable_connection[slot].in_use = 0;
reusable_connection[slot].timestamp = connection->timestamp;
reusable_connection->request_sent = connection->request_sent;
reusable_connection->response_received = connection->response_received;
reusable_connection[slot].keep_alive_timeout = connection->keep_alive_timeout;
reusable_connection[slot].timestamp = time(NULL);
assert(NULL != fwd);
assert(reusable_connection[slot].gateway_host == NULL);
assert(reusable_connection[slot].gateway_port == 0);
assert(reusable_connection[slot].forwarder_type == SOCKS_NONE);
assert(reusable_connection[slot].forward_host == NULL);
assert(reusable_connection[slot].forward_port == 0);
reusable_connection[slot].forwarder_type = connection->forwarder_type;
if (NULL != connection->gateway_host)
reusable_connection[slot].forwarder_type = fwd->type;
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)
{
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_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)
{
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_port = connection->forward_port;
reusable_connection[slot].forward_port = fwd->forward_port;
privoxy_mutex_unlock(&connection_reuse_mutex);
}
#endif /* def FEATURE_CONNECTION_SHARING */
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
/*********************************************************************
*
* Function : mark_connection_closed
*
* Description : Marks a reused connection closed.
* Must be called with connection_reuse_mutex locked.
*
* Parameters :
* 1 : closed_connection = The connection to mark as closed.
@ -286,26 +510,21 @@ void remember_connection(const struct reusable_connection *connection)
* 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->sfd = JB_INVALID_SOCKET;
freez(closed_connection->host);
closed_connection->port = 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;
freez(closed_connection->gateway_host);
closed_connection->gateway_port = 0;
freez(closed_connection->forward_host);
closed_connection->forward_port = 0;
}
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
#ifdef FEATURE_CONNECTION_SHARING
/*********************************************************************
*
* Function : forget_connection
@ -338,17 +557,19 @@ void forget_connection(jb_socket sfd)
sfd, reusable_connection[slot].host,
reusable_connection[slot].port, 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);
}
#endif /* def FEATURE_CONNECTION_SHARING */
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
/*********************************************************************
*
* Function : connection_destination_matches
@ -365,9 +586,9 @@ void forget_connection(jb_socket sfd)
* Returns : TRUE for yes, FALSE otherwise.
*
*********************************************************************/
int connection_destination_matches(const struct reusable_connection *connection,
const struct http_request *http,
const struct forward_spec *fwd)
static int connection_destination_matches(const struct reusable_connection *connection,
const struct http_request *http,
const struct forward_spec *fwd)
{
if ((connection->forwarder_type != fwd->type)
|| (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))
&& (connection->gateway_host != fwd->gateway_host))
{
log_error(LOG_LEVEL_CONNECT,
"Gateway mismatch. Previous gateway: %s. Current gateway: %s",
connection->gateway_host, fwd->gateway_host);
log_error(LOG_LEVEL_CONNECT, "Gateway mismatch.");
return FALSE;
}
@ -393,19 +612,15 @@ int connection_destination_matches(const struct reusable_connection *connection,
&& strcmpic(connection->forward_host, fwd->forward_host))
&& (connection->forward_host != fwd->forward_host))
{
log_error(LOG_LEVEL_CONNECT,
"Forwarding proxy mismatch. Previous proxy: %s. Current proxy: %s",
connection->forward_host, fwd->forward_host);
log_error(LOG_LEVEL_CONNECT, "Forwarding proxy mismatch.");
return FALSE;
}
return (!strcmpic(connection->host, http->host));
}
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
#ifdef FEATURE_CONNECTION_SHARING
/*********************************************************************
*
* Function : close_unusable_connections
@ -431,23 +646,19 @@ int close_unusable_connections(void)
&& (JB_INVALID_SOCKET != reusable_connection[slot].sfd))
{
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,
"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].port, slot,
reusable_connection[slot].sfd,
reusable_connection[slot].keep_alive_timeout,
latency);
reusable_connection[slot].sfd, keep_alive_timeout);
close_socket(reusable_connection[slot].sfd);
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,
"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
@ -506,13 +777,8 @@ static jb_socket get_reusable_connection(const struct http_request *http,
reusable_connection[slot].in_use = TRUE;
sfd = reusable_connection[slot].sfd;
log_error(LOG_LEVEL_CONNECT,
"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, time(NULL) - reusable_connection[slot].timestamp,
reusable_connection[slot].keep_alive_timeout,
(int)(reusable_connection[slot].response_received -
reusable_connection[slot].request_sent));
"Found reusable socket %d for %s:%d in slot %d.",
sfd, reusable_connection[slot].host, reusable_connection[slot].port, slot);
break;
}
}
@ -532,33 +798,33 @@ static jb_socket get_reusable_connection(const struct http_request *http,
* Description : Gives a remembered connection free for reuse.
*
* 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.
* 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;
int socket_found = FALSE;
assert(connection->sfd != JB_INVALID_SOCKET);
assert(sfd != JB_INVALID_SOCKET);
privoxy_mutex_lock(&connection_reuse_mutex);
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);
socket_found = TRUE;
log_error(LOG_LEVEL_CONNECT,
"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].in_use = 0;
reusable_connection[slot].timestamp = connection->timestamp;
reusable_connection[slot].timestamp = time(NULL);
break;
}
}
@ -583,11 +849,11 @@ static int mark_connection_unused(const struct reusable_connection *connection)
* Returns : void
*
*********************************************************************/
void set_keep_alive_timeout(unsigned int timeout)
void set_keep_alive_timeout(int 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;
jb_socket sfd = JB_INVALID_SOCKET;
#ifdef FEATURE_CONNECTION_SHARING
if ((csp->config->feature_flags & RUNTIME_FEATURE_CONNECTION_SHARING)
&& !(csp->flags & CSP_FLAG_SERVER_SOCKET_TAINTED))
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
sfd = get_reusable_connection(http, fwd);
if (JB_INVALID_SOCKET != sfd)
{
sfd = get_reusable_connection(http, fwd);
if (JB_INVALID_SOCKET != sfd)
{
return 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. */
if (fwd->forward_host)
@ -655,7 +917,7 @@ jb_socket forwarded_connect(const struct forward_spec * fwd,
default:
/* Should never get here */
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)
@ -698,7 +960,7 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
int target_port,
struct client_state *csp)
{
unsigned long web_server_addr;
unsigned int web_server_addr;
char buf[BUFFER_SIZE];
struct socks_op *c = (struct socks_op *)buf;
struct socks_reply *s = (struct socks_reply *)buf;
@ -724,7 +986,7 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
if (err)
{
log_error(LOG_LEVEL_CONNECT, "socks4_connect: %s", errstr);
csp->error_message = strdup(errstr);
csp->error_message = strdup(errstr);
errno = EINVAL;
return(JB_INVALID_SOCKET);
}
@ -805,8 +1067,12 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
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))
{
@ -815,20 +1081,6 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
err = 1;
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))
{
errstr = "SOCKS4 negotiation read failed.";
@ -839,24 +1091,24 @@ static jb_socket socks4_connect(const struct forward_spec * fwd,
if (err)
{
csp->error_message = strdup(errstr);
csp->error_message = strdup(errstr);
return(JB_INVALID_SOCKET);
}
switch (s->cd)
{
case SOCKS4_REQUEST_GRANTED:
case SOCKS_REQUEST_GRANTED:
return(sfd);
case SOCKS4_REQUEST_REJECT:
case SOCKS_REQUEST_REJECT:
errstr = "SOCKS request rejected or failed.";
errno = EINVAL;
break;
case SOCKS4_REQUEST_IDENT_FAILED:
case SOCKS_REQUEST_IDENT_FAILED:
errstr = "SOCKS request rejected because "
"SOCKS server cannot connect to identd on the client.";
errno = EACCES;
break;
case SOCKS4_REQUEST_IDENT_CONFLICT:
case SOCKS_REQUEST_IDENT_CONFLICT:
errstr = "SOCKS request rejected because "
"the client program and identd report "
"different user-ids.";
@ -943,7 +1195,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
{
int err = 0;
char cbuf[300];
char sbuf[10];
char sbuf[30];
size_t client_pos = 0;
int server_size = 0;
size_t hostlen = 0;
@ -999,8 +1251,6 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
{
errstr = "socks5 server unreachable";
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);
return(JB_INVALID_SOCKET);
}
@ -1019,20 +1269,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
return(JB_INVALID_SOCKET);
}
if (!data_is_available(sfd, csp->config->socket_timeout))
{
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)
if (read_socket(sfd, sbuf, sizeof(sbuf)) != 2)
{
errstr = "SOCKS5 negotiation read failed";
err = 1;
@ -1081,7 +1318,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd,
if (write_socket(sfd, cbuf, client_pos))
{
errstr = "SOCKS5 negotiation write failed";
errstr = "SOCKS5 negotiation read failed";
csp->error_message = strdup(errstr);
log_error(LOG_LEVEL_CONNECT, "%s", errstr);
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));
if (server_size != sizeof(sbuf))
if (server_size < 3)
{
errstr = "SOCKS5 negotiation read failed";
err = 1;
}
else
else if (server_size > 20)
{
if (sbuf[0] != '\x05')
{
errstr = "SOCKS5 negotiation protocol version error";
}
else if (sbuf[2] != '\x00')
{
errstr = "SOCKS5 negotiation protocol error";
}
else if (sbuf[1] != SOCKS5_REQUEST_GRANTED)
{
errstr = translate_socks5_error(sbuf[1]);
}
else
/* This is somewhat unexpected but doesn't realy matter. */
log_error(LOG_LEVEL_CONNECT, "socks5_connect: read %d bytes "
"from socks server. Would have accepted up to %d.",
server_size, sizeof(sbuf));
}
if (!err && (sbuf[0] != '\x05'))
{
errstr = "SOCKS5 negotiation protocol version error";
err = 1;
}
if (!err && (sbuf[2] != '\x00'))
{
errstr = "SOCKS5 negotiation protocol error";
err = 1;
}
if (!err)
{
if (sbuf[1] == SOCKS5_REQUEST_GRANTED)
{
return(sfd);
}
errstr = translate_socks5_error(sbuf[1]);
err = 1;
}
assert(errstr != NULL);
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);
errno = EINVAL;

View File

@ -1,6 +1,6 @@
#ifndef 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 $
@ -9,14 +9,14 @@
* using a "gateway" (i.e. HTTP proxy and/or SOCKS4
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -34,8 +34,74 @@
* or write to the Free Software Foundation, Inc., 59
* 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
extern "C" {
@ -45,9 +111,10 @@ struct forward_spec;
struct http_request;
struct client_state;
extern jb_socket forwarded_connect(const struct forward_spec * fwd,
struct http_request *http,
extern jb_socket forwarded_connect(const struct forward_spec * fwd,
struct http_request *http,
struct client_state *csp);
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
/*
* 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
#ifdef FEATURE_CONNECTION_SHARING
extern void set_keep_alive_timeout(unsigned int timeout);
extern void set_keep_alive_timeout(int timeout);
extern void initialize_reusable_connections(void);
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);
#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,
const struct http_request *http,
const struct forward_spec *fwd);
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
/*
* Solaris fix
*/
#ifndef INADDR_NONE
#define INADDR_NONE -1
#endif
/*
* 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
#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 $
@ -10,14 +10,14 @@
* OS-independent. Contains #ifdefs to make this work
* 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/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
* by and Copyright (C) 1997 Anonymous Coders and
* Junkbusters Corporation. http://www.junkbusters.com
*
* This program is free software; you can redistribute it
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
@ -35,8 +35,78 @@
* or write to the Free Software Foundation, Inc., 59
* 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"
@ -57,26 +127,15 @@ extern int data_is_available(jb_socket fd, int seconds_to_wait);
extern void close_socket(jb_socket fd);
extern int bind_port(const char *hostnam, int portnum, jb_socket *pfd);
extern int accept_connection(struct client_state * csp, jb_socket fds[]);
extern void get_host_information(jb_socket afd, char **ip_address, char **port, char **hostname);
extern int accept_connection(struct client_state * csp, jb_socket fd);
extern void get_host_information(jb_socket afd, char **ip_address, char **hostname);
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 */
extern const char jbsockets_rcs[];
extern const char jbsockets_h_rcs[];
/*
* Solaris workaround
* XXX: still necessary?
*/
#ifndef INADDR_NONE
#define INADDR_NONE -1
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif

2640
external/privoxy/jcc.c vendored

File diff suppressed because it is too large Load Diff

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