From: Adrian S. <a3s...@us...> - 2005-05-30 01:32:33
|
Update of /cvsroot/sblim/sfcb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19167 Modified Files: cimXmlGen.c objectImpl.c providerDrv.c providerMgr.c Log Message: Fixed [ 1201073 ] Method_boolean_in.001.xml returns false and [ 1201084 ] Method_char16_in.001.xml causes sfcb xml parser error Also fixed unreported CMPIDateTime error when datetime value returned by invokeMethod Index: cimXmlGen.c =================================================================== RCS file: /cvsroot/sblim/sfcb/cimXmlGen.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- cimXmlGen.c 26 Apr 2005 21:58:46 -0000 1.7 +++ cimXmlGen.c 30 May 2005 01:32:24 -0000 1.8 @@ -255,7 +255,7 @@ } switch (type) { - case CMPI_chars: + case CMPI_char16: value.char16 = *val; break; case CMPI_string: @@ -289,6 +289,7 @@ break; case CMPI_boolean: value.boolean = strcasecmp(val, "false"); + if (value.boolean) value.boolean = 1; break; case CMPI_real32: sscanf(val, "%f", &value.real32); Index: objectImpl.c =================================================================== RCS file: /cvsroot/sblim/sfcb/objectImpl.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- objectImpl.c 27 May 2005 15:09:13 -0000 1.6 +++ objectImpl.c 30 May 2005 01:32:24 -0000 1.7 @@ -2166,6 +2166,11 @@ data->value.string = native_new_CMPIString(str, NULL); data->type = CMPI_string; } + if (data->type == CMPI_dateTime) { + const char *str = + ClObjectGetClString(&arg->hdr, (ClString *) & data->value.chars); + data->value.dateTime = native_new_CMPIDateTime_fromChars(str, NULL); + } if (data->type & CMPI_ARRAY) { data->value.dataPtr.ptr = (void *) ClObjectGetClArray(&arg->hdr, (ClArray *) & data->value.array); Index: providerDrv.c =================================================================== RCS file: /cvsroot/sblim/sfcb/providerDrv.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- providerDrv.c 29 Apr 2005 12:48:30 -0000 1.13 +++ providerDrv.c 30 May 2005 01:32:24 -0000 1.14 @@ -538,6 +538,7 @@ { _SFCB_ENTER(TRACE_PROVIDERDRV, "sendResponse"); int i, l, rvl=0, ol, size, dmy; + char str_time[26]; BinResponseHdr *buf; size = sizeof(BinResponseHdr) + ((hdr->count - 1) * sizeof(MsgSegment)); @@ -556,6 +557,12 @@ hdr->rvEnc=setCharsMsgSegment((char*)hdr->rv.value.string); rvl=hdr->rvEnc.length; break; + case CMPI_dateTime: + dateTime2chars(hdr->rv.value.dateTime, NULL, str_time); + hdr->rvEnc.type=MSG_SEG_CHARS; + hdr->rvEnc.length=rvl=26; + hdr->rvEnc.data=&str_time; + break; case CMPI_ref: mlogf(M_ERROR,M_SHOW,"-#- not supporting refs\n"); abort(); @@ -578,7 +585,7 @@ buf->rvEnc.data = (void *) l; l += ol; break; - } + } size=l; } Index: providerMgr.c =================================================================== RCS file: /cvsroot/sblim/sfcb/providerMgr.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- providerMgr.c 22 May 2005 18:45:03 -0000 1.9 +++ providerMgr.c 30 May 2005 01:32:24 -0000 1.10 @@ -947,6 +947,9 @@ if (resp->rvValue) { if (resp->rv.type==CMPI_chars) resp->rv.value.chars=(int)resp->rvEnc.data+(char*)resp; + else if (resp->rv.type==CMPI_dateTime) + resp->rv.value.dateTime= + native_new_CMPIDateTime_fromChars((int)resp->rvEnc.data+(char*)resp,NULL); } for (i = 0; i < resp->count; i++) { resp->object[i].data=(void*)((int)resp->object[i].data+(char*)resp); |