Niko Tyni [Wed, 20 May 2009 09:11:19 +0000 (12:11 +0300)]
make_passwd: only use 'inlen' bytes of the input string
In some situations (at least a roundtrip through the rlm_perl module)
the User-Password value pair can have extra non-null bytes at the end
so that strlen(vp->data.strvalue) > vp->length.
These extra bytes shold not be used by make_passwd to construct the
Message-Authenticator, so copy just 'inlen' bytes of the input string
before rounding up the length.
Alan T. DeKok [Tue, 19 May 2009 06:56:33 +0000 (08:56 +0200)]
Added send/recv CoA methods to the server.
Many modules have been updated to be able to process CoA packets.
The server core has been updated to process CoA packets. However,
it does not yet actually listen on a CoA port.
Alan T. DeKok [Fri, 8 May 2009 13:40:07 +0000 (15:40 +0200)]
Expose radius_get_vp, and make switch {} use it
This allows bare words to be used for switch statements. If the
statement is a bare word, the server looks for a VALUE_PAIR of that
name, and prints its value.
Alan T. DeKok [Thu, 7 May 2009 08:43:27 +0000 (10:43 +0200)]
Add option "include_length" for TTLS, too.
We've always set it to "yes" in the past, by inheriting the
value from the TLS configuration. In contrast, PEAP always sets it
to "no".
However... RFC 5281 says that we should set it to "no". Since the
previous code works with everyone, we don't want to change the
defaults. But we DO add the flag that allows it to be RFC compliant.y
Alan T. DeKok [Wed, 29 Apr 2009 15:02:11 +0000 (17:02 +0200)]
When not responding, wait longer for cleanups.
wait max_request_time, not cleanup_delay to clean up packets
that we're not responding to. This means that we don't clean up
after 5s, and the re-process the packet.
Instead, we just look at the cached packet, and don't respond
Alan T. DeKok [Thu, 23 Apr 2009 08:20:24 +0000 (10:20 +0200)]
Created and use virtual_server_t structure
The module loading code is now abstracted to load and look for modules
ONLY by virtual server. Each virtual server has its own component
tree, that is not shared with any other virtual server.
The virtual servers themselves are now in a simple hash table, which
lets them be dynamically reloaded.
Alan T. DeKok [Sat, 18 Apr 2009 06:41:06 +0000 (08:41 +0200)]
Removed LICENSE and re-generated "configure"
The main FreeRADIUS source has the same LICENSE, so it doesn't
need to be here, too.
The "configure" scripts in the server are all generated on the same
machine, using the same version of autoconf. That seems to ensure
that the autoconf magic is happy.
Alan T. DeKok [Fri, 17 Apr 2009 13:12:30 +0000 (15:12 +0200)]
Allow operations OTHER than == to work for Packet-Src-IP-Address
... and associated virtual attributes.
The issue is that the paircompare_register'd functions return 0
for match, and 1 for didn't match. This is wrong. They should just
return the results of the comparison. And then radius_callback_compare
should check the results of the comparison against the operators,
to see if the CONDITION succeeded or failed.
Alan T. DeKok [Sat, 11 Apr 2009 07:32:39 +0000 (09:32 +0200)]
Fixed detail file handler to not go crazy
In short, the detail timer events are now inserted with a
saved fr_event_t. This allows *existing* timer events to be deleted
when a new one is added. The previous code would *add* timer events
on top of the existing ones, causing geometric increases in the
number of polls per second.
Also, re-arranged the detail && listener code so that there's only
one location where the timer gets inserted, and only one location
where the delays get propogated from the detail to the event handlers
Alan T. DeKok [Thu, 26 Mar 2009 22:07:17 +0000 (15:07 -0700)]
Allow fast clients to send packets, too
This is for performance testing. For speed, the server doesn't have
locks all over the place. However, this means that when it runs threaded,
the client can receive the response, and send a new one using the same
ID, before the child thread has a chance to update child_state.