]>
err.no Git - varnish/log
phk [Mon, 1 Oct 2007 07:21:26 +0000 (07:21 +0000)]
We always want to go through vcl_fetch(), even on error 503
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2070
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 21:27:16 +0000 (21:27 +0000)]
Add VCL action "esi" and a vrt file to contain it.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2069
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 21:11:21 +0000 (21:11 +0000)]
Make the number of restarts a parameter.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2068
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 20:57:30 +0000 (20:57 +0000)]
Add the first stab at a "restart" mechanism.
The intent is to be able to do things like:
backend b1 {
set backend.host = "fs.freebsd.dk";
set backend.port = "82";
}
backend b2 {
set backend.host = "fs.freebsd.dk";
set backend.port = "81";
}
backend b3 {
set backend.host = "fs.freebsd.dk";
set backend.port = "80";
}
sub vcl_recv {
remove req.http.cookie;
if (req.restarts == 0) {
set req.backend = b1;
} else if (req.restarts == 1) {
set req.backend = b2;
} else {
set req.backend = b3;
}
}
sub vcl_fetch {
if (obj.status != 200) {
restart;
}
}
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2067
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 20:38:15 +0000 (20:38 +0000)]
Add req.restarts variable.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2066
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 20:36:16 +0000 (20:36 +0000)]
Add "restart" action for most VCL methods.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2065
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 20:19:50 +0000 (20:19 +0000)]
Evict backend-health code which had strayed fra from it's proper place.
cache_fetch.c now reports the response code or a indicative negative
status for failed requests to the backend code.
Any timeouts, keepalives or other overhead processing of health codes
should happen in a thread in the backend handling.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2064
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 20:16:28 +0000 (20:16 +0000)]
More caching of HTTP status
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2063
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 20:08:26 +0000 (20:08 +0000)]
Cache the numeric status code.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2062
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 19:54:28 +0000 (19:54 +0000)]
Significantly reduce level of paranoia.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2061
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 19:54:06 +0000 (19:54 +0000)]
We may not have a worker thread here, we could be called from the
acceptor code on a timeout.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2060
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 19:44:06 +0000 (19:44 +0000)]
Remove unused #includes
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2059
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 19:42:16 +0000 (19:42 +0000)]
nitpicking
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2058
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 30 Sep 2007 19:42:08 +0000 (19:42 +0000)]
Set the poll'ed fd to -1 when we halfclose the fd to avoid
an infinite loop on certain OS's.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2057
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 29 Sep 2007 20:53:53 +0000 (20:53 +0000)]
Another cleanup commit:
Get rid of the httptag enum, we can use the HTTP_T values instead.
Introduce WSP macro to wrap log entries which has a session.
Add our own vctyp() character classifier to simplify HTTP protocol
message parsing.
Unify http_DissectRequest() and http_DissectResponse() processing.
Unify writing of the 5 byte SHMLOG header and other minor cleanups
to shmlog code.
Silence some signed/unsigned/int width warnings in FlexeLint
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2056
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 28 Sep 2007 20:13:48 +0000 (20:13 +0000)]
Complete the split of HTTP-editing and HTTP-transmission functions.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2055
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 28 Sep 2007 13:13:11 +0000 (13:13 +0000)]
Initial split of code which transfer HTTP protocol messages
over sockets and things which manipulate them in memory.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2054
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 28 Sep 2007 13:04:53 +0000 (13:04 +0000)]
Move the WS_ prototypes down where they belong.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2053
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 28 Sep 2007 11:07:14 +0000 (11:07 +0000)]
Push the http structure out of the early bits of the reception code.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2052
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 28 Sep 2007 10:29:12 +0000 (10:29 +0000)]
Preparation for implementation of restarts: Move the ws from http to
the containing object (session or obj).
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2051
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Thu, 27 Sep 2007 10:08:30 +0000 (10:08 +0000)]
Use CHECK_OBJ_ORNULL().
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2050
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Sep 2007 19:43:56 +0000 (19:43 +0000)]
don't make acl's const, they are not.
Reported by: Martin Aspeli <optilude@gmx.net>
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2049
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Sep 2007 19:38:04 +0000 (19:38 +0000)]
More txt'ing
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2048
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Sep 2007 19:20:17 +0000 (19:20 +0000)]
another place we can use Tlen
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2047
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Sep 2007 19:15:25 +0000 (19:15 +0000)]
Use the new txt type more extensively, it does improve readability a bit.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2046
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Sep 2007 18:59:28 +0000 (18:59 +0000)]
Convert the received request and pipelined bytes into txt's.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2045
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 26 Sep 2007 18:56:18 +0000 (18:56 +0000)]
struct http_hdr is more than that, it is a general text handle, so
typedef it as "txt" instead.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2044
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 13:19:07 +0000 (13:19 +0000)]
More flexelint nit-picking of various sorts
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2043
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 11:51:49 +0000 (11:51 +0000)]
Constify a lot of the VRT API
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2042
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 11:11:15 +0000 (11:11 +0000)]
Mega-Const'ification
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2041
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 11:05:25 +0000 (11:05 +0000)]
If the C-compiler fails, we don't know if it created the output file or not.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2040
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 10:36:59 +0000 (10:36 +0000)]
Constification
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2039
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 10:35:44 +0000 (10:35 +0000)]
Constification of certain storage functions
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2038
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 10:32:24 +0000 (10:32 +0000)]
Make Tim_format() take a double time argument
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2037
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 10:25:51 +0000 (10:25 +0000)]
Make the arguments to CLI functions const-const.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2036
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 10:24:34 +0000 (10:24 +0000)]
Catch up with sys/queue.h changes
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2035
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 25 Sep 2007 08:48:14 +0000 (08:48 +0000)]
The previous commit made things worse rather than better, as some systems
have a <sys/queue.h> that differs in small but important details from what
we expect. Replace our "queue.h" (which was taken from NetBSD) with a new
"vqueue.h" which is based on FreeBSD's <sys/queue.h> with the debugging
taken out and a "V" prefix added to everything.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2033
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 25 Sep 2007 08:21:28 +0000 (08:21 +0000)]
Portability: use -lsocket / -lns on systems that need it (read Solaris),
use <sys/queue.h> instead of our own if present.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2032
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 25 Sep 2007 08:19:50 +0000 (08:19 +0000)]
Use a config cache.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2031
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:57:21 +0000 (07:57 +0000)]
New more paranoid settings for FlexeLint
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2030
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:57:06 +0000 (07:57 +0000)]
Make the logic visible for FlexeLint
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2029
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:40:01 +0000 (07:40 +0000)]
Misc changes:
A couple of XXX comments
Some returnvalue asserts
Some pdiff() uses
Change WRK_Flush() to return unsigned
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2028
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:33:07 +0000 (07:33 +0000)]
Unnecessary check
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2027
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:32:15 +0000 (07:32 +0000)]
Bail if we get unknown address families
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2026
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:30:38 +0000 (07:30 +0000)]
Assert return values of system{calls,functions}
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2025
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:22:58 +0000 (07:22 +0000)]
typo
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2024
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:21:40 +0000 (07:21 +0000)]
Polish
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2023
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:19:54 +0000 (07:19 +0000)]
Use pdiff() to guard against negative point differences
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2022
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:12:18 +0000 (07:12 +0000)]
Two consts is one const too many.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2021
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:11:33 +0000 (07:11 +0000)]
More const polishing
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2020
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:08:07 +0000 (07:08 +0000)]
Make id type "int"
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2019
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 07:06:18 +0000 (07:06 +0000)]
Const'ifcation
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2018
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 06:56:23 +0000 (06:56 +0000)]
Polish shmlog:
The id argument is a file descriptor, so it should be typed "int".
We must have a fmt argument.
Use pdiff.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2017
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 06:51:04 +0000 (06:51 +0000)]
When we take the difference between two pointers, the result is technically
signed. pdiff() makes sure we never get a negative value.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2016
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 06:46:57 +0000 (06:46 +0000)]
Use the correct shmlog function.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2015
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 25 Sep 2007 06:44:27 +0000 (06:44 +0000)]
The first of a long sequence of committs, inspired by cranking up FlexeLints
nitpicking to new heights:
Make sure VRT_int_string() has enough room and assert that this was the case.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2014
d4fa192b -c00b-0410-8231-
f00ffab90ce4
cecilihf [Mon, 24 Sep 2007 13:21:27 +0000 (13:21 +0000)]
Re-enable the code causing bug #161 (which is now fixed)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2013
d4fa192b -c00b-0410-8231-
f00ffab90ce4
cecilihf [Mon, 24 Sep 2007 13:18:04 +0000 (13:18 +0000)]
Fixes bug #161.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2012
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 13:00:33 +0000 (13:00 +0000)]
Actually, we cannot touch objects on deathrow, so just ignore
any object with heap_idx == 0.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2011
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 12:58:14 +0000 (12:58 +0000)]
Remove an assert which isn't valid: we could try to LRU_Touch an
object on deathrow.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2010
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 12:27:54 +0000 (12:27 +0000)]
Make the cli_timeout a parameter. The master will wait this long
for the client to reply on the internal CLI pipe.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2009
d4fa192b -c00b-0410-8231-
f00ffab90ce4
cecilihf [Mon, 24 Sep 2007 12:06:20 +0000 (12:06 +0000)]
Update random and round-robin backends to use the new convenience functions.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2008
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 11:25:15 +0000 (11:25 +0000)]
Add code to VCC to output an identifier for each simple backend which
varnishd can use to decide if a backend state can be shared between
multiple VCL programs.
Originally the idea was to calculate a strong hash over the tokens
which define the backend.
Considering the relatively short lengths of backend declarations
and the infrequency of comparisons, we have opted for an extremely
weak hash instead: We simply output the space separted tokens as
a string.
The net change in code for simple backends is marginal, but for
complex backends this will be a lot simpler to implement.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2007
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 08:23:34 +0000 (08:23 +0000)]
Our first cut at a LRU processing contained a three way race and can
cause Really Weird Problems if you really provoke it.
+++ Redo from start +++
LRU processing is only relevant for objects which are in the cache and
on the EXP binary heap so we merge the LRU functionality with the EXP
code in order to share locks and object reference counts.
Another thing we overlooked in the first implementation is that the VCL
callout for LRU should be able to examine the client information for
the session which tries to push stuff out, so that QoS/DoS issues can be
considered:
sub vcl_dicard {
if (client.bandwidth > 10 mb/s) {
keep;
}
}
(which sort of indicates that "error" should be a legal action as well)
To enable this, pass the session into the stevedore when we try to
allocate space and temporarily substitute the target object for its
own object while we call vcl_discard().
The outcome of an attempt to make space can take three values, did,
didn't and couldn't. In the latter case there is no point in trying
again and again, in particular if the cause is incurable, such as
the requested size being larger than the storage. We still need to
handle failure to allocate storage for that case rather than core dump.
When looking for targets to nuke, we only consider objects on the
binheap which has reference count of 1, objects with higher reference
counts would not free space.
We take prospective targets off the binheap, but retain their
refcount, and tag them with a magic marker while we ponder their
destiny.
It is quite possible that another session could pick the object up
via the cache while we do so, and therefore attempts to update the
ttl or shift them in the lru chain must ignore objects which has
the magic marker. If the object is kept, the updated ttl will
automatically take effect when we reinsert it in the binheap.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2006
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 08:01:07 +0000 (08:01 +0000)]
Add a couple of statistics counters for LRU
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2005
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Sep 2007 07:37:40 +0000 (07:37 +0000)]
Fix a NULL pointer dereference which cannot currently happen.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2004
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sun, 23 Sep 2007 14:19:42 +0000 (14:19 +0000)]
Reverse the logic in r1997 from !is_get to is_head.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1998
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 13:46:43 +0000 (13:46 +0000)]
Fix another cornercase that fell out as part of the pass->fetch rewrite:
If we pass a HEAD request, we should not rewrite it to GET and not expect
a body either.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1997
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sun, 23 Sep 2007 13:18:50 +0000 (13:18 +0000)]
Unbreak header ordering.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1994
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 13:11:51 +0000 (13:11 +0000)]
When a workerthread dies of old age, make sure to nuke the mutex it may
have in its cached nobjhead.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1991
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 13:09:56 +0000 (13:09 +0000)]
Part of this commit sneaked into the previous #1985:
Close a supposedly rare memory leak: when we loose the race to create
an objhead, we need to free the hash-string we created before our
second attempt.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1990
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 13:04:20 +0000 (13:04 +0000)]
Partially revert previous optimization: it wasn't.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1985
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 12:46:52 +0000 (12:46 +0000)]
Polish, including use of CHECK_OBJ_ORNULL()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1983
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 12:46:19 +0000 (12:46 +0000)]
Use CHECK_OBJ_ORNULL() macro
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1982
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 12:44:12 +0000 (12:44 +0000)]
Add CHECK_OBJ_ORNULL() macro
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1981
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sun, 23 Sep 2007 12:39:27 +0000 (12:39 +0000)]
Polish while reading review.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1980
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 21 Sep 2007 13:18:10 +0000 (13:18 +0000)]
Add an experimental runtime parameter for the lru_timeout.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1979
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 21 Sep 2007 10:38:01 +0000 (10:38 +0000)]
A temporary work-around for #161
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1978
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 21 Sep 2007 09:49:44 +0000 (09:49 +0000)]
Don't leak 50 bytes when creating the new Date: header.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1977
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 21 Sep 2007 09:49:05 +0000 (09:49 +0000)]
Don't copy the Date: header from the object to the reply
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1976
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 21 Sep 2007 08:16:02 +0000 (08:16 +0000)]
Move implicit reference to first backend to the xref code.
Don't panic if no backend.port is specified.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1975
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 22:27:25 +0000 (22:27 +0000)]
Fix an extremely fine C-standard point and remove the vcc_FreeToken()
prototype
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1974
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 22:26:53 +0000 (22:26 +0000)]
vcc_FreeToken() is no longer necessary
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1973
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 22:26:31 +0000 (22:26 +0000)]
Avoid a double free when we encounter a 'include' directive.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1972
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 22:25:27 +0000 (22:25 +0000)]
Don't core dump if VCL tries to compare NULL pointers, just let the
comparison fail. This typically happens if a paticular header is
not present.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1971
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 10:44:18 +0000 (10:44 +0000)]
Fix a brain-o in my last commit. "cls" is a flag for closing the fd,
not for generating Content-Length: header.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1970
d4fa192b -c00b-0410-8231-
f00ffab90ce4
cecilihf [Thu, 20 Sep 2007 08:58:54 +0000 (08:58 +0000)]
Added some checks for NULL-pointers.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1969
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 08:46:25 +0000 (08:46 +0000)]
After we moved pass to use the same code as fetch, we have run into
a unnecessary connection timeout wait when the returned object does
not have a body.
Rework the "does this response have a body" logic to be more in line
with the RFC.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1968
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 08:44:59 +0000 (08:44 +0000)]
Add a http_GetProto() function
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1967
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 08:23:21 +0000 (08:23 +0000)]
Use VBE_CheckFd() convenience function
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1966
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 08:22:59 +0000 (08:22 +0000)]
Add a convenience function more for backend methods:
VBE_CheckFd(): Check that a filedescriptor is reusable.
Right now we simply poll it with a zero timeout, and if there are
any events, we can't reuse it.
This check may need refinement down the road.
One option would be to attempt to write a CRNL onto the fd and see
that it works.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1965
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 08:16:01 +0000 (08:16 +0000)]
Go over the simple backend and make it more readable.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1964
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 08:14:40 +0000 (08:14 +0000)]
Add a VBE_TryConnect() which tries to connected to a given backend+addrinfo
combination. This will be necessary in most if not all backend methods,
so it should be generic.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1963
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 07:22:56 +0000 (07:22 +0000)]
Make init an optional method for backends
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1962
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 07:19:34 +0000 (07:19 +0000)]
Make updatehealth an optional method for backends
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1961
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 07:14:40 +0000 (07:14 +0000)]
Call the init methods of all backend styles.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1960
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 07:09:53 +0000 (07:09 +0000)]
Use FREE_OBJ() and REPLACE() macros
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1959
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 07:03:09 +0000 (07:03 +0000)]
Use REPLACE macro to manipulate malloc'ed string variables.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1958
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 07:02:35 +0000 (07:02 +0000)]
Add a REPLACE() macro, for manipulating malloced string variables.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1957
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 20 Sep 2007 06:26:17 +0000 (06:26 +0000)]
Make regular expressions case insensitive.
This is not optimal, but a better compromise than the alternative.
DNS names are case insensitive, but URLs are not.
However, URLs are very often filenames and having files which differ
only in case is already asking for trouble.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1956
d4fa192b -c00b-0410-8231-
f00ffab90ce4