John Mark Bell
d8d0353a73
Fix bug #3184972 : cope with server sending a 304 in response to an unconditional request.
...
svn path=/trunk/netsurf/; revision=11710
2011-02-17 17:50:14 +00:00
John Mark Bell
3fcb02afa1
Revert r10650/1. We no longer require noisy fetch/cache logging.
...
svn path=/trunk/netsurf/; revision=11223
2011-01-06 00:31:54 +00:00
Michael Drake
0eb65d3344
Add some assert()s.
...
svn path=/trunk/netsurf/; revision=11144
2010-12-29 20:42:00 +00:00
John Mark Bell
bcfb508f86
User may have no handle if it was the target of an iterator when the handle was aborted
...
svn path=/trunk/netsurf/; revision=11071
2010-12-16 00:18:41 +00:00
John Mark Bell
c675c3552d
Ensure that we clean up after the client even if they report an error from their notification callback.
...
svn path=/trunk/netsurf/; revision=11067
2010-12-15 22:59:19 +00:00
John Mark Bell
d745dae903
Make llcache_object_user objects distinct from llcache_handles.
...
This allows us to be robust against clients completely changing the contents of the user list underneath us during iteration.
Fix llcache_send_event_to_users to also be robust against the user list changing under it.
svn path=/trunk/netsurf/; revision=11063
2010-12-15 21:15:49 +00:00
John Mark Bell
67556f54fe
Always invalidate next/prev pointers
...
svn path=/trunk/netsurf/; revision=11052
2010-12-13 08:36:27 +00:00
John Mark Bell
c0f49a2785
Revert r11047-11050: if we remove a user from an object while it's the iterator target, the effect will be that the iteration terminates early.
...
Subsequent users that require notifications will simply have their notifications delayed
svn path=/trunk/netsurf/; revision=11051
2010-12-13 08:34:01 +00:00
John Mark Bell
f919b689ba
Take 2: make callers of llcache_object_user_destroy invalidate next/prev pointers
...
svn path=/trunk/netsurf/; revision=11050
2010-12-13 08:28:22 +00:00
John Mark Bell
a5221248c2
Revert last change
...
svn path=/trunk/netsurf/; revision=11049
2010-12-13 08:25:54 +00:00
John Mark Bell
991472d264
Remove bogus assertions
...
svn path=/trunk/netsurf/; revision=11048
2010-12-13 08:24:04 +00:00
John Mark Bell
f40da966ad
We cannot invalidate a user's next/prev pointers when removing it from an object, as it may be the target of iteration
...
svn path=/trunk/netsurf/; revision=11047
2010-12-13 08:16:32 +00:00
John Mark Bell
702c94bb30
Fix assertion: user->next may be NULL, so there's no point asserting that it isn't
...
svn path=/trunk/netsurf/; revision=11046
2010-12-13 08:12:31 +00:00
John Mark Bell
d9f8b8949e
Fix assertion to compare, and not assign
...
svn path=/trunk/netsurf/; revision=11045
2010-12-13 08:10:29 +00:00
John Mark Bell
650f884527
Make llcache_object_notify_users robust to the object's user list changing underneath it
...
svn path=/trunk/netsurf/; revision=11044
2010-12-12 23:37:21 +00:00
John Mark Bell
e5bc525030
Fix bug 3096811: discard HTTP headers for all but the last response
...
svn path=/trunk/netsurf/; revision=10912
2010-10-27 22:12:00 +00:00
John Mark Bell
a10c4d3a7b
Fix crash on receipt of a 304 response: it turns out that FETCH_HEADER may be called before any decision about how to process the response is made.
...
Move FETCH_HEADER handler to start of switch statement to reflect this.
svn path=/trunk/netsurf/; revision=10792
2010-09-16 22:46:40 +00:00
John Mark Bell
a7dd752046
Ensure that candidate count is reduced if a conditional request results in a non-304 response
...
svn path=/trunk/netsurf/; revision=10791
2010-09-16 22:04:06 +00:00
Vincent Sanders
1391ebe5cc
perpetrate a neatness to centralise all the low level cache cache control data invalidation
...
svn path=/trunk/netsurf/; revision=10787
2010-09-16 19:47:15 +00:00
John Mark Bell
db736f8378
Fix heap corruption
...
svn path=/trunk/netsurf/; revision=10786
2010-09-16 19:33:18 +00:00
John Mark Bell
dafccf21d5
Fix validation of invalidated cache entries.
...
svn path=/trunk/netsurf/; revision=10785
2010-09-16 18:58:32 +00:00
Daniel Silverstone
be59d5870b
Ensure we free etags before invalidating cache control data
...
svn path=/trunk/netsurf/; revision=10784
2010-09-16 16:21:58 +00:00
John Mark Bell
c88044c8cb
Forcibly invalidate contents with response codes that aren't 200 or 203.
...
svn path=/trunk/netsurf/; revision=10780
2010-09-15 19:33:18 +00:00
John Mark Bell
78f3bbaed3
Fix bug #3055480 : properly compare URLs, instead of erroneously assuming that strcasecmp is the correct answer.
...
svn path=/trunk/netsurf/; revision=10721
2010-08-29 17:41:54 +00:00
John Mark Bell
00aeb20334
Less spam
...
svn path=/trunk/netsurf/; revision=10687
2010-08-10 21:46:45 +00:00
John Mark Bell
48b17a5aea
Rate-limit cache clean attempts
...
svn path=/trunk/netsurf/; revision=10686
2010-08-10 19:58:39 +00:00
John Mark Bell
183974b437
Enable noisy logging
...
svn path=/trunk/netsurf/; revision=10650
2010-07-17 08:17:42 +00:00
John Mark Bell
0de2013f25
Clean up caches on exit
...
svn path=/trunk/netsurf/; revision=10494
2010-04-27 06:48:09 +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
John Mark Bell
248a53f6ba
Avoid double free when shrink-wrapping source data on fetch completion.
...
svn path=/trunk/netsurf/; revision=10423
2010-04-17 21:17:08 +00:00
John Mark Bell
01eb197f56
When the fetch system informs its clients that certificate verification has failed, it has already stopped and cleaned up the fetch.
...
Stop llcache_fetch_cert_error attempting to abort the fetch, as this will result in a double free.
svn path=/trunk/netsurf/; revision=10418
2010-04-16 23:15:22 +00:00
John Mark Bell
44552e7492
Provide API to invalidate llcache object cache control data
...
svn path=/trunk/netsurf/; revision=10411
2010-04-16 20:42:10 +00:00
John Mark Bell
ca0daa1a66
Reset fetch state when refetching object.
...
Ensure that cache control data is invalidated for 401/certificate failure so that conditional headers are not emitted when object is refetched.
svn path=/trunk/netsurf/; revision=10408
2010-04-16 20:08:27 +00:00
John Mark Bell
b008327de1
Improve 401 response handling
...
svn path=/trunk/netsurf/; revision=10407
2010-04-16 20:00:10 +00:00
John Mark Bell
1c42c0569f
Ensure we invalidate cache data and mark objects as complete on failure to fetch.
...
svn path=/trunk/netsurf/; revision=10402
2010-04-14 20:42:03 +00:00
Daniel Silverstone
2ba2dab3a7
Eat any #fragment in llcache_object_retrieve -- fixing double-fragment issues at the top level, and preventing fragment(ed) redirects from confusing the issue
...
svn path=/trunk/netsurf/; revision=10399
2010-04-14 14:53:21 +00:00
Daniel Silverstone
b56886d0ee
Abstract a number of unsafe iterations of object users into a single safe function call
...
svn path=/trunk/netsurf/; revision=10398
2010-04-14 10:56:44 +00:00
John Mark Bell
4b8c720ac5
Shrink source buffer to final length on fetch completion
...
svn path=/trunk/netsurf/; revision=10373
2010-04-11 21:26:20 +00:00
John Mark Bell
6a88eaf67a
Pedantic whitespace changes
...
svn path=/trunk/netsurf/; revision=10356
2010-04-11 14:39:26 +00:00
John Mark Bell
fe87225ccf
Complete low-level cache cleaner
...
svn path=/trunk/netsurf/; revision=10355
2010-04-11 14:32:39 +00:00
John Mark Bell
9666787dfa
Remove redundant todo
...
svn path=/trunk/netsurf/; revision=10354
2010-04-11 14:12:13 +00:00
John Mark Bell
a70c67fa35
Support 307 redirects for GET requests
...
svn path=/trunk/netsurf/; revision=10353
2010-04-11 14:11:33 +00:00
John Mark Bell
863d5c77c3
Forbid redirects to file:/// URLs
...
svn path=/trunk/netsurf/; revision=10352
2010-04-11 14:06:02 +00:00
John Mark Bell
40bac34ffd
Bail out if we're redirected to an URL we can't handle
...
svn path=/trunk/netsurf/; revision=10351
2010-04-11 14:01:11 +00:00
John Mark Bell
758190f37b
Reintroduce redirect limit
...
svn path=/trunk/netsurf/; revision=10350
2010-04-11 13:58:12 +00:00
John Mark Bell
3470764041
Remove redundant todos
...
svn path=/trunk/netsurf/; revision=10349
2010-04-11 13:29:02 +00:00
John Mark Bell
b0f1b7b170
Improve const-correctness of fetch_start
...
svn path=/trunk/netsurf/; revision=10342
2010-04-10 17:13:53 +00:00
John Mark Bell
ee2a5b40ce
Use computed POST data when redirecting, instead of original.
...
Certain redirect methods result in POST being converted to GET.
svn path=/trunk/netsurf/; revision=10339
2010-04-10 11:56:14 +00:00
Daniel Silverstone
dfae5c33d2
Some more asserts to try and help spot multiple-release of llcache handles
...
svn path=/trunk/netsurf/; revision=10327
2010-04-09 00:06:36 +00:00
Daniel Silverstone
4262232956
Fix missing 'break' introduced by 10300
...
svn path=/trunk/netsurf/; revision=10304
2010-04-08 13:18:50 +00:00