removed Alan Curry's 'radutmp' from 'todo' to 'done'
[freeradius.git] / todo / TODO
1 URGENT:
2
3 o Stop unloading modules on HUP so that we can have persistant
4   handles/socketc/etc from module_init().  Alan D. and Alan C. had a good
5   plan for when to load/reload modules on the list recently...I say
6   run with that.
7 o merge OSF/OSFIA patches from Cistron.
8 o double-check Cistron 'compat' mode, so that all current users of
9   Cistron can upgrade "out of the box" to FreeRADIUS
10
11
12 MEDIUM PRIORITY
13 o go through all of the code and reformat it, for project standards
14 o go through all of the code, removing unnecessary #include's, and
15   generating a standard include file order which will work across all
16   platforms.
17 o fix the proxy receive code, so that we don't have to look through ALL
18   of the requests to find the matching proxy.  This might be hard to do..
19   It would also involve thread locking issues.
20 o rad_malloc() fixes:  child processes/threads ALWAYS kill themselves
21   if malloc() fails.  The main server process does a 'sleep' for N
22   seconds, and tries again.  After T tries, it gives up, and calls exit().
23
24 LOW PRIORITY:
25 o Write better documentation
26 o Manual pages for the daemon, utilities and conffiles (some done)
27 o Fix all FIXME's in the source.
28 o Fix DBM support:
29   - Multiple defaults (done)
30   - Fallthrough (hard for not DEFAULT entries)
31 o split rlm_files into rlm_users, rlm_fastusers (in-memory hash),
32   rlm_detail, rlm_dbm... they all should share as much code as
33   possible though, not be big cut-and-paste jobs
34 o better SNMP statistics support, for the auth/acct servers, and for
35   each client.
36 o fix the request list walking code, to scan each element no more than
37   once per second.
38
39 WAIT UNTIL NEXT RELEASE:
40 o UPDATE accounting requests aren't handled as in 1.5.4.3 for wtmp
41   Is this a problem ? Need to fix in rlm_unix.c
42 o New module: rlm_fastradwtmp. with a radutmp-style active session
43   database to guarantee wtmp records are always written in matching
44   pairs. Because radlast is slow.
45 o New module: rlm_attrmap. assigns a single attribute based on a
46   username, with ed-friendly/awk-friendly config file. Because the
47   users file is too complicated.
48 o have a config file (or section in radiusd.conf) that tells rlm_sql
49   what the names of the tables and columns are instead of hardcoding
50   them
51 o replace the module_t method table with a set of register_* functions
52   (so different instances of the same module can offer different
53   methods)
54 o enable server to run with child processes
55   (This is a little more difficult than the threading changes)
56 o switch all timers from time() to gettimeofday() so processing is
57   less bursty
58 o SNMP support for querying users who are on-line.
59 o New module: rlm_nsupdate (dyndns). Because dynamic addresses are
60   cruel.
61 o New module: rlm_perl.
62
63 WILL NOT TO:
64 o module initialization AFTER forking, not before.
65         --- The modules should NOT be setting up any process-dependent
66         --- information.
67
68 o there should be a way that radius itself could
69   rotate the wtmp file properly. It should write "logout" records for
70   all users, move the file to wtmp.0, and create a new wtmp file with
71   "login" records for all currently online users.
72         --- This work is for an external process to do ---
73
74 DONE:
75 o modular radutmp and radwtmp, as per Alan Curry's old patches.
76 o Fix multiple/conflicting VALUE names as pointed out on the list.
77    e.g. 'Rlogin' has different values when used with different ATTRIBUTEs,
78 o go through *.c and *.h, adding comments at the top with a copyright,
79   and a GPL license.
80 o Integrated Alan Curry's module failover patch.
81 o add more support for new configuration files
82 o Fixed potentially long locks on radutmp file by radcheck thread
83   This means unlocking the file, forking checkrad, and then locking
84   the file again.
85 o get rlm_unix to work with multiple instances
86 o partial split of rlm_files into rlm_fastusers and rlm_detail
87 o enable server to run in threaded mode
88 o rlm_realm module for COMPLETE control of proxying on any attribute
89 o re-transmits of proxied packets
90 o operator support in pairmove.
91 o stripping Prefix/Suffix in accounting
92 o new configuration file /etc/raddb/radius.conf
93 o Radius proxy support.
94 o Max-Simultaneous-Use parameter to avoid double logins.
95 o Specify a program to be run on succesful login
96 o Prefix/Suffix support
97 o Change radutmp format to v2 (see radutmp.h)
98 o move radutmp to /var/log ?
99 o Compatibility with radius-2.0
100 o Support for pidfile
101 o Configurable logging: both radutmp/radwtmp and details files
102 o session_id is not numeric but an 8-byte (?) string !
103 o Detect reboot packet sent by portmaster and clear radutmp / wtmp
104 o Seperate /etc/raddb/clients into public and private file (secret == secret!)
105   Add ts-type field to clients file for checklogin.pl
106   Better: return clients to old form (no shortname) and add a new file,
107   "nas" or so. Matching on this file is done based on Nas-Ip-Address
108   instead of the IP address of the sender. Better if there's a proxy
109   in between.
110 o Allow spaces in usernames (using " or \ to escape)
111 o Return Proxy-State A/V pairs, in the right order.
112 o retransmits from the terminal server get proxied with
113   a new ID and random_vector. We should check for this!
114 o Limit logins based on time/date 
115   (for example, Login-Hour = 8-18, Login-Day = 0-5 for business hours)
116 o take out host-order IP addresses
117 o Support Connect-Rate