tog-pegasus/pegasus-2.5.1-obz4968_upcalls_oop.patch

66 lines
2.8 KiB
Diff

--- pegasus/src/Pegasus/ProviderManager2/CMPI/CMPI_Broker.cpp.obz4968_upcalls_oop 2006-03-15 07:53:08.000000000 -0500
+++ pegasus/src/Pegasus/ProviderManager2/CMPI/CMPI_Broker.cpp 2006-05-02 14:29:16.000000000 -0400
@@ -313,8 +313,18 @@
CM_ObjectPath(cop)->getNameSpace(),
CM_ObjectPath(cop)->getClassName());
if (rc) CMSetStatus(rc,CMPI_RC_OK);
- CMPI_Object *obj =
- new CMPI_Object(new CMPI_OpEnumeration(new Array<CIMObjectPath>(en)));
+
+ // When running out of process the returned instances don't contain
+ // a name space. Create a writable copy of the array and add the
+ // namespace from the input parameters.
+ Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en);
+ for (unsigned int index=0;index < aObj->size(); index++)
+ {
+ (*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace());
+ }
+
+ CMPI_Object *obj = new CMPI_Object(new CMPI_OpEnumeration(aObj));
+
return (CMPI_OpEnumeration *)obj->getHdl();
}
@@ -408,8 +418,18 @@
role ? String(role) : String::EMPTY,
resultRole ? String(resultRole) : String::EMPTY);
if (rc) CMSetStatus(rc,CMPI_RC_OK);
- CMPI_Object *obj =
- new CMPI_Object(new CMPI_OpEnumeration(new Array<CIMObjectPath>(en)));
+
+ // When running out of process the returned instances don't contain
+ // a name space. Create a writable copy of the array and add the
+ // namespace from the input parameters.
+ Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en);
+ for (unsigned int index=0;index < aObj->size(); index++)
+ {
+ (*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace());
+ }
+
+ CMPI_Object *obj = new CMPI_Object(new CMPI_OpEnumeration(aObj));
+
return (CMPI_OpEnumeration *)obj->getHdl();
}
catch (const CIMException &e) {
@@ -493,8 +513,18 @@
resultClass ? CIMName(resultClass) : CIMName(),
role ? String(role) : String::EMPTY);
if (rc) CMSetStatus(rc,CMPI_RC_OK);
- CMPI_Object *obj =
- new CMPI_Object(new CMPI_OpEnumeration(new Array<CIMObjectPath>(en)));
+
+ // When running out of process the returned instances don't contain
+ // a name space. Create a writable copy of the array and add the
+ // namespace from the input parameters.
+ Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en);
+ for (unsigned int index=0;index < aObj->size(); index++)
+ {
+ (*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace());
+ }
+
+ CMPI_Object *obj = new CMPI_Object(new CMPI_OpEnumeration(aObj));
+
return (CMPI_OpEnumeration *)obj->getHdl();
}
catch (const CIMException &e) {