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