Ignore:
Timestamp:
Jan 9, 2019, 4:11:59 PM (5 years ago)
Author:
djay
Message:

Make this ZOO-Kernel working properly on windows platform again.

File:
1 edited

Legend:

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

    r888 r890  
    4949  for(i = 0; i < len; i++){
    5050    if(i>0){
    51       char *tmp=strdup(fresult);
     51      char *tmp=zStrdup(fresult);
    5252      sprintf(fresult,"%s%02x", tmp,result[i]);
    5353      free(tmp);
     
    7373  int bytes;
    7474  int dlen=65536;
    75   unsigned char data[dlen+1];
     75  unsigned char data[65537];
    7676  FILE *inFile = fopen (file, "rb");
    7777  EVP_DigestInit(md5ctx, EVP_md5());
     
    356356 */
    357357char* isInCache(maps* conf,char* request){
     358  map* tmpUrl=getMapFromMaps(conf,"main","tmpUrl");
    358359  map* tmpM=getMapFromMaps(conf,"main","cacheDir");
    359   if(tmpM!=NULL){
    360     if(strncasecmp(request,"file://",7)==0){
    361       char* tmpStr=zStrdup(request+7);
    362       fprintf(stderr,"**** %s %d %s \n",__FILE__,__LINE__,tmpStr);
    363       return tmpStr;
    364     }
    365     else{
    366       char* myRequest=getFilenameForRequest(conf,request);
    367       char* md5str=getMd5(myRequest);
    368       free(myRequest);
    369 #ifdef DEBUG
    370       fprintf(stderr,"MD5STR : (%s)\n\n",md5str);
    371 #endif
    372       char* fname=(char*)malloc(sizeof(char)*(strlen(tmpM->value)+strlen(md5str)+6));
    373       sprintf(fname,"%s/%s.zca",tmpM->value,md5str);
    374       struct stat f_status;
    375       int s=stat(fname, &f_status);
    376       if(s==0 && f_status.st_size>0){
    377         free(md5str);
    378         return fname;
    379       }
     360  if(tmpM==NULL)
     361    tmpM=getMapFromMaps(conf,"main","tmpPath");
     362  if(strstr(request,tmpUrl->value)!=NULL){
     363    map* tmpPath=getMapFromMaps(conf,"main","tmpPath");
     364    char* tmpStr=strstr(request,tmpUrl->value);
     365    char* tmpStr1=zStrdup(tmpStr+strlen(tmpUrl->value));
     366    char* res=(char*) malloc((strlen(tmpPath->value)+strlen(tmpStr1)+2)*sizeof(char));
     367    sprintf(res,"%s/%s",tmpPath->value,tmpStr1);
     368    free(tmpStr1);
     369    return res;
     370  }
     371#ifdef MS_FORCE_LOCAL_FILE_USE
     372  map* msUrl=getMapFromMaps(conf,"main","mapserverAddress");
     373  if(msUrl!=NULL && strstr(request,msUrl->value)!=NULL){
     374    char *tmpStr=strstr(request,"?");
     375    char *cursor=zStrdup(tmpStr+1);
     376    char *token, *saveptr;
     377    token = strtok_r (cursor, "&", &saveptr);
     378    while(token!=NULL){
     379      char *token1, *saveptr1;
     380      token1 = strtok_r (token, "=", &saveptr1);
     381      char *name=NULL;
     382      while(token1!=NULL){
     383        if(name==NULL)
     384          name=zStrdup(token1);
     385        else
     386          if(strcasecmp(name,"map")==0){
     387            mapObj *myMap=msLoadMap(token1,NULL);
     388            char * res=zStrdup(myMap->layers[0]->data);
     389            free(name);
     390            free(cursor);
     391            msFreeMap(myMap);
     392            return res;
     393          }
     394        token1 = strtok_r (NULL, "=", &saveptr1);
     395      }
     396      token = strtok_r (NULL, "&", &saveptr);
     397    }
     398    free(cursor);
     399  }
     400#endif 
     401  if(strncasecmp(request,"file://",7)==0){
     402    char* tmpStr=zStrdup(request+7);
     403    fprintf(stderr,"**** %s %d %s \n",__FILE__,__LINE__,tmpStr);
     404    return tmpStr;
     405  }
     406  else{
     407    char* myRequest=getFilenameForRequest(conf,request);
     408    char* md5str=getMd5(myRequest);
     409    free(myRequest);
     410#ifdef DEBUG
     411    fprintf(stderr,"MD5STR : (%s)\n\n",md5str);
     412#endif
     413    char* fname=(char*)malloc(sizeof(char)*(strlen(tmpM->value)+strlen(md5str)+6));
     414    sprintf(fname,"%s/%s.zca",tmpM->value,md5str);
     415    zStatStruct f_status;
     416    int s=zStat(fname, &f_status);
     417    if(s==0 && f_status.st_size>0){
    380418      free(md5str);
    381       free(fname);
    382     }
     419      return fname;
     420    }
     421    free(md5str);
     422    free(fname);
    383423  }
    384424  return NULL;
     
    609649 */
    610650void addRequestToQueue(maps** m,HINTERNET* hInternet,const char* url,bool req){
    611   hInternet->waitingRequests[hInternet->nb]=strdup(url);
     651  hInternet->waitingRequests[hInternet->nb]=zStrdup(url);
    612652  if(req)
    613653    InternetOpenUrl(hInternet,hInternet->waitingRequests[hInternet->nb],NULL,0,INTERNET_FLAG_NO_CACHE_WRITE,0,*m);
     
    648688
    649689  if(cached!=NULL){
    650     struct stat f_status;
    651     int s=stat(cached, &f_status);
     690    zStatStruct f_status;
     691    int s=zStat(cached, &f_status);
    652692    if(s==0){
    653693      zooLock* lck=lockFile(*m,cached,'r');
     
    668708    }
    669709    cached[strlen(cached)-1]='m';
    670     s=stat(cached, &f_status);
     710    s=zStat(cached, &f_status);
    671711    if(s==0){
    672712      zooLock* lck=lockFile(*m,cached,'r');
     
    681721    }
    682722    cached[strlen(cached)-1]='p';
    683     s=stat(cached, &f_status);
     723    s=zStat(cached, &f_status);
    684724    if(s==0){
    685725      zooLock* lck=lockFile(*m,cached,'r');
     
    728768    addToMap(*content,"isCached","true");
    729769    map* tmp=getMapFromMaps(*m,"main","cacheDir");
    730     if(tmp!=NULL){
     770    map* tmp1=getMap((*content),"cache_file");
     771    if(tmp!=NULL && tmp1==NULL){
    731772      map *c=getMap((*content),"xlink:href");
    732773      if(strncasecmp(c->value,"file://",7)!=0){
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