import from HEAD:
[freeradius.git] / todo / TODO
index b1ee608..4a97631 100644 (file)
--- a/todo/TODO
+++ b/todo/TODO
@@ -1,25 +1,24 @@
 URGENT:
-
+o scan ALL modules, so that they use consistent names for structures
+  and variables in their instantiation (rlm_foo_t *inst), and that they
+  call rlm_foo_detach() if anything goes wrong, instead of just free()'ing
+  'inst'.  The cf_parse_section().. code may have malloc'd memory, and
+  that needs to be free'd, too.
+o Add a 'listen' directive, ala Apache, so that we can listen
+  on multiple ports. Hmm... if we do that, we should allow multiple
+  virtual servers, too.
 o Stop unloading modules on HUP so that we can have persistant
   handles/socketc/etc from module_init().  Alan D. and Alan C. had a good
   plan for when to load/reload modules on the list recently...I say
   run with that.
-o modular radutmp and radwtmp, as per Alan Curry's old patches.
-o merge OSF/OSFIA patches from Cistron.
 o double-check Cistron 'compat' mode, so that all current users of
   Cistron can upgrade "out of the box" to FreeRADIUS
 
-
 MEDIUM PRIORITY
 o go through all of the code and reformat it, for project standards
 o go through all of the code, removing unnecessary #include's, and
   generating a standard include file order which will work across all
   platforms.
-o go through *.c and *.h, adding comments at the top with a copyright,
-  and a GPL license.
-o fix the proxy receive code, so that we don't have to look through ALL
-  of the requests to find the matching proxy.  This might be hard to do..
-  It would also involve thread locking issues.
 o rad_malloc() fixes:  child processes/threads ALWAYS kill themselves
   if malloc() fails.  The main server process does a 'sleep' for N
   seconds, and tries again.  After T tries, it gives up, and calls exit().
@@ -28,16 +27,11 @@ LOW PRIORITY:
 o Write better documentation
 o Manual pages for the daemon, utilities and conffiles (some done)
 o Fix all FIXME's in the source.
-o Fix DBM support:
-  - Multiple defaults (done)
-  - Fallthrough (hard for not DEFAULT entries)
-o split rlm_files into rlm_users, rlm_fastusers (in-memory hash),
-  rlm_detail, rlm_dbm... they all should share as much code as
-  possible though, not be big cut-and-paste jobs
 o better SNMP statistics support, for the auth/acct servers, and for
   each client.
-o fix the request list walking code, to scan each element no more than
-  once per second.
+o fix the proxy receive code, so that we don't have to look through ALL
+  of the requests to find the matching proxy.  This might be hard to do..
+  It would also involve thread locking issues.
 
 WAIT UNTIL NEXT RELEASE:
 o UPDATE accounting requests aren't handled as in 1.5.4.3 for wtmp
@@ -48,9 +42,6 @@ o New module: rlm_fastradwtmp. with a radutmp-style active session
 o New module: rlm_attrmap. assigns a single attribute based on a
   username, with ed-friendly/awk-friendly config file. Because the
   users file is too complicated.
-o have a config file (or section in radiusd.conf) that tells rlm_sql
-  what the names of the tables and columns are instead of hardcoding
-  them
 o replace the module_t method table with a set of register_* functions
   (so different instances of the same module can offer different
   methods)
@@ -63,7 +54,7 @@ o New module: rlm_nsupdate (dyndns). Because dynamic addresses are
   cruel.
 o New module: rlm_perl.
 
-WILL NOT TO:
+WILL NOT DO:
 o module initialization AFTER forking, not before.
        --- The modules should NOT be setting up any process-dependent
        --- information.
@@ -75,6 +66,18 @@ o there should be a way that radius itself could
        --- This work is for an external process to do ---
 
 DONE:
+o fix radwho to read modules{radutmp{filename = }}
+o Add 'initialize' list in modules, so explicitely give initialization order.
+o merge OSF/OSFIA patches from Cistron.
+o Fix DBM support:
+  - Put DBM into its own module
+  - Multiple defaults (done)
+  - Fallthrough (hard for not DEFAULT entries)
+o modular radutmp and radwtmp, as per Alan Curry's old patches.
+o Fix multiple/conflicting VALUE names as pointed out on the list.
+   e.g. 'Rlogin' has different values when used with different ATTRIBUTEs,
+o go through *.c and *.h, adding comments at the top with a copyright,
+  and a GPL license.
 o Integrated Alan Curry's module failover patch.
 o add more support for new configuration files
 o Fixed potentially long locks on radutmp file by radcheck thread
@@ -113,3 +116,11 @@ o Limit logins based on time/date
   (for example, Login-Hour = 8-18, Login-Day = 0-5 for business hours)
 o take out host-order IP addresses
 o Support Connect-Rate
+o have a config file (or section in radiusd.conf) that tells rlm_sql
+  what the names of the tables and columns are instead of hardcoding
+  them
+o split rlm_files into rlm_users, rlm_fastusers (in-memory hash),
+  rlm_detail, they all should share as much code as
+  possible though, not be big cut-and-paste jobs
+o fix the request list walking code, to scan each element no more than
+  once per second.