diff options
| -rw-r--r-- | lasso/id-ff/session.c | 25 | ||||
| -rw-r--r-- | lasso/id-ff/session.h | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c index c7dd8644..f0bd343d 100644 --- a/lasso/id-ff/session.c +++ b/lasso/id-ff/session.c @@ -239,6 +239,25 @@ lasso_session_get_authentication_method(LassoSession *session, } gchar* +lasso_session_get_first_providerID(LassoSession *session) +{ + gchar *providerID; + + g_return_val_if_fail(session != NULL, NULL); + + if(session->providerIDs->len == 0) { + return(NULL); + } + + providerID = g_ptr_array_index(session->providerIDs, 0); + if (providerID == NULL) { + return(NULL); + } + + return(g_strdup(providerID)); +} + +gchar* lasso_session_get_next_providerID(LassoSession *session) { gchar *providerID; @@ -253,9 +272,15 @@ lasso_session_get_next_providerID(LassoSession *session) return(NULL); } + if (session->index_providerID>=session->providerIDs->len) { + return (NULL); + } + /* get the next provider id and increments the index */ + //printf("get provider id from %d\n", session->index_providerID); providerID = g_strdup(g_ptr_array_index(session->providerIDs, session->index_providerID)); session->index_providerID++; + //printf("return provider id %s\n", providerID); return(providerID); } diff --git a/lasso/id-ff/session.h b/lasso/id-ff/session.h index 2a1488c3..0c063354 100644 --- a/lasso/id-ff/session.h +++ b/lasso/id-ff/session.h @@ -86,6 +86,8 @@ LASSO_EXPORT LassoNode* lasso_session_get_assertion ( LASSO_EXPORT gchar* lasso_session_get_authentication_method (LassoSession *session, gchar *providerID); +LASSO_EXPORT gchar* lasso_session_get_first_providerID (LassoSession *session); + LASSO_EXPORT gchar* lasso_session_get_next_providerID (LassoSession *session); LASSO_EXPORT gint lasso_session_remove_assertion (LassoSession *session, |
