Added, and documented "fallback" in home server pool
authoraland <aland>
Mon, 14 Apr 2008 08:09:29 +0000 (08:09 +0000)
committeraland <aland>
Mon, 14 Apr 2008 08:09:29 +0000 (08:09 +0000)
doc/ChangeLog
raddb/proxy.conf
src/main/realms.c

index f8d761d..bd7de6c 100644 (file)
@@ -1,10 +1,25 @@
 FreeRADIUS 2.0.4 ; $Date$ , urgency=medium
        Feature improvements
+       * Allow "virtual_server" in "realm" and "home_server" sections.
+         See raddb/proxy.conf and raddb/sites-available/virtual.example.com.
+       * Allow "passwd" module to be listed in "authorize" and "post-auth".
+       * Added "fallback" to "home_server_pool" configuration, to handle
+         the case of all home servers being dead.  See raddb/proxy.conf
+
        Bug fixes
+       * Install all files in raddb/sites-available
        * Allow non-threaded builds.
-       * Don't treat '0x' as special for known attributes.
-
-
+       * Don't treat '0x' as special for known attributes that are not
+         of type "octets".
+       * Fix log error in rlm_pap.
+       * Remove documentation about non-existent functionality.
+       * Updated warning messages in debug output.
+       * Fix handling of timeouts in rlm_ldap that affected 64-bit systems.
+         This fix was supposed to go into 2.0.3, but did not make it.
+       * Fix event handling in debug mode for failed proxy requests.
+       * Fix memleak in fifos.  Closes #537.
+       * Fix memleak on blocked threads.  Closes #538.
+       
 FreeRADIUS 2.0.3 ; Date: 2008/03/17 09:22:17  , urgency=medium
        Feature improvements
        * Updated raddb/certs/ca.cnf with extensions to allow ca.der
index 8a6852d..ded7673 100644 (file)
@@ -324,6 +324,10 @@ home_server localhost {
        num_answers_to_alive = 3
 }
 
+# Sample virtual home server.
+home_server virtual.example.com {
+           virtual_server = virtual.example.com
+}
 
 ######################################################################
 #
@@ -434,6 +438,17 @@ home_server_pool my_auth_failover {
        # home_server = bar.example.com
        # home_server = baz.example.com
        # home_server = ...
+
+
+       #
+       #  If ALL home servers are dead, then this "fallback" home server
+       #  is used.  If set, it takes precedence over any realm-based
+       #  fallback, such as the DEFAULT realm.
+       #
+       #  For reasons of stability, this home server SHOULD be a virtual
+       #  server.  Otherwise, the fallback may itself be dead!
+       #
+       #fallback = virtual.example.com
 }
 
 ######################################################################
index 27b4c66..b64c816 100644 (file)
@@ -1555,6 +1555,14 @@ home_server *home_server_ldb(const char *realmname,
        if (found) return found;
 
        /*
+        *      There's a fallback if they're all dead.
+        */
+       if (pool->fallback &&
+           (pool->fallback->state == HOME_STATE_ALIVE)) {
+               return pool->fallback;
+       }
+
+       /*
         *      No live match found, and no fallback to the "DEFAULT"
         *      realm.  We fix this by blindly marking all servers as
         *      "live".  But only do it for ones that don't support