diff options
Diffstat (limited to 'src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c')
-rw-r--r-- | src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c | 32 |
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); |