You can subscribe to this list here.
2005 |
Jan
|
Feb
(1) |
Mar
(45) |
Apr
(150) |
May
(145) |
Jun
(150) |
Jul
(79) |
Aug
(313) |
Sep
(160) |
Oct
(309) |
Nov
(115) |
Dec
(60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(160) |
Feb
(144) |
Mar
(127) |
Apr
(48) |
May
(102) |
Jun
(54) |
Jul
(245) |
Aug
(94) |
Sep
(152) |
Oct
(162) |
Nov
(166) |
Dec
(740) |
2007 |
Jan
(752) |
Feb
(437) |
Mar
(328) |
Apr
(373) |
May
(569) |
Jun
(399) |
Jul
(369) |
Aug
(627) |
Sep
(100) |
Oct
(306) |
Nov
(166) |
Dec
(282) |
2008 |
Jan
(68) |
Feb
(145) |
Mar
(180) |
Apr
(160) |
May
(277) |
Jun
(229) |
Jul
(1188) |
Aug
(51) |
Sep
(97) |
Oct
(99) |
Nov
(95) |
Dec
(170) |
2009 |
Jan
(39) |
Feb
(73) |
Mar
(120) |
Apr
(121) |
May
(104) |
Jun
(262) |
Jul
(57) |
Aug
(171) |
Sep
(131) |
Oct
(88) |
Nov
(64) |
Dec
(83) |
2010 |
Jan
(55) |
Feb
(67) |
Mar
(124) |
Apr
(64) |
May
(130) |
Jun
(75) |
Jul
(164) |
Aug
(64) |
Sep
(44) |
Oct
(17) |
Nov
(43) |
Dec
(31) |
2011 |
Jan
(21) |
Feb
(10) |
Mar
(43) |
Apr
(46) |
May
(52) |
Jun
(71) |
Jul
(7) |
Aug
(16) |
Sep
(51) |
Oct
(14) |
Nov
(33) |
Dec
(15) |
2012 |
Jan
(12) |
Feb
(61) |
Mar
(129) |
Apr
(76) |
May
(70) |
Jun
(52) |
Jul
(29) |
Aug
(41) |
Sep
(32) |
Oct
(23) |
Nov
(38) |
Dec
(26) |
2013 |
Jan
(35) |
Feb
(37) |
Mar
(51) |
Apr
(15) |
May
(52) |
Jun
(15) |
Jul
(23) |
Aug
(21) |
Sep
(46) |
Oct
(69) |
Nov
(57) |
Dec
(26) |
2014 |
Jan
(5) |
Feb
(13) |
Mar
(17) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(16) |
Nov
(8) |
Dec
(4) |
2015 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(4) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Dave H. <hel...@us...> - 2013-05-30 03:22:28
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 3398557882817013a610c14ec2ca2dddab11c7ec (commit) from b1cc1c88698c708c71c631ae29d0efcc14ebfb45 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3398557882817013a610c14ec2ca2dddab11c7ec Author: Dave Heller <hel...@us...> Date: Wed May 29 23:22:15 2013 -0400 [sfcb-tix:#53] Fix unittest makefile ----------------------------------------------------------------------- Summary of changes: test/unittest/Makefile.am | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/unittest/Makefile.am b/test/unittest/Makefile.am index 016db10..182a1f6 100644 --- a/test/unittest/Makefile.am +++ b/test/unittest/Makefile.am @@ -32,13 +32,13 @@ TESTS = xmlUnescape newCMPIInstance EmbeddedTests newDateTime check_PROGRAMS = xmlUnescape newCMPIInstance EmbeddedTests newDateTime xmlUnescape_SOURCES = xmlUnescape.c -xmlUnescape_LDADD = -lsfcBrokerCore -lsfcCimXmlCodec -lsfcHttpAdapter +xmlUnescape_LDADD = -lsfcBrokerCore -lsfcCimXmlCodec newCMPIInstance_SOURCES = newCMPIInstance.c -newCMPIInstance_LDADD = -lsfcCimXmlCodec -lsfcHttpAdapter -lsfcBrokerCore +newCMPIInstance_LDADD = -lsfcBrokerCore -lsfcCimXmlCodec EmbeddedTests_SOURCES = EmbeddedTests.c -EmbeddedTests_LDADD = -lsfcCimXmlCodec -lsfcHttpAdapter -lsfcBrokerCore +EmbeddedTests_LDADD = -lsfcBrokerCore -lsfcCimXmlCodec newDateTime_SOURCES = newDateTime.c newDateTime_LDADD = -lsfcBrokerCore hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Chris B. <buc...@us...> - 2013-05-29 18:52:11
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via b1cc1c88698c708c71c631ae29d0efcc14ebfb45 (commit) via a8de78de69d582274f2c0c4f7bc01ce3c00b8742 (commit) from 77222df9ea5b733d8e6bbe82b143bdc07ddf155a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b1cc1c88698c708c71c631ae29d0efcc14ebfb45 Merge: a8de78d 77222df Author: buccella <buc...@li...> Date: Wed May 29 14:51:32 2013 -0400 Merging in sfcb-tix:#49 commit a8de78de69d582274f2c0c4f7bc01ce3c00b8742 Author: buccella <buc...@li...> Date: Wed May 22 21:45:27 2013 -0400 [sfcb-tix:#49] Cannot return EmbeddedInstance property from provider ----------------------------------------------------------------------- Summary of changes: cimXmlGen.c | 87 ++++++++++++-------- cimXmlGen.h | 2 +- constClass.c | 18 ++++ instance.c | 38 +++++++-- interopProvider.c | 9 +- objectImpl.c | 33 +++++++- objectImpl.h | 2 + test/TestProviders/cmpiTestIndicationProvider.c | 8 ++ test/TestProviders/cmpiTestInstanceProvider.c | 13 ++- .../tests/Test1EnumerateInstances.lines | 23 ++++- test/schema/root/cimv2/Test_Instance.mof | 3 + test/schema/root/interop/Test_Indication.mof | 1 + 12 files changed, 184 insertions(+), 53 deletions(-) diff --git a/cimXmlGen.c b/cimXmlGen.c index 7c67652..6d7abd9 100644 --- a/cimXmlGen.c +++ b/cimXmlGen.c @@ -50,14 +50,21 @@ extern CMPIData opGetKeyCharsAt(CMPIObjectPath * cop, unsigned int index, const char **name, CMPIStatus *rc); extern CMPIData __ift_internal_getPropertyAt(const CMPIInstance *ci, CMPICount i, char **name, - CMPIStatus *rc, int readonly); + CMPIStatus *rc, int readonly, + unsigned long* quals); extern int getCustomHostname(char *httpHost, char **hn, unsigned int len); const char *opGetClassNameChars(CMPIObjectPath * cop); +/* We introduce additional parameter in data2xml, use this macro when you want + * pass it, use the original when you want data2xml behave as usual */ +#define EMBDATA2XML(data,name,refname,btag,etag,sb,qsb,inst,param,embInst) \ + data2xml((data),(name),(refname),(btag),sizeof(btag)-1,(etag), \ + sizeof(etag)-1,(sb),(qsb),(inst),(param),(embInst)) + #define DATA2XML(data,name,refname,btag,etag,sb,qsb,inst,param) \ data2xml((data),(name),(refname),(btag),sizeof(btag)-1,(etag), \ - sizeof(etag)-1,(sb),(qsb),(inst),(param)) + sizeof(etag)-1,(sb),(qsb),(inst),(param),0) static int add_escaped_instance(UtilStringBuffer *sb, CMPIInstance *inst) { @@ -742,10 +749,9 @@ void data2xml(CMPIData *data, CMPIString *name, CMPIString *refName, char *bTag, int bTagLen, char *eTag, int eTagLen, UtilStringBuffer * sb, UtilStringBuffer * qsb, - int inst, int param) + int inst, int param, int embInst) { _SFCB_ENTER(TRACE_CIMXMLPROC, "data2xml"); - char *type; if (data->type & CMPI_ARRAY) { @@ -764,7 +770,11 @@ data2xml(CMPIData *data, CMPIString *name, SFCB_APPENDCHARS_BLOCK(sb, "reference"); } else if (((data->type & ~CMPI_ARRAY) == CMPI_instance) || ((data->type & ~CMPI_ARRAY) == CMPI_class)) { - SFCB_APPENDCHARS_BLOCK(sb, "string\" EmbeddedObject=\"object"); + if (embInst == 1) { + SFCB_APPENDCHARS_BLOCK(sb, "\" EmbeddedObject=\"instance"); + } else { + SFCB_APPENDCHARS_BLOCK(sb, "\" EmbeddedObject=\"object"); + } } else { sb->ft->appendChars(sb, dataType(data->type)); } @@ -817,7 +827,11 @@ data2xml(CMPIData *data, CMPIString *name, else if (*type == '%') { sb->ft->appendBlock(sb, bTag, bTagLen); sb->ft->appendChars(sb, (char *) name->hdl); - SFCB_APPENDCHARS_BLOCK(sb, "\" EmbeddedObject=\"object"); + if (embInst == 1) { + SFCB_APPENDCHARS_BLOCK(sb, "\" EmbeddedObject=\"instance"); + } else { + SFCB_APPENDCHARS_BLOCK(sb, "\" EmbeddedObject=\"object"); + } if (param) SFCB_APPENDCHARS_BLOCK(sb, "\" PARAMTYPE=\"string\">\n"); else @@ -869,10 +883,14 @@ quals2xml(unsigned long quals, UtilStringBuffer * sb) SFCB_APPENDCHARS_BLOCK(sb, "<QUALIFIER NAME=\"Key\" TYPE=\"boolean\">\n" "<VALUE>TRUE</VALUE>\n</QUALIFIER>\n"); - if (quals & (ClProperty_Q_EmbeddedObject << 8)) + if ((quals & (ClProperty_Q_EmbeddedObject << 8)) && !(quals & (ClProperty_Q_EmbeddedInstance << 8))) SFCB_APPENDCHARS_BLOCK(sb, "<QUALIFIER NAME=\"EmbeddedObject\" TYPE=\"boolean\">\n" "<VALUE>TRUE</VALUE>\n</QUALIFIER>\n"); + if (quals & (ClProperty_Q_EmbeddedInstance << 8)) + SFCB_APPENDCHARS_BLOCK(sb, + "<QUALIFIER NAME=\"EmbeddedInstance\" TYPE=\"boolean\">\n" + "<VALUE>TRUE</VALUE>\n</QUALIFIER>\n"); } static void @@ -880,8 +898,7 @@ param2xml(CMPIParameter * pdata, CMPIConstClass * cls, ClParameter * parm, CMPIString *pname, UtilStringBuffer * sb, unsigned int flags) { ClClass *cl = (ClClass *) cls->hdl; - int i, - m; + int i, m; CMPIData data; CMPIString qname; char *etag = "</PARAMETER>\n"; @@ -947,12 +964,7 @@ int cls2xml(CMPIConstClass * cls, UtilStringBuffer * sb, unsigned int flags) { ClClass *cl = (ClClass *) cls->hdl; - int i, - m, - q, - qm, - p, - pm; + int i, m, q, qm, p, pm, embInst = 0; char *type, *superCls; CMPIString *name, @@ -1000,19 +1012,24 @@ cls2xml(CMPIConstClass * cls, UtilStringBuffer * sb, unsigned int flags) CMRelease(qname); sfcb_native_release_CMPIValue(qdata.type, &qdata.value); } - if (data.type & CMPI_ARRAY) - DATA2XML(&data, name, NULL, "<PROPERTY.ARRAY NAME=\"", - "</PROPERTY.ARRAY>\n", sb, qsb, 0, 0); + if (quals & ClProperty_Q_EmbeddedInstance) embInst = 1; + + if (data.type & CMPI_ARRAY) EMBDATA2XML(&data,name,NULL,"<PROPERTY.ARRAY NAME=\"", + "</PROPERTY.ARRAY>\n", sb, qsb, 0, 0, embInst); + else { type = dataType(data.type); if (*type == '*') { - DATA2XML(&data, name, refName, "<PROPERTY.REFERENCE NAME=\"", - "</PROPERTY.REFERENCE>\n", sb, qsb, 0, 0); - } else - DATA2XML(&data, name, NULL, "<PROPERTY NAME=\"", - "</PROPERTY>\n", sb, qsb, 0, 0); + EMBDATA2XML(&data,name,refName,"<PROPERTY.REFERENCE NAME=\"", + "</PROPERTY.REFERENCE>\n", sb, qsb, 0, 0, embInst); + + } + else EMBDATA2XML(&data,name,NULL,"<PROPERTY NAME=\"", "</PROPERTY>\n", + sb, qsb, 0, 0, embInst); + } CMRelease(name); + embInst = 0; } for (i = 0, m = ClClassGetMethodCount(cl); i < m; i++) { @@ -1064,9 +1081,11 @@ instance2xml(CMPIInstance *ci, UtilStringBuffer * sb, unsigned int flags) { ClInstance *inst = (ClInstance *) ci->hdl; int i, - m = ClInstanceGetPropertyCount(inst); + m = ClInstanceGetPropertyCount(inst), + embInst = 0; char *type; UtilStringBuffer *qsb = UtilFactory->newStrinBuffer(1024); + unsigned long quals; _SFCB_ENTER(TRACE_CIMXMLPROC, "instance2xml"); @@ -1085,19 +1104,20 @@ instance2xml(CMPIInstance *ci, UtilStringBuffer * sb, unsigned int flags) continue; } data = - __ift_internal_getPropertyAt(ci, i, (char **) &name.hdl, NULL, 1); + __ift_internal_getPropertyAt(ci, i, (char **) &name.hdl, NULL, 1, &quals); + + if (quals & ClProperty_Q_EmbeddedInstance) { + embInst = 1; + } if (data.type & CMPI_ARRAY) { - DATA2XML(&data, &name, NULL, "<PROPERTY.ARRAY NAME=\"", - "</PROPERTY.ARRAY>\n", sb, qsb, 1, 0); + EMBDATA2XML(&data,&name,NULL,"<PROPERTY.ARRAY NAME=\"", "</PROPERTY.ARRAY>\n", + sb, qsb, 1, 0, embInst); } else { type = dataType(data.type); - if (*type == '*') - DATA2XML(&data, &name, NULL, "<PROPERTY.REFERENCE NAME=\"", - "</PROPERTY.REFERENCE>\n", sb, qsb, 1, 0); - else - DATA2XML(&data, &name, NULL, "<PROPERTY NAME=\"", - "</PROPERTY>\n", sb, qsb, 1, 0); + if (*type == '*') EMBDATA2XML(&data,&name,NULL,"<PROPERTY.REFERENCE NAME=\"", + "</PROPERTY.REFERENCE>\n", sb, qsb, 1,0, embInst); + else EMBDATA2XML(&data,&name,NULL,"<PROPERTY NAME=\"", "</PROPERTY>\n", sb, qsb, 1,0, embInst); } if (data.type & (CMPI_ENC | CMPI_ARRAY)) { // don't get confused @@ -1105,6 +1125,7 @@ instance2xml(CMPIInstance *ci, UtilStringBuffer * sb, unsigned int flags) if ((data.state & ~CMPI_keyValue) == 0 && data.type != CMPI_instance) data.value.inst->ft->release(data.value.inst); } + embInst = 0; } SFCB_APPENDCHARS_BLOCK(sb, "</INSTANCE>\n"); diff --git a/cimXmlGen.h b/cimXmlGen.h index bbf9e85..46f25a9 100644 --- a/cimXmlGen.h +++ b/cimXmlGen.h @@ -61,7 +61,7 @@ extern char *XMLEscape(char *in, int *outlen); extern void data2xml(CMPIData *data, CMPIString *name, CMPIString *refName, char *bTag, int bTagLen, char *eTag, int eTagLen, UtilStringBuffer * sb, - UtilStringBuffer * qsb, int inst, int param); + UtilStringBuffer * qsb, int inst, int param, int embInst); CMPIType guessType(char *val); extern int invalid_int(const char *v, const CMPIType type); diff --git a/constClass.c b/constClass.c index a483255..db06c17 100644 --- a/constClass.c +++ b/constClass.c @@ -417,6 +417,24 @@ getPropQualifier(CMPIConstClass * cc, const char *cp, const char *cpq, return rv_notFound; } } + if (strcasecmp(cpq, "embeddedinstance") == 0) { + unsigned long quals; + getPropertyQualsAt(cc,p-1,NULL,&quals,NULL,rc); + if (quals & ClProperty_Q_EmbeddedInstance) { + rv.type = CMPI_boolean; + rv.state = CMPI_goodValue; + rv.value.boolean = 1; + if (rc) { + CMSetStatus(rc, CMPI_RC_OK); + } + return rv; + } else { + if (rc) { + CMSetStatus(rc, CMPI_RC_ERR_NOT_FOUND); + } + return rv_notFound; + } + } for (i = 0; i < num; i++) { if (ClClassGetPropQualifierAt(cls, p - 1, i, &rv, &n) == 0 diff --git a/instance.c b/instance.c index 1cb5755..6f335e5 100644 --- a/instance.c +++ b/instance.c @@ -218,11 +218,12 @@ __ift_clone(const CMPIInstance *instance, CMPIStatus *rc) CMPIData __ift_internal_getPropertyAt(const CMPIInstance *ci, CMPICount i, - char **name, CMPIStatus *rc, int readonly) + char **name, CMPIStatus *rc, int readonly, + unsigned long* quals) { ClInstance *inst = (ClInstance *) ci->hdl; CMPIData rv = { 0, CMPI_notFound, {0} }; - if (ClInstanceGetPropertyAt(inst, i, &rv, name, NULL)) { + if (ClInstanceGetPropertyAt(inst, i, &rv, name, quals)) { if (rc) CMSetStatus(rc, CMPI_RC_ERR_NO_SUCH_PROPERTY); return rv; @@ -268,7 +269,7 @@ __ift_getPropertyAt(const CMPIInstance *ci, CMPICount i, return rv; } - rv = __ift_internal_getPropertyAt(ci, i, &sname, rc, 0); + rv = __ift_internal_getPropertyAt(ci, i, &sname, rc, 0, NULL); if (name) { *name = sfcb_native_new_CMPIString(sname, NULL, 0); } @@ -321,6 +322,22 @@ __ift_getPropertyCount(const CMPIInstance *ci, CMPIStatus *rc) return (CMPICount) ClInstanceGetPropertyCount(inst); } +static CMPIStatus __ift_addPropertyQualifier(const CMPIInstance * instance, + const char *name, + const char *qualifier ) +{ + ClInstance *inst; + int rc; + + if (!instance->hdl) { + CMReturn(CMPI_RC_ERR_INVALID_HANDLE); + } + + inst = (ClInstance *) instance->hdl; + rc = ClInstanceAddPropertyQualifierSpecial(inst, name, qualifier); + CMReturn(rc); +} + static CMPIStatus __ift_setProperty(const CMPIInstance *instance, const char *name, const CMPIValue * value, CMPIType type) @@ -508,7 +525,7 @@ __ift_getObjectPath(const CMPIInstance *instance, CMPIStatus *rc) while (j--) { char *keyName; CMPIData d = - __ift_internal_getPropertyAt(instance, j, &keyName, &tmp, 1); + __ift_internal_getPropertyAt(instance, j, &keyName, &tmp, 1, NULL); if (d.state & CMPI_keyValue) { CMAddKey(cop, keyName, &d.value, d.type); f++; @@ -598,7 +615,7 @@ __ift_internal_setPropertyFilter(CMPIInstance *instance, iNew->property_list = __duplicate_list(propertyList); iNew->key_list = __duplicate_list(keys); for (j = 0, m = __ift_getPropertyCount(instance, &st); j < m; j++) { - data = __ift_internal_getPropertyAt(instance, j, &name, &st, 1); + data = __ift_internal_getPropertyAt(instance, j, &name, &st, 1, NULL); if (__contained_list((char **) propertyList, name) || __contained_list((char **) keys, name)) { if ((data.state & ~CMPI_keyValue) != 0) { @@ -769,7 +786,7 @@ instance2String(CMPIInstance *inst, CMPIStatus *rc) add(&buf, &bp, &bm, "\n"); for (i = 0, m = __ift_getPropertyCount(inst, rc); i < m; i++) { - data = __ift_internal_getPropertyAt(inst, i, &pname, rc, 1); + data = __ift_internal_getPropertyAt(inst, i, &pname, rc, 1, NULL); add(&buf, &bp, &bm, " "); add(&buf, &bp, &bm, pname); add(&buf, &bp, &bm, " = "); @@ -1107,6 +1124,7 @@ instFillDefaultProperties(struct native_instance *inst, pd = cc->ft->getPropertyAt(cc, pc, &pn, &ps); /* if this prop is an EmbeddedObject, force type to CMPI_instance to allow CMSetProperty with a CMPI_Instance */ + /* (also works for EmbeddedInstance, since the EmbeddedObject qual will also be set in that case */ CMPIData pqd = cc->ft->getPropQualifier(cc, CMGetCharsPtr(pn, NULL), "EmbeddedObject", NULL); if ((pqd.state == CMPI_goodValue) && (pqd.value.boolean == 1)) { pd.type = CMPI_instance; @@ -1127,6 +1145,14 @@ instFillDefaultProperties(struct native_instance *inst, } __ift_setProperty(&inst->instance, CMGetCharsPtr(pn, NULL), vp, pd.type); + + /* Copy EmbeddedInstance qualifier from the class to the instance, + so we know, what to put into CIM-XML */ + CMPIData pqd = cc->ft->getPropQualifier(cc, CMGetCharsPtr(pn, NULL), "EmbeddedInstance", NULL); + if ((pqd.state == CMPI_goodValue) && (pqd.value.string != NULL)) { + __ift_addPropertyQualifier(&inst->instance, CMGetCharsPtr(pn,NULL), "EmbeddedInstance"); + } + } } } diff --git a/interopProvider.c b/interopProvider.c index c6dc5bf..c460466 100644 --- a/interopProvider.c +++ b/interopProvider.c @@ -881,8 +881,7 @@ initInterOp(const CMPIBroker * broker, const CMPIContext *ctx) cop = CMGetObjectPath(ci, &st); if (RIEnabled) { // check and set context for migrated listeners. - CMPIInstance *ldi = _broker->bft->getInstance(_broker, ctxLocal, cop, NULL, NULL); - ld = CMGetProperty(ldi, "SequenceContext", NULL); + ld = CMGetProperty(ci, "SequenceContext", NULL); if (ld.state != CMPI_goodValue) { _SFCB_TRACE(1,("--- adding SequenceContext to migrated cim_listenerdestination")); // build and set the context string, we can't know the actual creation @@ -891,12 +890,12 @@ initInterOp(const CMPIBroker * broker, const CMPIContext *ctx) sprintf (context,"%s#%sM%d#",mc.value.string->ft->getCharPtr(mc.value.string,NULL),sfcBrokerStart,ldcount); CMPIValue scontext; scontext.string = sfcb_native_new_CMPIString(context, NULL, 0); - CMSetProperty(ldi, "SequenceContext", &scontext, CMPI_string); + CMSetProperty(ci, "SequenceContext", &scontext, CMPI_string); } // Reset the sequence numbers on sfcb restart CMPIValue zarro = {.sint64 = -1 }; - CMSetProperty(ldi, "LastSequenceNumber", &zarro, CMPI_sint64); - CBModifyInstance(_broker, ctxLocal, cop, ldi, NULL); + CMSetProperty(ci, "LastSequenceNumber", &zarro, CMPI_sint64); + CBModifyInstance(_broker, ctxLocal, cop, ci, NULL); } addHandler(ci, cop); } diff --git a/objectImpl.c b/objectImpl.c index aa22848..e31caa5 100644 --- a/objectImpl.c +++ b/objectImpl.c @@ -1012,7 +1012,11 @@ ClClassAddPropertyQualifierSpecial(ClObjectHdr * hdr, ClProperty * p, p->quals |= ClProperty_Q_Key; else if (strcasecmp(id, "embeddedobject") == 0) p->quals |= ClProperty_Q_EmbeddedObject; - else + /* Make EmbeddedInstance behave as EmbeddedObject, but be able to distinguish between them */ + else if (strcasecmp(id, "embeddedinstance") == 0) { + p->quals |= ClProperty_Q_EmbeddedObject; + p->quals |= ClProperty_Q_EmbeddedInstance; + } else return ClClassAddQualifierSpecial(hdr, &p->qualifiers, id, d, arrHdr); return 0; } @@ -2407,6 +2411,33 @@ ClInstanceGetPropertyAt(ClInstance * inst, int id, CMPIData *data, _SFCB_RETURN(0); } +int ClInstanceAddPropertyQualifierSpecial(ClInstance *inst, const char *id, + const char *qualifier) +{ + int i; + ClProperty *p; + + _SFCB_ENTER(TRACE_OBJECTIMPL, "ClInstanceAddPropertyQualifierSpecial"); + + i = ClObjectLocateProperty(&inst->hdr, &inst->properties, id); + if (i == 0) + /* cannot find the property */ + _SFCB_RETURN(CMPI_RC_ERR_NO_SUCH_PROPERTY); + + p = (ClProperty*) getSectionPtr(&inst->hdr, &inst->properties); + p = p + i - 1; + + if (strcasecmp(qualifier, "embeddedinstance") == 0) { + p->quals |= ClProperty_Q_EmbeddedObject; + p->quals |= ClProperty_Q_EmbeddedInstance; + } else if (strcasecmp(qualifier, "embeddedobject") == 0) { + p->quals |= ClProperty_Q_EmbeddedObject; + } + + _SFCB_RETURN(0) +} + + int ClInstanceAddProperty(ClInstance * inst, const char *id, CMPIData d) { diff --git a/objectImpl.h b/objectImpl.h index 0359c61..16c31a6 100644 --- a/objectImpl.h +++ b/objectImpl.h @@ -286,6 +286,7 @@ typedef struct { #ifndef SETCLPFX #define ClProperty_Q_Key 1 #define ClProperty_Q_EmbeddedObject 8 +#define ClProperty_Q_EmbeddedInstance 16 #endif unsigned char originId; PFX(CLPFX, ClSection) qualifiers; @@ -534,6 +535,7 @@ extern int ClInstanceGetPropertyCount(ClInstance * inst); extern int ClInstanceGetPropertyAt(ClInstance * inst, int id, CMPIData *data, char **name, unsigned long *quals); +extern int ClInstanceAddPropertyQualifierSpecial(ClInstance *inst, const char *id, const char *qualifier); extern int ClInstanceAddProperty(ClInstance * inst, const char *id, CMPIData d); extern void ClInstanceFilterFlagProperty(ClInstance * inst, int id); diff --git a/test/TestProviders/cmpiTestIndicationProvider.c b/test/TestProviders/cmpiTestIndicationProvider.c index 348aef8..6f8bb47 100644 --- a/test/TestProviders/cmpiTestIndicationProvider.c +++ b/test/TestProviders/cmpiTestIndicationProvider.c @@ -41,6 +41,14 @@ generateIndication(const char *methodname, const CMPIContext *ctx) dat = CMNewDateTime(broker, &rc); CMSetProperty(inst, "IndicationTime", &dat, CMPI_dateTime); + CMPIObjectPath* cop1 = CMNewObjectPath(broker, "root/cimv2", "Sample_Instance", &rc); + CMPIValue value3; + value3.string = CMNewString(broker, "I'm an EmbeddedObject", &rc); + CMPIInstance* Einst; + Einst = CMNewInstance(broker, cop1, &rc); + CMSetProperty(Einst, "Message", &value3, CMPI_string); + CMSetProperty(inst, "EInst", &Einst, CMPI_instance); + CMSetProperty(inst, "MethodName", methodname, CMPI_chars); ar = CMNewArray(broker, 0, CMPI_string, &rc); diff --git a/test/TestProviders/cmpiTestInstanceProvider.c b/test/TestProviders/cmpiTestInstanceProvider.c index eba1812..3e68932 100644 --- a/test/TestProviders/cmpiTestInstanceProvider.c +++ b/test/TestProviders/cmpiTestInstanceProvider.c @@ -104,11 +104,13 @@ initialize() CMPIValue value1, value2, value3, + value4, value_inst1, value_inst2; CMPIInstance *instance1, *instance2, *instance3, + *Eobj, *Einst; CMPIObjectPath *cop1, *cop2, @@ -116,6 +118,7 @@ initialize() value1.uint8 = 1; value2.string = CMNewString(_broker, "Hello World", &rc); value3.string = CMNewString(_broker, "I'm an EmbeddedObject", &rc); + value4.string = CMNewString(_broker, "I'm an EmbeddedInstance", &rc); /* * create a new array to hold the instances created @@ -144,10 +147,14 @@ initialize() CMSetProperty(instance1, "Message", &value2, CMPI_string); /* EmbeddedObject */ - Einst = CMNewInstance(_broker, cop1, &rc); - CMSetProperty(Einst, "Message", &value3, CMPI_string); - CMSetProperty(instance1, "EInst", &Einst, CMPI_instance); + Eobj = CMNewInstance(_broker, cop1, &rc); + CMSetProperty(Eobj, "Message", &value3, CMPI_string); + CMSetProperty(instance1, "Eobj", &Eobj, CMPI_instance); + /* EmbeddedInstance */ + Einst = CMNewInstance(_broker, cop1, &rc); + CMSetProperty(Einst, "Message", &value4, CMPI_string); + CMSetProperty(instance1, "Einst", &Einst, CMPI_instance); value_inst1.inst = instance1; diff --git a/test/TestProviders/tests/Test1EnumerateInstances.lines b/test/TestProviders/tests/Test1EnumerateInstances.lines index 19b725f..ef23387 100644 --- a/test/TestProviders/tests/Test1EnumerateInstances.lines +++ b/test/TestProviders/tests/Test1EnumerateInstances.lines @@ -3,13 +3,27 @@ <KEYVALUE VALUETYPE="numeric">1</KEYVALUE> <INSTANCE CLASSNAME="Sample_Instance"> <PROPERTY NAME="Identifier" TYPE="uint8"> -<VALUE>1</VALUE> -<PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> +<PROPERTY NAME="Einst" EmbeddedObject="instance" TYPE="string"> <VALUE><INSTANCE CLASSNAME="Sample_Instance"> <PROPERTY NAME="Identifier" TYPE="uint8"> <VALUE>1</VALUE> </PROPERTY> -<PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> +<PROPERTY NAME="Einst" EmbeddedObject="instance" TYPE="string"> +</PROPERTY> +<PROPERTY NAME="Eobj" EmbeddedObject="object" TYPE="string"> +</PROPERTY> +<PROPERTY NAME="Message" TYPE="string"> +<VALUE>I&apos;m an EmbeddedInstance</VALUE> +</PROPERTY> +</INSTANCE> +<PROPERTY NAME="Eobj" EmbeddedObject="object" TYPE="string"> +<VALUE><INSTANCE CLASSNAME="Sample_Instance"> +<PROPERTY NAME="Identifier" TYPE="uint8"> +<VALUE>1</VALUE> +</PROPERTY> +<PROPERTY NAME="Einst" EmbeddedObject="instance" TYPE="string"> +</PROPERTY> +<PROPERTY NAME="Eobj" EmbeddedObject="object" TYPE="string"> </PROPERTY> <PROPERTY NAME="Message" TYPE="string"> <VALUE>I&apos;m an EmbeddedObject</VALUE> @@ -19,7 +33,8 @@ <VALUE>Hello World</VALUE> <KEYVALUE VALUETYPE="numeric">2</KEYVALUE> <VALUE>2</VALUE> +<PROPERTY NAME="Einst" EmbeddedObject="instance" TYPE="string"> +<PROPERTY NAME="Eobj" EmbeddedObject="object" TYPE="string"> <VALUE>Yo Planet</VALUE> <KEYVALUE VALUETYPE="numeric">3</KEYVALUE> <VALUE>3</VALUE> -<VALUE>Hey Earth</VALUE> diff --git a/test/schema/root/cimv2/Test_Instance.mof b/test/schema/root/cimv2/Test_Instance.mof index 066dd8c..8cb6de6 100644 --- a/test/schema/root/cimv2/Test_Instance.mof +++ b/test/schema/root/cimv2/Test_Instance.mof @@ -13,5 +13,8 @@ class Sample_Instance : Sample_Class string Message; [EmbeddedObject] + string Eobj; + + [EmbeddedInstance] string Einst; }; diff --git a/test/schema/root/interop/Test_Indication.mof b/test/schema/root/interop/Test_Indication.mof index 01e4480..71288bb 100644 --- a/test/schema/root/interop/Test_Indication.mof +++ b/test/schema/root/interop/Test_Indication.mof @@ -2,5 +2,6 @@ class Test_Indication : CIM_ProcessIndication { string MethodName; + [EmbeddedObject] string Einst; [Static] uint32 SendTestIndication(); }; hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave H. <hel...@us...> - 2013-05-29 03:53:42
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master_1.3 has been updated via a4bda05412b66be11493bddcece7dc727a1c0908 (commit) from 5d2158d867c25c25efaedca27cbc265adc363671 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a4bda05412b66be11493bddcece7dc727a1c0908 Author: Dave Heller <hel...@us...> Date: Tue May 28 23:51:41 2013 -0400 [sfcb-tix:#54] Fix for sfcbproc.c ----------------------------------------------------------------------- Summary of changes: sfcbproc.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sfcbproc.c b/sfcbproc.c index d5a011c..94ad542 100644 --- a/sfcbproc.c +++ b/sfcbproc.c @@ -466,7 +466,7 @@ static int getSocketInodeList(int port, int addrFam, SockDescr **sockListPtr) { return cnt; } - if (locport == port) { /* match */ + if (locport == port && inode > 0) { /* match */ if (verbose) (sockList + cnt)->ip = ipHexToPres(addrFam, locaddr); @@ -674,5 +674,5 @@ int main(int argc, char **argv) { printf("%5d %5d %5d %-4c %s\n", p->pid, p->ppid, p->pgrp, p->state, role); } - exit(0); + _exit(0); } hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave H. <hel...@us...> - 2013-05-29 03:30:58
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 77222df9ea5b733d8e6bbe82b143bdc07ddf155a (commit) from 93e62db29de3c509788a7d7c4be78705fe2162d8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 77222df9ea5b733d8e6bbe82b143bdc07ddf155a Author: Dave Heller <hel...@us...> Date: Tue May 28 23:21:09 2013 -0400 [sfcb-tix:#54] Fix for sfcbproc.c ----------------------------------------------------------------------- Summary of changes: sfcbproc.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sfcbproc.c b/sfcbproc.c index d5a011c..94ad542 100644 --- a/sfcbproc.c +++ b/sfcbproc.c @@ -466,7 +466,7 @@ static int getSocketInodeList(int port, int addrFam, SockDescr **sockListPtr) { return cnt; } - if (locport == port) { /* match */ + if (locport == port && inode > 0) { /* match */ if (verbose) (sockList + cnt)->ip = ipHexToPres(addrFam, locaddr); @@ -674,5 +674,5 @@ int main(int argc, char **argv) { printf("%5d %5d %5d %-4c %s\n", p->pid, p->ppid, p->pgrp, p->state, role); } - exit(0); + _exit(0); } hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave H. <hel...@us...> - 2013-05-29 02:02:36
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 93e62db29de3c509788a7d7c4be78705fe2162d8 (commit) from 2e68c1a981197cca8f64490dcef9021da1c44e74 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 93e62db29de3c509788a7d7c4be78705fe2162d8 Author: Dave Heller <hel...@us...> Date: Tue May 28 22:01:09 2013 -0400 [sfcb-tix:#53] SFCB may not start if runtime does not support IPv6 ----------------------------------------------------------------------- Summary of changes: httpAdapter.c | 2 +- sfcBroker.c | 54 +++++++++++++++++++++++++++++++----------------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/httpAdapter.c b/httpAdapter.c index c54ddf5..d732875 100644 --- a/httpAdapter.c +++ b/httpAdapter.c @@ -197,7 +197,7 @@ typedef struct _buffer { } Buffer; #ifdef HAVE_IPV6 -static int fallback_ipv4; +extern int fallback_ipv4; #endif #define SET_HDR_CP(member, val) member = val + strspn(val, " \t"); \ diff --git a/sfcBroker.c b/sfcBroker.c index 700d0c3..3d15a2d 100644 --- a/sfcBroker.c +++ b/sfcBroker.c @@ -104,6 +104,10 @@ extern char *configfile; extern char *ip4List; extern char *ip6List; +#ifdef HAVE_IPV6 +int fallback_ipv4 = 1; +#endif + int trimws = 1; typedef struct startedAdapter { @@ -912,31 +916,35 @@ main(int argc, char *argv[]) } } #ifdef HAVE_IPV6 - if (!ip6List) - getControlChars("ip6AddrList",&ip6List); - if (ip6List && !httpLocalOnly) { - char* t = strtok(ip6List,","); - while(t) { - ipAddrList[ipAddrCnt].addrStr = strdup(t); - ipAddrList[ipAddrCnt].addrFam = AF_INET6; - ipAddrCnt++; - t = strtok(NULL,","); - if ((ipAddrList = realloc(ipAddrList,(ipAddrCnt+1)*sizeof(IpAddr))) == 0) { - mlogf(M_ERROR,M_SHOW,"-#- Failed to realloc memory for ipAddrList.\n"); - exit(2); + struct stat buf; + if (stat("/proc/net/tcp6", &buf) == 0 && (buf.st_mode & S_IFMT) == S_IFREG) { + if (!ip6List) + getControlChars("ip6AddrList",&ip6List); + if (ip6List && !httpLocalOnly) { + char* t = strtok(ip6List,","); + while(t) { + ipAddrList[ipAddrCnt].addrStr = strdup(t); + ipAddrList[ipAddrCnt].addrFam = AF_INET6; + ipAddrCnt++; + t = strtok(NULL,","); + if ((ipAddrList = realloc(ipAddrList,(ipAddrCnt+1)*sizeof(IpAddr))) == 0) { + mlogf(M_ERROR,M_SHOW,"-#- Failed to realloc memory for ipAddrList.\n"); + exit(2); + } } } - } - if (ipAddrCnt == 0) { - if (httpLocalOnly) { - mlogf(M_INFO,M_SHOW,"--- Bind to loopback address\n"); - ipAddrList[ipAddrCnt].addrStr = "::1"; - } else { - mlogf(M_INFO,M_SHOW,"--- Bind to any available IP address\n"); - ipAddrList[ipAddrCnt].addrStr = "::"; + if (ipAddrCnt == 0) { + if (httpLocalOnly) { + mlogf(M_INFO,M_SHOW,"--- Bind to loopback address\n"); + ipAddrList[ipAddrCnt].addrStr = "::1"; + } else { + mlogf(M_INFO,M_SHOW,"--- Bind to any available IP address\n"); + ipAddrList[ipAddrCnt].addrStr = "::"; + } + ipAddrList[ipAddrCnt].addrFam = AF_INET6; + ipAddrCnt++; } - ipAddrList[ipAddrCnt].addrFam = AF_INET6; - ipAddrCnt++; + fallback_ipv4 = 0; } #endif if (ipAddrCnt == 0) { @@ -947,7 +955,7 @@ main(int argc, char *argv[]) mlogf(M_INFO,M_SHOW,"--- Bind to any available IP address\n"); ipAddrList[ipAddrCnt].addrStr = "0.0.0.0"; } - ipAddrList[ipAddrCnt].addrFam = AF_INET6; + ipAddrList[ipAddrCnt].addrFam = AF_INET; ipAddrCnt++; } #endif // LOCAL_CONNECT_ONLY_ENABLE hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave H. <hel...@us...> - 2013-05-28 19:06:22
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "cmpi-base - Base OS CMPI Providers". The branch, master has been updated via aa228b9cfa96962488afffb662064db0f72b5f84 (commit) from 2b454ef0a824ded1dadbd61c407a3417d035e9bb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit aa228b9cfa96962488afffb662064db0f72b5f84 Author: Dave Heller <hel...@us...> Date: Tue May 28 15:01:49 2013 -0400 Fixed SBLIM-2634: incorrect max cpu frequency ----------------------------------------------------------------------- Summary of changes: ChangeLog | 7 +++++++ NEWS | 6 ++++++ OSBase_Processor.c | 22 +++++++++++++++++++++- contributions.txt | 3 +++ 4 files changed, 37 insertions(+), 1 deletions(-) diff --git a/ChangeLog b/ChangeLog index 031efce..319921a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-05-28 Dave Heller <hel...@us...> + + * NEWS, contributions.txt, OSBase_Processor.c: + + Fixed SBLIM-2634: incorrect max cpu frequency + (patch by Henning Sackewitz) + 2012-11-02 Tyrel Datwyler <ty...@us...> * NEWS, OSBase_UnixProcess.c: diff --git a/NEWS b/NEWS index 56f3383..dc4e3cd 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +Changes in Version 1.6.3 +======================== + +Bugs Fixed: +- SBLIM-2634: incorrect max cpu frequency + Changes in Version 1.6.2 ======================== diff --git a/OSBase_Processor.c b/OSBase_Processor.c index 9556a77..bae0e32 100644 --- a/OSBase_Processor.c +++ b/OSBase_Processor.c @@ -37,6 +37,7 @@ static unsigned short _processor_family( int ); static unsigned short _processor_load_perc( int ); char * CPUINFO = "/proc/cpuinfo"; +char * CPUMAXFREQ = "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"; //char * CPUINFO = "/home/heidineu/local/sblim/cmpi-base-cpuinfo/x86_ibm_xSeries_2x"; //char * CPUINFO = "/home/heidineu/local/sblim/cmpi-base-cpuinfo/x86_ibm_xSeries_4x"; @@ -247,6 +248,9 @@ static int _processor_data( int id, struct cim_processor ** sptr ) { int count = 0; int lines = 0; int rc = 0; + char * maxcpufreq = NULL; + unsigned long maxMHz = 0; + FILE *fp; _OSBASE_TRACE(4,("--- _processor_data() called")); @@ -346,6 +350,18 @@ static int _processor_data( int id, struct cim_processor ** sptr ) { strcpy(cmd, "cat "); strcat(cmd, CPUINFO); #if defined (INTEL) || defined (X86_64) || defined (IA64) + /* if /sys/devices/system/cpu/cpu(id]/cpufreq/cpuinfo_max_freq exists */ + /* then calculate MaxClockSpeed from there, otherwise the cpufreq module */ + /* is not loaded, and /proc/cpuinfo always shows maximum speed */ + maxcpufreq = malloc((strlen(CPUMAXFREQ)+5)); + sprintf(maxcpufreq, "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_max_freq", id); + if ((fp = fopen(maxcpufreq, "r")) > 0) { + if (1 == fscanf(fp, "%lu", &maxMHz)) { + maxMHz = maxMHz / 1000; + _OSBASE_TRACE(3,("--- _processor_data() maxMHz = %lu", maxMHz)); + } + fclose(fp); + } strcat(cmd, " | grep 'cpu MHz'"); rc = runcommand( cmd, NULL, &hdout, NULL ); #elif defined (S390) || defined (MIPS) @@ -380,9 +396,13 @@ static int _processor_data( int id, struct cim_processor ** sptr ) { #endif ptr = ptr+1; (*sptr)->curClockSpeed = atol(ptr); - (*sptr)->maxClockSpeed = atol(ptr); + if (maxMHz > 0) + (*sptr)->maxClockSpeed = maxMHz; + else + (*sptr)->maxClockSpeed = atol(ptr); } freeresultbuf(hdout); + if (maxcpufreq) free(maxcpufreq); if(cmd) free(cmd); _OSBASE_TRACE(4,("--- _processor_data() exited")); diff --git a/contributions.txt b/contributions.txt index 28676f9..3d674be 100644 --- a/contributions.txt +++ b/contributions.txt @@ -22,3 +22,6 @@ Michal Hrušecký, Novell ----------------------- 08/25/2009 [ 2843613 ] Missing fclose in sblim-cmpi-base +Henning Sackewitz, +----------------------- +05/28/2013 [ SBLIM-2634 ] incorrect max cpu frequency hooks/post-receive -- cmpi-base - Base OS CMPI Providers |
From: Dave B. <bla...@us...> - 2013-05-27 19:13:35
|
Update of /cvsroot/sblim/jsr48-client/utst/org/sblim/cimclient/unittest/wbem/data In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17914/utst/org/sblim/cimclient/unittest/wbem/data Modified Files: enumerateClasses.xml Log Message: 2640 Multiple CDATA parsing broken in DOM parser Index: enumerateClasses.xml =================================================================== RCS file: /cvsroot/sblim/jsr48-client/utst/org/sblim/cimclient/unittest/wbem/data/enumerateClasses.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- enumerateClasses.xml 27 May 2013 19:03:43 -0000 1.9 +++ enumerateClasses.xml 27 May 2013 19:13:33 -0000 1.10 @@ -13,7 +13,7 @@ </QUALIFIER> <PROPERTY NAME="Caption" CLASSORIGIN="CIM_ManagedElement" PROPAGATED="true" TYPE="string"> <QUALIFIER NAME="Description" TYPE="string" OVERRIDABLE="false" TRANSLATABLE="true"> - <VALUE><![CDATA[Long long text...]]></VALUE> + <VALUE><![CDATA[Long]]> long <![CDATA[text]]>...</VALUE> </QUALIFIER> </PROPERTY> <PROPERTY NAME="Description" CLASSORIGIN="CIM_ManagedElement" PROPAGATED="true" TYPE="string"></PROPERTY> |
From: Dave B. <bla...@us...> - 2013-05-27 19:03:45
|
Update of /cvsroot/sblim/jsr48-client In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17485 Modified Files: NEWS Log Message: 2639 CDATA parsing broken in PULL parser Index: NEWS =================================================================== RCS file: /cvsroot/sblim/jsr48-client/NEWS,v retrieving revision 1.351 retrieving revision 1.352 diff -u -d -r1.351 -r1.352 --- NEWS 27 May 2013 18:56:31 -0000 1.351 +++ NEWS 27 May 2013 19:03:43 -0000 1.352 @@ -1,5 +1,6 @@ Changes in HEAD ================ + 2639 CDATA parsing broken in PULL parser 2638 Do not build empty REFERENCECLASS 2637 Add nested embedded instance builder test 2636 Nested embedded instances cause CIMXMLParseException |
From: Dave B. <bla...@us...> - 2013-05-27 18:56:33
|
Update of /cvsroot/sblim/jsr48-client In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17048 Modified Files: NEWS Log Message: 2638 Do not build empty REFERENCECLASS Index: NEWS =================================================================== RCS file: /cvsroot/sblim/jsr48-client/NEWS,v retrieving revision 1.350 retrieving revision 1.351 diff -u -d -r1.350 -r1.351 --- NEWS 27 May 2013 18:46:18 -0000 1.350 +++ NEWS 27 May 2013 18:56:31 -0000 1.351 @@ -1,5 +1,6 @@ Changes in HEAD ================ + 2638 Do not build empty REFERENCECLASS 2637 Add nested embedded instance builder test 2636 Nested embedded instances cause CIMXMLParseException 2632 Potential Null Point Exception in CIMDataType |
From: Dave B. <bla...@us...> - 2013-05-27 18:46:20
|
Update of /cvsroot/sblim/jsr48-client/utst/org/sblim/cimclient/unittest/wbem In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv16517/utst/org/sblim/cimclient/unittest/wbem Modified Files: NestedEmbInstTest.java Log Message: 2637 Add nested embedded instance builder test Index: NestedEmbInstTest.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/utst/org/sblim/cimclient/unittest/wbem/NestedEmbInstTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- NestedEmbInstTest.java 27 May 2013 15:03:55 -0000 1.2 +++ NestedEmbInstTest.java 27 May 2013 18:46:18 -0000 1.3 @@ -14,18 +14,25 @@ * Flag Date Prog Description * ------------------------------------------------------------------------------- * 2636 2013-05-08 blaschke-oss Nested embedded instances cause CIMXMLParseException + * 2637 2013-05-09 blaschke-oss Add nested embedded instance builder test */ package org.sblim.cimclient.unittest.wbem; +import java.io.ByteArrayOutputStream; import java.io.InputStream; +import javax.cim.CIMDataType; import javax.cim.CIMInstance; +import javax.cim.CIMObjectPath; import javax.cim.CIMProperty; import javax.cim.UnsignedInteger64; import javax.wbem.CloseableIterator; import javax.wbem.WBEMException; +import org.sblim.cimclient.internal.cimxml.CIMClientXML_HelperImpl; +import org.sblim.cimclient.internal.cimxml.CimXmlSerializer; import org.sblim.cimclient.unittest.TestCase; +import org.w3c.dom.Document; /** * @@ -115,4 +122,82 @@ checkEnumInstResult(Common.parseWithPULL(getInstIS())); } + /** + * testNestedEmbInstBuilder + * + * @throws Exception + */ + public void testNestedEmbInstBuilder() throws Exception { + CIMProperty<String> prop4a = new CIMProperty<String>("CreationClassName", + CIMDataType.STRING_T, "LMI_StorageExtent", true, false, null); + CIMProperty<String> prop4b = new CIMProperty<String>("DeviceID", CIMDataType.STRING_T, + "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-1", true, false, null); + CIMProperty<String> prop4c = new CIMProperty<String>("SystemCreationClassName", + CIMDataType.STRING_T, "Linux_ComputerSystem", true, false, null); + CIMProperty<String> prop4d = new CIMProperty<String>("SystemName", CIMDataType.STRING_T, + "rawhide", true, false, null); + CIMProperty<?>[] props4 = new CIMProperty[] { prop4a, prop4b, prop4c, prop4d }; + + CIMProperty<CIMObjectPath> prop3a = new CIMProperty<CIMObjectPath>("Extent", + new CIMDataType(""), new CIMObjectPath(null, null, null, "root/cimv2", + "CIM_StorageExtent", props4)); + CIMProperty<UnsignedInteger64> prop3b = new CIMProperty<UnsignedInteger64>("Size", + CIMDataType.UINT64_T, new UnsignedInteger64("10000000")); + CIMProperty<?>[] props3 = new CIMProperty[] { prop3a, prop3b }; + CIMInstance inst3 = new CIMInstance(new CIMObjectPath(null, null, null, null, + "CIM_ManagedElement", null), props3); + + CIMProperty<CIMInstance> prop2a = new CIMProperty<CIMInstance>("JobInParameters", + CIMDataType.OBJECT_T, inst3); + CIMProperty<String> prop2b = new CIMProperty<String>("InstanceID", CIMDataType.STRING_T, + "LMI:LMI_StorageJob:1"); + CIMProperty<?>[] props2 = new CIMProperty[] { prop2a, prop2b }; + CIMInstance inst2 = new CIMInstance(new CIMObjectPath(null, null, null, null, + "LMI_StorageJob", null), props2); + + CIMProperty<CIMInstance> prop1a = new CIMProperty<CIMInstance>("SourceInstance", + CIMDataType.OBJECT_T, inst2); + CIMProperty<String> prop1b = new CIMProperty<String>("SourceInstanceModelPath", + CIMDataType.STRING_T, + "//rawhide/root/cimv2:LMI_StorageJob.InstanceID=\"LMI:LMI_StorageJob:1\""); + CIMProperty<?>[] props1 = new CIMProperty[] { prop1a, prop1b }; + CIMInstance inst1 = new CIMInstance(new CIMObjectPath(null, null, null, null, + "LMI_StorageInstModification", null), props1); + + CIMClientXML_HelperImpl helper = new CIMClientXML_HelperImpl(); + helper.setId(3); + Document doc = helper.newDocument(); + helper.createCIMMessage(doc, helper.createInstance_request(doc, new CIMObjectPath(null, + null, null, null, "CIM_ManagedElement", null), inst3)); + ByteArrayOutputStream stream3 = new ByteArrayOutputStream(4096); + CimXmlSerializer.serialize(stream3, doc, false); + + helper.setId(2); + doc = helper.newDocument(); + helper.createCIMMessage(doc, helper.createInstance_request(doc, new CIMObjectPath(null, + null, null, null, "LMI_StorageJob", null), inst2)); + ByteArrayOutputStream stream2 = new ByteArrayOutputStream(4096); + CimXmlSerializer.serialize(stream2, doc, false); + + helper.setId(1); + doc = helper.newDocument(); + helper.createCIMMessage(doc, helper.createInstance_request(doc, new CIMObjectPath(null, + null, null, null, "LMI_StorageInstModification", null), inst1)); + ByteArrayOutputStream stream1 = new ByteArrayOutputStream(4096); + CimXmlSerializer.serialize(stream1, doc, false); + + String level1 = stream3.toString(); + String level2 = stream2.toString(); + String level3 = stream1.toString(); + + String levelExpectedSubstring1 = "<PROPERTY NAME=\"Size\" TYPE=\"uint64\"><VALUE>10000000</VALUE></PROPERTY>"; + // levelExpectedSubstring2 is escaped version of levelExpectedSubstring1 + String levelExpectedSubstring2 = "<PROPERTY NAME="Size" TYPE="uint64"><VALUE>10000000</VALUE></PROPERTY>"; + // levelExpectedSubstring3 is escaped version of levelExpectedSubstring2 + String levelExpectedSubstring3 = "&lt;PROPERTY NAME=&quot;Size&quot; TYPE=&quot;uint64&quot;&gt;&lt;VALUE&gt;10000000&lt;/VALUE&gt;&lt;/PROPERTY&gt;"; + + verify("1st level nesting error!", level1.indexOf(levelExpectedSubstring1) != -1); + verify("2nd level nesting error!", level2.indexOf(levelExpectedSubstring2) != -1); + verify("3rd level nesting error!", level3.indexOf(levelExpectedSubstring3) != -1); + } } |
From: Dave B. <bla...@us...> - 2013-05-27 15:03:57
|
Update of /cvsroot/sblim/jsr48-client/utst/org/sblim/cimclient/unittest/wbem/data In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv6240/utst/org/sblim/cimclient/unittest/wbem/data Added Files: NestedEmbInst.xml Log Message: 2636 Nested embedded instances cause CIMXMLParseException --- NEW FILE: NestedEmbInst.xml --- <?xml version="1.0" encoding="utf-8" ?> <CIM CIMVERSION="2.0" DTDVERSION="2.0"> <MESSAGE ID="1" PROTOCOLVERSION="1.0"> <SIMPLERSP> <IMETHODRESPONSE NAME="EnumerateInstances"> <IRETURNVALUE> <INSTANCE CLASSNAME="LMI_StorageInstModification"> <PROPERTY NAME="SourceInstanceHost" TYPE="string"> <VALUE>rawhide</VALUE> </PROPERTY> <PROPERTY NAME="SourceInstanceModelPath" TYPE="string"> <VALUE>//rawhide/root/cimv2:LMI_StorageJob.InstanceID="LMI:LMI_StorageJob:1"</VALUE> </PROPERTY> <PROPERTY NAME="SourceInstance" EmbeddedObject="object" TYPE="string"> <VALUE><INSTANCE CLASSNAME="LMI_StorageJob"> <PROPERTY NAME="MethodName" TYPE="string"> </PROPERTY> <PROPERTY NAME="JobOutParameters" EmbeddedObject="object" TYPE="string"> </PROPERTY> <PROPERTY NAME="JobInParameters" EmbeddedObject="object" TYPE="string"> <VALUE>&lt;INSTANCE CLASSNAME=&quot;CIM_ManagedElement&quot;&gt; &lt;PROPERTY NAME=&quot;Generation&quot; TYPE=&quot;uint64&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;ElementName&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;Description&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;Caption&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;InstanceID&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY.REFERENCE NAME=&quot;Partition&quot;&gt; &lt;/PROPERTY.REFERENCE&gt; &lt;PROPERTY.REFERENCE NAME=&quot;Goal&quot;&gt; &lt;/PROPERTY.REFERENCE&gt; &lt;PROPERTY.REFERENCE NAME=&quot;Extent&quot;&gt; &lt;VALUE.REFERENCE&gt; &lt;LOCALINSTANCEPATH&gt; &lt;LOCALNAMESPACEPATH&gt; &lt;NAMESPACE NAME=&quot;root&quot;/&gt; &lt;NAMESPACE NAME=&quot;cimv2&quot;/&gt; &lt;/LOCALNAMESPACEPATH&gt; &lt;INSTANCENAME CLASSNAME=&quot;CIM_StorageExtent&quot;&gt; &lt;KEYBINDING NAME=&quot;CreationClassName&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;LMI_StorageExtent&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;KEYBINDING NAME=&quot;SystemName&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;rawhide&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;KEYBINDING NAME=&quot;DeviceID&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-1&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;KEYBINDING NAME=&quot;SystemCreationClassName&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;Linux_ComputerSystem&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;/INSTANCENAME&gt; &lt;/LOCALINSTANCEPATH&gt; &lt;/VALUE.REFERENCE&gt; &lt;/PROPERTY.REFERENCE&gt; &lt;PROPERTY NAME=&quot;Size&quot; TYPE=&quot;uint64&quot;&gt; &lt;VALUE&gt;10000000&lt;/VALUE&gt; &lt;/PROPERTY&gt; &lt;/INSTANCE&gt; </VALUE> </PROPERTY> <PROPERTY NAME="InstanceID" TYPE="string"> <VALUE>LMI:LMI_StorageJob:1</VALUE> </PROPERTY> <PROPERTY NAME="Generation" TYPE="uint64"> </PROPERTY> <PROPERTY NAME="ElementName" TYPE="string"> </PROPERTY> <PROPERTY NAME="Description" TYPE="string"> <VALUE>CREATE PARTITION ON /dev/sdb</VALUE> </PROPERTY> <PROPERTY NAME="Caption" TYPE="string"> </PROPERTY> <PROPERTY NAME="InstallDate" TYPE="datetime"> </PROPERTY> <PROPERTY.ARRAY NAME="StatusDescriptions" TYPE="string"> </PROPERTY.ARRAY> <PROPERTY NAME="Status" TYPE="string"> </PROPERTY> <PROPERTY NAME="HealthState" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="CommunicationStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="DetailedStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="OperatingStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="PrimaryStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="JobStatus" TYPE="string"> </PROPERTY> <PROPERTY NAME="ScheduledStartTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="JobRunTimes" TYPE="uint32"> <VALUE>1</VALUE> </PROPERTY> <PROPERTY NAME="RunMonth" TYPE="uint8"> </PROPERTY> <PROPERTY NAME="RunDay" TYPE="sint8"> </PROPERTY> <PROPERTY NAME="RunDayOfWeek" TYPE="sint8"> </PROPERTY> <PROPERTY NAME="RunStartInterval" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="UntilTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="Notify" TYPE="string"> </PROPERTY> <PROPERTY NAME="Owner" TYPE="string"> </PROPERTY> <PROPERTY NAME="Priority" TYPE="uint32"> </PROPERTY> <PROPERTY NAME="ErrorCode" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="ErrorDescription" TYPE="string"> </PROPERTY> <PROPERTY NAME="RecoveryAction" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="OtherRecoveryAction" TYPE="string"> </PROPERTY> <PROPERTY NAME="DeleteOnCompletion" TYPE="boolean"> <VALUE>TRUE</VALUE> </PROPERTY> <PROPERTY NAME="ElapsedTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="JobState" TYPE="uint16"> <VALUE>4</VALUE> </PROPERTY> <PROPERTY NAME="LocalOrUtcTime" TYPE="uint16"> <VALUE>2</VALUE> </PROPERTY> <PROPERTY NAME="Name" TYPE="string"> <VALUE>CREATE PARTITION ON /dev/sdb</VALUE> </PROPERTY> <PROPERTY.ARRAY NAME="OperationalStatus" TYPE="uint16"> <VALUE.ARRAY> <VALUE>2</VALUE> </VALUE.ARRAY> </PROPERTY.ARRAY> <PROPERTY NAME="PercentComplete" TYPE="uint16"> <VALUE>50</VALUE> </PROPERTY> <PROPERTY NAME="StartTime" TYPE="datetime"> <VALUE>20130429103108.468050+000</VALUE> </PROPERTY> <PROPERTY NAME="TimeBeforeRemoval" TYPE="datetime"> <VALUE>00000000000100.000000:000</VALUE> </PROPERTY> <PROPERTY NAME="TimeOfLastStateChange" TYPE="datetime"> <VALUE>20130429103108.468089+000</VALUE> </PROPERTY> <PROPERTY NAME="TimeSubmitted" TYPE="datetime"> <VALUE>20130429103108.458642+000</VALUE> </PROPERTY> </INSTANCE> </VALUE> </PROPERTY> <PROPERTY NAME="IndicationIdentifier" TYPE="string"> </PROPERTY> <PROPERTY.ARRAY NAME="CorrelatedIndications" TYPE="string"> </PROPERTY.ARRAY> <PROPERTY NAME="IndicationTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="PerceivedSeverity" TYPE="uint16"> <VALUE>2</VALUE> </PROPERTY> <PROPERTY NAME="OtherSeverity" TYPE="string"> </PROPERTY> <PROPERTY NAME="IndicationFilterName" TYPE="string"> <VALUE>LMI:LMI_StorageJob:Changed</VALUE> </PROPERTY> <PROPERTY NAME="SequenceContext" TYPE="string"> <VALUE>sfcb:NO-UUID-FILE-rawhide#20130429103059#20130429103057</VALUE> </PROPERTY> <PROPERTY NAME="SequenceNumber" TYPE="sint64"> <VALUE>0</VALUE> </PROPERTY> <PROPERTY NAME="PreviousInstance" EmbeddedObject="object" TYPE="string"> <VALUE><INSTANCE CLASSNAME="LMI_StorageJob"> <PROPERTY NAME="MethodName" TYPE="string"> </PROPERTY> <PROPERTY NAME="JobOutParameters" EmbeddedObject="object" TYPE="string"> </PROPERTY> <PROPERTY NAME="JobInParameters" EmbeddedObject="object" TYPE="string"> <VALUE>&lt;INSTANCE CLASSNAME=&quot;CIM_ManagedElement&quot;&gt; &lt;PROPERTY NAME=&quot;Generation&quot; TYPE=&quot;uint64&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;ElementName&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;Description&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;Caption&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY NAME=&quot;InstanceID&quot; TYPE=&quot;string&quot;&gt; &lt;/PROPERTY&gt; &lt;PROPERTY.REFERENCE NAME=&quot;Partition&quot;&gt; &lt;/PROPERTY.REFERENCE&gt; &lt;PROPERTY.REFERENCE NAME=&quot;Goal&quot;&gt; &lt;/PROPERTY.REFERENCE&gt; &lt;PROPERTY.REFERENCE NAME=&quot;Extent&quot;&gt; &lt;VALUE.REFERENCE&gt; &lt;LOCALINSTANCEPATH&gt; &lt;LOCALNAMESPACEPATH&gt; &lt;NAMESPACE NAME=&quot;root&quot;/&gt; &lt;NAMESPACE NAME=&quot;cimv2&quot;/&gt; &lt;/LOCALNAMESPACEPATH&gt; &lt;INSTANCENAME CLASSNAME=&quot;CIM_StorageExtent&quot;&gt; &lt;KEYBINDING NAME=&quot;CreationClassName&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;LMI_StorageExtent&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;KEYBINDING NAME=&quot;SystemName&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;rawhide&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;KEYBINDING NAME=&quot;DeviceID&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-1&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;KEYBINDING NAME=&quot;SystemCreationClassName&quot;&gt; &lt;KEYVALUE VALUETYPE=&quot;string&quot;&gt;Linux_ComputerSystem&lt;/KEYVALUE&gt; &lt;/KEYBINDING&gt; &lt;/INSTANCENAME&gt; &lt;/LOCALINSTANCEPATH&gt; &lt;/VALUE.REFERENCE&gt; &lt;/PROPERTY.REFERENCE&gt; &lt;PROPERTY NAME=&quot;Size&quot; TYPE=&quot;uint64&quot;&gt; &lt;VALUE&gt;10000000&lt;/VALUE&gt; &lt;/PROPERTY&gt; &lt;/INSTANCE&gt; </VALUE> </PROPERTY> <PROPERTY NAME="InstanceID" TYPE="string"> <VALUE>LMI:LMI_StorageJob:1</VALUE> </PROPERTY> <PROPERTY NAME="Generation" TYPE="uint64"> </PROPERTY> <PROPERTY NAME="ElementName" TYPE="string"> </PROPERTY> <PROPERTY NAME="Description" TYPE="string"> <VALUE>CREATE PARTITION ON /dev/sdb</VALUE> </PROPERTY> <PROPERTY NAME="Caption" TYPE="string"> </PROPERTY> <PROPERTY NAME="InstallDate" TYPE="datetime"> </PROPERTY> <PROPERTY.ARRAY NAME="StatusDescriptions" TYPE="string"> </PROPERTY.ARRAY> <PROPERTY NAME="Status" TYPE="string"> </PROPERTY> <PROPERTY NAME="HealthState" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="CommunicationStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="DetailedStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="OperatingStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="PrimaryStatus" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="JobStatus" TYPE="string"> </PROPERTY> <PROPERTY NAME="ScheduledStartTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="JobRunTimes" TYPE="uint32"> <VALUE>1</VALUE> </PROPERTY> <PROPERTY NAME="RunMonth" TYPE="uint8"> </PROPERTY> <PROPERTY NAME="RunDay" TYPE="sint8"> </PROPERTY> <PROPERTY NAME="RunDayOfWeek" TYPE="sint8"> </PROPERTY> <PROPERTY NAME="RunStartInterval" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="UntilTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="Notify" TYPE="string"> </PROPERTY> <PROPERTY NAME="Owner" TYPE="string"> </PROPERTY> <PROPERTY NAME="Priority" TYPE="uint32"> </PROPERTY> <PROPERTY NAME="ErrorCode" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="ErrorDescription" TYPE="string"> </PROPERTY> <PROPERTY NAME="RecoveryAction" TYPE="uint16"> </PROPERTY> <PROPERTY NAME="OtherRecoveryAction" TYPE="string"> </PROPERTY> <PROPERTY NAME="DeleteOnCompletion" TYPE="boolean"> <VALUE>TRUE</VALUE> </PROPERTY> <PROPERTY NAME="ElapsedTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="JobState" TYPE="uint16"> <VALUE>2</VALUE> </PROPERTY> <PROPERTY NAME="LocalOrUtcTime" TYPE="uint16"> <VALUE>2</VALUE> </PROPERTY> <PROPERTY NAME="Name" TYPE="string"> <VALUE>CREATE PARTITION ON /dev/sdb</VALUE> </PROPERTY> <PROPERTY.ARRAY NAME="OperationalStatus" TYPE="uint16"> <VALUE.ARRAY> <VALUE>15</VALUE> </VALUE.ARRAY> </PROPERTY.ARRAY> <PROPERTY NAME="PercentComplete" TYPE="uint16"> <VALUE>0</VALUE> </PROPERTY> <PROPERTY NAME="StartTime" TYPE="datetime"> </PROPERTY> <PROPERTY NAME="TimeBeforeRemoval" TYPE="datetime"> <VALUE>00000000000100.000000:000</VALUE> </PROPERTY> <PROPERTY NAME="TimeOfLastStateChange" TYPE="datetime"> <VALUE>20130429103108.458642+000</VALUE> </PROPERTY> <PROPERTY NAME="TimeSubmitted" TYPE="datetime"> <VALUE>20130429103108.458642+000</VALUE> </PROPERTY> </INSTANCE> </VALUE> </PROPERTY> <PROPERTY.ARRAY NAME="ChangedPropertyNames" TYPE="string"> </PROPERTY.ARRAY> </INSTANCE> </IRETURNVALUE> </IMETHODRESPONSE> </SIMPLERSP> </MESSAGE> </CIM> |
From: Dave B. <bla...@us...> - 2013-05-27 13:40:38
|
Update of /cvsroot/sblim/jsr48-client/src/javax/cim In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32534/src/javax/cim Modified Files: CIMDataType.java Log Message: 2632 Potential Null Point Exception in CIMDataType Index: CIMDataType.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/javax/cim/CIMDataType.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- CIMDataType.java 9 May 2012 13:36:13 -0000 1.18 +++ CIMDataType.java 27 May 2013 13:40:36 -0000 1.19 @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2006, 2012 + * (C) Copyright IBM Corp. 2006, 2013 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -25,6 +25,7 @@ * 3513349 2012-03-31 blaschke-oss TCK: CIMDataType must not accept null string * 3517503 2012-04-13 blaschke-oss Missing parm in CIMDataType ctor javadoc * 3521131 2012-04-24 blaschke-oss Sync up javax.* javadoc with JSR48 1.0.0 Final II + * 2632 2013-05-02 blaschke-oss Potential Null Point Exception in CIMDataType */ package javax.cim; @@ -648,8 +649,8 @@ } if (pObj instanceof CIMObjectPath[]) { CIMObjectPath[] ops = (CIMObjectPath[]) pObj; - CIMObjectPath op = ops[0]; - return new CIMDataType(op.getObjectName(), 0); + for (int i = 0; i < ops.length; i++) + if (ops[i] != null) return new CIMDataType(ops[i].getObjectName(), 0); } // TODO: tracing /* |
From: Michael Chase-S. <mc...@us...> - 2013-05-24 21:39:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 2e68c1a981197cca8f64490dcef9021da1c44e74 (commit) from c73e360e6492f0f4106f03e94d10cc57abcb32f0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2e68c1a981197cca8f64490dcef9021da1c44e74 Author: Michael Chase-Salerno <br...@li...> Date: Fri May 24 17:38:29 2013 -0400 [sfcb-tix:#52] ABT core check ----------------------------------------------------------------------- Summary of changes: test/ABT/ABTScript | 15 +++++++++++++++ test/ABT/MonitorABT | 10 ++++++++++ 2 files changed, 25 insertions(+), 0 deletions(-) diff --git a/test/ABT/ABTScript b/test/ABT/ABTScript index 26d0ec0..c5ba77e 100755 --- a/test/ABT/ABTScript +++ b/test/ABT/ABTScript @@ -15,6 +15,7 @@ TESTNAME=$2 REPORT_DIR=$3 CONFIGOPTIONS=$4 COVERAGE_DIR="$BASE_DIR/sfcb/coverage" +CORE_DIR="$BASE_DIR/cores/" REPORTDIR=$REPORT_DIR/"$TESTNAME" RESULTDIR=$REPORTDIR/xmlFailure_reportFiles HTMLFILE="$REPORTDIR/index.html" @@ -28,6 +29,9 @@ fi if [ ! -d "$REPORTDIR" ]; then mkdir -p "$REPORTDIR" fi +if [ ! -d "$CORE_DIR" ]; then + mkdir -p "$CORE_DIR" +fi #Output to the email and index.html files # 1st arg is the text, 2nd is the link target @@ -115,6 +119,16 @@ SFCB_RESULTFILES() find . -name "*.result" -print0 | xargs -0 -r -I file cp file --target-directory=$RESULTDIR --parents fi } +SFCB_CORE() +{ + # Check if any core files were generated + if [ "$(ls -A /tmp/ABTcores/)" ] + then + cp /tmp/ABTcores/* $CORE_DIR + DUALOUT "FAILURE: Cores found, copied to $CORE_DIR" + RC=1 + fi +} SFCB_VALGRIND() { # Check the Valgrind output if it's there @@ -240,6 +254,7 @@ BUILD_SFCB() DUALOUT "SECOND TEST RUN:" SFCB_TESTS SFCB_STOP + SFCB_CORE SFCB_VALGRIND SFCB_RESULTFILES else diff --git a/test/ABT/MonitorABT b/test/ABT/MonitorABT index 14a2a6e..7d48d6e 100755 --- a/test/ABT/MonitorABT +++ b/test/ABT/MonitorABT @@ -115,6 +115,13 @@ if [ -d $SFCB_ROOT ]; then rm -rf $SFCB_ROOT fi +# Set core file location +coresave=`cat /proc/sys/kernel/core_pattern` +mkdir -p /tmp/ABTcores +rm -f /tmp/ABTcores/* +echo "/tmp/ABTcores/core.%t.%e.%p.%s" > /proc/sys/kernel/core_pattern +ulimit -c unlimited + while [ $i -lt $index ] do bash $scriptDir/ABTScript $SFCB_ROOT "${TESTNAME[$i]}" $REPORT_DIR "${TESTCONFIG[$i]}" @@ -124,6 +131,9 @@ do let i="$i + 1" done +# Restore core file location +echo $coresave > /proc/sys/kernel/core_pattern + if [ $testCount -eq $index ] ; then STATUS="SUCCESS" else hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Michael Chase-S. <mc...@us...> - 2013-05-22 19:10:40
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "mofc - Managed Object Format Compiler". The branch, master has been updated via 6b528600e0d68cb9d0757fa5537e28665d2e138a (commit) from a8dbd673f87f24a836d23f4eac93fca7c00a9464 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6b528600e0d68cb9d0757fa5537e28665d2e138a Author: Michael Chase-Salerno <br...@li...> Date: Wed May 22 15:10:03 2013 -0400 [sfcb-tix:#17] mofc doesn't unescape characters ----------------------------------------------------------------------- Summary of changes: symtab.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/symtab.c b/symtab.c index 8f47471..3fcfce8 100644 --- a/symtab.c +++ b/symtab.c @@ -517,8 +517,8 @@ char * make_string(const char * string) int length = strlen(string); int a,i; for(i = 1, a=0; i < length-1; i++) { - //eliminate escaping backslashs - if(!(string[i] == '\\' && string[i+1] == '"')) { + //eliminate escaping backslashs of quotes + if(!(string[i] == '\\' && (string[i+1] == '"' || string[i+1] == '\''))) { dups[a++] = string[i]; } } hooks/post-receive -- mofc - Managed Object Format Compiler |
From: Michael Chase-S. <mc...@us...> - 2013-05-21 16:48:10
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via c73e360e6492f0f4106f03e94d10cc57abcb32f0 (commit) from 038b132f010f3a74b27aa68203ce833250d24846 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c73e360e6492f0f4106f03e94d10cc57abcb32f0 Author: Michael Chase-Salerno <br...@li...> Date: Tue May 21 12:46:56 2013 -0400 [sfcb-tix:#48] mofc: Allow absoltute paths in #pragma include Patch contribution by Jan Safranek ----------------------------------------------------------------------- Summary of changes: contributions.txt | 1 + mofpp.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/contributions.txt b/contributions.txt index b1dbb65..bf7dd40 100644 --- a/contributions.txt +++ b/contributions.txt @@ -226,3 +226,4 @@ Jan Safranek, Red Hat --------------------- 05/16/2013 [sfcb-tix:#37] indCIMXmlHandler coredumps in IndCIMXMLHandlerInvokeMethod with Embedded Instances 05/17/2013 [sfcb-tix:#44] Escape XML for Embedded Instances Instead of Using CDATA +04/08/2013 [sfcb-tix:#48] mofc: Allow absoltute paths in #pragma include diff --git a/mofpp.c b/mofpp.c index 68615d1..9e39031 100644 --- a/mofpp.c +++ b/mofpp.c @@ -60,8 +60,15 @@ incOK(char *str, char **s, char **e, char **ifn, FILE ** f) if ((*e = strchr(str, '"'))) { ch = **e; **e = 0; - strcpy(fn, path); - strcat(fn, str); + if (str[0] != '\\' && str[0] != '/') { + /* str is relative path */ + strcpy(fn,path); + strcat(fn,str); + } else { + /* str is absolute path */ + strcpy(fn, str); + } + *ifn = strdup(fn); **e = ch; (*e)++; hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave B. <bla...@us...> - 2013-05-21 15:06:52
|
Update of /cvsroot/sblim/jsr48-client In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv1792 Modified Files: Tag: Experimental sblim-cim-client2.properties Log Message: 2642 Seperate properties needed for cim client and listener to filter out ciphers Index: sblim-cim-client2.properties =================================================================== RCS file: /cvsroot/sblim/jsr48-client/sblim-cim-client2.properties,v retrieving revision 1.1.2.40 retrieving revision 1.1.2.41 diff -u -d -r1.1.2.40 -r1.1.2.41 --- sblim-cim-client2.properties 16 May 2013 18:55:52 -0000 1.1.2.40 +++ sblim-cim-client2.properties 21 May 2013 15:06:49 -0000 1.1.2.41 @@ -517,15 +517,27 @@ # #sblim.wbem.sslServerSocketProvider= -# The comma-separated list of cipher suites that are to be disabled when -# connecting via an SSL socket. In general, this is the list of cipher -# suites considered "too weak" for use in a particular environment. +# The comma-separated list of cipher suites that are to be disabled by +# the client when connecting via an SSL socket. In general, this is the +# list of cipher suites considered "too weak" for use in a particular +# environment. # # Type: String -# Recognition: On initialization of a new client/listener +# Recognition: On initialization of a new client # Default: none # -#sblim.wbem.sslCipherSuitesToDisable= +#sblim.wbem.sslClientCipherSuitesToDisable= + +# The comma-separated list of cipher suites that are to be disabled by +# the listener when connecting via an SSL socket. In general, this is +# the list of cipher suites considered "too weak" for use in a particular +# environment. +# +# Type: String +# Recognition: On next call to addListener() +# Default: none +# +#sblim.wbem.sslListenerCipherSuitesToDisable= # The protocol used for SSLContext.getInstance(String protocol). For IBMJSSE2 provider it can # be "SSL_TLS". |
From: Dave B. <bla...@us...> - 2013-05-21 15:06:51
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/util In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv1792/src/org/sblim/cimclient/internal/util Modified Files: Tag: Experimental WBEMConfiguration.java Log Message: 2642 Seperate properties needed for cim client and listener to filter out ciphers Index: WBEMConfiguration.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/util/WBEMConfiguration.java,v retrieving revision 1.17.2.38 retrieving revision 1.17.2.39 diff -u -d -r1.17.2.38 -r1.17.2.39 --- WBEMConfiguration.java 16 May 2013 18:55:51 -0000 1.17.2.38 +++ WBEMConfiguration.java 21 May 2013 15:06:49 -0000 1.17.2.39 @@ -48,6 +48,7 @@ * 2618 2013-02-27 blaschke-oss Need to add property to disable weak cipher suites for the secure indication * 2628 2013-03-26 blaschke-oss Limit size of LinkedList of CIMEvents to be dispatched * 2635 2013-05-16 blaschke-oss Slowloris DoS attack for CIM indication listener port + * 2642 2013-05-21 blaschke-oss Seperate properties needed for cim client and listener to filter out ciphers */ package org.sblim.cimclient.internal.util; @@ -762,12 +763,23 @@ } /** - * Returns the comma-separated list of cipher suites to be disabled. + * Returns the comma-separated list of cipher suites to be disabled by + * client. * * @return The list of cipher suites */ - public String getSslCipherSuitesToDisable() { - return getProperty(WBEMConfigurationProperties.SSL_CIPHER_SUITES_TO_DISABLE, null); + public String getSslClientCipherSuitesToDisable() { + return getProperty(WBEMConfigurationProperties.SSL_CLIENT_CIPHER_SUITES_TO_DISABLE, null); + } + + /** + * Returns the comma-separated list of cipher suites to be disabled by + * listener. + * + * @return The list of cipher suites + */ + public String getSslListenerCipherSuitesToDisable() { + return getProperty(WBEMConfigurationProperties.SSL_LISTENER_CIPHER_SUITES_TO_DISABLE, null); } /** |
From: Dave B. <bla...@us...> - 2013-05-20 19:15:07
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/http In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31011/src/org/sblim/cimclient/internal/http Modified Files: Tag: Experimental HttpConnectionHandler.java Log Message: 2635 Slowloris DoS attack for CIM indication listener port Index: HttpConnectionHandler.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/http/HttpConnectionHandler.java,v retrieving revision 1.4.2.7 retrieving revision 1.4.2.8 diff -u -d -r1.4.2.7 -r1.4.2.8 --- HttpConnectionHandler.java 16 May 2013 18:55:52 -0000 1.4.2.7 +++ HttpConnectionHandler.java 20 May 2013 19:15:04 -0000 1.4.2.8 @@ -245,7 +245,7 @@ * * @return The comma-separated list of blocked IPs. */ - public String getBlockedIPs() { + public synchronized String getBlockedIPs() { return (this.iBlockedIPs == null) ? null : this.iBlockedIPs.toString(); } @@ -256,7 +256,7 @@ * @param pIPs * The comma-separated list of blocked IPs. */ - public void setBlockedIPs(String pIPs) { + public synchronized void setBlockedIPs(String pIPs) { this.iBlockedIPs = (pIPs == null || pIPs.trim().length() == 0) ? null : new StringBuilder( pIPs); } |
From: Michael Chase-S. <mc...@us...> - 2013-05-20 18:42:58
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 038b132f010f3a74b27aa68203ce833250d24846 (commit) from 4e1dbba6434044df5198a60277efea3505a6912d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 038b132f010f3a74b27aa68203ce833250d24846 Author: Michael Chase-Salerno <br...@li...> Date: Mon May 20 14:40:40 2013 -0400 [sfb-tix:#51] Malformed OP causes segfault ----------------------------------------------------------------------- Summary of changes: objectpath.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/objectpath.c b/objectpath.c index aefea26..6b0bd4d 100644 --- a/objectpath.c +++ b/objectpath.c @@ -615,6 +615,12 @@ getObjectPath(char *path, char **msg) u = pp + 1; } + if (p < u) { + if(msg) *msg = "Object Path malformed"; + free(origu); + free(nname); + return NULL; + } cname = strnDup(u, p - u); // op = Broker->eft->newObjectPath(Broker, nname ? nname : "root/cimv2", // hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Michael Chase-S. <mc...@us...> - 2013-05-20 15:52:10
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master_1.3 has been updated via 5d2158d867c25c25efaedca27cbc265adc363671 (commit) from 946f5d2c4117682ff281422c867fa1f3a8df233a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5d2158d867c25c25efaedca27cbc265adc363671 Author: Michael Chase-Salerno <br...@li...> Date: Mon May 20 11:48:47 2013 -0400 [sfcb-tix:#51] Malformed OP causes segfault ----------------------------------------------------------------------- Summary of changes: objectpath.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/objectpath.c b/objectpath.c index ff1e5f0..3d85837 100644 --- a/objectpath.c +++ b/objectpath.c @@ -606,6 +606,12 @@ CMPIObjectPath *getObjectPath(char *path, char **msg) u=pp+1; } + if (p < u) { + if(msg) *msg = "Object Path malformed"; + free(origu); + free(nname); + return NULL; + } cname = strnDup(u, p - u); // op = Broker->eft->newObjectPath(Broker, nname ? nname : "root/cimv2", cname, NULL); op = Broker->eft->newObjectPath(Broker, nname , cname, NULL); hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Chris B. <buc...@us...> - 2013-05-17 22:38:18
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 4e1dbba6434044df5198a60277efea3505a6912d (commit) from 9255afd068bda71a33b432e3bdff992e85cc2afd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 4e1dbba6434044df5198a60277efea3505a6912d Author: buccella <buc...@li...> Date: Fri May 17 18:38:22 2013 -0400 [sfcb-tix:#44] Escape XML for Embedded Instances Instead of Using CDATA ----------------------------------------------------------------------- Summary of changes: cimXmlGen.c | 32 ++++++++++++++++---- contributions.txt | 1 + .../tests/Test1EnumerateInstances.lines | 26 ++++++---------- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/cimXmlGen.c b/cimXmlGen.c index fd3e32d..7c67652 100644 --- a/cimXmlGen.c +++ b/cimXmlGen.c @@ -59,6 +59,24 @@ const char *opGetClassNameChars(CMPIObjectPath * cop); data2xml((data),(name),(refname),(btag),sizeof(btag)-1,(etag), \ sizeof(etag)-1,(sb),(qsb),(inst),(param)) +static int add_escaped_instance(UtilStringBuffer *sb, CMPIInstance *inst) +{ + UtilStringBuffer *instance; + + _SFCB_ENTER(TRACE_CIMXMLPROC, "add_escaped_instance"); + + instance = UtilFactory->newStrinBuffer(1024); + if (!instance) + _SFCB_RETURN(1); + + instance2xml(inst, instance, 0); + char *escaped = XMLEscape((char *) instance->ft->getCharPtr(instance), NULL); + sb->ft->appendChars(sb, escaped); + free(escaped); + instance->ft->release(instance); + _SFCB_RETURN(0); +} + char * XMLEscape(char *in, int *outlen) { @@ -586,9 +604,10 @@ value2xml(CMPIData d, UtilStringBuffer * sb, int wv) splen = 0; } } else if (d.type == CMPI_instance) { - SFCB_APPENDCHARS_BLOCK(sb, "<![CDATA["); - instance2xml(d.value.inst, sb, 0); - SFCB_APPENDCHARS_BLOCK(sb, "]]>"); + // SFCB_APPENDCHARS_BLOCK(sb, "<![CDATA["); + // instance2xml(d.value.inst, sb, 0); + // SFCB_APPENDCHARS_BLOCK(sb, "]]>"); + add_escaped_instance(sb, d.value.inst); splen = 0; } else { mlogf(M_ERROR, M_SHOW, "%s(%d): invalid value2xml %d-%x\n", __FILE__, @@ -805,9 +824,10 @@ data2xml(CMPIData *data, CMPIString *name, SFCB_APPENDCHARS_BLOCK(sb, "\" TYPE=\"string\">\n"); if (data->value.inst) { SFCB_APPENDCHARS_BLOCK(sb, "<VALUE>"); - SFCB_APPENDCHARS_BLOCK(sb, "<![CDATA["); - instance2xml(data->value.inst, sb, 0); - SFCB_APPENDCHARS_BLOCK(sb, "]]>"); + // SFCB_APPENDCHARS_BLOCK(sb, "<![CDATA["); + // instance2xml(data->value.inst, sb, 0); + // SFCB_APPENDCHARS_BLOCK(sb, "]]>"); + add_escaped_instance(sb, data->value.inst); SFCB_APPENDCHARS_BLOCK(sb, "</VALUE>\n"); } } diff --git a/contributions.txt b/contributions.txt index ad0d74d..b1dbb65 100644 --- a/contributions.txt +++ b/contributions.txt @@ -225,3 +225,4 @@ Shreyas Deodhar, QLogic Jan Safranek, Red Hat --------------------- 05/16/2013 [sfcb-tix:#37] indCIMXmlHandler coredumps in IndCIMXMLHandlerInvokeMethod with Embedded Instances +05/17/2013 [sfcb-tix:#44] Escape XML for Embedded Instances Instead of Using CDATA diff --git a/test/TestProviders/tests/Test1EnumerateInstances.lines b/test/TestProviders/tests/Test1EnumerateInstances.lines index dd8dd25..19b725f 100644 --- a/test/TestProviders/tests/Test1EnumerateInstances.lines +++ b/test/TestProviders/tests/Test1EnumerateInstances.lines @@ -5,27 +5,21 @@ <PROPERTY NAME="Identifier" TYPE="uint8"> <VALUE>1</VALUE> <PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> -[CDATA[ -<PROPERTY NAME="Identifier" TYPE="uint8"> -<VALUE>1</VALUE> -<PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> -<PROPERTY NAME="Message" TYPE="string"> -<VALUE>I'm an EmbeddedObject</VALUE> +<VALUE><INSTANCE CLASSNAME="Sample_Instance"> +<PROPERTY NAME="Identifier" TYPE="uint8"> +<VALUE>1</VALUE> +</PROPERTY> +<PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> +</PROPERTY> +<PROPERTY NAME="Message" TYPE="string"> +<VALUE>I&apos;m an EmbeddedObject</VALUE> +</PROPERTY> +</INSTANCE> <PROPERTY NAME="Message" TYPE="string"> <VALUE>Hello World</VALUE> -<INSTANCENAME CLASSNAME="Sample_Instance"> -<KEYBINDING NAME="Identifier"> <KEYVALUE VALUETYPE="numeric">2</KEYVALUE> -<INSTANCE CLASSNAME="Sample_Instance"> -<PROPERTY NAME="Identifier" TYPE="uint8"> <VALUE>2</VALUE> -<PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> -<PROPERTY NAME="Message" TYPE="string"> <VALUE>Yo Planet</VALUE> <KEYVALUE VALUETYPE="numeric">3</KEYVALUE> -<INSTANCE CLASSNAME="Sample_Instance"> -<PROPERTY NAME="Identifier" TYPE="uint8"> <VALUE>3</VALUE> -<PROPERTY NAME="Einst" EmbeddedObject="object" TYPE="string"> -<PROPERTY NAME="Message" TYPE="string"> <VALUE>Hey Earth</VALUE> hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave B. <bla...@us...> - 2013-05-17 00:00:14
|
Update of /cvsroot/sblim/jsr48-client In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7003 Modified Files: Tag: CIM_CLIENT_2_2_2_M sblim-cim-client2.spec ChangeLog build.xml Log Message: 2.2.2.1 release work Index: sblim-cim-client2.spec =================================================================== RCS file: /cvsroot/sblim/jsr48-client/sblim-cim-client2.spec,v retrieving revision 1.28.2.1 retrieving revision 1.28.2.2 diff -u -d -r1.28.2.1 -r1.28.2.2 --- sblim-cim-client2.spec 15 Mar 2013 13:18:23 -0000 1.28.2.1 +++ sblim-cim-client2.spec 17 May 2013 00:00:11 -0000 1.28.2.2 @@ -1,7 +1,7 @@ %define name sblim-cim-client2 %define project_folder %{name}-%{version}-src %define archive_folder build -%define version 2.2.2 +%define version 2.2.2.1 %define release 1jpp %define section free @@ -158,6 +158,10 @@ # ----------------------------------------------------------------------------- %changelog +* Wed May 15 2013 Dave Blaschke <bla...@us...> +- Maintenance release 2.2.2.1 + o 2636 Nested embedded instances cause CIMXMLParseException + * Fri Mar 15 2013 Dave Blaschke <bla...@us...> - New release 2.2.2 o 2624 Update detailed release history HTML for 2.2.2 Index: build.xml =================================================================== RCS file: /cvsroot/sblim/jsr48-client/build.xml,v retrieving revision 1.48.2.1 retrieving revision 1.48.2.2 diff -u -d -r1.48.2.1 -r1.48.2.2 --- build.xml 15 Mar 2013 13:18:23 -0000 1.48.2.1 +++ build.xml 17 May 2013 00:00:11 -0000 1.48.2.2 @@ -36,7 +36,7 @@ <property name="Manifest.name" value="SBLIM CIM Client for Java" /> <property name="Manifest.title" value="SBLIM CIM Client for Java" /> <property name="Manifest.vendor" value="IBM Corporation 2005, 2013" /> - <property name="Manifest.version" value="2.2.2" /> + <property name="Manifest.version" value="2.2.2.1" /> <property name="Directory.source.core" value="${basedir}/src" /> <property name="Directory.source.samples" value="${basedir}/smpl" /> Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/jsr48-client/ChangeLog,v retrieving revision 1.27 retrieving revision 1.27.2.1 diff -u -d -r1.27 -r1.27.2.1 --- ChangeLog 15 Mar 2013 09:30:09 -0000 1.27 +++ ChangeLog 17 May 2013 00:00:11 -0000 1.27.2.1 @@ -1,3 +1,16 @@ +Release 2.2.2.1 +=============== + +Wed May 15 19:00:13 CDT 2013 blaschke-oss + + 2636 Nested embedded instances cause CIMXMLParseException + + PropertyReferenceNode.java 1.9.32.1 + ParameterReferenceNode.java 1.5.32.1 + ParameterRefArrayNode.java 1.9.32.1 + CIMXMLParserImpl.java 1.51.2.1 + NEWS 1.345.2.1 + Release 2.2.2 ============= |
From: Chris B. <buc...@us...> - 2013-05-16 21:50:36
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "sfcb - Small Footprint CIM Broker". The branch, master has been updated via 9255afd068bda71a33b432e3bdff992e85cc2afd (commit) via a695a5fe1419f1e2c330a590437704f402fdeb81 (commit) via 87c2e496998df33b83a90ebc9e7127f5d8a1ce7f (commit) from 1c467d6ccd384f16d9109f43f72675dd2ab1c82a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9255afd068bda71a33b432e3bdff992e85cc2afd Author: buccella <buc...@li...> Date: Thu May 16 17:50:18 2013 -0400 [sfcb-tix:#37] indCIMXmlHandler coredumps in IndCIMXMLHandlerInvokeMethod commit a695a5fe1419f1e2c330a590437704f402fdeb81 Author: buccella <buc...@li...> Date: Thu May 16 16:01:34 2013 -0400 [sfcb-tix:#37] indCIMXmlHandler coredumps in IndCIMXMLHandlerInvokeMethod commit 87c2e496998df33b83a90ebc9e7127f5d8a1ce7f Author: buccella <buc...@li...> Date: Thu May 16 15:37:27 2013 -0400 [sfcb-tix:#37] invalid read patches ----------------------------------------------------------------------- Summary of changes: contributions.txt | 4 +++ objectImpl.c | 63 +++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 51 insertions(+), 16 deletions(-) diff --git a/contributions.txt b/contributions.txt index 8b52a52..ad0d74d 100644 --- a/contributions.txt +++ b/contributions.txt @@ -221,3 +221,7 @@ Bas ten Berge Shreyas Deodhar, QLogic ----------------------- 02/27/2013 [sfcb-tix:#24] GetClass Operation does not filter the class + +Jan Safranek, Red Hat +--------------------- +05/16/2013 [sfcb-tix:#37] indCIMXmlHandler coredumps in IndCIMXMLHandlerInvokeMethod with Embedded Instances diff --git a/objectImpl.c b/objectImpl.c index d72c0d2..aa22848 100644 --- a/objectImpl.c +++ b/objectImpl.c @@ -187,7 +187,7 @@ ensureClSpace(ClObjectHdr * hdr, ClSection * sct, int size, int iSize) *t; f = ((char *) hdr) + sct->sectionOffset; t = malloc(max * size); - memcpy(t, f, max * size); + memcpy(t,f,sct->used*size); sct->max = max; setSectionPtr(sct, t); } @@ -230,7 +230,7 @@ addClStringN(ClObjectHdr * hdr, const char *str, unsigned int length) buf->bMax = nmax; buf->bUsed = buf->iUsed = 0; buf->iMax = 16; - setStrIndexPtr(buf, malloc(sizeof(long) * 16)); + setStrIndexPtr(buf, malloc(sizeof(*buf->indexPtr) * 16)); hdr->flags |= HDR_Rebuild; } @@ -244,16 +244,15 @@ addClStringN(ClObjectHdr * hdr, const char *str, unsigned int length) if (!isMallocedStrIndex(buf)) { void *idx = buf->indexPtr; buf->iMax = nmax * 2; - setStrIndexPtr(buf, malloc(buf->iMax * sizeof(long))); - memcpy(buf->indexPtr, idx, nmax * sizeof(long)); + setStrIndexPtr(buf, malloc(buf->iMax * sizeof(*buf->indexPtr))); + memcpy(buf->indexPtr, idx, nmax * sizeof(*buf->indexPtr)); } else { buf->iMax = nmax * 2; - setStrIndexPtr(buf, - realloc(buf->indexPtr, buf->iMax * sizeof(long))); + setStrIndexPtr(buf, realloc(buf->indexPtr, buf->iMax * sizeof(*buf->indexPtr))); } } else { buf->iMax = 16; - setStrIndexPtr(buf, malloc(buf->iMax * sizeof(long))); + setStrIndexPtr(buf, malloc(buf->iMax * sizeof(*buf->indexPtr))); } hdr->flags |= HDR_Rebuild; } @@ -325,7 +324,7 @@ addClArray(ClObjectHdr * hdr, CMPIData d) buf->bMax = nmax; buf->bUsed = buf->iUsed = 0; buf->iMax = 16; - setArrayIndexPtr(buf, malloc(sizeof(long) * 16)); + setArrayIndexPtr(buf, malloc(sizeof(*buf->indexPtr) * 16)); hdr->flags |= HDR_Rebuild; } @@ -339,17 +338,15 @@ addClArray(ClObjectHdr * hdr, CMPIData d) if (!isMallocedArrayIndex(buf)) { void *idx = buf->indexPtr; buf->iMax = nmax * 2; - setArrayIndexPtr(buf, malloc(buf->iMax * sizeof(long))); - memcpy(buf->indexPtr, idx, nmax * sizeof(long)); + setArrayIndexPtr(buf, malloc(buf->iMax * sizeof(*buf->indexPtr))); + memcpy(buf->indexPtr, idx, nmax * sizeof(*buf->indexPtr)); } else { buf->iMax = nmax * 2; - setArrayIndexPtr(buf, - realloc(buf->indexPtr, - buf->iMax * sizeof(long))); + setArrayIndexPtr(buf, realloc(buf->indexPtr, buf->iMax * sizeof(*buf->indexPtr))); } } else { buf->iMax = 16; - setArrayIndexPtr(buf, malloc(buf->iMax * sizeof(long))); + setArrayIndexPtr(buf, malloc(buf->iMax * sizeof(*buf->indexPtr))); } hdr->flags |= HDR_Rebuild; } @@ -507,6 +504,29 @@ replaceClString(ClObjectHdr * hdr, int id, const char *str){ return replaceClStringN(hdr, id, str, 0); } +static int getBufIndexLen(int *indexPtr, int bUsed, int iUsed, int index) +{ + /* + * Find length of 'string' in fb at given index. + * We cannot use strlen, because some items are not strings but embedded + * instances. + * We cannot simply substract fb->indexPtr[index+1] - fb->indexPtr[index], + * because the entries are not consecutive! They are shuffled by + * replaceClStringN(). + * Therefore the only way to find a length of our 'string' is to find + * string, which starts immediately after it. Let's call it 'nearest' + * string. */ + int nearest_start = bUsed; + int our_start = indexPtr[index]; + int i; + for (i = 0; i<iUsed; i++) + if (indexPtr[i] > our_start && indexPtr[i] < nearest_start) { + nearest_start = indexPtr[i]; + } + int len = nearest_start - our_start; + return len; +} + static void replaceClStringN(ClObjectHdr * hdr, int id, const char *str, unsigned int length) { @@ -518,15 +538,20 @@ replaceClStringN(ClObjectHdr * hdr, int id, const char *str, unsigned int length l, u; ClStrBuf *fb; + int *oldIndexPtr; fb = getStrBufPtr(hdr); ts = (char *) malloc(fb->bUsed); fs = &fb->buf[0]; + /* Copy indexPtr from the buffer, so we can compute lengths of items in it.*/ + oldIndexPtr = (int*) malloc(sizeof(int)*fb->iUsed); + memcpy(oldIndexPtr, fb->indexPtr, sizeof(int)*fb->iUsed); + for (u = i = 0; i < fb->iUsed; i++) { if (i != id - 1) { char *f = fs + fb->indexPtr[i]; - l = strlen(f) + 1; + l = getBufIndexLen(oldIndexPtr, fb->bUsed, fb->iUsed, i); fb->indexPtr[i] = u; memcpy(ts + u, f, l); u += l; @@ -535,6 +560,7 @@ replaceClStringN(ClObjectHdr * hdr, int id, const char *str, unsigned int length memcpy(fs, ts, u); fb->bUsed = u; free(ts); + free(oldIndexPtr); i = addClStringN(hdr, str, length); fb = getStrBufPtr(hdr); /* addClString may change the strbufptr */ @@ -558,16 +584,20 @@ removeClObject(ClObjectHdr * hdr, int id) char *ts, *fs; long i, l, u; ClStrBuf *fb; + int *oldIndexPtr; fb = getStrBufPtr(hdr); ts = (char *) malloc(fb->bUsed); /* tmp string buffer */ fs = &fb->buf[0]; + /* Copy indexPtr from the buffer, so we can compute lengths of items in it.*/ + oldIndexPtr = (int*) malloc(sizeof(int)*fb->iUsed); + memcpy(oldIndexPtr, fb->indexPtr, sizeof(int)*fb->iUsed); for (u = i = 0; i < fb->iUsed; i++) { if (i != id - 1) { /* loop through and copy over all _other_ properties */ // fprintf(stderr, "replace: keeping %ld\n", i); char *f = fs + fb->indexPtr[i]; - l = fb->indexPtr[i+1] - fb->indexPtr[i]; + l = getBufIndexLen(oldIndexPtr, fb->bUsed, fb->iUsed, i); /* Bugzilla 74159 - Align the string buffer & null terminate */ /*if (l % sizeof(long) != 0) { @@ -595,6 +625,7 @@ removeClObject(ClObjectHdr * hdr, int id) memcpy(fs, ts, u); fb->bUsed = u; free(ts); + free(oldIndexPtr); fb->iUsed--; /* fixup the item count, since we have one fewer elements */ hooks/post-receive -- sfcb - Small Footprint CIM Broker |
From: Dave B. <bla...@us...> - 2013-05-16 18:55:54
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/util In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv16851/src/org/sblim/cimclient/internal/util Modified Files: Tag: Experimental WBEMConfigurationDefaults.java WBEMConfiguration.java WBEMConstants.java Log Message: 2635 Slowloris DoS attack for CIM indication listener port Index: WBEMConfigurationDefaults.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/util/WBEMConfigurationDefaults.java,v retrieving revision 1.11.2.24 retrieving revision 1.11.2.25 diff -u -d -r1.11.2.24 -r1.11.2.25 --- WBEMConfigurationDefaults.java 26 Mar 2013 17:25:44 -0000 1.11.2.24 +++ WBEMConfigurationDefaults.java 16 May 2013 18:55:51 -0000 1.11.2.25 @@ -39,6 +39,7 @@ * 3572993 2012-10-01 blaschke-oss parseDouble("2.2250738585072012e-308") DoS vulnerability * 3598613 2013-01-11 blaschke-oss different data type in cim instance and cim object path * 2628 2013-03-26 blaschke-oss Limit size of LinkedList of CIMEvents to be dispatched + * 2635 2013-05-16 blaschke-oss Slowloris DoS attack for CIM indication listener port */ package org.sblim.cimclient.internal.util; @@ -230,6 +231,16 @@ public static final String LISTENER_HTTP_TIMEOUT = "10000"; /** + * LISTENER_HTTP_HEADER_TIMEOUT + */ + public static final String LISTENER_HTTP_HEADER_TIMEOUT = "30000"; + + /** + * LISTENER_HTTP_MAX_ALLOWED_TIMEOUTS + */ + public static final String LISTENER_HTTP_MAX_ALLOWED_TIMEOUTS = "0"; + + /** * LISTENER_MAX_POOL_SIZE */ public static final String LISTENER_MAX_POOL_SIZE = "8"; Index: WBEMConstants.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/util/WBEMConstants.java,v retrieving revision 1.7.2.9 retrieving revision 1.7.2.10 diff -u -d -r1.7.2.9 -r1.7.2.10 --- WBEMConstants.java 23 Feb 2013 12:20:24 -0000 1.7.2.9 +++ WBEMConstants.java 16 May 2013 18:55:51 -0000 1.7.2.10 @@ -25,6 +25,7 @@ * 2882448 2009-10-21 blaschke-oss Add WBEMClientConstants from JSR48 * 3525138 2012-05-09 blaschke-oss Remove WBEMConstants.PROTOCOL_CIMXML * 2619 2013-02-22 blaschke-oss Host should contain port when not 5988/5989 + * 2635 2013-05-16 blaschke-oss Slowloris DoS attack for CIM indication listener port */ package org.sblim.cimclient.internal.util; @@ -164,4 +165,9 @@ * Operating system name as found on z/OS */ public static final String Z_OS = "z/OS"; + + /** + * Exception message for indication sender potential DoS + */ + public static final String INDICATION_DOS_EXCEPTION_MESSAGE = "Indication sender taking too long, possible DoS underway?"; } Index: WBEMConfiguration.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/util/WBEMConfiguration.java,v retrieving revision 1.17.2.37 retrieving revision 1.17.2.38 diff -u -d -r1.17.2.37 -r1.17.2.38 --- WBEMConfiguration.java 26 Mar 2013 17:25:44 -0000 1.17.2.37 +++ WBEMConfiguration.java 16 May 2013 18:55:51 -0000 1.17.2.38 @@ -47,6 +47,7 @@ * 3598613 2013-01-11 blaschke-oss different data type in cim instance and cim object path * 2618 2013-02-27 blaschke-oss Need to add property to disable weak cipher suites for the secure indication * 2628 2013-03-26 blaschke-oss Limit size of LinkedList of CIMEvents to be dispatched + * 2635 2013-05-16 blaschke-oss Slowloris DoS attack for CIM indication listener port */ package org.sblim.cimclient.internal.util; @@ -965,6 +966,28 @@ } /** + * Returns the http header timeout for indication connection handlers + * + * @return The timeout + */ + public int getListenerHttpHeaderTimeout() { + return Integer.parseInt(getProperty( + WBEMConfigurationProperties.LISTENER_HTTP_HEADER_TIMEOUT, + WBEMConfigurationDefaults.LISTENER_HTTP_HEADER_TIMEOUT)); + } + + /** + * Returns the maximum allowed http timeouts before IP is blocked + * + * @return The maximum allowed timeouts + */ + public int getListenerMaxAllowedTimeouts() { + return Integer.parseInt(getProperty( + WBEMConfigurationProperties.LISTENER_HTTP_MAX_ALLOWED_TIMEOUTS, + WBEMConfigurationDefaults.LISTENER_HTTP_MAX_ALLOWED_TIMEOUTS)); + } + + /** * Returns the maximal pool size for indication connection handlers * * @return The maximal pool size |
From: Dave B. <bla...@us...> - 2013-05-16 00:00:16
|
Update of /cvsroot/sblim/jsr48-client In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv21986 Modified Files: Tag: CIM_CLIENT_2_2_2_M NEWS Log Message: 2636 Nested embedded instances cause CIMXMLParseException Index: NEWS =================================================================== RCS file: /cvsroot/sblim/jsr48-client/NEWS,v retrieving revision 1.345 retrieving revision 1.345.2.1 diff -u -d -r1.345 -r1.345.2.1 --- NEWS 15 Mar 2013 09:30:09 -0000 1.345 +++ NEWS 16 May 2013 00:00:13 -0000 1.345.2.1 @@ -1,3 +1,7 @@ +Version 2.2.2.1 +================ + 2636 Nested embedded instances cause CIMXMLParseException + Version 2.2.2 ================ 2624 Update detailed release history HTML for 2.2.2 |