From 8d3dc99d8a51e06d8841470601d014b16713ffeb Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 26 Sep 2013 16:38:05 +0200 Subject: id-ff/login.c: initialize role status of sp and idp in lasso_login_init_authn_request --- lasso/id-ff/login.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index 601cf125..3210fa04 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -1519,11 +1519,15 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID { LassoProfile *profile; LassoProvider *remote_provider; + LassoServer *server = NULL; LassoSamlpRequestAbstract *request; + lasso_error_t rc = 0; g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); profile = LASSO_PROFILE(login); + lasso_extract_node_or_fail(server, profile->server, SERVER, + LASSO_PROFILE_ERROR_MISSING_SERVER); /* clean state */ lasso_release_string (profile->remote_providerID); @@ -1542,6 +1546,9 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID if (LASSO_IS_PROVIDER(remote_provider) == FALSE) return critical_error(LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND); + remote_provider->role = LASSO_PROVIDER_ROLE_IDP; + server->parent.role = LASSO_PROVIDER_ROLE_SP; + IF_SAML2(profile) { return lasso_saml20_login_init_authn_request(login, http_method); } @@ -1572,7 +1579,9 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID lasso_assign_string(LASSO_LIB_AUTHN_REQUEST(profile->request)->RelayState, profile->msg_relayState); - return 0; +cleanup: + + return rc; } -- cgit