From: Narasimha S. <nsh...@us...> - 2012-06-21 16:50:16
|
Update of /cvsroot/sblim/sfcb In directory vz-cvs-3.sog:/tmp/cvs-serv12286 Modified Files: queryOperation.h queryStatement.c selectexp.c Log Message: [ 3532494 ] interopProvider not honoring SourceNamespaces[] correctly Signed-off-by: Narasimha Sharoff <nsh...@us...> Index: queryOperation.h =================================================================== RCS file: /cvsroot/sblim/sfcb/queryOperation.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- queryOperation.h 11 May 2012 20:05:11 -0000 1.12 +++ queryOperation.h 21 Jun 2012 16:50:14 -0000 1.13 @@ -250,6 +250,7 @@ unsigned int allocMode,allocNext,allocMax; void **allocList; char *sns; + CMPIArray *snsa; }; struct qlCollector { @@ -263,7 +264,7 @@ QLCollector *collector; }; -extern QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, int *rc); +extern QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, CMPIArray *snsa, int *rc); #endif Index: selectexp.c =================================================================== RCS file: /cvsroot/sblim/sfcb/selectexp.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- selectexp.c 2 Oct 2007 09:02:11 -0000 1.11 +++ selectexp.c 21 Jun 2012 16:50:14 -0000 1.12 @@ -147,7 +147,7 @@ /*fprintf(stderr,"*** new select expression: %s %s\n",queryString, language);*/ - exp.qs=parseQuery(mode,(char*)queryString, (char*)language, (char*) sns, &irc); + exp.qs=parseQuery(mode,(char*)queryString, (char*)language, (char*) sns, NULL, &irc); if (irc) { if (rc) CMSetStatus(rc, CMPI_RC_ERR_INVALID_QUERY); return NULL; Index: queryStatement.c =================================================================== RCS file: /cvsroot/sblim/sfcb/queryStatement.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- queryStatement.c 11 May 2012 20:05:11 -0000 1.17 +++ queryStatement.c 21 Jun 2012 16:50:14 -0000 1.18 @@ -158,6 +158,7 @@ if(st->sns) { free(st->sns); } + if (st->snsa) CMRelease(st->snsa); /* free everything but the first element of allocList, which is * the memory allocated for the QLStatement itself, see * newQLStatement(...). The struct is then freed after the loop */ @@ -240,7 +241,7 @@ }; -QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, int *rc) +QLStatement *parseQuery(int mode, const char *query, const char *lang, const char *sns, CMPIArray *snsa, int *rc) { QLStatement *qs=NULL; QLCollector ctlFt={ @@ -269,6 +270,10 @@ if (sns) qs->sns=strdup(sns); else sns=NULL; + + /* copy the Sourcenamespaces[] array*/ + if (snsa) qs->snsa=snsa->ft->clone(snsa, NULL); + else qs->snsa=NULL; return qs; } |