+
+100) Create a cross-platform Privoxy control program and retire
+ the win32 GUI. Integrate support for Privoxy-Regression-Test,
+ Privoxy-Log-Parser, Privoxy-Filter-Test, uagen and similar tools.
+ Interested donors: 1.
+
+102) Add an include directive to split the config file into several parts.
+
+103) Potential performance improvement for large action files:
+ when figuring out which actions apply, check the action bit mask
+ before pattern matching and skip section that wouldn't modify the
+ actions already set. To increase the impact the sections would have
+ to be applied in reverse.
+
+104) The code to modify global_toggle_state should be factored out into
+ a separate function. Currently we mess with it in three different
+ files, but only in w32log.c the tray icon is explicitly set.
+ The logging is inconsistent as well. For details see #3525694.
+
+105) Add support for socks authentication.
+
+106) actionlist.h should be embedded in a way that causes less text
+ segment bloat.
+
+107) Support more pcrs variables, for example $destination-ip-address
+ and $source-ip-address.
+
+108) Allow to use a somewhat random string instead of PRIVOXY-FORCE.
+
+109) Let log_error() support the format specifier %S which should
+ work like %s but escape new lines like %N. This would be useful
+ to log the result of header filters which may inject new lines.
+
+110) Add a global-buffer-limit directive that roughly limits how
+ much malloc'ed memory Privoxy will use and can potentially
+ be smaller than (buffer-limit * max-client-connections).
+
+111) Reject requests if hosts and ports in request line and Host
+ header don't match (before filters have been applied).
+
+112) If a header filter is used to inject another header by inserting
+ a \r\n (undocumented feature), detect it and split the headers so
+ following header actions do not treat them as a single string.
+ Alternatively add another header injection mechanism.
+
+113) Log statistics upon receiving a certain signal (SIGINFO or SIGUSR1).
+
+114) Properly deal with status code 100. The current "Continue hack"
+ can cause problems for gpg when uploading keys through Privoxy.
+
+115) Add ICAP (RFC 3507) support. FR #3615158.
+
+116) Due to the use of sscanf(), Privoxy currently will fail to properly
+ parse chunks whose size can't be represented with 32 bit. This is
+ unlikely to cause problems in the real world, but should eventually
+ be fixed anyway. See also:
+ https://bugzilla.mozilla.org/show_bug.cgi?id=959100
+
+118) There should be "escaped" dynamic variables that are guaranteed
+ not to break filters.
+
+119) Evaluate using pcre's jit mode.
+
+120) Add an option to limit pcre's recursion limit below the default.
+ On some platforms the recursion limit doesn't prevent pcre from
+ running out of stack space, causing the kernel to kill Privoxy
+ ungracefully.
+
+121) Add HTTP/2 support. As a first step, incomming HTTP/1.x requests
+ should be translated to outgoing HTTP/2 requests where possible
+ (and if desired by the user).
+ Interested donors: 1.
+
+122) Allow customized log messages.
+
+123) Evaluate if the voluntarily-disclose-session-keys option in Firefox
+ (and other browsers) can be leveraged. Probably depends on #16.
+
+124) Add support for the "lightweight OS capability and sandbox framework"
+ Capsicum. http://www.cl.cam.ac.uk/research/security/capsicum/
+ Interested donors: 1.
+
+125) Allow clients to HTTPS-encrypt the proxy connection.
+ Interested donors: 1.
+
+126) Run the Co-Advisor HTTP compliance tests, evaluate the results,
+ fix the compliance issues that aren't by design and document
+ the rest.
+ Note that Privoxy developers qualify for free account upgrades:
+ http://coad.measurement-factory.com/details.html#pricing
+
+127) Add "real" CGI support (serve program output instead of forwarding
+ the request). The work is mostly done due to +external-filter{}.
+
+128) Add a config directive to control the stack limit.
+
+129) Completely implement RFC 7230 4.1 (Chunked Transfer Coding).
+ Currently Privoxy doesn't properly deal with trailers which
+ are rarely used in the real world but should be supported anyway.
+
+130) Move header_tagger() out of the parser structs and let it execute
+ taggers one-by-one against all headers so the header order has less
+ influence on the tagging result. As a bonus, dynamic taggers would
+ have to be compiled less often.
+
+131) The handle-as-empty-doc-returns-ok directive should be replaced with
+ an action so the behaviour can be enabled on a per-request basis.
+ Interested donors: 1.
+
+133) Consider allowing bitcoin donations.
+ Interested donors: 2.
+
+134) Track the total number of bytes written to and received from a socket.
+
+135) Add OpenBSM audit support.
+
+136) Make builds reproducible.
+
+137) Add a (preferably vector-based) logo.
+
+138) Bring back the scripts to provide actions file feedback.
+
+ Once upon a time (~2003) there were scripts on the webserver
+ to make reporting action file feedback more convenient for the
+ user and the actual reports more useful for the developers.
+ They have been unusable for years and have thus been disabled,
+ but making the reporting mechanism available again would be a
+ good idea.
+
+140) Toggling Privoxy off currently also disables stuff that
+ probably shouldn't be affected (such as actions like
+ forward-override). Investigate and fix or document.
+
+141) Port Privoxy to CloudABI, which, despite the name, is actually
+ rather neet. https://github.com/NuxiNL/cloudlibc
+
+142) Remove or update the "internal" pcre version.
+
+143) Add support for OpenBSD's pledge feature once it's stablelized.
+ This should be a lot less work then #124.
+
+146) Allow to save the internal client tag state to disk and
+ load it after restarts.
+
+147) Improve "Building from Source" section in the user manual.
+ A common problem seems to be that it's not obvious to non-technical
+ users how the listed dependencies can be installed on the commonly
+ used platforms. Adding a couple of examples should also be useful for
+ technical users (like Privoxy developers) who want to install or test
+ Privoxy on platforms they are not familiar with.
+
+148) Add a config directive to change the CGI_SITE_2_HOST
+ (default: config.privoxy.org).
+
+ If Privoxy is used as reverse proxy or intercepting proxy without
+ getting intercepted requests, error pages created from default templates
+ currently can result in client requests to config.privoxy.org on the
+ Internet which may not be desirable.
+
+149) Use poll() for socket selection so the number of sockets Privoxy
+ can deal with isn't limited to FD_SETSIZE anymore.
+
+##########################################################################
+
+Hosting wish list (relevant for #53)
+
+What we need:
+
+- Bug tracker
+- Mailinglists (Mailman with public archives preferred)
+- Webspace (on a Unix-like OS that works with the webserver targets
+ in GNUMakefile)
+- Source code repositories (currently CVS, but migrating away
+ from it is TODO #54 anyway and shouldn't be too much trouble)
+- Commit mails (preferably with unified diffs)
+
+(Unsorted) details to look at when evaluating hosters:
+
+1. Preferably no third-party ads and trackers.
+ External images, CSS and JavaScript may count as trackers
+ but texts like "supported by company XYZ" may be acceptable.
+
+2. JavaScript should be optional or not used at all.
+
+3. Services we don't need shouldn't be enabled anyway.
+ (We currently don't use Web forums, wikis, surveys etc.)
+
+4. It would be preferable if the hoster didn't have a bad track
+ record as far as user experience, security and privacy are
+ concerned and if the terms of service are "reasonable" and
+ haven't changed too often in the past. Updates in the past
+ should have been improvements and not regressions.
+
+5. It would be preferable if most of the server administration
+ is done by a trusted third-party (or at least not a lot of work
+ for us).
+
+6. The server(s) should be located in a country with laws we can
+ understand and follow (or at least not unintentionally violate).
+
+7. A server location in a country with some kind of due process
+ and strong data protection laws (at least on paper) would be
+ preferable.
+
+8. Given that Privoxy is a free software project it would be
+ preferable if the hoster would use free software where possible.
+
+9. Migrating away from the hoster in the future without losing
+ any important data should be possible without writing web
+ scrapers first.