Commit Graph

166 Commits

Author SHA1 Message Date
Michael Drake
2bd587add5 Make the parasitic hack of the old tree code more robust. Now if the temp_treeview_test option is set, the global history and cookie manager will be replaced with their respective new implementations. 2013-07-26 14:48:26 +01:00
Michael Drake
81b4c61ae3 Don't call cookies delete here, the cookie manager has already deleted it. (Calling it only added the cookie again, cos the old cookie manager was braindead.) 2013-07-24 11:44:30 +01:00
Michael Drake
68078d7ea7 Fix up for cookies_old rename. 2013-07-22 10:21:37 +01:00
Vincent Sanders
ee6e6eec05 move options include 2013-05-28 14:16:10 +01:00
Rob Kendrick (humdrum)
90d2c8c212 Use hash generated by nsurl rather than doing it ourselves 2013-05-20 09:19:31 +01:00
Rob Kendrick (humdrum)
c204e5ff0c Add explanitory comment and make bloom size be a #define 2013-05-17 12:12:55 +01:00
Rob Kendrick (humdrum)
60e8f11850 urldb maintains a bloom filter of URLs contained within and consults it when searching 2013-05-17 11:40:43 +01:00
Daniel Silverstone
413248d0fc Rough implementation of httponly cookie support 2012-11-09 11:38:46 +00:00
Michael Drake
827d063c6b Remove special RISC OS handling of thumbnail files. (The feature has been broken for ages.) 2012-10-14 19:11:35 +01:00
Michael Drake
d9e7d58106 Fix up ripples from urldb change. 2012-10-11 11:20:02 +01:00
Michael Drake
e9b207c658 Port urldb to nsurl. Won't build since rest of NS needs ported to new urldb API.
+ urldb API now takes URLs as nsurl, rather than string.
+ urldb internally stores full URLs with nsurl ref.
+ urldb internally stores schemes as lwc_string.
+ Load and save of cookies and URL file may be slower since
  we now need to create a nsurl.
+ Everything else should be faster, and there should be much
  less allocating/freeing and much less parsing of the same
  url over and over again.
+ Updated urldbtest for new urldb API.
+ urldbtest now cleans up at the end
+ Added lwc_string itterator to end of urldbtest
+ Adding some broken URLs (such as http:domain/) will now
  work, since nsurl fixes (http://domain/) them.
2012-10-08 20:22:04 +01:00
Michael Drake
63adec1315 Add comment. 2012-10-05 19:06:24 +01:00
Michael Drake
0e23bbe911 Improve comment. 2012-10-05 17:29:57 +01:00
Vincent Sanders
25cdea3351 doxygen serious warning cleanup 2012-07-24 16:19:49 +01:00
Vincent Sanders
1490b52a6b NetSurf options rework (a=vince r=daniels,jmb)
svn path=/trunk/netsurf/; revision=13548
2012-03-22 09:34:34 +00:00
John Mark Bell
b5acf7db9d Prevent use after free in cookie update
svn path=/trunk/netsurf/; revision=13365
2012-01-02 13:20:11 +00:00
John Mark Bell
eb122c52d2 Fix cookie expiration
svn path=/trunk/netsurf/; revision=13161
2011-11-22 00:34:06 +00:00
John Mark Bell
27924aa38c Minor fix for path defaulting: retain rightmost / iff it's the first character in the path
svn path=/trunk/netsurf/; revision=11524
2011-01-29 15:17:42 +00:00
Rob Kendrick
1a7dffdac6 Brain fix on last night's IPv6 modifications
svn path=/trunk/netsurf/; revision=11000
2010-12-05 14:23:30 +00:00
Rob Kendrick
ab704ba7a7 Make urldb_add_url IPv6-aware
svn path=/trunk/netsurf/; revision=10990
2010-12-04 22:46:33 +00:00
John Mark Bell
6173bb0e6c Merge treeview-redux to trunk
svn path=/trunk/netsurf/; revision=10865
2010-10-05 19:14:46 +00:00
Vincent Sanders
4b329697f7 move url database test to test directory
svn path=/trunk/netsurf/; revision=10589
2010-06-29 07:20:12 +00:00
Vincent Sanders
03bb3e8636 remove _GNU_SOURCE define from everywhere.
strndup is not standard so provide an implementation.

svn path=/trunk/netsurf/; revision=10474
2010-04-24 15:22:17 +00:00
Vincent Sanders
6990c2cd04 remove uneccissary includes
svn path=/trunk/netsurf/; revision=9931
2010-01-29 11:32:53 +00:00
John Mark Bell
d591d8df94 Treat decomposed URLs with no path component as being for the path "/".
svn path=/trunk/netsurf/; revision=9703
2009-11-22 23:25:18 +00:00
John Mark Bell
8685cfb3b7 Fix the other half of this NULL dereference issue
svn path=/trunk/netsurf/; revision=9695
2009-11-22 14:21:47 +00:00
John Mark Bell
63848419e2 Ensure urldb file handle is closed on error.
svn path=/trunk/netsurf/; revision=9693
2009-11-22 14:12:03 +00:00
John Mark Bell
81c1b0e0df Don't call memcpy when p->segment is NULL
svn path=/trunk/netsurf/; revision=9687
2009-11-22 13:49:43 +00:00
John Tytgat
2261b616f6 - content/urldb.c(auth_data): Removed;
(prot_space_data): Added, it lives linked in the leaf host_part
  struct and together with its scheme and port (which defins canonical root
  url) and realm this defines a protection space.
  (path_data): Removed auth_data field and replaced by a prot_space_data
  pointer.
  (host_part::prot_space): Added linked list of protection space data
  structs.
  (urldb_get_auth_details): Given an URL fetch fetches its auth.
  (urldb_set_auth_details): Creates or updates the contents of a
  protection space to which given URL belongs.
  (urldb_destroy_host_tree): Delete protection data space structures
  using urldb_destroy_prot_space.
  (urldb_destroy_prot_space): Added.
- content/urldb.h(urldb_get_auth_details): Added realm parameter.
- content/fetchers/fetch_curl.c(fetch_curl_set_options): Update
  urldb_get_auth_details call (we don't know realm at this point).
- content/fetchcache.c(fetchcache_callback, fetchcache_auth): At FETCH_AUTH,
  use realm to determine if we really don't know auth data and if so,
  refetch content.
- content/content.h(struct content): Add content::tried_with_auth.
- content/content.c(content_create): Initialize content::tried_with_auth.
- riscos/401login.c(ro_gui_401login_open): Show known authentication
  data in dialogue so user can see what was wrong with it and correct it.

Solves bug #2830829.

svn path=/trunk/netsurf/; revision=9045
2009-08-04 23:02:23 +00:00
John Tytgat
9d678ef7cd Drop pkg-config on cairo, not needed here. Added const.
svn path=/trunk/netsurf/; revision=8985
2009-08-02 12:07:29 +00:00
John Mark Bell
ceca548a1d Fix serialisation of page titles.
svn path=/trunk/netsurf/; revision=8313
2009-07-04 18:19:29 +00:00
John Mark Bell
c1e3fb0bec Remove spurious "domain" variable from urldb_iterate_partial().
Lose unnecessary increment of rptr in cookie domain prefix matching.
Record that, in the long term, we need some kind of TLD service to consult so that (e.g.) .co.uk is not considered a valid domain prefix.

svn path=/trunk/netsurf/; revision=7600
2009-05-28 13:19:07 +00:00
John Mark Bell
53bbe5fb9e Fix url completion when last character in url bar is a /
svn path=/trunk/netsurf/; revision=7105
2009-04-16 14:12:54 +00:00
John Mark Bell
79c0981402 Ensure that neither the current fetch host nor the referrer is an IP address before attempting to domain match them.
svn path=/trunk/netsurf/; revision=6466
2009-02-13 10:49:35 +00:00
John Mark Bell
e5c225f7d9 Even fuzzier domain matching.
svn path=/trunk/netsurf/; revision=6463
2009-02-13 00:25:48 +00:00
John Mark Bell
19321017a9 Document the assumption that all URLs passed into urldb are already normalised. Violate this precondition at your peril.
svn path=/trunk/netsurf/; revision=6371
2009-02-06 02:08:00 +00:00
John Mark Bell
6a0a7c346a Let's try that again. Now actually passes the regression tests.
svn path=/trunk/netsurf/; revision=6317
2009-01-31 03:03:50 +00:00
John Mark Bell
e2ebfb72f7 Fix urldb_match_path().
Fix test code.

svn path=/trunk/netsurf/; revision=6316
2009-01-31 02:49:26 +00:00
John Mark Bell
966b402881 urldb_destroy_path_tree() -> iteration
svn path=/trunk/netsurf/; revision=6315
2009-01-31 02:30:28 +00:00
John Mark Bell
9085c458d3 urldb_save_cookie_paths() -> iteration
svn path=/trunk/netsurf/; revision=6314
2009-01-31 02:16:01 +00:00
John Mark Bell
71e397eb84 Initialising variables helps
svn path=/trunk/netsurf/; revision=6313
2009-01-31 02:13:12 +00:00
John Mark Bell
92b3bdeda0 urldb_delete_cookie_paths() -> iteration
svn path=/trunk/netsurf/; revision=6312
2009-01-31 02:12:06 +00:00
John Mark Bell
45b222ab50 Make urldb_dump_paths iterate
svn path=/trunk/netsurf/; revision=6311
2009-01-31 02:02:01 +00:00
John Mark Bell
a1d409d922 Make urldb_match_path() iterate.
svn path=/trunk/netsurf/; revision=6310
2009-01-31 01:57:15 +00:00
John Mark Bell
376ef0ca47 Make urldb_iterate_entries_path use iteration
svn path=/trunk/netsurf/; revision=6304
2009-01-30 19:58:46 +00:00
John Mark Bell
e5c07a3a82 Pedantic linewrapping
svn path=/trunk/netsurf/; revision=6303
2009-01-30 19:47:15 +00:00
John Mark Bell
29fac74dcc Make urldb_iterate_partial_path iterate over the tree and not recurse.
svn path=/trunk/netsurf/; revision=6302
2009-01-30 19:43:54 +00:00
John Mark Bell
ffe288e50b This logic looked entirely wrong. Fix it to be more sane. If this breaks things, blame the lack of commentary.
svn path=/trunk/netsurf/; revision=6301
2009-01-30 19:09:26 +00:00
John Mark Bell
a2fbddea60 Minor optimisation
svn path=/trunk/netsurf/; revision=6300
2009-01-30 18:50:55 +00:00
John Mark Bell
a3f46b12ef Iterate when counting/writing out paths.
svn path=/trunk/netsurf/; revision=6299
2009-01-30 18:48:55 +00:00
John Mark Bell
79fdbab192 Jump through hoops, potentially squashing warnings.
svn path=/trunk/netsurf/; revision=5569
2008-10-13 23:45:08 +00:00
Daniel Silverstone
eaa744c0d2 Remove urldb_search_remove. Added hint for where to find it if we need it in future
svn path=/trunk/netsurf/; revision=5531
2008-10-10 11:54:37 +00:00
François Revel
f28f4cc760 First round of C89 fixes. Those should be obvious, hope I didn't introduce any side effect.
svn path=/trunk/netsurf/; revision=4788
2008-07-29 09:05:36 +00:00
James Bursa
f87138e5de Remove two unused functions.
svn path=/trunk/netsurf/; revision=4333
2008-06-14 23:17:50 +00:00
Rob Kendrick
59641def82 const fixes in plotters and history core
svn path=/trunk/netsurf/; revision=4083
2008-04-07 11:15:09 +00:00
John Mark Bell
46d135f42d Squash warning
svn path=/trunk/netsurf/; revision=3988
2008-03-19 18:36:16 +00:00
John Mark Bell
9597b5359c Drop support for URL file versions below 1.06
svn path=/trunk/netsurf/; revision=3945
2008-03-13 18:25:41 +00:00
John Mark Bell
2dadb5fac8 Forward compatible Cookie file loading/saving
Reduce amount of magic numbers

svn path=/trunk/netsurf/; revision=3944
2008-03-13 18:14:05 +00:00
John Mark Bell
3986abd20b Add testcase for non-fqdn -- already passes, but may as well keep it for regression testing.
svn path=/trunk/netsurf/; revision=3877
2008-03-03 13:21:02 +00:00
John Mark Bell
9164f247c2 Ensure plq is terminated when looking for an URL path.
Ensure fetchcache_redirect() normalizes the redirect destination.

svn path=/trunk/netsurf/; revision=3807
2008-01-30 01:44:57 +00:00
John Mark Bell
02e2fab6a3 More work on cookie parser. Our junk value handling is now significantly closer to that of other browsers.
+ Fix infinite loop when encountering a spurious \r
 + Values are only treated as quoted if the first non-whitespace character is "
 + Cookies are inserted into the db in the order of receipt. This brings our 
   Cookie: header ordering closer to other browsers (though this strictly 
   shouldn't matter -- no ordering is defined, other than by path specificity)
 + Fix testcase assertions to cope with new output ordering

svn path=/trunk/netsurf/; revision=3709
2008-01-19 01:51:39 +00:00
John Mark Bell
e5e2eb09f6 Work on cookies to bring our behaviour closer to the spec and other browsers:
+ Improve handling of quoted cookies -- now processes nested quotes correctly
  + Improve cookie output -- now knows which version it's outputting for and 
    processes things appropriately
  + Add assertion that we're dealing with a domain cookie in the case where the
    cookie domain and URL host part don't match during validation.
  + Tidy up fix for broken domain cookie setting -- it's now less confusing to 
    read.
  + Preserve cookie value quoting, regardless of its necessity.
  + Modify Cookie file format to save value_was_quoted flag -- version number 
    bumped to 101.
  + Add more testcases.

svn path=/trunk/netsurf/; revision=3708
2008-01-17 20:00:55 +00:00
John Mark Bell
2fa8e656a1 The previous fix was broken -- URI paths include the leafname.
Make url_path() return the full path (including the leafname).
Defaulted cookie path attributes have the leafname and trailing slash stripped.
Add testcase for defaulted path.
Fix testcase conditions for paths with leafnames.

svn path=/trunk/netsurf/; revision=3693
2008-01-07 12:01:11 +00:00
John Mark Bell
74078b6e36 Fix potential crash in urldb_dump()
Relax 4.3.2(i) checking (Cookie path must be a prefix of URL path). We now permit a cookie path containing the document leafname -- we strip the leafname from the path.
Make testsuite build again.
Add tests for cookie path checking.

svn path=/trunk/netsurf/; revision=3692
2008-01-07 04:58:06 +00:00
John Mark Bell
d1bf94dc4d Work around sites sending domain cookies for .foo.com from hosts such as bar.bat.foo.com, then expecting domain matching to succeed. This causes me pain.
svn path=/trunk/netsurf/; revision=3637
2007-10-30 23:19:03 +00:00
Vincent Sanders
2f864eeecc Update all source code file headers to reflect GPL version 2 only and contain appropriate licence text
svn path=/trunk/netsurf/; revision=3486
2007-08-08 16:16:03 +00:00
Daniel Silverstone
18edcf5a40 Move the p->parent check in urldb to before the cookie loop. Prevents the cookie stuff exploding on domain cookies with no path. Fixes breakage with visiting launchpad.net
svn path=/trunk/netsurf/; revision=3368
2007-06-27 15:35:30 +00:00
John Mark Bell
92fd7ff871 Fix cookie domain matching in unverifiable transactions.
Minor tidying.

svn path=/trunk/netsurf/; revision=3337
2007-06-10 19:59:29 +00:00
Daniel Silverstone
6807b4208a Remove the netsurf/ from the include paths and rationalise use of <> vs "" in includes
NetSurf includes are now done with ""s and other system includes with <>s as C intended.
The scandeps tool has been updated to only look for ""ed includes, and to verify that the
files exist in the tree before adding them to the dependency lines. The depend rule has
therefore been augmented to make sure the autogenerated files are built before it is run.

This is untested under self-hosted RISC OS builds. All else tested and works.


svn path=/trunk/netsurf/; revision=3307
2007-05-30 22:39:54 +00:00
James Bursa
d0db5ed413 Fix warning: field precision should have type 'int', but argument 4 has type 'long int'.
svn path=/trunk/netsurf/; revision=3262
2007-05-02 03:06:52 +00:00
John Mark Bell
b229c41e9c 1) Fix corruption of history data structure on cloning
2) Only destroy urldb's thumbnail bitmap if it's not the same as the new 
   one. This needs revisiting at a later date such that the mess 
   surrounding who owns bitmap objects is sorted (and so that urldb 
   doesn't need to know about bitmaps)

svn path=/trunk/netsurf/; revision=3243
2007-04-07 20:30:39 +00:00
John Mark Bell
f059818d74 Squash memory leak
svn path=/trunk/netsurf/; revision=3235
2007-04-05 12:33:12 +00:00
James Bursa
a0b6661eb6 Make GTK build compile on FreeBSD.
svn path=/trunk/netsurf/; revision=3154
2007-01-29 22:27:15 +00:00
John Mark Bell
b76283f3d5 Handle strdup failure
svn path=/trunk/netsurf/; revision=3153
2007-01-28 23:53:20 +00:00
John Mark Bell
9612b35de1 Improve domain matching of referer and host.
Lose comparison of schemes - this was spurious and wrong.
Fixes 1646417.

svn path=/trunk/netsurf/; revision=3152
2007-01-28 16:34:50 +00:00
John Mark Bell
df4dbaf4cf Handle cookies in unverifiable transactions
svn path=/trunk/netsurf/; revision=3151
2007-01-27 20:58:20 +00:00
John Mark Bell
abcce3dfe7 Fix typo.
Default type -> text/plain

svn path=/trunk/netsurf/; revision=3123
2006-12-28 00:36:37 +00:00
John Mark Bell
5b3f0755f6 Add URLdb destruction functionality
svn path=/trunk/netsurf/; revision=3115
2006-12-08 22:38:46 +00:00
John Mark Bell
016dc5270a Further fixes and tidying to urldb. Also squash some memory leaks.
svn path=/trunk/netsurf/; revision=3104
2006-12-04 02:10:40 +00:00
Richard Wilson
55ed73bf02 Lose debug.
svn path=/trunk/netsurf/; revision=3088
2006-12-01 21:13:27 +00:00
Richard Wilson
ef65cb38bd Fix 1535120, 1528673
svn path=/trunk/netsurf/; revision=3087
2006-12-01 21:09:49 +00:00
Richard Wilson
c9d76ba242 Fix 1597646
svn path=/trunk/netsurf/; revision=3086
2006-12-01 19:07:28 +00:00
Richard Wilson
9bb9194a7d Fix 1563546, plug possible memory leak.
svn path=/trunk/netsurf/; revision=3085
2006-12-01 18:38:04 +00:00
Michael Drake
ba23e4b693 Update project URL.
svn path=/trunk/netsurf/; revision=3073
2006-11-27 15:35:18 +00:00
John Mark Bell
fbc0ac49e6 Log hostname on insertion failure.
svn path=/trunk/netsurf/; revision=3000
2006-10-12 14:10:18 +00:00
John Mark Bell
09d2b99973 Ensure urldb_add_path always has a path.
Extract hostname from url authority returned by url_get_components.

svn path=/trunk/netsurf/; revision=2958
2006-09-17 23:10:42 +00:00
Richard Wilson
1086d53b89 Lower overhead of urldb calls by using url component calls.
svn path=/trunk/netsurf/; revision=2908
2006-09-02 18:51:33 +00:00
Richard Wilson
74fa727509 Experimental new frames code.
svn path=/trunk/netsurf/; revision=2906
2006-09-02 15:52:41 +00:00
John Mark Bell
ca154b54c0 Fix edge case in cookie search code when handling Path=/foo
svn path=/trunk/netsurf/; revision=2776
2006-07-17 23:19:43 +00:00
Richard Wilson
0309e937e6 Allow the user to delete cookies.
svn path=/trunk/netsurf/; revision=2770
2006-07-16 21:42:37 +00:00
Richard Wilson
9294938976 Extent cookie_update API to allow notification of deleted domains. Fix nodes not being re-calculated.
svn path=/trunk/netsurf/; revision=2765
2006-07-16 16:10:43 +00:00
John Mark Bell
4c564c28bf Display session cookies' expiry correctly
Fix urldb debug build
Fix GTK build's cookie_update API

svn path=/trunk/netsurf/; revision=2752
2006-07-15 11:59:25 +00:00
Richard Wilson
652f594cbb Further url completion fixes
svn path=/trunk/netsurf/; revision=2744
2006-07-13 21:28:07 +00:00
Richard Wilson
1fcceb72f6 Fix url completion
svn path=/trunk/netsurf/; revision=2743
2006-07-13 19:48:45 +00:00
Richard Wilson
a836591435 Add basic cookie viewer, make trees use textarea components for UTF8 editing, trim headers, fix tree redraw issues.
svn path=/trunk/netsurf/; revision=2739
2006-07-13 12:46:02 +00:00
John Mark Bell
28a7ed4989 Relax domain matching to allow host a.com to match .a.com
svn path=/trunk/netsurf/; revision=2684
2006-07-01 21:35:30 +00:00
John Mark Bell
a63221a624 Rewrite cookie parser to be more tolerant of junk input
No longer need urldb_init; remove it.

svn path=/trunk/netsurf/; revision=2643
2006-06-24 15:44:48 +00:00
John Mark Bell
bb91584f7c Strip day names from date strings before parsing; these are too variable
to bother with (and carry no information useful to us)
Make expires avpair handling cater for dates after 2038.

svn path=/trunk/netsurf/; revision=2642
2006-06-24 00:01:55 +00:00
John Mark Bell
5f10c6277a Remove assertion of invalid assumption (fixes #1509118)
svn path=/trunk/netsurf/; revision=2637
2006-06-20 12:05:19 +00:00
John Mark Bell
dcb3caf1eb Make cookie file parser more strict (cookies with spaces in the value
have been seen in the wild).
Fix lookup of cookies for top-level paths (i.e. a path segment of "/")

svn path=/trunk/netsurf/; revision=2636
2006-06-20 11:45:41 +00:00