summaryrefslogtreecommitdiffstats
path: root/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c
diff options
context:
space:
mode:
authorPeter Schiffer <pschiffe@redhat.com>2014-04-16 18:22:05 +0200
committerPeter Schiffer <pschiffe@redhat.com>2014-04-17 14:06:13 +0200
commitbf8c0203b9c9b1b6c52606084448a222d19ab3ae (patch)
tree5c3ba3ff022b3b5a1ea52c38b916d278ae8690c8 /src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c
parent344131a6142cc3b52d8eec10f07ac21aefd4d5a0 (diff)
downloadopenlmi-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.c40
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) {