diff options
author | Graeme Gregory <dp@xora.org.uk> | 2006-08-27 17:17:14 +0000 |
---|---|---|
committer | Graeme Gregory <dp@xora.org.uk> | 2006-08-27 17:17:14 +0000 |
commit | b59ce10791fa913ef0915e48a514f04ca2815977 (patch) | |
tree | d6a725e503349f790f6d2a753a41185d94c0090a /packages/links/files | |
parent | 9f9722dc610bdcf38d278f0e65db0fe805ab5448 (diff) |
links-x11_2.1pre21.bb, links_2.1pre12.bb : patches for cookie saving and
preventing segfault on cookies imported from MDK rpms.
packages/links/* : drop old versions
Diffstat (limited to 'packages/links/files')
-rw-r--r-- | packages/links/files/cookies-save-0.96.patch | 106 | ||||
-rw-r--r-- | packages/links/files/links-2.1pre17-fix-segfault-on-loading-cookies.patch | 20 |
2 files changed, 126 insertions, 0 deletions
diff --git a/packages/links/files/cookies-save-0.96.patch b/packages/links/files/cookies-save-0.96.patch new file mode 100644 index 0000000000..a1e35c01ca --- /dev/null +++ b/packages/links/files/cookies-save-0.96.patch @@ -0,0 +1,106 @@ +diff -ru links-0.96/cookies.c links-0.96+cookies-save/cookies.c +--- links-0.96/cookies.c Mon Sep 3 07:19:37 2001 ++++ links-0.96+cookies-save/cookies.c Mon Sep 3 07:18:42 2001 +@@ -276,15 +276,99 @@ + + void init_cookies(void) + { +- /* !!! FIXME: read cookies */ ++ unsigned char in_buffer[MAX_STR_LEN]; ++ unsigned char *cookfile, *p, *q; ++ FILE *fp; ++ ++ /* must be called after init_home */ ++ if (! links_home) return; ++ ++ cookfile = stracpy(links_home); ++ if (! cookfile) return; ++ add_to_strn(&cookfile, "cookies"); ++ ++ fp = fopen(cookfile, "r"); ++ mem_free(cookfile); ++ if (fp == NULL) return; ++ ++ while (fgets(in_buffer, MAX_STR_LEN, fp)) { ++ struct cookie *cookie; ++ ++ if (!(cookie = mem_alloc(sizeof(struct cookie)))) return; ++ memset(cookie, 0, sizeof(struct cookie)); ++ ++ q = in_buffer; p = strchr(in_buffer, ' '); ++ if (p == NULL) goto inv; ++ *p++ = '\0'; ++ cookie->name = stracpy(q); ++ ++ q = p; p = strchr(p, ' '); ++ if (p == NULL) goto inv; ++ *p++ = '\0'; ++ cookie->value = stracpy(q); ++ ++ q = p; p = strchr(p, ' '); ++ if (p == NULL) goto inv; ++ *p++ = '\0'; ++ cookie->server = stracpy(q); ++ ++ q = p; p = strchr(p, ' '); ++ if (p == NULL) goto inv; ++ *p++ = '\0'; ++ cookie->path = stracpy(q); ++ ++ q = p; p = strchr(p, ' '); ++ if (p == NULL) goto inv; ++ *p++ = '\0'; ++ cookie->domain = stracpy(q); ++ ++ q = p; p = strchr(p, ' '); ++ if (p == NULL) goto inv; ++ *p++ = '\0'; ++ cookie->expires = atoi(q); ++ ++ cookie->secure = atoi(p); ++ ++ cookie->id = cookie_id++; ++ ++ accept_cookie(cookie); ++ ++ continue; ++ ++inv: ++ free_cookie(cookie); ++ free(cookie); ++ } ++ fclose(fp); + } + + void cleanup_cookies(void) + { + struct cookie *c; ++ unsigned char *cookfile; ++ FILE *fp; ++ + free_list(c_domains); +- /* !!! FIXME: save cookies */ +- foreach (c, cookies) free_cookie(c); ++ ++ cookfile = stracpy(links_home); ++ if (! cookfile) return; ++ add_to_strn(&cookfile, "cookies"); ++ ++ fp = fopen(cookfile, "w"); ++ mem_free(cookfile); ++ if (fp == NULL) return; ++ ++ foreach (c, cookies) { ++ if (c->expires && ! cookie_expired(c)) ++ fprintf(fp, "%s %s %s %s %s %d %d\n", c->name, c->value, ++ c->server?c->server:(unsigned char *)"", c->path?c->path:(unsigned char *)"", ++ c->domain?c->domain:(unsigned char *)"", c->expires, c->secure); ++ ++ free_cookie(c); ++ } ++ ++ fclose(fp); ++ + free_list(cookies); + } + diff --git a/packages/links/files/links-2.1pre17-fix-segfault-on-loading-cookies.patch b/packages/links/files/links-2.1pre17-fix-segfault-on-loading-cookies.patch new file mode 100644 index 0000000000..0d3b407e2a --- /dev/null +++ b/packages/links/files/links-2.1pre17-fix-segfault-on-loading-cookies.patch @@ -0,0 +1,20 @@ +--- links-2.1pre17/cookies.c.pix 2005-05-15 23:05:10.000000000 +0800 ++++ links-2.1pre17/cookies.c 2005-05-15 23:17:21.000000000 +0800 +@@ -41,7 +41,7 @@ + + void free_cookie(struct cookie *c) + { +- mem_free(c->name); ++ if (c->value) mem_free(c->name); + if (c->value) mem_free(c->value); + if (c->server) mem_free(c->server); + if (c->path) mem_free(c->path); +@@ -355,7 +355,7 @@ + + inv: + free_cookie(cookie); +- free(cookie); ++ mem_free(cookie); + } + fclose(fp); + } |