summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorolavmrk <olavmrk@a716ebb1-153a-0410-b759-cfb97c6a1b53>2011-05-18 10:48:57 +0000
committerolavmrk <olavmrk@a716ebb1-153a-0410-b759-cfb97c6a1b53>2011-05-18 10:48:57 +0000
commitc8c66851d89789b633b7040922e1eb49547a2a70 (patch)
treefc7999e0b54c5fd16e2b74851698c3ec2d5868a8
parentf0426721e0907c87e214329ab7d4cf2c06116110 (diff)
downloadmod_auth_mellon-c8c66851d89789b633b7040922e1eb49547a2a70.tar.gz
mod_auth_mellon-c8c66851d89789b633b7040922e1eb49547a2a70.tar.xz
mod_auth_mellon-c8c66851d89789b633b7040922e1eb49547a2a70.zip
Change am_get_idp() to use providers from LassoServer.
git-svn-id: https://modmellon.googlecode.com/svn/trunk@124 a716ebb1-153a-0410-b759-cfb97c6a1b53
-rw-r--r--auth_mellon_handler.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/auth_mellon_handler.c b/auth_mellon_handler.c
index b299ee3..b416610 100644
--- a/auth_mellon_handler.c
+++ b/auth_mellon_handler.c
@@ -344,14 +344,17 @@ static const char *am_first_idp(request_rec *r)
*/
static const char *am_get_idp(request_rec *r)
{
- am_dir_cfg_rec *cfg = am_get_dir_cfg(r);
+ LassoServer *server;
const char *idp_provider_id;
- const char *idp_metadata_file;
+
+ server = am_get_lasso_server(r);
+ if (server == NULL)
+ return NULL;
/*
* If we have a single IdP, return that one.
*/
- if (apr_hash_count(cfg->idp_metadata_files) == 1)
+ if (g_hash_table_size(server->providers) == 1)
return am_first_idp(r);
/*
@@ -367,10 +370,7 @@ static const char *am_get_idp(request_rec *r)
"Could not urldecode IdP discovery value.");
idp_provider_id = NULL;
} else {
- idp_metadata_file = apr_hash_get(cfg->idp_metadata_files,
- idp_provider_id,
- APR_HASH_KEY_STRING);
- if (idp_metadata_file == NULL)
+ if (g_hash_table_lookup(server->providers, idp_provider_id) == NULL)
idp_provider_id = NULL;
}
@@ -2641,7 +2641,6 @@ static int am_handle_probe_discovery(request_rec *r) {
if (value == NULL) {
/* idp not in list, try the next one */
- idp = NULL;
continue;
} else {
/* idp in list, use the value as the ping url */