Ignore:
Timestamp:
Aug 29, 2017, 10:52:39 AM (7 years ago)
Author:
djay
Message:

Fix various memory leaks and enhance the callback support. Add the prohibited keyword to the callback section to avoid calling callback for such services.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/prototype-v0/zoo-project/zoo-kernel/service_internal_ms.c

    r839 r850  
    194194
    195195  char* webService_url=(char*)malloc((strlen(msUrl->value)+strlen(format->value)+strlen(tmpI->name)+strlen(width->value)+strlen(height->value)+strlen(extent->value)+256)*sizeof(char));
    196 
     196  map* datatype=getMap(tmpI->content,"datatype");
     197 
     198  sprintf(webService_url,
     199          "%s?map=%s/%s_%s.map&request=%s&service=%s&version=%s&%s&format=%s&bbox=%s&crs=%s",
     200          msUrl->value,
     201          dataPath->value,
     202          tmpI->name,
     203          sid->value,
     204          options[proto][2],
     205          options[proto][0],
     206          protoVersion,
     207          layers,
     208          rformat->value,
     209          extent->value,
     210          crs->value
     211          );
    197212  if(proto>0){
    198     sprintf(webService_url,
    199             "%s?map=%s/%s_%s.map&request=%s&service=%s&version=%s&%s&format=%s&bbox=%s&crs=%s",
    200             msUrl->value,
    201             dataPath->value,
    202             tmpI->name,
    203             sid->value,
    204             options[proto][2],
    205             options[proto][0],
    206             protoVersion,
    207             layers,
    208             rformat->value,
    209             extent->value,
    210             crs->value
    211             );
     213    addToMap(tmpI->content,"Reference",webService_url);
     214    proto=0;
     215    rformat=createMap("mimeType","image/png");
    212216  }
    213217  else{
    214     sprintf(webService_url,
    215             "%s?map=%s/%s_%s.map&request=%s&service=%s&version=%s&%s&width=%s&height=%s&format=%s&bbox=%s&crs=%s",
    216             msUrl->value,
    217             dataPath->value,
    218             tmpI->name,
    219             sid->value,
    220             options[proto][2],
    221             options[proto][0],
    222             protoVersion,
    223             layers,
    224             width->value,
    225             height->value,
    226             rformat->value,
    227             extent->value,
    228             crs->value
    229             );
    230   }
     218    if(datatype!=NULL && strncasecmp(datatype->value,"raster",6)==0){
     219      proto=2;
     220      rformat=createMap("mimeType","image/tiff");
     221    }
     222    else{
     223      proto=1;
     224      rformat=createMap("mimeType","text/xml");
     225    }
     226  }
     227  if(datatype!=NULL && strncasecmp(datatype->value,"raster",6)==0){
     228    addToMap(tmpI->content,"ref_wcs_link",webService_url);
     229  }
     230  else{
     231    addToMap(tmpI->content,"ref_wfs_link",webService_url);
     232  }
     233  protoVersion=options[proto][1];
     234  extent=getMap(tmpI->content,options[proto][4]);
     235  memset(webService_url,0,strlen(webService_url));
     236  sprintf(webService_url,
     237          "%s?map=%s/%s_%s.map&request=%s&service=%s&version=%s&%s&width=%s&height=%s&format=%s&bbox=%s&crs=%s",
     238          msUrl->value,
     239          dataPath->value,
     240          tmpI->name,
     241          sid->value,
     242          options[proto][2],
     243          options[proto][0],
     244          protoVersion,
     245          layers,
     246          width->value,
     247          height->value,
     248          rformat->value,
     249          extent->value,
     250          crs->value
     251          );
     252  if(proto>0){
     253    addToMap(tmpI->content,"Reference",webService_url);
     254  }
     255  addToMap(tmpI->content,"ref_wms_link",webService_url);
    231256  if(hasCRS==0){
    232257    freeMap(&crs);
    233258    free(crs);
    234259  }
    235   addToMap(tmpI->content,"Reference",webService_url);
    236260  free(webService_url);
    237261}
     
    531555  free(sdsName);
    532556  free(dsName);
    533 
     557 
    534558  OGRDataSourceH poDS = NULL;
    535559  OGRSFDriverH *poDriver = NULL;
     
    548572  }
    549573
     574  addToMap(output->content,"datatype","vector");
    550575  int iLayer = 0;
    551576  for( iLayer=0; iLayer < OGR_DS_GetLayerCount(poDS); iLayer++ ){
     
    757782#endif
    758783
     784  addToMap(output->content,"datatype","raster");
    759785  /**
    760786   * Add a new layer set name, data
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