freeradius.git
14 years agoCorrected documentation
Alan T. DeKok [Tue, 27 Apr 2010 09:02:54 +0000 (11:02 +0200)]
Corrected documentation

14 years agoTry to fix link issues, as posted to the list
Alan T. DeKok [Tue, 27 Apr 2010 07:47:38 +0000 (09:47 +0200)]
Try to fix link issues, as posted to the list

14 years agoUse rebind_proc only if args==3
Alan T. DeKok [Tue, 27 Apr 2010 07:46:37 +0000 (09:46 +0200)]
Use  rebind_proc only if args==3

This means that systems which have args != 3 will still build

14 years agoWork around for bug #35.
Alan T. DeKok [Mon, 26 Apr 2010 15:24:41 +0000 (17:24 +0200)]
Work around for bug #35.

The packet is apparently getting freed when the request structure is still
in the list.  Since it's hard to tell when / why this is happening,
the short-term fix is to work around it.

It's better to leak memory slowly than to crash quickly.

14 years agoRemove from proxy hash after packet has been verified
Alan T. DeKok [Mon, 26 Apr 2010 17:56:54 +0000 (19:56 +0200)]
Remove from proxy hash after packet has been verified

This avoids some esoteric conditions where an attacker who can monitor
the RADIUS packet stream could cause the server to sometimes forget
about packets that it proxied.

Also cleaned up other issues related to counters (home/listener) when
proxying.

14 years agoAdded prototype
Alan T. DeKok [Mon, 26 Apr 2010 13:38:30 +0000 (15:38 +0200)]
Added prototype

14 years agoMore WITH_PROXY fixes
Alan T. DeKok [Mon, 26 Apr 2010 13:32:29 +0000 (15:32 +0200)]
More WITH_PROXY fixes

14 years agoAttributes for "cisco vsa hack" don't need to be string
Alan T. DeKok [Wed, 21 Apr 2010 06:57:29 +0000 (08:57 +0200)]
Attributes for "cisco vsa hack" don't need to be string

14 years agoBetter error messages for missing brace
Alan T. DeKok [Wed, 21 Apr 2010 06:56:54 +0000 (08:56 +0200)]
Better error messages for missing brace

14 years agoAllow to build without pthreads
Alan T. DeKok [Wed, 21 Apr 2010 06:55:00 +0000 (08:55 +0200)]
Allow to build without pthreads

14 years agoFix build error
Alan T. DeKok [Mon, 26 Apr 2010 13:57:40 +0000 (15:57 +0200)]
Fix build error

14 years agoPrint out helpful error if a realm regex can't be parsed
Alan T. DeKok [Wed, 21 Apr 2010 06:52:56 +0000 (08:52 +0200)]
Print out helpful error if a realm regex can't be parsed

14 years agoPrefer IPv4.
Alan T. DeKok [Wed, 21 Apr 2010 06:52:21 +0000 (08:52 +0200)]
Prefer IPv4.

14 years agoAdded WITH_PROXY to allow it to build without proxying
Alan T. DeKok [Wed, 21 Apr 2010 06:51:58 +0000 (08:51 +0200)]
Added WITH_PROXY to allow it to build without proxying

14 years agoDon't block when doing 'exec wait', and reading from pipe.
Alan T. DeKok [Fri, 16 Apr 2010 14:12:01 +0000 (16:12 +0200)]
Don't block when doing 'exec wait', and reading from pipe.

If the child is slow, then reading from the pipe will block until
the child exits.  This will happen even if we intend later to wait
only 10 seconds for the child pid.

The solution is to call select() on the pipe.  After 10 seconds,
if no progress has been made: kill -TERM the child, close the pipe,
and clean up the child PID.

14 years agoappend tunneled reply, rather than moving it
Alan T. DeKok [Wed, 14 Apr 2010 03:00:39 +0000 (05:00 +0200)]
append tunneled reply, rather than moving it

This means that the operators are ignored, and any proxied
packet (with operators '=' for multiple VSAs of the same name) will
get handled properly.

14 years agoFix node comparison on delete
Alan T. DeKok [Wed, 14 Apr 2010 02:59:26 +0000 (04:59 +0200)]
Fix node comparison on delete

This could be the cause of bug #35.

14 years agoFixed typo. This should help divorce CoA from normal packets.
Alan T. DeKok [Tue, 13 Apr 2010 13:16:10 +0000 (15:16 +0200)]
Fixed typo.  This should help divorce CoA from normal packets.

The previous fix worked, but this one is the real source of the bug

14 years agoPrint out hex for invalid data in PEAP tunnel.
Alan T. DeKok [Mon, 12 Apr 2010 09:36:52 +0000 (11:36 +0200)]
Print out hex for invalid data in PEAP tunnel.

This helps debug issues.

Also change the "had sent TLV failure" message to a LONG set of
instructions for people who can't be bothered reading the debug output.

14 years agoMake request->number unsigned
Alan T. DeKok [Fri, 9 Apr 2010 14:53:03 +0000 (16:53 +0200)]
Make request->number unsigned

So that we don't print negative numbers

14 years agoEnsure correct build order
Alan T. DeKok [Fri, 9 Apr 2010 10:17:36 +0000 (12:17 +0200)]
Ensure correct build order

include -> lib -> modules -> main

14 years agoMake subdirs before modules
Alan T. DeKok [Thu, 8 Apr 2010 07:59:55 +0000 (09:59 +0200)]
Make subdirs before modules

Fixes "cannot build from clean directory" problem after switching to
the new method of using "make" for recursing into subdirs

14 years agoAdd missing 'break' to escape '%' properly.
Alan T. DeKok [Tue, 6 Apr 2010 23:59:57 +0000 (01:59 +0200)]
Add missing 'break' to escape '%' properly.

14 years agoOn DHCP Discover fail, don't send a NAK
Alan T. DeKok [Tue, 6 Apr 2010 23:58:00 +0000 (01:58 +0200)]
On DHCP Discover fail, don't send a NAK

Instead, just don't respond

14 years agoCatch corner case of update disconnect in post-auth
Alan T. DeKok [Wed, 31 Mar 2010 14:19:28 +0000 (16:19 +0200)]
Catch corner case of update disconnect in post-auth

If we proxy packets, we don't want to send disconnect, too

14 years agoFixed typo
Alan T. DeKok [Wed, 31 Mar 2010 13:33:19 +0000 (15:33 +0200)]
Fixed typo

14 years agoCorrect realm regex examples, and creation of REALM for them
Alan T. DeKok [Wed, 31 Mar 2010 13:06:52 +0000 (15:06 +0200)]
Correct realm regex examples, and creation of REALM for them

The old examples were wrong.  The old code created the Realm
attribute with value of the regex... rather than the actual realm name.

Closes bug #40

14 years agoAllow the "server" field to be blank
Alan T. DeKok [Wed, 31 Mar 2010 09:32:38 +0000 (11:32 +0200)]
Allow the "server" field to be blank

People run into "" != NULL

14 years agoMade 'reconfig' target use PHONY subdirectories, too
Alan T. DeKok [Wed, 31 Mar 2010 09:25:08 +0000 (11:25 +0200)]
Made 'reconfig' target use PHONY subdirectories, too

And added reconfig targets all over the place.  This means that
we can do "make reconfig" from (almost) anywhere, and have it work.

14 years agoMade 'reconfig' target use PHONY subdirectories, too
Alan T. DeKok [Wed, 31 Mar 2010 09:25:08 +0000 (11:25 +0200)]
Made 'reconfig' target use PHONY subdirectories, too

And added reconfig targets all over the place.  This means that
we can do "make reconfig" from (almost) anywhere, and have it work.

14 years agoMove to using phony targets for subdirectories
Alan T. DeKok [Wed, 31 Mar 2010 08:55:39 +0000 (10:55 +0200)]
Move to using phony targets for subdirectories

14 years agoMinor change to error output for clarity
Alan T. DeKok [Tue, 30 Mar 2010 14:13:03 +0000 (16:13 +0200)]
Minor change to error output for clarity

14 years agoRe-open log file after HUP.
Alan T. DeKok [Tue, 30 Mar 2010 14:12:06 +0000 (16:12 +0200)]
Re-open log file after HUP.

This should have been committed in 6563dac620f, but was missed for some
reason.

14 years agoRevert "= NULL" checks. They should be "IS NULL"
Alan T. DeKok [Tue, 30 Mar 2010 14:06:15 +0000 (16:06 +0200)]
Revert "= NULL" checks.  They should be "IS NULL"

14 years agoMove to using phony targets for subdirectories.
Alan T. DeKok [Tue, 30 Mar 2010 14:04:23 +0000 (16:04 +0200)]
Move to using phony targets for subdirectories.

This removes the explicit shell loop over subdirs, which means that
the main "make" program now tracks all dependencies.  I've also updated
some dependencies to be correct.  Now "make -j 4" will work.

14 years agoCheck for closed sockets.
Alan T. DeKok [Tue, 9 Mar 2010 09:12:01 +0000 (10:12 +0100)]
Check for closed sockets.

This allows the module to continue if the DB suddenly disappears

14 years agoAllow IPv6 to bind to interface with scope.
Alan T. DeKok [Sat, 6 Mar 2010 14:45:08 +0000 (15:45 +0100)]
Allow IPv6 to bind to interface with scope.

A follow-on to the previous patch.

14 years agoAdd IPv6 "scope" for link-local addresses.
Alan T. DeKok [Sat, 6 Mar 2010 13:26:27 +0000 (14:26 +0100)]
Add IPv6 "scope" for link-local addresses.

Added to fr_ipaddr_t.
fr_ipaddr_cmp(), fr_sockaddr2ipaddr(), fr_ipaddr2sockaddr().

Also made ip_hton() call fr_sockaddr2ipaddr() to prevent code duplication.

14 years agoCheck for AF_INET6, not HAVE_AF_INET6
Alan T. DeKok [Sat, 6 Mar 2010 11:40:23 +0000 (12:40 +0100)]
Check for AF_INET6, not HAVE_AF_INET6

HAVE_AF_INET6 isn't defined, AF_INET6 is.

14 years agoWork around implementation-dependent shift results
Alan T. DeKok [Sat, 6 Mar 2010 11:13:54 +0000 (12:13 +0100)]
Work around implementation-dependent shift results

uint32 foo = ~0;

foo <<= 32;

Q: what's foo?
A: undefined.

14 years agoCalculate IPv6 netmask correctly.
Alan T. DeKok [Sat, 6 Mar 2010 10:03:33 +0000 (11:03 +0100)]
Calculate IPv6 netmask correctly.

Closes bug #69

14 years agoReceive CoA packets when they have been separated from parents
Alan T. DeKok [Sat, 6 Mar 2010 07:48:06 +0000 (08:48 +0100)]
Receive CoA packets when they have been separated from parents

Otherwise, the code thinks that there is a proxy reply WITHOUT
an original reply..

There's still likely a bug, as the CoA request->reply is built BEFORE
the original->reply.  The post-proxy CoA work should very likely have
complete access to the original reply packet type

14 years agoClean up log file handling. Fixes bug #63
Alan T. DeKok [Fri, 26 Feb 2010 10:11:02 +0000 (11:11 +0100)]
Clean up log file handling.  Fixes bug #63

We now open the log file from the option parsing (-l file)
OR in mainconfig.c.  That way, the code in log.c can assume that
there is ALWAYS a log file, and it doesn't need to open one.  This
simplifies log.c substantially.

We also moved the syslog "openlog" code from log.c to mainconfig.c
This again makes it simpler.

On HUP, the hup_mainconfig() function takes care of re-opening the
log file.  This is so that the log.c functions don't have to do it.

14 years agoAs posted to the list
Alan T. DeKok [Fri, 26 Feb 2010 09:31:59 +0000 (10:31 +0100)]
As posted to the list

14 years agoSwitch default for acct realms to "no_response_fail"
Alan T. DeKok [Tue, 16 Feb 2010 16:47:27 +0000 (17:47 +0100)]
Switch default for acct realms to "no_response_fail"

Since accounting packets aren't re-tried, failing one packet over
from one server to another isn't a good idea.

14 years agoAdded sample CoA server
Alan T. DeKok [Thu, 11 Feb 2010 11:44:24 +0000 (12:44 +0100)]
Added sample CoA server

14 years agoMake it consisent with the example in decoupled-accounting
Alan T. DeKok [Thu, 11 Feb 2010 09:38:20 +0000 (10:38 +0100)]
Make it consisent with the example in decoupled-accounting

14 years agoAs posted to the list
Alan T. DeKok [Thu, 11 Feb 2010 09:36:51 +0000 (10:36 +0100)]
As posted to the list

14 years agoRan it through the formatter.
Alan T. DeKok [Thu, 11 Feb 2010 09:36:26 +0000 (10:36 +0100)]
Ran it through the formatter.

14 years agoAdd more information to warning message
Alan T. DeKok [Thu, 11 Feb 2010 09:33:19 +0000 (10:33 +0100)]
Add more information to warning message

Component && module, if a child thread is stuck for a long time.

14 years agoFunction returns no value
Alan T. DeKok [Thu, 11 Feb 2010 09:41:29 +0000 (10:41 +0100)]
Function returns no value

14 years agoQuiet compiler warnings
Alan T. DeKok [Thu, 11 Feb 2010 09:32:20 +0000 (10:32 +0100)]
Quiet compiler warnings

14 years agoDo waitpid() for ALL children, even if there are no threads waiting
Alan T. DeKok [Thu, 11 Feb 2010 09:24:57 +0000 (10:24 +0100)]
Do waitpid() for ALL children, even if there are no threads waiting

i.e. call radius_exec_program() 4 times for each packet, each
with "nowait".  The "reap_children" function is called ONCE per packet,
and was calling waitpid() ONCE if there were no threads waiting
for a child.

This change makes it KEEP waiting until there are no more children
to wait for.

14 years agoFixes to build without TCP
Alan T. DeKok [Thu, 4 Feb 2010 17:09:22 +0000 (18:09 +0100)]
Fixes to build without TCP

14 years agoAdded note on global CA
Alan T. DeKok [Thu, 4 Feb 2010 07:50:37 +0000 (08:50 +0100)]
Added note on global CA

14 years agoMake MS-CHAP call xlat on NT-Hash and LM-Password
Alan T. DeKok [Thu, 4 Feb 2010 07:45:12 +0000 (08:45 +0100)]
Make MS-CHAP call xlat on NT-Hash and LM-Password

This moves the "expand variable" code to the correct place.

14 years agoin pairmake_any(), value may be NULL
Alan T. DeKok [Sat, 23 Jan 2010 09:08:55 +0000 (10:08 +0100)]
in pairmake_any(), value may be NULL

14 years agoAs posted to the list
Alan T. DeKok [Sat, 23 Jan 2010 08:05:21 +0000 (09:05 +0100)]
As posted to the list

14 years agoAdded more 'const', and changed stats to %u
Alan T. DeKok [Fri, 22 Jan 2010 12:40:30 +0000 (13:40 +0100)]
Added more 'const', and changed stats to %u

Some tests showed that the stats went over 2^31... and then they
went negative

14 years agoAdded more 'const'
Alan T. DeKok [Fri, 22 Jan 2010 12:40:16 +0000 (13:40 +0100)]
Added more 'const'

14 years agoSet flag CORRECTLY for resumed session
Alan T. DeKok [Fri, 22 Jan 2010 09:41:46 +0000 (10:41 +0100)]
Set flag CORRECTLY for resumed session

14 years agoAdd statistics for detail listeners, too
Alan T. DeKok [Thu, 21 Jan 2010 10:37:21 +0000 (11:37 +0100)]
Add statistics for detail listeners, too

14 years agoCheck for allocation failure
Alan T. DeKok [Thu, 4 Feb 2010 07:59:53 +0000 (08:59 +0100)]
Check for allocation failure

14 years agoPrint the request number on every log line.
Alan T. DeKok [Thu, 4 Feb 2010 07:57:26 +0000 (08:57 +0100)]
Print the request number on every log line.

14 years agoMore useful errors
Alan T. DeKok [Thu, 4 Feb 2010 07:55:43 +0000 (08:55 +0100)]
More useful errors

track total number of open sockets, and print "too many sockets" if
there are too many

14 years agoProperly account for accounting responses from a home server
Alan T. DeKok [Tue, 5 Jan 2010 11:53:30 +0000 (12:53 +0100)]
Properly account for accounting responses from a home server

14 years agoCorrectly handle large attributes
Alan T. DeKok [Tue, 5 Jan 2010 11:52:00 +0000 (12:52 +0100)]
Correctly handle large attributes

14 years agoReset ping variables in home server when marking it zombie
Alan T. DeKok [Mon, 4 Jan 2010 16:50:22 +0000 (17:50 +0100)]
Reset ping variables in home server when marking it zombie

This should only affect situations when a home server doesn't respond
to normal packets, but does respond to "ping" packets.

14 years agoPrepare for 2.1.8, by re-naming version of master to 2.4.0
Alan T. DeKok [Tue, 22 Dec 2009 12:01:43 +0000 (13:01 +0100)]
Prepare for 2.1.8, by re-naming version of master to 2.4.0

14 years agoAdd OpenSSL license exception
Alan T. DeKok [Mon, 21 Dec 2009 11:07:08 +0000 (12:07 +0100)]
Add OpenSSL license exception

14 years agoMake integers unsigned 32-bit, rather than signed
Alan T. DeKok [Mon, 21 Dec 2009 09:46:20 +0000 (10:46 +0100)]
Make integers unsigned 32-bit, rather than signed

14 years agoMove DHCP options to "octets" type
Alan T. DeKok [Sat, 19 Dec 2009 08:33:20 +0000 (09:33 +0100)]
Move DHCP options to "octets" type

14 years agoSimplify stats code, and keep track of dropped versus bad authenticators
Alan T. DeKok [Fri, 18 Dec 2009 13:08:32 +0000 (14:08 +0100)]
Simplify stats code, and keep track of dropped versus bad authenticators

14 years agoMake "dropped packet" message debugging
Alan T. DeKok [Fri, 18 Dec 2009 12:52:50 +0000 (13:52 +0100)]
Make "dropped packet" message debugging

This is so that we don't spam the logs wih a DoS when we get lots
of packets with a bad signature

14 years agoAdded notes on SQL && packets with zero session time
Alan T. DeKok [Fri, 18 Dec 2009 11:31:38 +0000 (12:31 +0100)]
Added notes on SQL && packets with zero session time

14 years agoFix typo in c0d32bd24
Alan T. DeKok [Thu, 17 Dec 2009 10:42:03 +0000 (11:42 +0100)]
Fix typo in c0d32bd24

14 years agoRemoved unnecessary debug message
Alan T. DeKok [Thu, 17 Dec 2009 10:28:12 +0000 (11:28 +0100)]
Removed unnecessary debug message

14 years agoSimplified use of llvm checker
Alan T. DeKok [Thu, 17 Dec 2009 08:35:35 +0000 (09:35 +0100)]
Simplified use of llvm checker

14 years agoEnsure that len > 0
Alan T. DeKok [Tue, 15 Dec 2009 15:01:20 +0000 (16:01 +0100)]
Ensure that len > 0

14 years agoCatch possible NULL pointer on editing attribute list
Alan T. DeKok [Tue, 15 Dec 2009 13:23:47 +0000 (14:23 +0100)]
Catch possible NULL pointer on editing attribute list

14 years agoCatch situations where COA may be NULL
Alan T. DeKok [Tue, 15 Dec 2009 13:17:52 +0000 (14:17 +0100)]
Catch situations where COA may be NULL

14 years agoIf we have "user=foo", and we're ALREADY running as that user, ignore it.
Alan T. DeKok [Tue, 15 Dec 2009 10:52:03 +0000 (11:52 +0100)]
If we have "user=foo", and we're ALREADY running as that user, ignore it.

This prevents us from complaining when "initgroups" is run as non-root

14 years agoFix CVE-2009-3736
Alan T. DeKok [Thu, 10 Dec 2009 10:41:55 +0000 (11:41 +0100)]
Fix CVE-2009-3736

14 years agoTemplate code to use lt_dladvise()
Alan T. DeKok [Wed, 9 Dec 2009 14:48:30 +0000 (15:48 +0100)]
Template code to use lt_dladvise()

The libtool people have discovered that it's useful to allow
*additional* features from linking.  Like allowing libraries to
link to libraries.  Using this magic API allows FreeRADIUS to load
the Perl module, which in turn loads other modules, which in turn
load dynamic libraries.  Right now, it complains because of
limitations in libltdl.

We COULD do these checks in 2.1.8, but that involves either adding
configure checks, OR upgrading our version of libltdl.  We don't want
to do either.

14 years agoAdd datarootdir from bug #51
Alan T. DeKok [Tue, 8 Dec 2009 15:31:02 +0000 (16:31 +0100)]
Add datarootdir from bug #51

14 years agoHandle case where Acct-Session-Time might not exist
Alan T. DeKok [Tue, 8 Dec 2009 13:00:53 +0000 (14:00 +0100)]
Handle case where Acct-Session-Time might not exist

14 years agoAdd %{Attribute-Name#}
Alan T. DeKok [Mon, 7 Dec 2009 12:53:14 +0000 (13:53 +0100)]
Add %{Attribute-Name#}

This prints the numerical value, rather than the decoded time/VALUE

14 years agoAdded notes on use of FreeRADIUS-Acct-Session-Start-Time
Alan T. DeKok [Mon, 7 Dec 2009 12:24:14 +0000 (13:24 +0100)]
Added notes on use of FreeRADIUS-Acct-Session-Start-Time

14 years agoAdded synthetic session start time attribute
Alan T. DeKok [Mon, 7 Dec 2009 12:20:12 +0000 (13:20 +0100)]
Added synthetic session start time attribute

14 years agoMake more errors non-fatal
Alan T. DeKok [Mon, 7 Dec 2009 09:38:51 +0000 (10:38 +0100)]
Make more errors non-fatal

14 years agoAdded sample ntlm_auth module
Alan T. DeKok [Sun, 6 Dec 2009 16:02:08 +0000 (17:02 +0100)]
Added sample ntlm_auth module

14 years agoUse case insensitive comparison. Closes #36
Alan T. DeKok [Sun, 6 Dec 2009 12:54:14 +0000 (13:54 +0100)]
Use case insensitive comparison.  Closes #36

14 years agoPortability fixes, as noted by bug #33
Alan T. DeKok [Sun, 6 Dec 2009 12:51:01 +0000 (13:51 +0100)]
Portability fixes, as noted by bug #33

14 years agoIP pools require a transactional back-end
Alan T. DeKok [Sun, 6 Dec 2009 12:48:14 +0000 (13:48 +0100)]
IP pools require a transactional back-end

So we used InnoDB

14 years agoRemove notes on unsupported configuration items
Alan T. DeKok [Sun, 6 Dec 2009 12:43:59 +0000 (13:43 +0100)]
Remove notes on unsupported configuration items

14 years agoBe more specific about which detail files we suppress
Alan T. DeKok [Sun, 6 Dec 2009 12:39:00 +0000 (13:39 +0100)]
Be more specific about which detail files we suppress

Don't write packets back to the same detail file, but allow them
to be written to different detail files

14 years agoRemoved re-definition of detail structure
Alan T. DeKok [Sun, 6 Dec 2009 12:37:13 +0000 (13:37 +0100)]
Removed re-definition of detail structure

14 years agoMoved detail structure defs to a public header file
Alan T. DeKok [Sun, 6 Dec 2009 12:36:28 +0000 (13:36 +0100)]
Moved detail structure defs to a public header file

14 years agoFix code so that corner cases of %{%{foo}:-%{bar}} work
Alan T. DeKok [Sat, 5 Dec 2009 14:58:19 +0000 (15:58 +0100)]
Fix code so that corner cases of %{%{foo}:-%{bar}} work

The previous code was odd... this code is simpler, and works.

14 years agoRe-set FP after closing it
Alan T. DeKok [Sat, 5 Dec 2009 14:54:08 +0000 (15:54 +0100)]
Re-set FP after closing it