Some recent changes...

Alan DeKok aland at deployingradius.com
Mon Oct 6 11:20:29 CEST 2008


  I've moved git head to using the latest libtool (2.2.4).  This MAY
cause issues, or it MAY solve problems that people have.  There's really
no way to tell until it's tested on a wide variety of systems.

 I've put some effort into fixing the "bind to privileged port" issues.
 It's possible to run the server as an unprivileged user.  In this case,
it will temporarily drop permissions when it starts up, "su" to root to
bind to the ports, and then permanently drop permissions after that.
This helps the server run with the minimum number of permissions.

  I've also moved about 20% of the server code out of src/main, and into
src/modules.  See src/modules/frs_*.

  What are the new modules?  Well... they implement the server code that
handles incoming packets.  when the server sees a "listen" section
saying "type = foo", it tries to load a module "frs_foo".  This works
for auth, acct, control sockets, proxy, "detail" file readers, DHCP, and
VMPS.

  The nice thing about this is that the "weird" code like DHCP && VMPS
is now located only in frs_dhcp && frs_vmps.  i.e. Neither the server
core, nor the RADIUS library know anything about DHCP or VMPS.  This
makes the server core simpler and easier to understand.

  The next step is to move much of the RADIUS state machine code from
src/main to frs_auth && frs_acct.  It's may be a little difficult to do,
but I think it will be worth it in the end.

  Why was this done?  For one, src/main/ was getting big.  The addition
of new protocols like VMPS && DHCP made the build system && internal
server code more complicated.  This change simplifies it again.

  As a side effect, it may make it easier to add new protocols... like
an ARP watch daemon, or pretty much anything else UDP related.

  Alan DeKok.



More information about the Freeradius-Users mailing list