]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
clean up and update todo's
authorAlan T. DeKok <aland@freeradius.org>
Fri, 25 Aug 2017 18:31:45 +0000 (14:31 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 25 Aug 2017 18:31:45 +0000 (14:31 -0400)
src/modules/rlm_radius/TODO.md

index b703f0e03c086f30abf6e30649689b5ed2c7e975..32bd307596020dd8d9ba60336509ee956c86bbcd 100644 (file)
@@ -1,15 +1,30 @@
 # rlm_radius
 
-### RADIUS fixes on retransmits
-
-* don't do `u->packet = talloc_memdup()` if we're going to edit the
-  packet
+## RADIUS fixes
 
 * delete rr->id and re-allocate it on retransmit if the packet changes
   * if the IDs are all allocated, a delete / re-allocate means that it
     gets the same ID.  So we might as well just do that all of the time.
 
-### Limits
+* ensure that the retransmission is independent of which connection
+  the packet is sent on.  This means keeping the various timers in 'u'
+  instead of in 'rr'.  i.e. if a connection closes, the packet should
+  just retransmit on a new connection.
+
+## connection state
+
+* CONN_UNUSED isn't used...
+
+* CONN_STATUS_CHECKS isn't used... it's probably not useful, and
+  should be deleted.
+
+* add configurable timers for response_window (see @todo in rlm_radius_udp)
+  * for synchronous proxying.
+
+* maybe move Status-Server to fixed-time pings, as recommended in RFC 3539?
+  * low priority, and probably not useful
+
+## Limits
 
 * limit the maximum number of proxied packets
 * limit the maximum number of outgoing connections
@@ -20,8 +35,18 @@ instead rely on the other end to do some kind of push-back.  (HA!)
 
 We should limit the number of outgoing connections, tho.
 
-### Status Checks
+## Status Checks
     
+* connection negotiation in Status-Server
+  * some is there (Response-Length)
+  * add more?  Extended ID, etc.
+
+* enable editing of the contents of status check packets, specifically
+  for Access-Request, etc. which need a User-Name
+
+* it's probably better to just have an "update" section than manual
+  configs?
+
     status_checks {
        type = Status-Server 
        # mrt, irt, mrc taken from another section, as per Access-Request, etc.
@@ -38,9 +63,22 @@ We should limit the number of outgoing connections, tho.
     }
 
 
-## miscellaneous
+## Core Issues
+
+things to do in the server core.  Tracked here because it's related to
+the work in rlm_radius.
 
-* double-check ENABLE_SKIPS in src/lib/io/channel.c
+## Cleanup_delay
+
+* need to double-check cleanup_delay
+  * it works, but it's likely set too small?
+  * especially if the client retransmits are 10s?
+  * or maybe it was the dup detection bug (timestamp) where it didn't detect dups...
+
+## sequence / ACK in network / worker
+
+* double-check ENABLE_SKIPS in src/lib/io/channel.c.  It's disabled
+  for now, as it caused problems.  So it ALWAYS signals the other side. :(
 
 We should move to a "must_signal" approach, as with the network side
 The worker should suppress signals if it sees that the ACKs from the
@@ -63,30 +101,7 @@ SLEEPING    N <- W (no packet, queue is 1, inactive)
 We also need an "must_signal" flag, for if the other end is
 sleeping... the network always sets it, I guess..
 
-What else...
-
-* need to move to queue depth / active flag in channels / network / worker
-  * the current ACK, and "my_view_of_their_shit" is just too complex
-
-* need to double-check cleanup_delay
-  * it works, but it's likely set too small?
-  * especially if the client retransmits are 10s?
-  * or maybe it was the dup detection bug (timestamp) where it didn't detect dups...
-
-* really need to add dup and conflicting packet detection to the core..
-  * which lets Status-Server get processed, and synchronous proxying
-  * add cancel / signal handler in rlm_radius.
-
-* ensure that the retransmission is independent of which connection
-the packet is sent on.  This means keeping the various timers in 'u'
-instead of in 'rr'.  i.e. if a connection closes, the packet should
-just retransmit on a new connection.
-
-* connection negotiation in Status-Server
-
-* `status_check = auto`, which picks it up from the list of allowed
-packet types.  We then need to require config for username / password,
-for Access-Request, and just username for Accounting-Request.
+### Fork
 
 * fix fork
 
@@ -101,14 +116,9 @@ for Access-Request, and just username for Accounting-Request.
   child REQUEST async stuff with listen, protocol handler, etc.
 
 * fork also needs to do this sanity check on compile, so that it knows
-  it can dereference things which exist...
-
-## connection state
-
-* CONN_UNUSED isn't used...
+  it can dereference sections which exist...
 
-* CONN_STATUS_CHECKS isn't used...that needs to be fixed
-
-* add configurable timers for response_window (see @todo in rlm_radius_udp)
+### Add parallel
 
-*
\ No newline at end of file
+mostly like fork, as each request is run independently.  They can
+update the parent manually if they so desire.