In rfc2553_connect_to(), rename socket_in_error to socket_error
[privoxy.git] / TODO
diff --git a/TODO b/TODO
index eb4c3e0..0ef965d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,7 @@
-$Id: TODO,v 1.6 2009/09/06 17:20:31 fabiankeil Exp $
+$Id: TODO,v 1.34 2011/02/10 22:18:30 fabiankeil Exp $
 
-Some Privoxy related task, not ordered in any way.
+Some Privoxy related tasks, sorted by the time they
+have been added, not by priority.
 
 1)  Add some regression tests. Filters should be tested automatically
     (variables too). Could probably reuse large parts of Privoxy-Filter-Test.
@@ -41,10 +42,19 @@ Some Privoxy related task, not ordered in any way.
 
 12) Add pipelining support.
 
-13) Use zlib to compress content before sending it to
+13) Use zlib to deflate content before sending it to
     the client. Measure if it makes a difference.
 
-14) Log and filter POST parameters.
+    Update:
+    Note that this is already being worked on and mostly done
+    for buffered content and internal CGI responses.
+
+    The difference it does make, seems to be that it slows things
+    down if the client and Privoxy are running on the same system,
+    so for most users enabling it will make no sense.
+
+14) Log and filter POST parameters. They can now be logged with
+    the noisy debug 32768, but are still not filtered.
 
 15) If trusted CGI pages are requested without trusted referrer,
     set the status code to 403 instead of 200.
@@ -97,12 +107,13 @@ Some Privoxy related task, not ordered in any way.
 39) Verify loadcfg.c jarfile reloading and friends.
     /* XXX: Does disabling this actually work? */
 
-40) Fix core dumping in daemon mode.
+40) Fix core dumping in daemon mode. Introduce a cwd config option?
 
 41) Change documentation framework to one that works cross-platform.
     Evaluate WML.
 
-42) Add DTrace hooks.
+42) Add DTrace hooks. Now that FreeBSD has userland DTrace
+    support there's no longer any reason not to.
 
 43) Write a tool to check URL patterns against URLs in the log file.
     This could be included in Privoxy-Regression-Test.
@@ -116,13 +127,19 @@ Some Privoxy related task, not ordered in any way.
     macros with strstr() before compiling pcrs commands.
     Investigated, needs some restructuring but is probably worth it.
 
-51) Make user-manual directive more general to allow serving
+51) Make user-manual directive more generic to allow serving
     the FAQ and other stuff, too. Consider changing the port
     for "same origin policy" issues.
 
-53) Find a more reliable hoster.
+53) Find a more reliable hoster. Involves finding out what our
+    requirements are and which SF alternatives fulfil them.
+    It would probably also make sense to look into what other
+    projects did when migrating away from SF.
 
 54) Move away from CVS to a more modern revision control system.
+    Find out if there are any objection against going with Git.
+    Using Git would also have the advantage that SF now pretents
+    to support it, so we could do it independently from 53).
 
 55) Apply for Coverity scans: http://scan.coverity.com/
 
@@ -131,7 +148,8 @@ Some Privoxy related task, not ordered in any way.
     http://coad.measurement-factory.com/details.html#pricing
 
 57) Allow piping into external programs to allow more powerful
-    filters and policy decisions.
+    filters and policy decisions. Incomplete support available
+    in Fabian's popen branch.
 
 58) Move more template strings from the code into the actual templates.
 
@@ -149,7 +167,9 @@ Some Privoxy related task, not ordered in any way.
 64) Use proper copyright attribution. "Privoxy Developers"
     is no legal entity.
 
-65) Polish Website.
+65) Polish Website. Probably involves ditching the Docbook
+    mess in favour of wml. There should be already some threads
+    in the mailinglists archives about this.
 
 66) Increase maximum number of action and filter files.
 
@@ -167,10 +187,72 @@ Some Privoxy related task, not ordered in any way.
 71) Allow to listen on multiple addresses without having to
     bind to all.
 
-73) Factor FEATURE_CONNECTION_SHARING out of
-    FEATURE_CONNECTION_KEEP_ALIVE so the later can be enabled
-    on platforms without mutex support as well.
+74) Let Privoxy-Regression-Test optionally check that action
+    sections which disable actions actually are preceded by
+    sections that enable said actions.
+
+75) Create a tool that creates Privoxy action (and filter?) files
+    out of adblock files. Could be implemented as option for
+    url-pattern-translator.pl.
+
+76) Cache DNS responses. Note that this has been requested
+    several times by users, but is not a developer priority.
+    If you care about this, feel free to submit patches.
+
+77) Allow to configure the IP address used in outgoing connections.
+
+78) Allow to optionally use pcre's DFA algorithm.
+
+79) Evaluate pcre alternatives.
+
+80) Change FEATURE_EXTENDED_HOST_PATTERNS to support both
+    extended and vanilla host patterns at the same time.
+
+    Note that the requirement is to allow the user to decide
+    if the domain pattern should be interpreted as regex or
+    traditional host pattern and if it's not obvious that the
+    user made any decision, default to the latter.
+
+    Possible solutions would be:
+
+    1. An always-use-regex-domain-patterns config option
+    2. An enable-regex-domain-patterns-for-this-action-file option
+    3. An enable-regex-domain-patterns-for-this-action-file-until-the-user-says-otherwise option
+    4. A treat-the-domain-pattern-in-this-line-as-regex(-or-not) option
+    5. Combinations of the options above
+
+    With 2+4, 3+4 or 2+3+4 being the preferences until
+    further discussion.
+
+81) Merge Fabian's unlimited-config-lines branch.
+
+82) Detect if the system time goes back in time let the user
+    know if it caused any connections to get closed.
+
+83) Make the FAQ available through the CGI interface like the
+    user manual is.
+
+84) Flesh out the user-manual delivery to serve pages from
+    other directories, too.
+
+85) Once #84 is done, write a script that populates a directory with
+    various common third-party icons (stumbleupon.png, facebook.png ...)
+    and redirect requests for them to Privoxy.
+
+86) Add a server-body-tagger action. This is trivial as as all the
+    functionallity required to do it already exists.
+
+87) Add a client-body-tagger action. This is less trivial as we currently
+    don't buffer client bodies. After 14) is implemented it would be
+    trivial, though.
+
+88) Investigate if there's a Perl module that Privoxy-Regression-Test
+    could optionally use to keep connections alive.
+
+89) When multiple block actions apply, consider showing all the block
+    reasons on the blocked page that haven't been overruled, not just
+    the last one.
 
-74) Let Privoxy-Regression-Test optional check action sections
-    which disable actions actually are preceded by sections that
-    enable said actions.
+90) Implement NO-TAG: patterns that enable a section if the
+    provided pattern doesn't match any TAG. This would make
+    some things cleaner.