Index: branches/prototype-v0/zoo-project/zoo-kernel/caching.c
===================================================================
--- branches/prototype-v0/zoo-project/zoo-kernel/caching.c	(revision 871)
+++ branches/prototype-v0/zoo-project/zoo-kernel/caching.c	(revision 872)
@@ -289,20 +289,28 @@
   map* tmpM=getMapFromMaps(conf,"main","cacheDir");
   if(tmpM!=NULL){
-    char* myRequest=getFilenameForRequest(conf,request);
-    char* md5str=getMd5(myRequest);
-    free(myRequest);
-#ifdef DEBUG
-    fprintf(stderr,"MD5STR : (%s)\n\n",md5str);
-#endif
-    char* fname=(char*)malloc(sizeof(char)*(strlen(tmpM->value)+strlen(md5str)+6));
-    sprintf(fname,"%s/%s.zca",tmpM->value,md5str);
-    struct stat f_status;
-    int s=stat(fname, &f_status);
-    if(s==0 && f_status.st_size>0){
+    if(strncasecmp(request,"file://",7)==0){
+      char* tmpStr=zStrdup(request+7);
+      fprintf(stderr,"**** %s %d %s \n",__FILE__,__LINE__,tmpStr);
+      return tmpStr;
+    }
+    else{
+
+      char* myRequest=getFilenameForRequest(conf,request);
+      char* md5str=getMd5(myRequest);
+      free(myRequest);
+#ifdef DEBUG
+      fprintf(stderr,"MD5STR : (%s)\n\n",md5str);
+#endif
+      char* fname=(char*)malloc(sizeof(char)*(strlen(tmpM->value)+strlen(md5str)+6));
+      sprintf(fname,"%s/%s.zca",tmpM->value,md5str);
+      struct stat f_status;
+      int s=stat(fname, &f_status);
+      if(s==0 && f_status.st_size>0){
+	free(md5str);
+	return fname;
+      }
       free(md5str);
-      return fname;
-    }
-    free(md5str);
-    free(fname);
+      free(fname);
+    }
   }
   return NULL;
@@ -632,12 +640,14 @@
     if(tmp!=NULL){
       map *c=getMap((*content),"xlink:href");
-      char *myRequest=getFilenameForRequest(*m,c->value);
-      char* md5str=getMd5(myRequest);
-      free(myRequest);
-      char* fname=(char*)malloc(sizeof(char)*(strlen(tmp->value)+strlen(md5str)+6));
-      sprintf(fname,"%s/%s.zca",tmp->value,md5str);
-      addToMap(*content,"cache_file",fname);
-      free(fname);
-      free(md5str);
+      if(strncasecmp(c->value,"file://",7)!=0){
+	char *myRequest=getFilenameForRequest(*m,c->value);
+	char* md5str=getMd5(myRequest);
+	free(myRequest);
+	char* fname=(char*)malloc(sizeof(char)*(strlen(tmp->value)+strlen(md5str)+6));
+	sprintf(fname,"%s/%s.zca",tmp->value,md5str);
+	addToMap(*content,"cache_file",fname);
+	free(fname);
+	free(md5str);
+      }
     }
   }
Index: branches/prototype-v0/zoo-project/zoo-kernel/response_print.c
===================================================================
--- branches/prototype-v0/zoo-project/zoo-kernel/response_print.c	(revision 871)
+++ branches/prototype-v0/zoo-project/zoo-kernel/response_print.c	(revision 872)
@@ -2634,5 +2634,5 @@
 	  map* _tmp2=getMapArray(tmps->content,"ecookie",cnt);
 	  if(_tmp2!=NULL)
-	    printf("Set-Cookie: %s; HttpOnly\r\n",_tmp->value);
+	    printf("Set-Cookie: %s; HttpOnly\r\n",_tmp2->value);
 	}
       }
