diff options
author | Peter Schiffer <pschiffe@redhat.com> | 2014-04-16 18:22:05 +0200 |
---|---|---|
committer | Peter Schiffer <pschiffe@redhat.com> | 2014-04-17 14:06:13 +0200 |
commit | bf8c0203b9c9b1b6c52606084448a222d19ab3ae (patch) | |
tree | 5c3ba3ff022b3b5a1ea52c38b916d278ae8690c8 /src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c | |
parent | 344131a6142cc3b52d8eec10f07ac21aefd4d5a0 (diff) | |
download | openlmi-providers-bf8c0203b9c9b1b6c52606084448a222d19ab3ae.tar.gz openlmi-providers-bf8c0203b9c9b1b6c52606084448a222d19ab3ae.tar.xz openlmi-providers-bf8c0203b9c9b1b6c52606084448a222d19ab3ae.zip |
Software-dbus: refactor & cleanup
Diffstat (limited to 'src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c')
-rw-r--r-- | src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c b/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c index bbd04bc..ebd3da7 100644 --- a/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c +++ b/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c @@ -109,14 +109,14 @@ static CMPIStatus LMI_MemberOfSoftwareCollectionEnumInstances( done: g_clear_error(&gerror); - if (task) { - g_object_unref(task); + if (array) { + g_ptr_array_unref(array); } if (results) { g_object_unref(results); } - if (array) { - g_ptr_array_unref(array); + if (task) { + g_object_unref(task); } if (*error_msg) { @@ -133,8 +133,12 @@ static CMPIStatus LMI_MemberOfSoftwareCollectionGetInstance( const CMPIObjectPath* cop, const char** properties) { + PkPackage *pk_pkg = NULL; + SwPackage sw_pkg; char instance_id[INSTANCE_ID_LEN] = ""; + init_sw_package(&sw_pkg); + create_instance_id(SYSTEM_SW_COLLECTION_CLASS_NAME, NULL, instance_id, INSTANCE_ID_LEN); @@ -146,11 +150,19 @@ static CMPIStatus LMI_MemberOfSoftwareCollectionGetInstance( CMReturn(CMPI_RC_ERR_NOT_FOUND); } - if (!is_valid_sw_pkg_elem_name(get_str_property_from_op(w.Member.value, - "InstanceID") + strlen(ORGID ":" ORGID "_" SW_IDENTITY_CLASS_NAME ":"))) { + if (create_sw_package_from_elem_name(get_str_property_from_op(w.Member.value, + "InstanceID") + strlen(ORGID ":" ORGID "_" SW_IDENTITY_CLASS_NAME ":"), + &sw_pkg) != 0) { CMReturn(CMPI_RC_ERR_NOT_FOUND); } + get_pk_pkg_from_sw_pkg(&sw_pkg, &pk_pkg); + if (!pk_pkg) { + CMReturn(CMPI_RC_ERR_NOT_FOUND); + } + g_object_unref(pk_pkg); + free_sw_package(&sw_pkg); + KReturnInstance(cr, w); CMReturn(CMPI_RC_OK); } @@ -313,14 +325,14 @@ static CMPIStatus associators( done: g_clear_error(&gerror); - if (task) { - g_object_unref(task); + if (array) { + g_ptr_array_unref(array); } if (results) { g_object_unref(results); } - if (array) { - g_ptr_array_unref(array); + if (task) { + g_object_unref(task); } if (*error_msg) { @@ -462,14 +474,14 @@ static CMPIStatus references( done: g_clear_error(&gerror); - if (task) { - g_object_unref(task); + if (array) { + g_ptr_array_unref(array); } if (results) { g_object_unref(results); } - if (array) { - g_ptr_array_unref(array); + if (task) { + g_object_unref(task); } if (*error_msg) { |