summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c32
1 files changed, 8 insertions, 24 deletions
diff --git a/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c b/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c
index 823ac1c..1f61471 100644
--- a/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c
+++ b/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c
@@ -230,10 +230,7 @@ static CMPIStatus associators(
}
} else if (CMClassPathIsA(_cb, cop, LMI_SoftwareIdentity_ClassName, &st)) {
/* got SoftwareIdentity - InstalledSoftware */
- PkPackage *pk_pkg = NULL;
- SwPackage sw_pkg;
-
- init_sw_package(&sw_pkg);
+ const char *elem_name;
st = lmi_class_path_is_a(_cb, KNameSpace(cop), computer_system_name,
resultClass);
@@ -247,16 +244,11 @@ static CMPIStatus associators(
}
/* Is this SwIdentity installed? */
- if (get_sw_pkg_from_sw_identity_op(cop, &sw_pkg) != 0) {
- goto done;
- }
- get_pk_pkg_from_sw_pkg(&sw_pkg,
- pk_bitfield_value(PK_FILTER_ENUM_INSTALLED), &pk_pkg);
- free_sw_package(&sw_pkg);
- if (!pk_pkg) {
+ elem_name = get_elem_name_from_instance_id(
+ lmi_get_string_property_from_objectpath(cop, "InstanceID"));
+ if (!is_elem_name_installed(elem_name)) {
goto done;
}
- g_object_unref(pk_pkg);
if (names) {
CMReturnObjectPath(cr, lmi_get_computer_system());
@@ -330,26 +322,18 @@ static CMPIStatus references(
return enum_instances(cr, KNameSpace(cop), names);
} else if (CMClassPathIsA(_cb, cop, LMI_SoftwareIdentity_ClassName, &st)) {
/* got SoftwareIdentity - InstalledSoftware */
- PkPackage *pk_pkg = NULL;
- SwPackage sw_pkg;
-
- init_sw_package(&sw_pkg);
+ const char *elem_name;
if (role && strcmp(role, LMI_INSTALLED_SOFTWARE) != 0) {
goto done;
}
/* Is this SwIdentity installed? */
- if (get_sw_pkg_from_sw_identity_op(cop, &sw_pkg) != 0) {
- goto done;
- }
- get_pk_pkg_from_sw_pkg(&sw_pkg,
- pk_bitfield_value(PK_FILTER_ENUM_INSTALLED), &pk_pkg);
- free_sw_package(&sw_pkg);
- if (!pk_pkg) {
+ elem_name = get_elem_name_from_instance_id(
+ lmi_get_string_property_from_objectpath(cop, "InstanceID"));
+ if (!is_elem_name_installed(elem_name)) {
goto done;
}
- g_object_unref(pk_pkg);
LMI_SoftwareIdentityRef si;
LMI_SoftwareIdentityRef_InitFromObjectPath(&si, _cb, cop);