From db7d90bf75903b6118167640619143f627be80c9 Mon Sep 17 00:00:00 2001 From: aland Date: Mon, 20 Nov 2000 18:59:13 +0000 Subject: [PATCH] changes as per latest discussion on the list --- todo/TODO | 68 +++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/todo/TODO b/todo/TODO index cbb4e92..2a99184 100644 --- a/todo/TODO +++ b/todo/TODO @@ -1,10 +1,13 @@ URGENT: -o UPDATE accounting requests aren't handled as in 1.5.4.3 for wtmp - Is this a problem ? Need to fix in rlm_unix.c -o Fix potentially long locks on radutmp file by radcheck thread +o Integrate Alan Curry's module failover patch. This can be done within + a few days if it's agreed that it's a good thing. I certainly think + it is. +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 module initialization AFTER forking, not before. o merge OSF/OSFIA patches from Cistron. @@ -15,15 +18,11 @@ o go through all of the code, removing unnecessary #include's, and platforms. o go through *.c and *.h, adding comments at the top with a copyright, and a GPL license. -o add more support for new configuration files -o replace the module_t method table with a set of register_* functions - (so different instances of the same module can offer different - methods) -o get rlm_sql to work with multiple instances -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 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.. +o rad_malloc() fixes: child processes/threads ALWAYS kill themselves + if malloc() failes. The main server process does a 'sleep' for N + seconds, and tries again. After T tries, it gives up, and calls exit(). LOW PRIORITY: o Write better documentation @@ -32,23 +31,29 @@ o Fix all FIXME's in the source. o Fix DBM support: - Multiple defaults (done) - Fallthrough (hard for not DEFAULT entries) -o there should be a way that radius itself could - rotate the wtmp file properly. It should write "logout" records for - all users, move the file to wtmp.0, and create a new wtmp file with - "login" records for all currently online users. 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 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 New module: rlm_fastradwtmp. with a radutmp-style active session - database to guarantee wtmp records are always written in matching - pairs. Because radlast is slow. 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. -WAIT UNTIL NEXT RELEASE +WAIT UNTIL NEXT RELEASE: +o UPDATE accounting requests aren't handled as in 1.5.4.3 for wtmp + Is this a problem ? Need to fix in rlm_unix.c +o New module: rlm_fastradwtmp. with a radutmp-style active session + database to guarantee wtmp records are always written in matching + pairs. Because radlast is slow. +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) o enable server to run with child processes (This is a little more difficult than the threading changes) o switch all timers from time() to gettimeofday() so processing is @@ -58,7 +63,22 @@ o New module: rlm_nsupdate (dyndns). Because dynamic addresses are cruel. o New module: rlm_perl. +WILL NOT TO: +o module initialization AFTER forking, not before. + --- The modules should NOT be setting up any process-dependent + --- information. + +o there should be a way that radius itself could + rotate the wtmp file properly. It should write "logout" records for + all users, move the file to wtmp.0, and create a new wtmp file with + "login" records for all currently online users. + --- This work is for an external process to do --- + DONE: +o add more support for new configuration files +o Fixed potentially long locks on radutmp file by radcheck thread + This means unlocking the file, forking checkrad, and then locking + the file again. o get rlm_unix to work with multiple instances o partial split of rlm_files into rlm_fastusers and rlm_detail o enable server to run in threaded mode -- 2.1.4