Ignore:
Timestamp:
Sep 22, 2014, 6:36:15 PM (10 years ago)
Author:
djay
Message:

Fix DescribeProcess? for services with prefixed identifier.

Location:
trunk/zoo-project/zoo-kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-project/zoo-kernel/service_conf.y

    r477 r503  
    803803  if (srin==NULL){
    804804    fprintf(stderr,"error : file not found\n") ;
     805    setMapInMaps(conf,"lenv","message","file not found");
    805806    return -1;
    806807  }
     
    852853    fprintf(stderr,"%s %d\n",__FILE__,__LINE__);
    853854    setMapInMaps(conf,"lenv","message",srlval.chaine);
    854     dumpMaps(conf);
    855855#ifndef WIN32
    856856    srlex_destroy();
  • trunk/zoo-project/zoo-kernel/service_internal.c

    r501 r503  
    30973097    sprintf(key,"sprefix_%d",i);
    30983098    map* tmp00=getMapFromMaps(conf,"lenv",key);
    3099     sprintf(buffer,"%s/%s",tmp0,tmp00->value);
     3099    if(tmp00!=NULL)
     3100      sprintf(buffer,"%s/%s",tmp0,tmp00->value);
    31003101    free(tmp0);
    31013102    buffer[strlen(buffer)-1]=0;
     
    31043105      if(tmpMap==NULL || strlen(tmpMap->value)==0){
    31053106        char *tmp01=zStrdup(tmp00->value);
    3106         tmp01[strlen(tmp01)-1]=0;
    31073107        setMapInMaps(conf,"lenv","metapath",tmp01);
    31083108        free(tmp01);
     3109        tmp01=NULL;
    31093110      }
    31103111      else{
    3111         char *value=(char*)malloc((strlen(tmp00->value)+strlen(tmpMap->value)+2)*sizeof(char));
    3112         sprintf(value,"%s/%s",tmpMap->value,tmp00->value);
    3113         value[strlen(value)-1]=0;
    3114         setMapInMaps(conf,"lenv","metapath",value);
    3115         free(value);
     3112        if(tmp00!=NULL && tmpMap!=NULL){
     3113          char *value=(char*)malloc((strlen(tmp00->value)+strlen(tmpMap->value)+2)*sizeof(char));
     3114          sprintf(value,"%s/%s",tmpMap->value,tmp00->value);
     3115          setMapInMaps(conf,"lenv","metapath",value);
     3116          free(value);
     3117          value=NULL;
     3118        }
    31163119      }
    31173120    }else{
  • trunk/zoo-project/zoo-kernel/zoo_service_loader.c

    r502 r503  
    988988        while(tmps!=NULL){
    989989          int hasVal=-1;
    990           char *corig=strdup(tmps);
     990          char *corig=zStrdup(tmps);
    991991          if(strstr(corig,".")!=NULL){
     992           
    992993            parseIdentifier(m,conf_dir,corig,buff1);
     994            map* tmpMap=getMapFromMaps(m,"lenv","metapath");
     995            if(tmpMap!=NULL)
     996              addToMap(request_inputs,"metapath",tmpMap->value);
     997
    993998            s1=(service*)malloc(SERVICE_SIZE);
    994999            t=readServiceFile(m,buff1,&s1,corig);
    995 
    9961000            if(t<0){
    9971001              map* tmp00=getMapFromMaps(m,"lenv","message");
    9981002              char tmp01[1024];
    9991003              if(tmp00!=NULL)
    1000                 sprintf(tmp01,_("Unable to parse the ZCFG file: %s (%s)"),dp->d_name,tmp00->value);
     1004                sprintf(tmp01,_("Unable to parse the ZCFG file for the following ZOO-Service: %s. Message: %s"),tmps,tmp00->value);
    10011005              else
    1002                 sprintf(tmp01,_("Unable to parse the ZCFG file: %s."),dp->d_name);
     1006                sprintf(tmp01,_("Unable to parse the ZCFG file for the following ZOO-Service: %s."),tmps);
    10031007              dup2(saved_stdout,fileno(stdout));
    1004               errorException(m, tmp01,"InternalError",NULL);
     1008              errorException(m, tmp01,"InvalidParameterValue","identifier");
    10051009              freeMaps(&m);
    10061010              free(m);
    10071011              free(REQUEST);
     1012              free(corig);
     1013              free(orig);
     1014              free(SERVICE_URL);
     1015              free(s1);
     1016              closedir(dirp);
     1017              xmlFreeDoc(doc);
     1018              xmlCleanupParser();
     1019              zooXmlCleanupNs();
    10081020              return 1;
    10091021            }
     
    10161028            s1=NULL;
    10171029            scount++;
    1018             setMapInMaps(m,"lenv","level","0");
    1019           }
    1020          
    1021           memset(buff,0,256);
    1022           snprintf(buff,256,"%s.zcfg",corig);
    1023           free(corig);
    1024           memset(buff1,0,1024);
    1025 #ifdef DEBUG
    1026           printf("\n#######%s\n########\n",buff);
    1027 #endif
    1028           while ((dp = readdir(dirp)) != NULL){
    1029             if( strcasecmp(dp->d_name,buff)==0 ){
    1030               memset(buff1,0,1024);
    1031               snprintf(buff1,1024,"%s/%s",conf_dir,dp->d_name);
    1032               s1=(service*)malloc(SERVICE_SIZE);
    1033               if(s1 == NULL){
    1034                 dup2(saved_stdout,fileno(stdout));
    1035                 return errorException(m, _("Unable to allocate memory."),"InternalError",NULL);
     1030            hasVal=1;
     1031          }else{
     1032            memset(buff,0,256);
     1033            snprintf(buff,256,"%s.zcfg",corig);
     1034            free(corig);
     1035            memset(buff1,0,1024);
     1036#ifdef DEBUG
     1037            printf("\n#######%s\n########\n",buff);
     1038#endif
     1039            while ((dp = readdir(dirp)) != NULL){
     1040              if( strcasecmp(dp->d_name,buff)==0 ){
     1041                memset(buff1,0,1024);
     1042                snprintf(buff1,1024,"%s/%s",conf_dir,dp->d_name);
     1043                s1=(service*)malloc(SERVICE_SIZE);
     1044                if(s1 == NULL){
     1045                  dup2(saved_stdout,fileno(stdout));
     1046                  return errorException(m, _("Unable to allocate memory."),"InternalError",NULL);
     1047                }
     1048#ifdef DEBUG
     1049                printf("#################\n(%s) %s\n#################\n",r_inputs->value,buff1);
     1050#endif
     1051                char *tmp0=zStrdup(dp->d_name);
     1052                tmp0[strlen(tmp0)-5]=0;
     1053                t=readServiceFile(m,buff1,&s1,tmp0);
     1054                free(tmp0);
     1055                if(t<0){
     1056                  map* tmp00=getMapFromMaps(m,"lenv","message");
     1057                  char tmp01[1024];
     1058                  if(tmp00!=NULL)
     1059                    sprintf(tmp01,_("Unable to parse the ZCFG file: %s (%s)"),dp->d_name,tmp00->value);
     1060                  else
     1061                    sprintf(tmp01,_("Unable to parse the ZCFG file: %s."),dp->d_name);
     1062                  dup2(saved_stdout,fileno(stdout));
     1063                  errorException(m, tmp01,"InternalError",NULL);
     1064                  freeMaps(&m);
     1065                  free(m);
     1066                  free(orig);
     1067                  free(REQUEST);
     1068                  closedir(dirp);
     1069                  xmlFreeDoc(doc);
     1070                  xmlCleanupParser();
     1071                  zooXmlCleanupNs();
     1072                  return 1;
     1073                }
     1074#ifdef DEBUG
     1075                dumpService(s1);
     1076#endif
     1077                printDescribeProcessForProcess(m,n,s1);
     1078                freeService(&s1);
     1079                free(s1);
     1080                s1=NULL;
     1081                scount++;
     1082                hasVal=1;
    10361083              }
    1037 #ifdef DEBUG
    1038               printf("#################\n(%s) %s\n#################\n",r_inputs->value,buff1);
    1039 #endif
    1040               char *tmp0=zStrdup(dp->d_name);
    1041               tmp0[strlen(tmp0)-5]=0;
    1042               t=readServiceFile(m,buff1,&s1,tmp0);
    1043               free(tmp0);
    1044               if(t<0){
    1045                 map* tmp00=getMapFromMaps(m,"lenv","message");
    1046                 char tmp01[1024];
    1047                 if(tmp00!=NULL)
    1048                   sprintf(tmp01,_("Unable to parse the ZCFG file: %s (%s)"),dp->d_name,tmp00->value);
    1049                 else
    1050                   sprintf(tmp01,_("Unable to parse the ZCFG file: %s."),dp->d_name);
    1051                 dup2(saved_stdout,fileno(stdout));
    1052                 errorException(m, tmp01,"InternalError",NULL);
    1053                 freeMaps(&m);
    1054                 free(m);
    1055                 free(orig);
    1056                 free(REQUEST);
    1057                 closedir(dirp);
    1058                 xmlFreeDoc(doc);
    1059                 return 1;
    1060               }
    1061 #ifdef DEBUG
    1062               dumpService(s1);
    1063 #endif
    1064               printDescribeProcessForProcess(m,n,s1);
    1065               freeService(&s1);
    1066               free(s1);
    1067               s1=NULL;
    1068               scount++;
    1069               hasVal=1;
    10701084            }
    10711085          }
     
    10781092              sprintf(tmp01,_("Unable to parse the ZCFG file: %s."),buff);
    10791093            dup2(saved_stdout,fileno(stdout));
     1094            dumpMaps(m);
    10801095            errorException(m, tmp01,"InvalidParameterValue","Identifier");
    10811096            freeMaps(&m);
     
    10851100            closedir(dirp);
    10861101            xmlFreeDoc(doc);
     1102            xmlCleanupParser();
     1103            zooXmlCleanupNs();
    10871104            return 1;
    10881105          }
     1106          free(corig);
    10891107          rewinddir(dirp);
    10901108          tmps=strtok_r(NULL,",",&saveptr);
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png