]>
err.no Git - varnish/log
Tollef Fog Heen [Sun, 16 Nov 2008 18:52:24 +0000 (19:52 +0100)]
Add test case for vcl.reload
Tollef Fog Heen [Sun, 16 Nov 2008 18:34:00 +0000 (19:34 +0100)]
Implement vcl.reload <name> <path> command
phk [Wed, 28 Jan 2009 11:48:07 +0000 (11:48 +0000)]
More FlexeLint silencing.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3550
d4fa192b -c00b-0410-8231-
f00ffab90ce4
tfheen [Wed, 28 Jan 2009 11:48:03 +0000 (11:48 +0000)]
Add missing header file to tarball
Fixes build failure
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3549
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 28 Jan 2009 10:46:54 +0000 (10:46 +0000)]
silence a couple of Flexelint complaints.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3548
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 27 Jan 2009 21:14:35 +0000 (21:14 +0000)]
Stop processing ESI elements as soon as we discover that the client
has closed the connection on us.
Fixes #427
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3547
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 27 Jan 2009 12:18:12 +0000 (12:18 +0000)]
proper errorchecks for regsub syntax.
(The recent change that moved the compiler into its own subprocess
eliminates risk that a compiler error causes the management process
to die, you just do not get a sensible syntax error).
Fixes: #417
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3546
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 27 Jan 2009 08:46:51 +0000 (08:46 +0000)]
Don't modify the obj_timer_when field outside the binheap lock.
This hopefully finaly lays the sporadic
assert(oe2->timer_when >= oe->timer_when);
panics to rest.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3545
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 27 Jan 2009 08:17:29 +0000 (08:17 +0000)]
Lack of a backend name is no reasonable cause for a panic.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3544
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 24 Jan 2009 12:56:27 +0000 (12:56 +0000)]
Test that we know the purge variable when it is compiled in.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3543
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 24 Jan 2009 10:36:46 +0000 (10:36 +0000)]
Implement the new-purge case where the entire expression comes
from VCL.
It is possible to instigate purges two ways from VCL now:
sub vcl_recv {
# Purge the req.url
if (req.request == "PURGE") {
purge (req.url == req.url);
error 410;
}
# Take entire purge instruction from "Purge:" header
if (req.request == "PURGESTR") {
purge ("" req.http.purge);
error 410;
}
Testcase for this.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3542
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 23 Jan 2009 21:17:02 +0000 (21:17 +0000)]
First cut at VCL support for new-purge.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3541
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 23 Jan 2009 13:22:43 +0000 (13:22 +0000)]
Don't append a CRNL to the body.
And add separate rxhdrs and rxbody primitives.
Submitted by: Yonatan Broza & Dmitry Rubinstein
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3540
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ingvar [Thu, 22 Jan 2009 13:07:20 +0000 (13:07 +0000)]
Don't need debug patch outside fedora package
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3539
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 22 Jan 2009 10:42:58 +0000 (10:42 +0000)]
Move the purgable variables into a CPP table, so we can share them with
the VCL compiler
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3538
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 21 Jan 2009 23:00:43 +0000 (23:00 +0000)]
Enforce a minimum ttl for "hit for pass" objects to prevent a value
of zero from serializing access to an object with very draconian
backend cache-control headers.
We could get far even with a one second TTL, but following our general
"there is a reason people put Varnish there in the first place" logic
we use the default_ttl parameter (default: 120 s) for this value.
If another value is desired, this can be set in vcl_fetch, even if it
looks somewhat counter-intuitive:
sub vcl_fetch {
if (obj.http.set-cookie) {
set obj.ttl = 10s;
pass;
}
}
Fixes #425
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3537
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 19 Jan 2009 13:46:31 +0000 (13:46 +0000)]
Add "no match" operator !~ to VCL regexps
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3534
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 19 Jan 2009 12:58:44 +0000 (12:58 +0000)]
Be much more BOFH about bereq, more asserts, free them where they
obviously should be freed.
This could fix 421 or make it much worse, but give us more info.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3530
d4fa192b -c00b-0410-8231-
f00ffab90ce4
tfheen [Mon, 19 Jan 2009 12:44:57 +0000 (12:44 +0000)]
Make make dist happier; distribute the files we need
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3527
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 19 Jan 2009 11:45:03 +0000 (11:45 +0000)]
Add a new paramter "purge_hash" which defaults to "off".
Only save the hash-string in the session workspace and objects when
this paramter is set to "on".
For sites with many small objects, this will save significant VM.
When this paramter is set to "off", the "purge.hash" facility will
not work, but this should not be a problem, because the new purging
facility allow much more expressive purging, the typical case
being:
purge req.http.host ~ www.foo.com && req.url ~ "article2383"
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3526
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 19 Jan 2009 09:48:16 +0000 (09:48 +0000)]
Move the vca_pipes to a more proper header file
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3525
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 19 Jan 2009 09:36:07 +0000 (09:36 +0000)]
Move the fiddling of banned objects to cache_ban.c
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3524
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 19 Jan 2009 09:22:49 +0000 (09:22 +0000)]
A couple of FlexeLint nits
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3523
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 16:57:29 +0000 (16:57 +0000)]
List referenced, but gone purges, mark them with a "G"
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3522
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 16:57:06 +0000 (16:57 +0000)]
Add a protective object to prevent purge.list from pruning our
purges before we test their numbers.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3521
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 16:43:46 +0000 (16:43 +0000)]
Set cost 10 on regexp tests.
Let purge.list prune the tail of the list before dumping.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3520
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 16:25:54 +0000 (16:25 +0000)]
Add the ability to purge on random request or object headers.
For instance:
purge req.http.host ~ www.foo.com && req.url ~ "\.png$"
purge obj.http.set-cookie ~ USER=383839
Now, why would you want purge on request headers and not object headers ?
Simple, some information the object does not have, the Host: header is
a good example.
Assuming that the Host: header is part of the hash we use to lookup
an object (as is the default), we can avoid copying that field into
the object (saving memory: O(nObjects)) by using the request value
to purge against.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3519
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 15:42:29 +0000 (15:42 +0000)]
Implement exact matching and negatives for bans.
You can now purge using these four conditionals:
purge req.url == "/diediedie.html"
purge req.url != "/index.html"
purge req.url !~ "\.html$"
purge req.url ~ "\.jpg$"
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3518
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 15:14:54 +0000 (15:14 +0000)]
Don't list gone bans.
Emit && \ for line continuation.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3517
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 14:54:41 +0000 (14:54 +0000)]
Properly quote the ban descriptions.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3516
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 14:50:20 +0000 (14:50 +0000)]
Move the body of cli_quote() to vsb_quote() and give it a, presently
unused, "how" argument flag.
We currently have far too many "quote this string properly" implementations
in varnish, hopefully, this will replace most of them.
Once this stabilizes, vsb_quote() will be contributed back to FreeBSD.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3515
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 18 Jan 2009 14:26:32 +0000 (14:26 +0000)]
redo the purge.list function with proper locking
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3514
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 14 Jan 2009 20:40:54 +0000 (20:40 +0000)]
After HSH_Lookup() returns NULL indicating a busy object, we diddled
the session a bit to transfer the per-request stats to the session
counters with SES_Charge().
Not only was it inconsistent to charge accounting data in the middle
of a request, it was also illegal because after the hash lock was
released we no longer owned the session.
Once a system is under sufficient load that there is a queue for the
CPU, a race could happen where upon hitting a busy object, the hash lock
was released, another thread would schedule, finish the busy object,
start the sessions on the waiting list, finish off the request we had
and then when we get the cpu again and access it, it's gone.
The previous commit (r3512) eliminated the need to call SES_Charge,
this commit removes the (option) shmlog message inside the hash lock
thus, hopefully, eliminating the race that caused #418.
Fixes: #418
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3513
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 14 Jan 2009 20:28:27 +0000 (20:28 +0000)]
Originally we shaved 64 bytes from the session to the worker thread
by keeping the current requests accounting stats in the worker thread.
For reasons which will be explained in the next commit, this is no
longer a good idea, and this commit moves these counters from
the worker thread to the session at a slight but all in all
trivial cost in memory footprint.
Remove the call to SES_Charge() when we hit a busy object, it is
not necessary to clean the worker thread counters here now.
Move these counters from the worker thread to the see
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3512
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 13 Jan 2009 14:18:54 +0000 (14:18 +0000)]
Add testcase for cli:purge
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3511
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 13 Jan 2009 14:18:08 +0000 (14:18 +0000)]
Add CLI_PURGE definition
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3510
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 13 Jan 2009 14:05:54 +0000 (14:05 +0000)]
Commit the old urge facilities to the new world order.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3509
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 13 Jan 2009 12:30:14 +0000 (12:30 +0000)]
Change the way bans/purges are stored, so that each ban has a list of
conditions to test.
This paves the way for a much more expressive ban/purge syntax where
things like:
purge req.http.host ~ "web1.com" && req.url ~ "\.png"
purge obj.age > 1w && obj.size > 1MB
purge obj.http.set-cookie ~ "USER=838339" && req.url ~ "\.html"
become possible.
Not quite there yet though.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3508
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 12 Jan 2009 13:51:33 +0000 (13:51 +0000)]
Ditch HSH_Compare() and just check the digest with memcmp()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3507
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 12 Jan 2009 13:19:14 +0000 (13:19 +0000)]
don't overload the waiting list (yet), I suspect it causes #414b
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3506
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 12 Jan 2009 13:13:59 +0000 (13:13 +0000)]
Expand critbit test for more coverage
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3505
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 12 Jan 2009 13:09:51 +0000 (13:09 +0000)]
Make SHA256 digest standard and use it in hash_classic.c
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3504
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 12 Jan 2009 12:57:30 +0000 (12:57 +0000)]
Add a minimal testcase of critbit
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3503
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 10 Jan 2009 22:49:44 +0000 (22:49 +0000)]
Addendum to r3501: remove the file from the list.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3502
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 10 Jan 2009 22:30:04 +0000 (22:30 +0000)]
Don't panic if we fail to delete shared objects in atexit().
Fixes #376
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3501
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 10 Jan 2009 22:27:39 +0000 (22:27 +0000)]
Don't panic if the chunked header is ridiculously long, just fail
the transaction.
Fixes #387
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3500
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 10 Jan 2009 22:14:58 +0000 (22:14 +0000)]
This is a regression test
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3499
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 10 Jan 2009 22:11:26 +0000 (22:11 +0000)]
If we get more HTTP headers than we have room for (default: 28) we
used to ignore the rest.
This is not a bright solution if crucial HTTP headers like
"Content-Length" or "Transfer-Encoding" are last and get ignored.
In general, it is highly suspect to randomly ignore HTTP headers,
as opposed to deliberately ignoring them, either by having first
looked at them and found them uninteresting, or by having looked
for the headers we care about, and having not matched some others.
Change too many headers to firm error condition: 400 if from the
client, and 503 (like every other trouble) if from the backend.
Fixes #416
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3498
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:42:48 +0000 (18:42 +0000)]
Minor polishing for the benefit of Glorius Checker of Code FlexeLint.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3497
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:41:43 +0000 (18:41 +0000)]
Make vsb_new() a tad easier for FlexeLint to figure out.
Give it proper semantics
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3496
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:40:35 +0000 (18:40 +0000)]
Properly ignore the return value from cli_readres(), we get it in status.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3495
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:40:10 +0000 (18:40 +0000)]
Set the status to CLIS_COMMS if we fal to read the body.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3494
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:35:47 +0000 (18:35 +0000)]
Remove pointless initialization.
Fix indentation.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3493
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:35:24 +0000 (18:35 +0000)]
Be more stringent about our timeout: fail even if we did get a
socket, but took to.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3492
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:34:39 +0000 (18:34 +0000)]
Check close(2) status.
Assert that we read the C-source file.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3491
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:34:02 +0000 (18:34 +0000)]
Assert that realloc() did.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3490
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:33:44 +0000 (18:33 +0000)]
remove pointless assignment
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3489
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 18:33:30 +0000 (18:33 +0000)]
Assert fcntl(2) have not failed.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3488
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 17:46:51 +0000 (17:46 +0000)]
More flexelinting.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3487
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 17:40:50 +0000 (17:40 +0000)]
Flexelint'ing
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3486
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 17:03:37 +0000 (17:03 +0000)]
Adjust to VCL_RET_* being enum instead of bitmap.
This solves the "restart" procaction issue in a non-hackish way
and looks better overall.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3485
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 17:01:58 +0000 (17:01 +0000)]
Generate VCL_RET_* as enumbering instead of bitmap, compensate
elsewhere as required.
Remove unecessary args to VCL_[RM]ET_MAC().
Rely on VCL_RET_* definition in vcl.h
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3484
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 16:19:14 +0000 (16:19 +0000)]
Move the enum MET/RET macros to vcl.h
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3483
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 16:18:39 +0000 (16:18 +0000)]
Move the enum MET/RET macros to vcl.h
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3482
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 10:56:11 +0000 (10:56 +0000)]
Flexelint adjustments
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3481
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 10:55:53 +0000 (10:55 +0000)]
Make VCC_Return_Name() return lower case, and use it also for the SMH
logging.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3480
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 10:47:09 +0000 (10:47 +0000)]
Use VCC_Return_Name() instead of rolling our own.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3479
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 10:46:34 +0000 (10:46 +0000)]
Add a VCC_Return_Name() function to convert a return action to a string.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3478
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 21 Dec 2008 10:45:33 +0000 (10:45 +0000)]
Make it entirely clear to the compiler that the WRONG() macro stops
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3477
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 20 Dec 2008 23:47:45 +0000 (23:47 +0000)]
This is a bandaid for a pointer dereference when "restart" is used.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3476
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 20 Dec 2008 23:27:00 +0000 (23:27 +0000)]
Remove http_GetProto(), it's unused.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3475
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 12:16:45 +0000 (12:16 +0000)]
Assert lock properly held, inspired by unease about #378.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3474
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 12:00:43 +0000 (12:00 +0000)]
Only fail -T argument if none of the addresses it resolves to
can be listend on.
Fixes #97
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3473
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 11:48:56 +0000 (11:48 +0000)]
Add test for two corner cases in backend body determination.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3472
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 11:30:17 +0000 (11:30 +0000)]
Add regression test for #400
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3471
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 11:30:02 +0000 (11:30 +0000)]
Change the logic that decides when we attempt EOF fetches from the
backend.
The new logic is:
If (HEAD) /* happens only on pass */
do not fetch body.
else if (Content-Length)
fetch body according to length
else if (chunked)
fetch body as chunked
else if (other transfer-encoding)
fail
else if (Connection: keep-alive)
fetch no body, set Length = 0
else if (Connection: close)
fetch body until EOF
else if (HTTP < 1.1)
fetch body until EOF
else
fetch no body, set Length = 0
let me know if this breaks anything that should work.
Fixes #400
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3470
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 10:58:17 +0000 (10:58 +0000)]
We should have a body length on a 200 reply
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3469
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 10:32:48 +0000 (10:32 +0000)]
Add regressiont test for #409
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3468
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 10:32:30 +0000 (10:32 +0000)]
Add a missing newline
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3467
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 10:31:08 +0000 (10:31 +0000)]
Add a missing error check.
Fixes #409
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3466
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 10:13:42 +0000 (10:13 +0000)]
Add regression test for ticket 412
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3465
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 18 Dec 2008 10:04:15 +0000 (10:04 +0000)]
A bit of cleanup while I ponder ticket 412:
make VBE_free_bereq() and HSH_Deref() null their argument pointer.
Add HSH_Drop() for deorbiting unwanted busy objects.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3464
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ingvar [Thu, 18 Dec 2008 09:47:05 +0000 (09:47 +0000)]
Changed rpm summary string as requested by the Fedora project
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3463
d4fa192b -c00b-0410-8231-
f00ffab90ce4
petter [Fri, 12 Dec 2008 11:47:32 +0000 (11:47 +0000)]
Fixed so that server_host is the hostname and not IP, as javscript will fail if the URL doesn't match.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3462
d4fa192b -c00b-0410-8231-
f00ffab90ce4
petter [Fri, 12 Dec 2008 10:10:05 +0000 (10:10 +0000)]
Initial checkin of a work in progress of the web GUI
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3461
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 9 Dec 2008 13:54:09 +0000 (13:54 +0000)]
Add support for, and use a new syntax for terminating actions in VCL,
basically "return(action)" instead of just "action".
The previos syntax is still available.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3460
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 8 Dec 2008 12:37:42 +0000 (12:37 +0000)]
Increase session workspace to 16k
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3459
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 8 Dec 2008 10:16:25 +0000 (10:16 +0000)]
Silence debug noise
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3458
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 8 Dec 2008 10:03:31 +0000 (10:03 +0000)]
Implement the cooling period before objhead's are deleted in the
critbit hasher.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3457
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 3 Dec 2008 16:40:45 +0000 (16:40 +0000)]
Resolve the remove/lookup race the simple way.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3456
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 3 Dec 2008 10:50:04 +0000 (10:50 +0000)]
And as always I forgot to svn add the new file...
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3455
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 3 Dec 2008 10:49:34 +0000 (10:49 +0000)]
Add preliminary version of lock-less tree based lookup (see below)
Enable SHA256 digests by default, and put it in the objhead. This
increases the size of the objhead by 32 bytes, but may drop
a bit again later, when other now unnecessary fields go away.
Test SHA256 for correct operation on startup.
About the "critbit" lookup:
To enable this, use "-hcritbit" argument.
"Crit Bit" trees, are also known under various other names, the original
version of the idea is probably the PATRICIA tree.
The basic concept is a tree structure which has nodes only where necessary
to tell the indices apart.
Our version of it, has some additional bells and whistles.
First lookups do not require any locks until we reach the objhead
we were looking for, or until we need to insert one which wasn't
there.
Second, the branch nodes are part of the objhead, as all but the
very first will need one, this saves malloc operations big time.
Now the down-sides:
There are still missing bits, amongst these the "cooling off" list,
for objheads that have been dereferenced, but where the branch-node
is not. Currently we just leak that memory.
There is a race relating to node deref and unlocked lookup that is
not closed, weird things may happen until I fix it.
I'd be interested to hear how long it survives before it croaks,
but apart from that, would not advocate that you use it, until
I fix those remaining issues.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3454
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 3 Dec 2008 10:39:15 +0000 (10:39 +0000)]
Wrap some long lines
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3453
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 2 Dec 2008 20:48:11 +0000 (20:48 +0000)]
Fix an embarrasing bug in my Flexlinting of this code yesterday, and
add a couple of test-vectors to avoid it happening again.
And now for the funny and educational story:
In july of 1994, I added the "libmd" to FreeBSD, containing the
MD2, MD4 and MD5 functions from RFC 1319, RFC 1186 and RFC1321.
I meticulously replicated the test-vectors from the RFCs, so that
"make test" would validate the result.
Duing the intermediate 14 years, various slight shifts and adjustments
to things like the make(1) programs defaults, the shared library
resolution algorithm and other totally unrelated things, meant that
"make test" now tests the installed version of the library, rather
than the version you just built with "make all".
Needless to say, when I tested my patch yesterday, I didn't install
the built version, wanting first to hear what Colin Percival, FreeBSD
Security Wiz, generally swell fella and the guy who wrote this
SHA256 implementation, thought of these "stylistic" patches.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3452
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 1 Dec 2008 22:17:37 +0000 (22:17 +0000)]
Fix build on !FreeBSD systems.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3451
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 1 Dec 2008 21:46:20 +0000 (21:46 +0000)]
Various minor cleanups while we wait...
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3450
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 1 Dec 2008 21:34:53 +0000 (21:34 +0000)]
Shut FlexeLint up about SHA256 implementation.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3449
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 1 Dec 2008 20:24:46 +0000 (20:24 +0000)]
We cannot gain a reference to an object unless it has an objhead,
assert that we have one.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3448
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 1 Dec 2008 14:13:49 +0000 (14:13 +0000)]
Supress stats in the curses mode until we have see a non-zero value.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3447
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Nov 2008 16:10:19 +0000 (16:10 +0000)]
Always release WRW, also on error.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3446
d4fa192b -c00b-0410-8231-
f00ffab90ce4