summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-08-30 12:18:52 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-08-30 12:18:52 +0000
commitdf435e4254dcce573652fc4852bc5f607193a422 (patch)
tree54ccfb68510bc4a183c58df14cf46eebf4174350
parentd13e4d56ac9fbfd9ee5ab89cbdaab4058c49ab85 (diff)
downloadlasso-df435e4254dcce573652fc4852bc5f607193a422.tar.gz
lasso-df435e4254dcce573652fc4852bc5f607193a422.tar.xz
lasso-df435e4254dcce573652fc4852bc5f607193a422.zip
Added parsing of status code value in lasso_logout_response_new_from_query(). Now it sets the Status, StatusCode and his Value attribute in logoutResponse
-rw-r--r--lasso/Attic/protocols/logout_response.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/lasso/Attic/protocols/logout_response.c b/lasso/Attic/protocols/logout_response.c
index eec8b984..c2ff76bc 100644
--- a/lasso/Attic/protocols/logout_response.c
+++ b/lasso/Attic/protocols/logout_response.c
@@ -180,8 +180,8 @@ lasso_logout_response_new_from_dump(gchar *buffer)
LassoNode *
lasso_logout_response_new_from_query(gchar *query)
{
- LassoNode *response;
- xmlChar *relayState;
+ LassoNode *response, *ss, *ssc;
+ xmlChar *relayState, *statusCodeValue;
GData *gd;
response = LASSO_NODE(g_object_new(LASSO_TYPE_LOGOUT_RESPONSE, NULL));
@@ -216,6 +216,20 @@ lasso_logout_response_new_from_query(gchar *query)
lasso_lib_status_response_set_providerID(LASSO_LIB_STATUS_RESPONSE(response),
lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0));
+ /* StatusCode */
+ statusCodeValue = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Value"), 0);
+ ss = lasso_samlp_status_new();
+ ssc = lasso_samlp_status_code_new();
+ lasso_samlp_status_code_set_value(LASSO_SAMLP_STATUS_CODE(ssc),
+ statusCodeValue);
+ lasso_samlp_status_set_statusCode(LASSO_SAMLP_STATUS(ss),
+ LASSO_SAMLP_STATUS_CODE(ssc));
+ lasso_lib_status_response_set_status(LASSO_LIB_STATUS_RESPONSE(response),
+ LASSO_SAMLP_STATUS(ss));
+ lasso_node_destroy(ssc);
+ lasso_node_destroy(ss);
+
+
/* RelayState */
relayState = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0);
if (relayState != NULL)