int port; /* port number */
char *path; /* path prefix of the cookie */
- unsigned discard_requested :1; /* whether cookie was created to
+ unsigned discard_requested :1;/* whether cookie was created to
request discarding another
cookie. */
struct cookie *cookie = cookie_new ();
param_token name, value;
- if (!extract_param (&ptr, &name, &value, ';'))
+ if (!extract_param (&ptr, &name, &value, ';', NULL))
goto error;
if (!value.b)
goto error;
cookie->attr = strdupdelim (name.b, name.e);
cookie->value = strdupdelim (value.b, value.e);
- while (extract_param (&ptr, &name, &value, ';'))
+ while (extract_param (&ptr, &name, &value, ';', NULL))
{
if (TOKEN_IS (name, "domain"))
{
/* Check if expiration spec is valid.
If not, assume default (cookie doesn't expire, but valid only for
- this session.) */
+ this session.) */
expires = http_atotm (value_copy);
if (expires != (time_t) -1)
{
#define REQUIRE_DIGITS(p) do { \
- if (!c_isdigit (*p)) \
+ if (!c_isdigit (*p)) \
return false; \
- for (++p; c_isdigit (*p); p++) \
+ for (++p; c_isdigit (*p); p++) \
; \
} while (0)
void
cookie_jar_load (struct cookie_jar *jar, const char *file)
{
- char *line;
+ char *line = NULL;
+ size_t bufsize = 0;
+
FILE *fp = fopen (file, "r");
if (!fp)
{
quote (file), strerror (errno));
return;
}
+
cookies_now = time (NULL);
- for (; ((line = read_whole_line (fp)) != NULL); xfree (line))
+ while (getline (&line, &bufsize, fp) > 0)
{
struct cookie *cookie;
char *p = line;
abort_cookie:
delete_cookie (cookie);
}
+
+ xfree(line);
fclose (fp);
}
param_token name, value;
const char *ptr = data;
int j = 0;
- while (extract_param (&ptr, &name, &value, ';'))
+ while (extract_param (&ptr, &name, &value, ';', NULL))
{
char *n = strdupdelim (name.b, name.e);
char *v = strdupdelim (value.b, value.e);