Changeset 890 for branches/prototype-v0/zoo-project/zoo-kernel/caching.c
- Timestamp:
- Jan 9, 2019, 4:11:59 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/prototype-v0/zoo-project/zoo-kernel/caching.c
r888 r890 49 49 for(i = 0; i < len; i++){ 50 50 if(i>0){ 51 char *tmp= strdup(fresult);51 char *tmp=zStrdup(fresult); 52 52 sprintf(fresult,"%s%02x", tmp,result[i]); 53 53 free(tmp); … … 73 73 int bytes; 74 74 int dlen=65536; 75 unsigned char data[ dlen+1];75 unsigned char data[65537]; 76 76 FILE *inFile = fopen (file, "rb"); 77 77 EVP_DigestInit(md5ctx, EVP_md5()); … … 356 356 */ 357 357 char* isInCache(maps* conf,char* request){ 358 map* tmpUrl=getMapFromMaps(conf,"main","tmpUrl"); 358 359 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){ 380 418 free(md5str); 381 free(fname); 382 } 419 return fname; 420 } 421 free(md5str); 422 free(fname); 383 423 } 384 424 return NULL; … … 609 649 */ 610 650 void addRequestToQueue(maps** m,HINTERNET* hInternet,const char* url,bool req){ 611 hInternet->waitingRequests[hInternet->nb]= strdup(url);651 hInternet->waitingRequests[hInternet->nb]=zStrdup(url); 612 652 if(req) 613 653 InternetOpenUrl(hInternet,hInternet->waitingRequests[hInternet->nb],NULL,0,INTERNET_FLAG_NO_CACHE_WRITE,0,*m); … … 648 688 649 689 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); 652 692 if(s==0){ 653 693 zooLock* lck=lockFile(*m,cached,'r'); … … 668 708 } 669 709 cached[strlen(cached)-1]='m'; 670 s= stat(cached, &f_status);710 s=zStat(cached, &f_status); 671 711 if(s==0){ 672 712 zooLock* lck=lockFile(*m,cached,'r'); … … 681 721 } 682 722 cached[strlen(cached)-1]='p'; 683 s= stat(cached, &f_status);723 s=zStat(cached, &f_status); 684 724 if(s==0){ 685 725 zooLock* lck=lockFile(*m,cached,'r'); … … 728 768 addToMap(*content,"isCached","true"); 729 769 map* tmp=getMapFromMaps(*m,"main","cacheDir"); 730 if(tmp!=NULL){ 770 map* tmp1=getMap((*content),"cache_file"); 771 if(tmp!=NULL && tmp1==NULL){ 731 772 map *c=getMap((*content),"xlink:href"); 732 773 if(strncasecmp(c->value,"file://",7)!=0){
Note: See TracChangeset
for help on using the changeset viewer.