Merge branch 'master' of ssh://sblim.git.sourceforge.net/gitroot/sblim/sfcc
Conflicts:
ChangeLog
NEWS
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..97a323a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,66 @@
+*.lo
+*.o
+.deps/
+.gitignore
+.libs/
+Makefile
+Makefile.in
+TAGS
+TEST/.deps/
+TEST/.libs/
+TEST/Makefile
+TEST/Makefile.in
+TEST/TAGS
+TEST/stress.sh
+TEST/test
+TEST/test_an
+TEST/test_an_2
+TEST/test_as
+TEST/test_as_2
+TEST/test_ci
+TEST/test_cpp
+TEST/test_di
+TEST/test_ec
+TEST/test_ecn
+TEST/test_ecn_ssl
+TEST/test_ei
+TEST/test_ein
+TEST/test_gc
+TEST/test_gi
+TEST/test_gp
+TEST/test_im1
+TEST/test_im2
+TEST/test_im3
+TEST/test_im4
+TEST/test_imos
+TEST/test_leak
+TEST/test_qualifiers
+TEST/test_qualifiers2
+TEST/test_rf
+TEST/test_rfn
+TEST/test_si
+TEST/test_sp
+TEST/test_xq
+TEST/v2test_ec
+TEST/v2test_ecn
+TEST/v2test_ei
+TEST/v2test_ein
+TEST/v2test_gc
+TEST/v2test_im
+aclocal.m4
+autom4te.cache/
+*~
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+depcomp
+install-sh
+*.la
+libtool
+ltmain.sh
+missing
+sfcc.spec
diff --git a/ChangeLog b/ChangeLog
index e8450ab..3d55979 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-05-27 Chris Buccella <buccella@linux.vnet.ibm.com>
+
+ * backend/cimxml/grammar.c, backend/cimxml/cimXmlParser.h,
+ backend/cimxml/cimXmlParser.c, backend/cimxml/instance.c,
+ backend/cimxml/objectpath.c, frontend/sfcc/native.h:
+ [ 3286489 ] getInstance does not return key/value through XML
+ (patch originated by Josef Moellers)
+
2011-04-25 Narasimha Sharoff <nsharoff@us.ibm.com>
* frontend/sfcc/sfcclient.c:
diff --git a/NEWS b/NEWS
index 2e3e90d..f2be3ed 100644
--- a/NEWS
+++ b/NEWS
@@ -2,8 +2,10 @@
Changes in 2.2.3
================
+
Bugs:
- 2967265: Code cleanup in frontend/sfcc/sfcclient.c
+- 3286489: getInstance does not return key/value through XML
Changes in 2.2.2
================
diff --git a/backend/cimxml/cimXmlParser.c b/backend/cimxml/cimXmlParser.c
index 3e0baef..c6a0908 100644
--- a/backend/cimxml/cimXmlParser.c
+++ b/backend/cimxml/cimXmlParser.c
@@ -1386,9 +1386,7 @@
control.respHdr.rvArray=newCMPIArray(0,0,NULL);
- if(cop) {
- control.da_nameSpace=(char*)getNameSpaceChars(cop);
- }
+ control.requestObjectPath = cop;
control.heap = parser_heap_init();
@@ -1531,9 +1529,7 @@
local_enmp->data = control.respHdr.rvArray ;
- if(cop) {
- control.da_nameSpace=(char*)getNameSpaceChars(cop);
- }
+ control.requestObjectPath = cop;
control.heap = parser_heap_init();
diff --git a/backend/cimxml/cimXmlParser.h b/backend/cimxml/cimXmlParser.h
index 191fa52..f34d36b 100644
--- a/backend/cimxml/cimXmlParser.h
+++ b/backend/cimxml/cimXmlParser.h
@@ -426,7 +426,7 @@
typedef struct parser_control {
XmlBuffer *xmb;
ResponseHdr respHdr;
- char *da_nameSpace;
+ CMPIObjectPath *requestObjectPath;
ParserHeap *heap;
#ifdef LARGE_VOL_SUPPORT
CMCIConnection * econ ; /* enumeration connection */
diff --git a/backend/cimxml/grammar.c b/backend/cimxml/grammar.c
index 871c58a..8fb5f91 100644
--- a/backend/cimxml/grammar.c
+++ b/backend/cimxml/grammar.c
@@ -193,7 +193,7 @@
dontLex = 1;
instance(parm, (parseUnion*)&lvalp.xtokInstance);
inst = native_new_CMPIInstance(NULL,NULL);
- setInstNsAndCn(inst,parm->da_nameSpace,lvalp.xtokInstance.className);
+ setInstNsAndCn(inst,getNameSpaceChars(parm->requestObjectPath),lvalp.xtokInstance.className);
setInstProperties(inst, &lvalp.xtokInstance.properties);
simpleArrayAdd(parm->respHdr.rvArray,(CMPIValue*)&inst,CMPI_instance);
}
@@ -295,7 +295,7 @@
else if(stateUnion->xtokReturnValue.data.value.type == typeValue_Instance) {
t = CMPI_instance;
inst = native_new_CMPIInstance(NULL,NULL);
- setInstNsAndCn(inst,parm->da_nameSpace,stateUnion->xtokReturnValue.data.value.data.inst->className);
+ setInstNsAndCn(inst,getNameSpaceChars(parm->requestObjectPath),stateUnion->xtokReturnValue.data.value.data.inst->className);
setInstProperties(inst, &stateUnion->xtokReturnValue.data.value.data.inst->properties);
val.inst = inst;
}
@@ -452,8 +452,7 @@
do {
dontLex = 1;
instance(parm, (parseUnion*)&lvalp.xtokInstance);
- inst = native_new_CMPIInstance(NULL,NULL);
- setInstNsAndCn(inst,parm->da_nameSpace,lvalp.xtokInstance.className);
+ inst = native_new_CMPIInstance(parm->requestObjectPath,NULL);
setInstProperties(inst, &lvalp.xtokInstance.properties);
simpleArrayAdd(parm->respHdr.rvArray,(CMPIValue*)&inst,CMPI_instance);
ct = localLex(&lvalp, parm);
@@ -477,7 +476,7 @@
dontLex = 1;
valueNamedInstance(parm, (parseUnion*)&lvalp.xtokNamedInstance);
createPath(&op,&(lvalp.xtokNamedInstance.path));
- CMSetNameSpace(op, parm->da_nameSpace);
+ CMSetNameSpace(op, getNameSpaceChars(parm->requestObjectPath));
inst = native_new_CMPIInstance(op,NULL);
//setInstQualifiers(inst, &lvalp.xtokNamedInstance.instance.qualifiers);
setInstProperties(inst, &lvalp.xtokNamedInstance.instance.properties);
diff --git a/backend/cimxml/instance.c b/backend/cimxml/instance.c
index 43df5a4..72f034b 100644
--- a/backend/cimxml/instance.c
+++ b/backend/cimxml/instance.c
@@ -375,7 +375,7 @@
return (CMPIInstance *) instance;
}
-void setInstNsAndCn(CMPIInstance *ci, char *ns, char *cn)
+void setInstNsAndCn(CMPIInstance *ci, const char *ns, char *cn)
{
struct native_instance * i = (struct native_instance *) ci;
diff --git a/backend/cimxml/objectpath.c b/backend/cimxml/objectpath.c
index 09d0cd9..2e4df1e 100644
--- a/backend/cimxml/objectpath.c
+++ b/backend/cimxml/objectpath.c
@@ -438,6 +438,8 @@
const char *getNameSpaceChars(CMPIObjectPath * cop)
{
+ if (cop == NULL) return NULL;
+
struct native_cop * o = (struct native_cop *) cop;
return o->nameSpace;
}
diff --git a/frontend/sfcc/native.h b/frontend/sfcc/native.h
index cb1b5a7..2b14ab9 100644
--- a/frontend/sfcc/native.h
+++ b/frontend/sfcc/native.h
@@ -225,7 +225,7 @@
struct xtokValueReference;
CMPIValue str2CMPIValue(CMPIType type, char *val, struct xtokValueReference *ref);
-void setInstNsAndCn(CMPIInstance *ci, char *ns, char *cn);
+void setInstNsAndCn(CMPIInstance *ci, const char *ns, char *cn);
CMPIStatus simpleArrayAdd(CMPIArray * array, CMPIValue * val, CMPIType type);
const char *getNameSpaceChars(CMPIObjectPath * cop);
CMPIValue *getKeyValueTypePtr(char *type, char *value, struct xtokValueReference *ref,