diff options
| author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-03-02 11:57:40 +0000 |
|---|---|---|
| committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-03-02 11:57:40 +0000 |
| commit | 4ee7be9d5d1429fcbc8050044ecb990114b63da8 (patch) | |
| tree | ad37b84426c231a4c5359ea6854e2cab37622f4f | |
| parent | e40b9f73cee0403d7cbf19b68a401b37296c4ed8 (diff) | |
| download | lasso-4ee7be9d5d1429fcbc8050044ecb990114b63da8.tar.gz lasso-4ee7be9d5d1429fcbc8050044ecb990114b63da8.tar.xz lasso-4ee7be9d5d1429fcbc8050044ecb990114b63da8.zip | |
ID-WSF 2.0: fix MDAssociationQueryResponse handling
* lasso/id-wsf-2.0/discovery.c:
- in lasso_idwsf2_discovery_validate_request, use svcmdids to
intialize response to MSAssociationQuery requests.
- in lasso_idwsf2_discovery_process_response_msg, extract received
svcmdids; use lasso_check_good_rc when needed.
| -rw-r--r-- | lasso/id-wsf-2.0/discovery.c | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c index 5f3aeb64..5ea09457 100644 --- a/lasso/id-wsf-2.0/discovery.c +++ b/lasso/id-wsf-2.0/discovery.c @@ -1117,11 +1117,9 @@ lasso_idwsf2_discovery_validate_request(LassoIdWsf2Discovery *discovery) md_association_query_response = lasso_idwsf2_disco_svc_md_association_query_response_new(); response = (LassoNode*)md_association_query_response; - lasso_foreach(i, discovery->private_data->metadatas) { - if (LASSO_IS_IDWSF2_DISCO_SVC_METADATA(i->data)) { - lasso_list_add_string(md_association_query_response->SvcMDID, - ((LassoIdWsf2DiscoSvcMetadata*)i->data)->svcMDID); - } + lasso_foreach(i, discovery->private_data->svcmdids) { + lasso_list_add_string(md_association_query_response->SvcMDID, + i->data); } status = &md_association_query_response->Status; break; @@ -1296,38 +1294,50 @@ lasso_idwsf2_discovery_process_response_msg(LassoIdWsf2Discovery *discovery, if (! LASSO_IDWSF2_DISCO_SVC_MD_QUERY_RESPONSE(response)) goto bad_response; md_query_response = (LassoIdWsf2DiscoSvcMDQueryResponse*)response; - lasso_check_good_rc(lasso_idwsf2_discovery_status2rc(md_query_response->Status)); - lasso_assign_list_of_gobjects(discovery->private_data->metadatas, md_query_response->SvcMD); + lasso_check_good_rc(lasso_idwsf2_discovery_status2rc( + md_query_response->Status)); + lasso_assign_list_of_gobjects(discovery->private_data->metadatas, + md_query_response->SvcMD); break; case LASSO_IDWSF2_DISCOVERY_REQUEST_TYPE_MD_REPLACE: if (! LASSO_IDWSF2_DISCO_SVC_MD_REPLACE_RESPONSE(response)) goto bad_response; md_replace_response = (LassoIdWsf2DiscoSvcMDReplaceResponse*)response; - rc = lasso_idwsf2_discovery_status2rc(md_replace_response->Status); + lasso_check_good_rc(lasso_idwsf2_discovery_status2rc( + md_replace_response->Status)); break; case LASSO_IDWSF2_DISCOVERY_REQUEST_TYPE_MD_DELETE: if (! LASSO_IDWSF2_DISCO_SVC_MD_DELETE_RESPONSE(response)) goto bad_response; md_delete_response = (LassoIdWsf2DiscoSvcMDDeleteResponse*)response; - rc = lasso_idwsf2_discovery_status2rc(md_delete_response->Status); + lasso_check_good_rc(lasso_idwsf2_discovery_status2rc( + md_delete_response->Status)); break; case LASSO_IDWSF2_DISCOVERY_REQUEST_TYPE_MD_ASSOCIATION_ADD: if (! LASSO_IDWSF2_DISCO_SVC_MD_ASSOCIATION_ADD_RESPONSE(response)) goto bad_response; - md_association_add_response = (LassoIdWsf2DiscoSvcMDAssociationAddResponse*)response; - rc = lasso_idwsf2_discovery_status2rc(md_association_add_response->Status); + md_association_add_response = + (LassoIdWsf2DiscoSvcMDAssociationAddResponse*)response; + lasso_check_good_rc(lasso_idwsf2_discovery_status2rc( + md_association_add_response->Status)); break; case LASSO_IDWSF2_DISCOVERY_REQUEST_TYPE_MD_ASSOCIATION_DELETE: if (! LASSO_IDWSF2_DISCO_SVC_MD_ASSOCIATION_DELETE_RESPONSE(response)) goto bad_response; - md_association_delete_response = (LassoIdWsf2DiscoSvcMDAssociationDeleteResponse*)response; - rc = lasso_idwsf2_discovery_status2rc(md_association_delete_response->Status); + md_association_delete_response = + (LassoIdWsf2DiscoSvcMDAssociationDeleteResponse*)response; + lasso_check_good_rc(lasso_idwsf2_discovery_status2rc( + md_association_delete_response->Status)); break; case LASSO_IDWSF2_DISCOVERY_REQUEST_TYPE_MD_ASSOCIATION_QUERY: if (! LASSO_IDWSF2_DISCO_SVC_MD_ASSOCIATION_QUERY_RESPONSE(response)) goto bad_response; - md_association_query_response = (LassoIdWsf2DiscoSvcMDAssociationQueryResponse*)response; - rc = lasso_idwsf2_discovery_status2rc(md_association_query_response->Status); + md_association_query_response = + (LassoIdWsf2DiscoSvcMDAssociationQueryResponse*)response; + lasso_check_good_rc(lasso_idwsf2_discovery_status2rc( + md_association_query_response->Status)); + lasso_assign_list_of_strings(discovery->private_data->svcmdids, + md_association_query_response->SvcMDID); break; case LASSO_IDWSF2_DISCOVERY_REQUEST_TYPE_UNKNOWN: default: |
