Lines Matching refs:co
105 static void freecookie(struct Cookie *co) in freecookie() argument
107 free(co->expirestr); in freecookie()
108 free(co->domain); in freecookie()
109 free(co->path); in freecookie()
110 free(co->spath); in freecookie()
111 free(co->name); in freecookie()
112 free(co->value); in freecookie()
113 free(co->maxage); in freecookie()
114 free(co->version); in freecookie()
115 free(co); in freecookie()
380 struct Cookie *co, *nx; in remove_expired() local
386 co = cookies->cookies[i]; in remove_expired()
387 while(co) { in remove_expired()
388 nx = co->next; in remove_expired()
389 if(co->expires && co->expires < now) { in remove_expired()
391 cookies->cookies[i] = co->next; in remove_expired()
394 pv->next = co->next; in remove_expired()
397 freecookie(co); in remove_expired()
400 pv = co; in remove_expired()
402 co = nx; in remove_expired()
443 struct Cookie *co; in Curl_cookie_add() local
455 co = calloc(1, sizeof(struct Cookie)); in Curl_cookie_add()
456 if(!co) in Curl_cookie_add()
469 free(co); in Curl_cookie_add()
500 freecookie(co); in Curl_cookie_add()
540 co->prefix |= COOKIE_PREFIX__SECURE; in Curl_cookie_add()
542 co->prefix |= COOKIE_PREFIX__HOST; in Curl_cookie_add()
545 if(!co->name) { in Curl_cookie_add()
552 co->name = strdup(name); in Curl_cookie_add()
553 co->value = strdup(whatptr); in Curl_cookie_add()
555 if(!co->name || !co->value) { in Curl_cookie_add()
571 co->secure = TRUE; in Curl_cookie_add()
579 co->httponly = TRUE; in Curl_cookie_add()
587 strstore(&co->path, whatptr); in Curl_cookie_add()
588 if(!co->path) { in Curl_cookie_add()
592 free(co->spath); /* if this is set again */ in Curl_cookie_add()
593 co->spath = sanitize_cookie_path(co->path); in Curl_cookie_add()
594 if(!co->spath) { in Curl_cookie_add()
623 strstore(&co->domain, whatptr); in Curl_cookie_add()
624 if(!co->domain) { in Curl_cookie_add()
629 co->tailmatch = TRUE; /* we always do that if the domain name was in Curl_cookie_add()
642 strstore(&co->version, whatptr); in Curl_cookie_add()
643 if(!co->version) { in Curl_cookie_add()
658 strstore(&co->maxage, whatptr); in Curl_cookie_add()
659 if(!co->maxage) { in Curl_cookie_add()
665 strstore(&co->expirestr, whatptr); in Curl_cookie_add()
666 if(!co->expirestr) { in Curl_cookie_add()
696 if(co->maxage) { in Curl_cookie_add()
698 offt = curlx_strtoofft((*co->maxage == '\"')? in Curl_cookie_add()
699 &co->maxage[1]:&co->maxage[0], NULL, 10, in Curl_cookie_add()
700 &co->expires); in Curl_cookie_add()
703 co->expires = CURL_OFF_T_MAX; in Curl_cookie_add()
705 if(!co->expires) in Curl_cookie_add()
707 co->expires = 1; in Curl_cookie_add()
708 else if(CURL_OFF_T_MAX - now < co->expires) in Curl_cookie_add()
710 co->expires = CURL_OFF_T_MAX; in Curl_cookie_add()
712 co->expires += now; in Curl_cookie_add()
715 else if(co->expirestr) { in Curl_cookie_add()
718 co->expires = curl_getdate(co->expirestr, NULL); in Curl_cookie_add()
723 if(co->expires == 0) in Curl_cookie_add()
724 co->expires = 1; in Curl_cookie_add()
725 else if(co->expires < 0) in Curl_cookie_add()
726 co->expires = 0; in Curl_cookie_add()
729 if(!badcookie && !co->domain) { in Curl_cookie_add()
732 co->domain = strdup(domain); in Curl_cookie_add()
733 if(!co->domain) in Curl_cookie_add()
738 if(!badcookie && !co->path && path) { in Curl_cookie_add()
753 co->path = malloc(pathlen + 1); /* one extra for the zero byte */ in Curl_cookie_add()
754 if(co->path) { in Curl_cookie_add()
755 memcpy(co->path, path, pathlen); in Curl_cookie_add()
756 co->path[pathlen] = 0; /* zero terminate */ in Curl_cookie_add()
757 co->spath = sanitize_cookie_path(co->path); in Curl_cookie_add()
758 if(!co->spath) in Curl_cookie_add()
766 if(badcookie || !co->name) { in Curl_cookie_add()
769 freecookie(co); in Curl_cookie_add()
791 co->httponly = TRUE; in Curl_cookie_add()
796 free(co); in Curl_cookie_add()
817 co->domain = strdup(ptr); in Curl_cookie_add()
818 if(!co->domain) in Curl_cookie_add()
826 co->tailmatch = strcasecompare(ptr, "TRUE")?TRUE:FALSE; in Curl_cookie_add()
832 co->path = strdup(ptr); in Curl_cookie_add()
833 if(!co->path) in Curl_cookie_add()
836 co->spath = sanitize_cookie_path(co->path); in Curl_cookie_add()
837 if(!co->spath) { in Curl_cookie_add()
844 co->path = strdup("/"); in Curl_cookie_add()
845 if(!co->path) in Curl_cookie_add()
847 co->spath = strdup("/"); in Curl_cookie_add()
848 if(!co->spath) in Curl_cookie_add()
853 co->secure = FALSE; in Curl_cookie_add()
856 co->secure = TRUE; in Curl_cookie_add()
862 if(curlx_strtoofft(ptr, NULL, 10, &co->expires)) in Curl_cookie_add()
866 co->name = strdup(ptr); in Curl_cookie_add()
867 if(!co->name) in Curl_cookie_add()
871 if(strncasecompare("__Secure-", co->name, 9)) in Curl_cookie_add()
872 co->prefix |= COOKIE_PREFIX__SECURE; in Curl_cookie_add()
873 else if(strncasecompare("__Host-", co->name, 7)) in Curl_cookie_add()
874 co->prefix |= COOKIE_PREFIX__HOST; in Curl_cookie_add()
878 co->value = strdup(ptr); in Curl_cookie_add()
879 if(!co->value) in Curl_cookie_add()
886 co->value = strdup(""); in Curl_cookie_add()
887 if(!co->value) in Curl_cookie_add()
898 freecookie(co); in Curl_cookie_add()
904 if(co->prefix & COOKIE_PREFIX__SECURE) { in Curl_cookie_add()
906 if(!co->secure) { in Curl_cookie_add()
907 freecookie(co); in Curl_cookie_add()
911 if(co->prefix & COOKIE_PREFIX__HOST) { in Curl_cookie_add()
916 if(co->secure && co->path && strcmp(co->path, "/") == 0 && !co->tailmatch) in Curl_cookie_add()
919 freecookie(co); in Curl_cookie_add()
926 !co->expires) { /* this is a session cookie since it doesn't expire! */ in Curl_cookie_add()
927 freecookie(co); in Curl_cookie_add()
931 co->livecookie = c->running; in Curl_cookie_add()
932 co->creationtime = ++c->lastct; in Curl_cookie_add()
944 if(domain && co->domain && !isip(co->domain)) { in Curl_cookie_add()
949 acceptable = psl_is_cookie_domain_acceptable(psl, domain, co->domain); in Curl_cookie_add()
957 "set cookies for '%s'\n", co->name, domain, co->domain); in Curl_cookie_add()
958 freecookie(co); in Curl_cookie_add()
964 myhash = cookiehash(co->domain); in Curl_cookie_add()
968 if(strcasecompare(clist->name, co->name)) { in Curl_cookie_add()
971 if(clist->domain && co->domain) { in Curl_cookie_add()
972 if(strcasecompare(clist->domain, co->domain) && in Curl_cookie_add()
973 (clist->tailmatch == co->tailmatch)) in Curl_cookie_add()
977 else if(!clist->domain && !co->domain) in Curl_cookie_add()
983 if(clist->spath && co->spath) { in Curl_cookie_add()
984 if(clist->secure && !co->secure && !secure) { in Curl_cookie_add()
1002 if(strncasecompare(clist->spath, co->spath, cllen)) { in Curl_cookie_add()
1003 freecookie(co); in Curl_cookie_add()
1007 else if(strcasecompare(clist->spath, co->spath)) in Curl_cookie_add()
1012 else if(!clist->spath && !co->spath) in Curl_cookie_add()
1019 if(replace_old && !co->livecookie && clist->livecookie) { in Curl_cookie_add()
1026 freecookie(co); in Curl_cookie_add()
1031 co->next = clist->next; /* get the next-pointer first */ in Curl_cookie_add()
1034 co->creationtime = clist->creationtime; in Curl_cookie_add()
1046 *clist = *co; /* then store all the new data */ in Curl_cookie_add()
1048 free(co); /* free the newly alloced memory */ in Curl_cookie_add()
1049 co = clist; /* point to the previous struct instead */ in Curl_cookie_add()
1068 replace_old?"Replaced":"Added", co->name, co->value, in Curl_cookie_add()
1069 co->domain, co->path, co->expires); in Curl_cookie_add()
1074 lastc->next = co; in Curl_cookie_add()
1076 c->cookies[myhash] = co; in Curl_cookie_add()
1080 return co; in Curl_cookie_add()
1274 struct Cookie *co; in Curl_cookie_getlist() local
1289 co = c->cookies[myhash]; in Curl_cookie_getlist()
1291 while(co) { in Curl_cookie_getlist()
1293 if(co->secure?secure:TRUE) { in Curl_cookie_getlist()
1296 if(!co->domain || in Curl_cookie_getlist()
1297 (co->tailmatch && !is_ip && tailmatch(co->domain, host)) || in Curl_cookie_getlist()
1298 ((!co->tailmatch || is_ip) && strcasecompare(host, co->domain)) ) { in Curl_cookie_getlist()
1304 if(!co->spath || pathmatch(co->spath, path) ) { in Curl_cookie_getlist()
1309 newco = dup_cookie(co); in Curl_cookie_getlist()
1324 co = co->next; in Curl_cookie_getlist()
1339 co = mainco; in Curl_cookie_getlist()
1341 for(i = 0; co; co = co->next) in Curl_cookie_getlist()
1342 array[i++] = co; in Curl_cookie_getlist()
1392 void Curl_cookie_freelist(struct Cookie *co) in Curl_cookie_freelist() argument
1395 while(co) { in Curl_cookie_freelist()
1396 next = co->next; in Curl_cookie_freelist()
1397 freecookie(co); in Curl_cookie_freelist()
1398 co = next; in Curl_cookie_freelist()
1471 static char *get_netscape_format(const struct Cookie *co) in get_netscape_format() argument
1482 co->httponly?"#HttpOnly_":"", in get_netscape_format()
1485 (co->tailmatch && co->domain && co->domain[0] != '.')? ".":"", in get_netscape_format()
1486 co->domain?co->domain:"unknown", in get_netscape_format()
1487 co->tailmatch?"TRUE":"FALSE", in get_netscape_format()
1488 co->path?co->path:"/", in get_netscape_format()
1489 co->secure?"TRUE":"FALSE", in get_netscape_format()
1490 co->expires, in get_netscape_format()
1491 co->name, in get_netscape_format()
1492 co->value?co->value:""); in get_netscape_format()
1505 struct Cookie *co; in cookie_output() local
1547 for(co = c->cookies[i]; co; co = co->next) { in cookie_output()
1548 if(!co->domain) in cookie_output()
1550 array[nvalid++] = co; in cookie_output()