Commit Graph

139 Commits

Author SHA1 Message Date
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
John Mark Bell
8ac57593b8 Fix handling of broken Expires avpairs
svn path=/trunk/netsurf/; revision=2633
2006-06-19 23:40:27 +00:00
John Mark Bell
4f249f9d0a Merge cookies changes into head - unvalidated transactions and a UI
still need implementing.

svn path=/trunk/netsurf/; revision=2632
2006-06-19 21:49:25 +00:00
John Mark Bell
026ba672ae Fix handling of hosts with no paths attached (fixes #1505891)
svn path=/trunk/netsurf/; revision=2620
2006-06-15 15:06:59 +00:00
John Mark Bell
c1dbdad995 Provide persistent flag for urldb entries.
Make hotlist use this, rather than abusing the last visited date.
This fixes the hotlist being copied to global history issue.

svn path=/trunk/netsurf/; revision=2619
2006-06-14 22:46:12 +00:00
John Mark Bell
217e59aebe Fix off-by-one error in search routines which caused crashes with
(invalid) host names ending in a '.'.

svn path=/trunk/netsurf/; revision=2618
2006-06-14 21:47:23 +00:00
Richard Wilson
a2465c779f Remove RISC OS dependencies from filename code.
svn path=/trunk/netsurf/; revision=2540
2006-04-21 23:49:52 +00:00
John Mark Bell
faf76f5f5f Ignore scheme when performing partial match
svn path=/trunk/netsurf/; revision=2535
2006-04-15 18:57:57 +00:00
John Mark Bell
e5912fedd1 Use database's copy of URL for new global history entries
svn path=/trunk/netsurf/; revision=2534
2006-04-15 18:53:20 +00:00
John Mark Bell
037fb6d91d Fix host match functions
svn path=/trunk/netsurf/; revision=2532
2006-04-15 17:48:47 +00:00
John Mark Bell
5873160a8b Fix undersized buffer for reading port number into
Detect no URLs for a host before adding host to database.

svn path=/trunk/netsurf/; revision=2530
2006-04-15 13:59:53 +00:00
John Mark Bell
1b48febd2f Fix issues with authentication storage/lookup in database
svn path=/trunk/netsurf/; revision=2527
2006-04-12 23:23:47 +00:00
John Mark Bell
ef301b8619 Fix URL file loading and add support for file:/// URLs to urldb
Convert file:/... to file:///... (the former isn't a valid URL)

svn path=/trunk/netsurf/; revision=2524
2006-04-12 08:09:27 +00:00
John Mark Bell
4ecbfb483c Handle memory exhaustion for version 1.06 URL files
Log failure to insert from version 1.05 URL files for debugging purposes

svn path=/trunk/netsurf/; revision=2523
2006-04-11 17:00:26 +00:00
John Mark Bell
e0ba508992 Store URLs explicitly in URL database for faster access.
Iteration callbacks now passed url_data struct to remove need to look up

svn path=/trunk/netsurf/; revision=2522
2006-04-11 02:39:55 +00:00
John Mark Bell
1ee3d620b8 New URL file format more suited to urldb implementation
svn path=/trunk/netsurf/; revision=2520
2006-04-10 08:43:30 +00:00
John Mark Bell
c09eb457df Unify information databases
svn path=/trunk/netsurf/; revision=2519
2006-04-09 23:21:13 +00:00