privoxy.git
9 years agoFix comment typos in free_map()'s description
Fabian Keil [Tue, 21 Oct 2014 12:01:59 +0000 (12:01 +0000)]
Fix comment typos in free_map()'s description

9 years agoRemove #138. Coverity scan results are analyzed
Fabian Keil [Sat, 18 Oct 2014 11:32:07 +0000 (11:32 +0000)]
Remove #138. Coverity scan results are analyzed

9 years agoLet new_map() exit if the new map can't be allocated
Fabian Keil [Sat, 18 Oct 2014 11:31:52 +0000 (11:31 +0000)]
Let new_map() exit if the new map can't be allocated

This is not expected to happen in the real world
and it makes life easier for the callers.

9 years agoAdd missing return check in dispatch_known_cgi()
Fabian Keil [Sat, 18 Oct 2014 11:31:25 +0000 (11:31 +0000)]
Add missing return check in dispatch_known_cgi()

CID 66354.

9 years agoreceive_client_request(): Don't ignore list_append_list_unique()'s return value
Fabian Keil [Sat, 18 Oct 2014 11:31:12 +0000 (11:31 +0000)]
receive_client_request(): Don't ignore list_append_list_unique()'s return value

CID 66360.

9 years agoFix error handling in server_content_type()
Fabian Keil [Sat, 18 Oct 2014 11:30:56 +0000 (11:30 +0000)]
Fix error handling in server_content_type()

CID 66369.

9 years agojb_err_to_string(): Only check for internal errors once
Fabian Keil [Sat, 18 Oct 2014 11:30:40 +0000 (11:30 +0000)]
jb_err_to_string(): Only check for internal errors once

Silences a Coverity complaint about unreachable code.

CID 66387.

9 years agoThe filter file array can't be NULL so don't bother checking
Fabian Keil [Sat, 18 Oct 2014 11:30:24 +0000 (11:30 +0000)]
The filter file array can't be NULL so don't bother checking

The intention was checking whether or not filters are available,
but that's a premature optimization for an unlikely scenario,
so the bogus checks can be dropped without replacement.

CID 66389, CID 66385, CID 66375.

9 years agoserver_content_encoding(): Check for enabled content filters properly
Fabian Keil [Sat, 18 Oct 2014 11:30:04 +0000 (11:30 +0000)]
server_content_encoding(): Check for enabled content filters properly

Previously external filters and gif deanimation weren't considered.

CID 66374.

9 years agoFix error handling in edit_write_file()
Fabian Keil [Sat, 18 Oct 2014 11:29:48 +0000 (11:29 +0000)]
Fix error handling in edit_write_file()

CID 66359.

9 years agoFix error handling in edit_read_file()
Fabian Keil [Sat, 18 Oct 2014 11:29:22 +0000 (11:29 +0000)]
Fix error handling in edit_read_file()

CID 66359.

9 years agoedit_read_file(): Remove bogus NULL check and use strdup_or_die() instead
Fabian Keil [Sat, 18 Oct 2014 11:29:06 +0000 (11:29 +0000)]
edit_read_file(): Remove bogus NULL check and use strdup_or_die() instead

CID 66372.

9 years agoFix memory leak in cgi_show_file()
Fabian Keil [Sat, 18 Oct 2014 11:28:49 +0000 (11:28 +0000)]
Fix memory leak in cgi_show_file()

CID 66362.

9 years agoUse strdup_or_die() if the duplicated string is tiny
Fabian Keil [Sat, 18 Oct 2014 11:28:36 +0000 (11:28 +0000)]
Use strdup_or_die() if the duplicated string is tiny

Fixes a theoretical memory leak in trust_url() reported by Coverity.

CID 66364.

9 years agobind_port(): Fix file descriptor leak in error path
Fabian Keil [Sat, 18 Oct 2014 11:28:05 +0000 (11:28 +0000)]
bind_port(): Fix file descriptor leak in error path

CID 66368.

9 years agoIn bind_port(), check if the socket is valid before marking it CLOSEEXEC
Fabian Keil [Sat, 18 Oct 2014 11:27:43 +0000 (11:27 +0000)]
In bind_port(), check if the socket is valid before marking it CLOSEEXEC

9 years agoFix memory leaks in load_config()
Fabian Keil [Sat, 18 Oct 2014 11:27:28 +0000 (11:27 +0000)]
Fix memory leaks in load_config()

CID 66370.

9 years agoFix memory leak in pcrs_compile_dynamic_command()
Fabian Keil [Sat, 18 Oct 2014 11:27:04 +0000 (11:27 +0000)]
Fix memory leak in pcrs_compile_dynamic_command()

CID 66373.

9 years agoFix a theoretical memory leak in get_last_url()
Fabian Keil [Sat, 18 Oct 2014 11:26:48 +0000 (11:26 +0000)]
Fix a theoretical memory leak in get_last_url()

CID 66378.

9 years agoload_file(): Treat fread() failures like other non-fatal file errors
Fabian Keil [Sat, 18 Oct 2014 11:26:31 +0000 (11:26 +0000)]
load_file(): Treat fread() failures like other non-fatal file errors

... and check for underreads properly.

Previously Privoxy was supposedly serving the file partially
if it was edited in place, but actually would have served an
error message and leaked memory. Now it just serves the error
message (if it's run in a fantasy world were this actually
happens).

CID 66380, CID 66362, CID 66357.

9 years agoFix a memory leak in execute_content_filters() if there's more than one job
Fabian Keil [Sat, 18 Oct 2014 11:26:18 +0000 (11:26 +0000)]
Fix a memory leak in execute_content_filters() if there's more than one job

Also don't crash if a job that isn't the last one fails.

CID 66381.

9 years agoexecute_external_filter(): Fix file descriptor leak in error path
Fabian Keil [Sat, 18 Oct 2014 11:25:57 +0000 (11:25 +0000)]
execute_external_filter(): Fix file descriptor leak in error path

CID 66384.

9 years agoFix theoretical memory leaks in edit_parse_actions_file()
Fabian Keil [Sat, 18 Oct 2014 11:25:42 +0000 (11:25 +0000)]
Fix theoretical memory leaks in edit_parse_actions_file()

CID 66388.

9 years agoFix a comment typo
Fabian Keil [Sat, 18 Oct 2014 11:25:24 +0000 (11:25 +0000)]
Fix a comment typo

9 years agoFix a theoretical memory leak in cgi_show_url_info()
Fabian Keil [Sat, 18 Oct 2014 11:25:13 +0000 (11:25 +0000)]
Fix a theoretical memory leak in cgi_show_url_info()

In the real world map_block_killer() is unlikely to run out of memory.

CID 66392.

9 years agoaccept_connection(): Adjust loop condition to silence a ressource leak warning
Fabian Keil [Sat, 18 Oct 2014 11:24:53 +0000 (11:24 +0000)]
accept_connection(): Adjust loop condition to silence a ressource leak warning

This is a nop because fd 0 is guaranteed to be in use and
thus can't be returned by accept() anyway.

CID 66393.

9 years agoserver_http(): Make the HTTP reason phrase optional again
Fabian Keil [Sat, 18 Oct 2014 11:24:34 +0000 (11:24 +0000)]
server_http(): Make the HTTP reason phrase optional again

There are still servers around that that don't set one
and Privoxy doesn't really need it anyway.

9 years agoBump copyright
Fabian Keil [Fri, 17 Oct 2014 14:45:41 +0000 (14:45 +0000)]
Bump copyright

9 years agoAdd range-related tests for external-filter{}
Fabian Keil [Fri, 17 Oct 2014 14:45:29 +0000 (14:45 +0000)]
Add range-related tests for external-filter{}

9 years agoPrevent img-reorder from messing up img tags with empty src attributes
Fabian Keil [Fri, 17 Oct 2014 14:45:10 +0000 (14:45 +0000)]
Prevent img-reorder from messing up img tags with empty src attributes

Fixes #880 reported by Duncan.

9 years agoAdd #138: Analyse Coverity scan results
Fabian Keil [Thu, 16 Oct 2014 11:55:45 +0000 (11:55 +0000)]
Add #138: Analyse Coverity scan results

Remove #55 which is done.

9 years agoDisable +fast-redirects{} for ixquick-proxy.com/
Fabian Keil [Thu, 16 Oct 2014 11:55:15 +0000 (11:55 +0000)]
Disable +fast-redirects{} for ixquick-proxy.com/

9 years agoAdd #137: Add a (preferably vector-based) logo
Fabian Keil [Thu, 16 Oct 2014 11:54:58 +0000 (11:54 +0000)]
Add #137: Add a (preferably vector-based) logo

9 years agoRebuild docs
Fabian Keil [Mon, 6 Oct 2014 10:20:31 +0000 (10:20 +0000)]
Rebuild docs

9 years agoUpdate the 'Would you like to donate?' section
Fabian Keil [Mon, 6 Oct 2014 10:20:09 +0000 (10:20 +0000)]
Update the 'Would you like to donate?' section

Mention that donations will be used to get TODO list
items done and add the Zwiebelfreunde e.V. bank
account.

9 years agoAdd Sam Chen as contributor
Fabian Keil [Mon, 6 Oct 2014 10:19:43 +0000 (10:19 +0000)]
Add Sam Chen as contributor

9 years agoChange declared template file encoding to UTF-8
Fabian Keil [Mon, 6 Oct 2014 10:19:30 +0000 (10:19 +0000)]
Change declared template file encoding to UTF-8

The files already used a subset of UTF-8 anyway and changing
the declaration allows to properly display UTF-8 characters
used in the action files.

This change may require existing action files with ISO-8859-1
characters that aren't valid UTF-8 to be converted to UTF-8.

Requested by Sam Chen in #582.

9 years agoAdd #136: Make builds reproducible
Fabian Keil [Mon, 6 Oct 2014 10:18:37 +0000 (10:18 +0000)]
Add #136: Make builds reproducible

9 years agoRemove and incorrect and an obsolete sentence from the action file section
Fabian Keil [Mon, 6 Oct 2014 10:18:25 +0000 (10:18 +0000)]
Remove and incorrect and an obsolete sentence from the action file section

Using Privoxy without action files is not actually pointless if
its only being used as HTTP router or HTTP to SOCK gateways.

People who still care about syntax changes in 3.0.7 should look at
the ChangeLog to see all the changes combined.

9 years agoStop mentioning the log defaults before 3.0.7 which are no longer relevant
Fabian Keil [Mon, 6 Oct 2014 10:17:43 +0000 (10:17 +0000)]
Stop mentioning the log defaults before 3.0.7 which are no longer relevant

9 years agoMake it more obvious that many operating systems support log rotation out of the box
Fabian Keil [Mon, 6 Oct 2014 10:17:28 +0000 (10:17 +0000)]
Make it more obvious that many operating systems support log rotation out of the box

9 years agoSync config.guess and config.sub with upstream 2012-12-23/306afce2
Fabian Keil [Mon, 6 Oct 2014 10:17:12 +0000 (10:17 +0000)]
Sync config.guess and config.sub with upstream 2012-12-23/306afce2

... which is the last commit that is still GPLv2+.

9 years agoAdd #135: Add OpenBSM audit support
Fabian Keil [Mon, 6 Oct 2014 10:13:56 +0000 (10:13 +0000)]
Add #135: Add OpenBSM audit support

9 years agoUpdate URL of the 'current development version of this file'
Fabian Keil [Fri, 22 Aug 2014 09:45:29 +0000 (09:45 +0000)]
Update URL of the 'current development version of this file'

9 years agoUnblock 'adele*.'
Fabian Keil [Fri, 8 Aug 2014 13:05:23 +0000 (13:05 +0000)]
Unblock 'adele*.'

Reported by Adele Lime in #1663.

9 years agoUnblock "adina*."
Fabian Keil [Fri, 1 Aug 2014 12:34:21 +0000 (12:34 +0000)]
Unblock "adina*."

According to Wikipedia, "Adina is a Biblical Hebrew name meaning
delicate, slender, refined or gentle".

Fixes #919 reported by Morton A. Goldberg.

9 years agoLet server_http() regenerate the response line
Fabian Keil [Fri, 25 Jul 2014 11:57:17 +0000 (11:57 +0000)]
Let server_http() regenerate the response line

... making sure Privoxy forwards a valid one.

Normalizing the HTTP-version is an explicit RFC 2616 MUST,
RFC 7230 mandates that intermediaries send their own
HTTP-version in forwarded messages.

9 years agoLet sed() failures result in an error response
Fabian Keil [Fri, 25 Jul 2014 11:56:54 +0000 (11:56 +0000)]
Let sed() failures result in an error response

While at it, make sure fatal parse errors are reported
to the caller right away.

9 years agoNormalize the HTTP-version in forwarded request lines
Fabian Keil [Fri, 25 Jul 2014 11:56:26 +0000 (11:56 +0000)]
Normalize the HTTP-version in forwarded request lines

This is an explicit RFC 2616 MUST and RFC 7230 mandates
that intermediaries send their own HTTP-version in forwarded
messages.

9 years agoUpdate normalize_lws()'s description to reference RFC 7230
Fabian Keil [Fri, 25 Jul 2014 11:56:02 +0000 (11:56 +0000)]
Update normalize_lws()'s description to reference RFC 7230

9 years agoSpell whitespace consistently without whitespace
Fabian Keil [Fri, 25 Jul 2014 11:55:47 +0000 (11:55 +0000)]
Spell whitespace consistently without whitespace

That's how it's done in RFC 7230 which obsoletes RFC 2616.

9 years agoBump copyright
Fabian Keil [Fri, 25 Jul 2014 11:55:27 +0000 (11:55 +0000)]
Bump copyright

9 years agoReject requests with unsupported Expect header values
Fabian Keil [Fri, 25 Jul 2014 11:55:11 +0000 (11:55 +0000)]
Reject requests with unsupported Expect header values

This changes the test status for the following Co-Advisor
tests from "Violation" to "Success":

rfc2616/unsuppExpect-0100-continue
rfc2616/unsuppExpect-100-continueing
rfc2616/unsuppExpect-expect=params
rfc2616/unsuppExpect-expect=quoted-100c

For RFC 2616 rejecting such requests was a MUST,
but RFC 7230 downgraded this to a MAY.

9 years agoAdd #134: Track the total number of bytes written to and received from a socket.
Fabian Keil [Fri, 25 Jul 2014 11:54:28 +0000 (11:54 +0000)]
Add #134: Track the total number of bytes written to and received from a socket.

9 years agoRegenerate docs
Fabian Keil [Fri, 18 Jul 2014 10:19:46 +0000 (10:19 +0000)]
Regenerate docs

9 years agoUpdate the forward-override{} example to be consistent with the tagging example
Fabian Keil [Fri, 18 Jul 2014 10:01:39 +0000 (10:01 +0000)]
Update the forward-override{} example to be consistent with the tagging example

9 years agoNote that invalid forward-override{} parameter syntax isn't detected until the parame...
Fabian Keil [Fri, 18 Jul 2014 10:01:20 +0000 (10:01 +0000)]
Note that invalid forward-override{} parameter syntax isn't detected until the parameter is used

9 years agoAdd another +redirect{} example: a shortcut for illumos bugs
Fabian Keil [Fri, 18 Jul 2014 10:00:11 +0000 (10:00 +0000)]
Add another +redirect{} example: a shortcut for illumos bugs

9 years agoMove a 'static' before the 'const'
Fabian Keil [Fri, 18 Jul 2014 09:59:51 +0000 (09:59 +0000)]
Move a 'static' before the 'const'

9 years agoClarify what Privoxy does if both +block{} and +redirect{} apply
Fabian Keil [Mon, 14 Jul 2014 13:37:08 +0000 (13:37 +0000)]
Clarify what Privoxy does if both +block{} and +redirect{} apply

9 years agoBlock '/.*DigiAd'
Fabian Keil [Mon, 14 Jul 2014 13:01:28 +0000 (13:01 +0000)]
Block '/.*DigiAd'

9 years agoMove a pattern below its tests
Fabian Keil [Mon, 14 Jul 2014 13:01:02 +0000 (13:01 +0000)]
Move a pattern below its tests

9 years agoAdd an external filter example to add '[citation needed]' tags to images
Fabian Keil [Mon, 14 Jul 2014 13:00:07 +0000 (13:00 +0000)]
Add an external filter example to add '[citation needed]' tags to images

Finding images where this may make sense and the coordinates
fit is left as an excercise for the reader.

9 years agoUse a custom redirect{} for .washingtonpost.com/wp-apps/imrs\.php\?src=
Fabian Keil [Mon, 14 Jul 2014 12:57:00 +0000 (12:57 +0000)]
Use a custom redirect{} for .washingtonpost.com/wp-apps/imrs\.php\?src=

Previously enabling the 'Advanced' settings (or manually enabling
+fast-redirects{}) prevented some images from being loaded properly.

As a side effect this commit expands Oleg's reach even further.

9 years agoNote that security issues shouldn't be reported using the bug tracker
Fabian Keil [Mon, 14 Jul 2014 12:56:30 +0000 (12:56 +0000)]
Note that security issues shouldn't be reported using the bug tracker

Add myself as security contact as discussed on ijbswa-devel@
months ago.

9 years agoNote that donations will fund work on the TODO list
Fabian Keil [Thu, 3 Jul 2014 10:19:47 +0000 (10:19 +0000)]
Note that donations will fund work on the TODO list

9 years agoAdd #133: Consider allowing bitcoin donations
Fabian Keil [Wed, 25 Jun 2014 10:09:57 +0000 (10:09 +0000)]
Add #133: Consider allowing bitcoin donations

At least one donor is interested in this.

9 years agoAdd #132: Provide a Tor hidden service to reach the Privoxy website
Fabian Keil [Wed, 25 Jun 2014 10:09:07 +0000 (10:09 +0000)]
Add #132: Provide a Tor hidden service to reach the Privoxy website

At least one donor is interested in this, it's not lot of work
and we can eat our own dogfood by putting Privoxy between the
Tor hidden service and the website to rewrite the requests.

9 years agoMark TODO list items with the number of known donors who mentioned being interested...
Fabian Keil [Wed, 25 Jun 2014 10:08:13 +0000 (10:08 +0000)]
Mark TODO list items with the number of known donors who mentioned being interested in them

9 years agoUpdate the status of the curl-related work in progress for #1
Fabian Keil [Wed, 25 Jun 2014 10:03:53 +0000 (10:03 +0000)]
Update the status of the curl-related work in progress for #1

9 years agoVerify that PATCH requests pass the unknown_method() check
Fabian Keil [Fri, 20 Jun 2014 09:49:31 +0000 (09:49 +0000)]
Verify that PATCH requests pass the unknown_method() check

9 years agoBump copyright
Fabian Keil [Fri, 20 Jun 2014 09:47:10 +0000 (09:47 +0000)]
Bump copyright

9 years agoAdd support for the 'PATCH' method as defined in RFC5789
Fabian Keil [Fri, 20 Jun 2014 09:46:56 +0000 (09:46 +0000)]
Add support for the 'PATCH' method as defined in RFC5789

9 years agoRemove a stray '1' in the 'html-annoyances' filter
Fabian Keil [Fri, 20 Jun 2014 09:46:13 +0000 (09:46 +0000)]
Remove a stray '1' in the 'html-annoyances' filter

Regression tests for the win.

9 years agoAdd #131: handle-as-empty-doc-returns-ok should be replaced with an action
Fabian Keil [Mon, 16 Jun 2014 10:17:38 +0000 (10:17 +0000)]
Add #131: handle-as-empty-doc-returns-ok should be replaced with an action

9 years agoClarify that handle-as-empty-doc-returns-ok is still useful
Fabian Keil [Mon, 16 Jun 2014 10:16:53 +0000 (10:16 +0000)]
Clarify that handle-as-empty-doc-returns-ok is still useful

... and will not be removed without replacement

9 years agoAdd #130: Move header_tagger() out of the parser structs
Fabian Keil [Mon, 16 Jun 2014 10:15:32 +0000 (10:15 +0000)]
Add #130: Move header_tagger() out of the parser structs

9 years agoRemove a comment suggesting that normalize_lws()'s log message might be temporary
Fabian Keil [Thu, 12 Jun 2014 13:10:21 +0000 (13:10 +0000)]
Remove a comment suggesting that normalize_lws()'s log message might be temporary

It's rarely seen in the real world and only visible if
header debugging has been enabled anyway.

9 years agoReference RFC 7230 in remove_chunked_transfer_coding()'s description
Fabian Keil [Thu, 12 Jun 2014 13:09:03 +0000 (13:09 +0000)]
Reference RFC 7230 in remove_chunked_transfer_coding()'s description

... and note that the implementation is (still) incomplete.

9 years agoAdd #129: Completely implement RFC 7230 4.1 (Chunked Transfer Coding)
Fabian Keil [Thu, 12 Jun 2014 13:08:42 +0000 (13:08 +0000)]
Add #129: Completely implement RFC 7230 4.1 (Chunked Transfer Coding)

9 years agoRFC 2616 is obsolete, update a comment in redirect_url()
Fabian Keil [Thu, 12 Jun 2014 13:08:25 +0000 (13:08 +0000)]
RFC 2616 is obsolete, update a comment in redirect_url()

9 years agoAdd an external filter example to rotate images
Fabian Keil [Thu, 12 Jun 2014 13:07:19 +0000 (13:07 +0000)]
Add an external filter example to rotate images

9 years agoAdd #128: Add a config directive to control the stack limit.
Fabian Keil [Thu, 12 Jun 2014 13:06:54 +0000 (13:06 +0000)]
Add #128: Add a config directive to control the stack limit.

9 years agoMake it more obvious that +external-filter{} mostly behaves like +filter{}
Fabian Keil [Tue, 3 Jun 2014 10:33:59 +0000 (10:33 +0000)]
Make it more obvious that +external-filter{} mostly behaves like +filter{}

9 years agoLet +external-filter{} only filter "text" by default
Fabian Keil [Tue, 3 Jun 2014 10:33:17 +0000 (10:33 +0000)]
Let +external-filter{} only filter "text" by default

Given that this is what +filter{} does, it's probably
the expected behaviour.

9 years agoLet a couple of format strings use %u for unsigned integers
Fabian Keil [Tue, 3 Jun 2014 10:31:27 +0000 (10:31 +0000)]
Let a couple of format strings use %u for unsigned integers

Fixes cppcheck warnings.

9 years agoAdd another redirect{} example to stress that redirect loops can and should be avoided
Fabian Keil [Tue, 3 Jun 2014 10:30:20 +0000 (10:30 +0000)]
Add another redirect{} example to stress that redirect loops can and should be avoided

9 years agoFix white space
Fabian Keil [Tue, 3 Jun 2014 10:29:40 +0000 (10:29 +0000)]
Fix white space

9 years agoReduce indirection in get_content_type()
Fabian Keil [Tue, 3 Jun 2014 10:29:23 +0000 (10:29 +0000)]
Reduce indirection in get_content_type()

9 years agoUse strdup_or_die() where it makes sense
Fabian Keil [Tue, 3 Jun 2014 10:28:39 +0000 (10:28 +0000)]
Use strdup_or_die() where it makes sense

9 years agoReplace malloc() with malloc_or_die() when the size is puny
Fabian Keil [Tue, 3 Jun 2014 10:27:56 +0000 (10:27 +0000)]
Replace malloc() with malloc_or_die() when the size is puny

9 years agoAccept multi-digit HTTP major and minor versions in highlight_request_line()
Fabian Keil [Tue, 3 Jun 2014 10:26:21 +0000 (10:26 +0000)]
Accept multi-digit HTTP major and minor versions in highlight_request_line()

9 years agoReduce code duplication by setting http->ocmd in parse_http_request()
Fabian Keil [Tue, 3 Jun 2014 10:25:57 +0000 (10:25 +0000)]
Reduce code duplication by setting http->ocmd in parse_http_request()

9 years agoFix a cppcheck complaint in init_error_log()
Fabian Keil [Tue, 3 Jun 2014 10:24:00 +0000 (10:24 +0000)]
Fix a cppcheck complaint in init_error_log()

Superfluous write to 'this_thread'.

9 years agoAdd #127: Add "real" CGI support
Fabian Keil [Mon, 2 Jun 2014 07:23:14 +0000 (07:23 +0000)]
Add #127: Add "real" CGI support

9 years agoRemove #57 as it's done
Fabian Keil [Mon, 2 Jun 2014 07:22:40 +0000 (07:22 +0000)]
Remove #57 as it's done

9 years agoRebuild HTML docs for external filters
Fabian Keil [Mon, 2 Jun 2014 06:24:51 +0000 (06:24 +0000)]
Rebuild HTML docs for external filters

9 years agoRebuild config
Fabian Keil [Mon, 2 Jun 2014 06:23:23 +0000 (06:23 +0000)]
Rebuild config

9 years agoBump copyright
Fabian Keil [Mon, 2 Jun 2014 06:22:22 +0000 (06:22 +0000)]
Bump copyright

9 years agoAdd documentation for external filters
Fabian Keil [Mon, 2 Jun 2014 06:20:51 +0000 (06:20 +0000)]
Add documentation for external filters