Index: /trunk/zoo-project/zoo-kernel/service_internal.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal.c (revision 439)
+++ /trunk/zoo-project/zoo-kernel/service_internal.c (revision 440)
@@ -112,4 +112,10 @@
for(s=tmpMap->value;*s!=NULL;s++)
*lpszTmp++ = *s;
+ *lpszTmp++ = '|';
+ tmpMap=NULL;
+ tmpMap=getMapFromMaps(conf,"lenv","message");
+ if(tmpMap!=NULL)
+ for(s=tmpMap->value;*s!=NULL;s++)
+ *lpszTmp++ = *s;
*lpszTmp = '\0';
}
@@ -208,4 +214,10 @@
for(s=tmpMap->value;*s!=NULL && *s!=0;s++){
*s1++=*s;
+ }
+ *s1++='|';
+ tmpMap=getMapFromMaps(conf,"lenv","message");
+ if(tmpMap!=NULL)
+ for(s=tmpMap->value;*s!=NULL && *s!=0;s++){
+ *s1++=*s;
}
*s1=NULL;
Index: /trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/zoo_service_loader.c (revision 439)
+++ /trunk/zoo-project/zoo-kernel/zoo_service_loader.c (revision 440)
@@ -1352,5 +1352,5 @@
map* ltmp=getMap(tmpmaps->content,"method");
if(l==4){
- if(!(ltmp!=NULL && strcmp(ltmp->value,"POST")==0)
+ if(!(ltmp!=NULL && strncmp(ltmp->value,"POST",4)==0)
&& CHECK_INET_HANDLE(hInternet)){
if(loadRemoteFile(m,tmpmaps->content,hInternet,(char*)val)!=0){
Index: /trunk/zoo-project/zoo-services/utils/status/Makefile
===================================================================
--- /trunk/zoo-project/zoo-services/utils/status/Makefile (revision 439)
+++ /trunk/zoo-project/zoo-services/utils/status/Makefile (revision 440)
@@ -4,5 +4,5 @@
cgi-env/wps_status.zo: service.c
- g++ ${CFLAGS} -shared -fpic -o cgi-env/wps_status.zo ./service.c ../../../zoo-kernel/service_internal.o ${JS_LDFLAGS} ${JSLDFLAGS} ${GDAL_LIBS} ${XML2LDFLAGS} ${MACOS_LD_FLAGS} ${ZOO_LDFLAGS} ${MACOS_LD_NET_FLAGS} `xslt-config --libs` -lfcgi
+ g++ ${CFLAGS} -shared -fpic -o cgi-env/wps_status.zo ./service.c ../../../zoo-kernel/service_internal.o ${ZRPATH}/zoo-kernel/${MS_FILE} ${MS_LDFLAGS} ${JS_LDFLAGS} ${JSLDFLAGS} ${GDAL_LIBS} ${XML2LDFLAGS} ${MACOS_LD_FLAGS} ${ZOO_LDFLAGS} ${MACOS_LD_NET_FLAGS} `xslt-config --libs` -lfcgi
clean:
Index: /trunk/zoo-project/zoo-services/utils/status/cgi-env/updateStatus.xsl
===================================================================
--- /trunk/zoo-project/zoo-services/utils/status/cgi-env/updateStatus.xsl (revision 439)
+++ /trunk/zoo-project/zoo-services/utils/status/cgi-env/updateStatus.xsl (revision 440)
@@ -7,4 +7,5 @@
+
@@ -14,8 +15,11 @@
-
-
-
-
+
+
+
+
+
+
+
Index: /trunk/zoo-project/zoo-services/utils/status/service.c
===================================================================
--- /trunk/zoo-project/zoo-services/utils/status/service.c (revision 439)
+++ /trunk/zoo-project/zoo-services/utils/status/service.c (revision 440)
@@ -55,7 +55,8 @@
#endif
int GetStatus(maps*& conf,maps*& inputs,maps*& outputs){
- const char *params[2 + 1];
+ const char *params[4 + 1];
int xmlLoadExtDtdDefaultValue;
map* tmpMap=NULL,*tmpMmap=NULL, *tmpTmap=NULL;
+
tmpMap=getMapFromMaps(inputs,"sid","value");
tmpTmap=getMapFromMaps(conf,"main","tmpPath");
@@ -99,13 +100,35 @@
doc = xmlParseFile(fileName);
if(cur!=NULL && doc!=NULL){
- params[0]="value";
- params[1]=getStatus(atoi(tmpMap->value));
- params[2]=NULL;
- res = xsltApplyStylesheet(cur, doc, params);
- xmlChar *xmlbuff;
- int buffersize;
- xmlDocDumpFormatMemory(res, &xmlbuff, &buffersize, 1);
- setMapInMaps(outputs,"Result","value",(char*)xmlbuff);
- xmlFree(xmlbuff);
+ /**
+ * Parse Status to extract Status / Message
+ */
+ char *tmpStr=getStatus(atoi(tmpMap->value));
+ if(tmpStr!=NULL && strncmp(tmpStr,"-1",2)!=0){
+ char *tmpStr1=strdup(tmpStr);
+ char *tmpStr0=strdup(strstr(tmpStr,"|")+1);
+ tmpStr1[strlen(tmpStr1)-strlen(tmpStr0)-1]='\0';
+ char *tmpStrFinal=(char*)malloc((strlen(tmpStr0)+11)*sizeof(char));
+ sprintf(tmpStrFinal,"string(\"%s\")",tmpStr0);
+ params[0]="value";
+ params[1]=tmpStr1;
+ params[2]="message";
+ params[3]=tmpStrFinal;
+ params[4]=NULL;
+ res = xsltApplyStylesheet(cur, doc, params);
+ xmlChar *xmlbuff;
+ int buffersize;
+ xmlDocDumpFormatMemory(res, &xmlbuff, &buffersize, 1);
+ setMapInMaps(outputs,"Result","value",(char*)xmlbuff);
+ xmlFree(xmlbuff);
+ free(tmpStr1);
+ free(tmpStr0);
+ free(tmpStrFinal);
+ }else{
+ xmlChar *xmlbuff;
+ int buffersize;
+ xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
+ setMapInMaps(outputs,"Result","value",(char*)xmlbuff);
+ xmlFree(xmlbuff);
+ }
}
else{
@@ -131,4 +154,5 @@
while(i<100){
char tmp[4];
+ char message[10];
sprintf(tmp,"%i",i);
map* tmpMap=NULL;
@@ -136,5 +160,7 @@
if(tmpMap!=NULL)
fprintf(stderr,"Status %s %s\n",tmpMap->value,tmp);
+ sprintf(message,"Step %d",i);
setMapInMaps(conf,"lenv","status",tmp);
+ setMapInMaps(conf,"lenv","message",message);
updateStatus(conf);
#ifndef WIN32