From 9085c458d3203a5feb1dbcb75658615ddd53ccae Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 31 Jan 2009 02:16:01 +0000 Subject: urldb_save_cookie_paths() -> iteration svn path=/trunk/netsurf/; revision=6314 --- content/urldb.c | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) (limited to 'content') diff --git a/content/urldb.c b/content/urldb.c index 347bbee07..4dec77dad 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -3761,20 +3761,22 @@ void urldb_save_cookie_hosts(FILE *fp, struct host_part *parent) */ void urldb_save_cookie_paths(FILE *fp, struct path_data *parent) { - struct path_data *p; + struct path_data *p = parent; time_t now = time(NULL); assert(fp && parent); - if (parent->cookies) { - struct cookie_internal_data *c; - for (c = parent->cookies; c; - c = c->next) { - if (c->expires < now) - /* Skip expired cookies */ - continue; + do { + if (p->cookies != NULL) { + struct cookie_internal_data *c; - fprintf(fp, "%d\t%s\t%d\t%s\t%d\t%d\t%d\t%d\t%d\t" + for (c = p->cookies; c != NULL; c = c->next) { + if (c->expires < now) + /* Skip expired cookies */ + continue; + + fprintf(fp, + "%d\t%s\t%d\t%s\t%d\t%d\t%d\t%d\t%d\t" "%s\t%s\t%d\t%s\t%s\t%s\n", c->version, c->domain, c->domain_from_set, c->path, @@ -3782,15 +3784,25 @@ void urldb_save_cookie_paths(FILE *fp, struct path_data *parent) (int)c->expires, (int)c->last_used, c->no_destroy, c->name, c->value, c->value_was_quoted, - parent->scheme ? parent->scheme - : "unused", - parent->url ? parent->url : "unused", + p->scheme ? p->scheme : "unused", + p->url ? p->url : "unused", c->comment ? c->comment : ""); + } } - } - for (p = parent->children; p; p = p->next) - urldb_save_cookie_paths(fp, p); + if (p->children != NULL) { + p = p->children; + } else { + while (p != parent) { + if (p->next != NULL) { + p = p->next; + break; + } + + p = p->parent; + } + } + } while (p != parent); } -- cgit v1.2.3