return 0;
}
+void
+closejar(Jar *jar)
+{
+ int i;
+
+ if(jar == nil)
+ return;
+ expirejar(jar, 0);
+ if(jar->dirty)
+ if(syncjar(jar) < 0)
+ fprint(2, "warning: cannot rewrite cookie jar: %r\n");
+
+ for(i=0; i<jar->nc; i++)
+ freecookie(&jar->c[i]);
+
+ free(jar->lockfile);
+ free(jar->file);
+ free(jar->c);
+ free(jar);
+}
+
Jar*
readjar(char *file)
{
Jar *jar;
jar = newjar();
+ file = estrdup9p(file);
lock = emalloc9p(strlen(file)+10);
strcpy(lock, file);
if((p = strrchr(lock, '/')) != nil)
jar->dirty = 0;
if(syncjar(jar) < 0){
- free(jar->file);
- free(jar->lockfile);
- free(jar);
+ closejar(jar);
return nil;
}
return jar;
}
-void
-closejar(Jar *jar)
-{
- int i;
-
- if(jar == nil)
- return;
- expirejar(jar, 0);
- if(jar->dirty)
- if(syncjar(jar) < 0)
- fprint(2, "warning: cannot rewrite cookie jar: %r\n");
-
- for(i=0; i<jar->nc; i++)
- freecookie(&jar->c[i]);
-
- free(jar->file);
- free(jar->c);
- free(jar);
-}
/*
* Domain name matching is per RFC2109, section 2:
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
};
+ memset(&tm, 0, sizeof(tm));
+
os = s;
/* Sunday, */
for(i=0; i<nelem(wday); i++){
}
}
snprint(a->outhttp, AuxBuf, "%J", j);
- if(j)
- closejar(j);
+ closejar(j);
}else{
if(strlen(a->inhttp)+r->ifcall.count >= AuxBuf){
respond(r, "http headers too large");