Properly detect section titles with two-digit minor numbers
[privoxy.git] / TODO
diff --git a/TODO b/TODO
index 53d50fa..b22a73a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,16 +1,18 @@
-$Id: TODO,v 1.39 2011/04/16 17:29:38 fabiankeil Exp $
+$Id: TODO,v 1.76 2013/01/05 18:39:19 fabiankeil Exp $
 
-Some Privoxy related tasks, sorted by the time they
+Some Privoxy-related tasks, sorted by the time they
 have been added, not by priority.
 
+The latest version should be available at:
+http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO
+
 1)  Add some regression tests. Filters should be tested automatically
     (variables too). Could probably reuse large parts of Privoxy-Filter-Test.
+    Note that there is currently work in progress to leverage curl's
+    test suite which could be used for this as well.
 
 3)  Fix some more XXX: comments.
 
-4)  Fix some more compiler warnings. (Especially on amd64)
-    Partly done.
-
 6)  Remove actions that aren't needed anymore:
 
     content-type-overwrite should probably stay as it's also
@@ -40,18 +42,7 @@ have been added, not by priority.
 11) CGI templates should use semantically-correct HTML
     and scale properly.
 
-12) Add pipelining support.
-
-13) Use zlib to deflate content before sending it to
-    the client. Measure if it makes a difference.
-
-    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.
+12) Support pipelining for outgoing connections.
 
 14) Allow to filter POST parameters.
 
@@ -100,12 +91,14 @@ have been added, not by priority.
 38) In the final results, explicitly list disabled multi actions
     with their parameters. Not as trivial as it sounds.
 
-40) Fix core dumping in daemon mode. Introduce a cwd config option?
+40) When running in daemon mode, Privoxy's working directory is '/'
+    which means it may not have permissions to dump core when necessary.
+    Figure out a way to solve this. Introduce a cwd config option?
 
 41) Change documentation framework to one that works cross-platform.
     Evaluate WML.
 
-42) Add DTrace hooks. Now that FreeBSD has userland DTrace
+42) Add a DTrace USDT provider. 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.
@@ -114,8 +107,6 @@ have been added, not by priority.
 44) Privoxy-Log-Parser: Consider highlighting "Connection" in:
     23:13:03.506 283b6100 Header: Replaced: 'Connection: Keep-Alive' with 'Connection: close'
 
-49) Add FAQ for NTLM proxies. Still necessary?
-
 50) Investigate possible PCRS template speedup when searching
     macros with strstr() before compiling pcrs commands.
     Investigated, needs some restructuring but is probably worth it.
@@ -161,13 +152,13 @@ have been added, not by priority.
     is no legal entity.
 
 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.
+    mess in favour of wml. There are already several threads
+    in the mailinglist archives about this. See also #41.
 
-66) Increase maximum number of action and filter files.
+66) Stop hard-coding the number of action and filter files.
 
-67) Clean up directory layout. Depends on 54 so we don't
-    lose the revision history.
+67) Clean up source code directory layout. Depends on 54 so
+    we don't lose the revision history.
 
 68) Use standard make syntax so we don't depend on GNU make.
 
@@ -177,9 +168,6 @@ have been added, not by priority.
     received, consider passing the mess to the client instead
     of showing the connect-failed template. Relates to #2698674.
 
-71) Allow to listen on multiple addresses without having to
-    bind to all.
-
 74) Let Privoxy-Regression-Test optionally check that action
     sections which disable actions actually are preceded by
     sections that enable said actions.
@@ -220,9 +208,6 @@ have been added, not by priority.
 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.
 
@@ -238,7 +223,8 @@ have been added, not by priority.
     trivial, though.
 
 88) Investigate if there's a Perl module that Privoxy-Regression-Test
-    could optionally use to keep connections alive.
+    could optionally use to keep connections alive, preferably while
+    requiring less forks at the same time.
 
 89) When multiple block actions apply, consider showing all the block
     reasons on the blocked page that haven't been overruled, not just
@@ -252,3 +238,71 @@ have been added, not by priority.
     be reasonable to default to a limit of one and showing an error
     message if the request for the redirect URL would be redirected
     again.
+
+92) The statistics currently aren't calculated correctly by Privoxy
+    as each thread is only counted as one request which is no longer
+    correct. This should be fixed, or the statistic code removed.
+    Privoxy-Log-Parser's provides more detailed statistics, anyway.
+
+93) Add a config directive to let Privoxy explicitly request either
+    IPv4 (or IPv6) addresses, even if the system supports both.
+    Could be useful as a workaround for misconfigured setups where the
+    libc returns IPv6 addresses even if there's no IPv6 connectivity.
+
+94) Add a config directive to let Privoxy prefer either IPv4 (or IPv6)
+    addresses, instead of trusting the libc to return them in an order
+    that makes sense. Like #93, this could be useful as a workaround
+    for misconfigured setups.
+
+95) Support a non-standard client header in CONNECT requests that
+    contains the URL of the requested ressource, which is then treated
+    like the request URL.
+
+    This way the client could opt-in for path-based blocking of https
+    requests. Given that the headers from the CONNECT request aren't
+    forwarded to the destination server, an unencrypted URL should be
+    acceptable if the client and Privoxy are running on the same system
+    or in a trusted environment.
+
+96) Enabled filters should be easier to look up. Currently most functions
+    that work with filters spent more (duplicated) code on finding
+    filters than on actually doing something useful with them. Dividing
+    filters by type instead of filter file would reduce the lookup-code
+    quite a bit.
+
+98) When showing action section on the CGI pages, properly escape
+    line breaks so they can be copy&pasted into action files without
+    adjustments.
+
+99) Figure out a mechanism through which a user can easily enable
+    site-specific action sections that are too aggressive to be
+    enalbled by default. This could be similiar to the presettings
+    in default.action, but could also be just another action file
+    that isn't used by default.
+
+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.
+
+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 bitmask
+     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 intead of PRIVOXY-FORCE.