chainsaw 14/09/24 13:13:30 Added: 0.4.6-fallback-support.diff Log: Support server fallback if the primary does not respond, patch by Austin Kauffman with some improvements from InterWorking Labs. Explicitly depend on the Apache server, closes bug #514260 by Patrick "bonsaikitten" Lauer. (Portage version: 2.2.13/cvs/Linux x86_64, signed Manifest commit with key 0xB5058F9A)
Revision Changes Path 1.1 www-apache/mod_auth_xradius/files/0.4.6-fallback-support.diff file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_auth_xradius/files/0.4.6-fallback-support.diff?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_auth_xradius/files/0.4.6-fallback-support.diff?rev=1.1&content-type=text/plain Index: 0.4.6-fallback-support.diff =================================================================== diff -uNr mod_auth_xradius-0.4.6.ORIG/src/mod_auth_xradius.c mod_auth_xradius-0.4.6/src/mod_auth_xradius.c --- mod_auth_xradius-0.4.6.ORIG/src/mod_auth_xradius.c 2014-09-24 13:41:22.990073508 +0100 +++ mod_auth_xradius-0.4.6/src/mod_auth_xradius.c 2014-09-24 13:50:17.204100114 +0100 @@ -125,15 +125,15 @@ rctx = xrad_auth_open(); /* Loop through the array of RADIUS Servers, adding them to the rctx object */ - sr = (xrad_server_info *) dc->servers->elts; for (i = 0; i < dc->servers->nelts; ++i) { - rc = xrad_add_server(rctx, sr[i].hostname, sr[i].port, sr[i].secret, + sr = &(((xrad_server_info*)dc->servers->elts)[i]); + rc = xrad_add_server(rctx, sr->hostname, sr->port, sr->secret, dc->timeout, dc->maxtries); if (rc != 0) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "xradius: Failed to add server '%s:%d': (%d) %s", - sr[i].hostname, sr[i].port, rc, xrad_strerror(rctx)); + sr->hostname, sr->port, rc, xrad_strerror(rctx)); goto run_cleanup; } } @@ -294,7 +294,7 @@ /* To properly use the Pools, this array is allocated from the here, instead of inside the directory configuration creation function. */ if (dc->servers == NULL) { - dc->servers = apr_array_make(parms->pool, 4, sizeof(xrad_server_info*)); + dc->servers = apr_array_make(parms->pool, 4, sizeof(xrad_server_info)); } sr = apr_array_push(dc->servers);
