summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2007-05-09 16:41:32 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2007-05-09 16:41:32 +0000
commit7f11dc341a6714a9fc5148ab9018b6797bc37b71 (patch)
treee47d7e0766102f2c06c8b9b21542c5ffaf2748fe
parentf48ab7d7e164fcdecd56445baa1a3c1993e1f934 (diff)
downloadlasso-7f11dc341a6714a9fc5148ab9018b6797bc37b71.tar.gz
lasso-7f11dc341a6714a9fc5148ab9018b6797bc37b71.tar.xz
lasso-7f11dc341a6714a9fc5148ab9018b6797bc37b71.zip
in lasso_idwsf2_discovery_register_metadata, create idenity if it doesn't exist
-rw-r--r--lasso/id-wsf-2.0/discovery.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c
index e83680b8..02e86221 100644
--- a/lasso/id-wsf-2.0/discovery.c
+++ b/lasso/id-wsf-2.0/discovery.c
@@ -312,14 +312,19 @@ lasso_idwsf2_discovery_register_metadata(LassoIdWsf2Discovery *discovery)
LassoWsf2Profile *profile = LASSO_WSF2_PROFILE(discovery);
LassoIdWsf2DiscoSvcMDAssociationAdd *request;
LassoIdWsf2DiscoSvcMDAssociationAddResponse *response;
- LassoIdentity *identity = profile->identity;
+ LassoIdentity *identity;
LassoSoapEnvelope *envelope;
GList *i;
int res = 0;
g_return_val_if_fail(LASSO_IS_IDWSF2_DISCOVERY(discovery),
LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
- g_return_val_if_fail(LASSO_IS_IDENTITY(identity), LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND);
+
+ /* verify if identity already exists else create it */
+ if (profile->identity == NULL) {
+ profile->identity = lasso_identity_new();
+ }
+ identity = profile->identity;
if (! LASSO_IS_IDWSF2_DISCO_SVC_MD_ASSOCIATION_ADD(profile->request)) {
res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;