#1 Remove unused patches.
Merged 6 years ago by ingvar. Opened 6 years ago by jorton.
rpms/ jorton/varnish jorton/master  into  master

@@ -1,112 +0,0 @@ 

- diff -Naur ../varnish-3.0.4.orig/bin/varnishd/cache_center.c ./bin/varnishd/cache_center.c

- --- ../varnish-3.0.4.orig/bin/varnishd/cache_center.c	2013-06-14 10:39:31.000000000 +0200

- +++ ./bin/varnishd/cache_center.c	2013-11-21 00:48:00.486460486 +0100

- @@ -1471,9 +1471,12 @@

-  static int

-  cnt_start(struct sess *sp)

-  {

- -	uint16_t done;

- +	uint16_t err_code;

-  	char *p;

- -	const char *r = "HTTP/1.1 100 Continue\r\n\r\n";

- +	const char *r_100 = "HTTP/1.1 100 Continue\r\n\r\n";

- +	const char *r_400 = "HTTP/1.1 400 Bad Request\r\n\r\n";

- +	const char *r_413 = "HTTP/1.1 413 Request Entity Too Large\r\n\r\n";

- +	const char *r_417 = "HTTP/1.1 417 Expectation Failed\r\n\r\n";

-  

-  	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

-  	AZ(sp->restarts);

- @@ -1496,10 +1499,14 @@

-  	sp->wrk->vcl = NULL;

-  

-  	http_Setup(sp->http, sp->ws);

- -	done = http_DissectRequest(sp);

- +	err_code = http_DissectRequest(sp);

-  

-  	/* If we could not even parse the request, just close */

- -	if (done == 400) {

- +	if (err_code == 400)

- +		(void)write(sp->fd, r_400, strlen(r_400));

- +	else if (err_code == 413)

- +		(void)write(sp->fd, r_413, strlen(r_413));

- +	if (err_code != 0) {

-  		sp->step = STP_DONE;

-  		vca_close_session(sp, "junk");

-  		return (0);

- @@ -1511,12 +1518,6 @@

-  	/* Catch original request, before modification */

-  	HTTP_Copy(sp->http0, sp->http);

-  

- -	if (done != 0) {

- -		sp->err_code = done;

- -		sp->step = STP_ERROR;

- -		return (0);

- -	}

- -

-  	sp->doclose = http_DoConnection(sp->http);

-  

-  	/* XXX: Handle TRACE & OPTIONS of Max-Forwards = 0 */

- @@ -1526,13 +1527,14 @@

-  	 */

-  	if (http_GetHdr(sp->http, H_Expect, &p)) {

-  		if (strcasecmp(p, "100-continue")) {

- -			sp->err_code = 417;

- -			sp->step = STP_ERROR;

- +			(void)write(sp->fd, r_417, strlen(r_417));

- +			sp->step = STP_DONE;

- +			vca_close_session(sp, "junk");

-  			return (0);

-  		}

-  

-  		/* XXX: Don't bother with write failures for now */

- -		(void)write(sp->fd, r, strlen(r));

- +		(void)write(sp->fd, r_100, strlen(r_100));

-  		/* XXX: When we do ESI includes, this is not removed

-  		 * XXX: because we use http0 as our basis.  Believed

-  		 * XXX: safe, but potentially confusing.

- diff -Naur ../varnish-3.0.4.orig/bin/varnishd/cache_http.c ./bin/varnishd/cache_http.c

- --- ../varnish-3.0.4.orig/bin/varnishd/cache_http.c	2013-06-14 10:39:31.000000000 +0200

- +++ ./bin/varnishd/cache_http.c	2013-11-21 00:48:00.486460486 +0100

- @@ -601,7 +601,7 @@

-  	hp->hd[h2].e = p;

-  

-  	if (!Tlen(hp->hd[h2]))

- -		return (413);

- +		return (400);

-  

-  	/* Skip SP */

-  	for (; vct_issp(*p); p++) {

- diff -Naur ../varnish-3.0.4.orig/bin/varnishtest/tests/r01367.vtc ./bin/varnishtest/tests/r01367.vtc

- --- ../varnish-3.0.4.orig/bin/varnishtest/tests/r01367.vtc	1970-01-01 01:00:00.000000000 +0100

- +++ ./bin/varnishtest/tests/r01367.vtc	2013-11-21 00:48:00.486460486 +0100

- @@ -0,0 +1,30 @@

- +varnishtest "blank GET"

- +

- +server s1 {

- +	rxreq

- +	txresp

- +} -start

- +

- +varnish v1 -vcl+backend { 

- +	sub vcl_error {

- +		return (restart);

- +	}

- +} -start

- +

- +client c1 {

- +	send "GET    \nHost: example.com\n\n"

- +	rxresp

- +	expect resp.status == 400

- +} -run

- +

- +client c1 {

- +	txreq -hdr "Expect: Santa-Claus"

- +	rxresp

- +	expect resp.status == 417

- +} -run

- +

- +client c1 {

- +	txreq

- +	rxresp

- +	expect resp.status == 200

- +} -run

@@ -1,13 +0,0 @@ 

- --- redhat/find-provides.orig	2014-04-10 11:19:18.000000000 +0200

- +++ redhat/find-provides	2014-04-22 23:59:34.070312036 +0200

- @@ -4,8 +4,8 @@

-  

-  set -x

-  

- -if [ -x /usr/lib/rpm/find-requires ]; then

- -    /usr/lib/rpm/find-requires "$@"

- +if [ -x /usr/lib/rpm/redhat/find-provides ]; then

- +    /usr/lib/rpm/redhat/find-provides "$@"

-  fi

-  

-  cd $(dirname $0)/..

@@ -1,10 +0,0 @@ 

- --- doc/sphinx/Makefile.in.orig	2014-04-22 11:12:19.029824740 +0200

- +++ doc/sphinx/Makefile.in	2014-04-22 11:14:09.493153140 +0200

- @@ -553,6 +553,7 @@

-  	rm -rf $(BUILDDIR)

-  

-  include/params.rst: $(top_builddir)/bin/varnishd/varnishd

- +	LD_LIBRARY_PATH=$(top_builddir)/lib/libvarnish/.libs:$(top_builddir)/lib/libvarnishcompat/.libs:$(top_builddir)/lib/libvcc/.libs:$(top_builddir)/lib/libvgz/.libs \

-  	$(top_builddir)/bin/varnishd/varnishd -x dumprstparam > include/params.rst

-  

-  # XXX add varnishstat here when it's been _opt2rst'ed

@@ -1,11 +0,0 @@ 

- --- configure.orig	2014-03-11 23:25:41.618988565 +0100

- +++ configure	2014-03-11 23:26:03.480225451 +0100

- @@ -16746,7 +16746,7 @@

-  # The reason for -Wno-error=unused-result is a glibc/gcc interaction

-  # idiocy where write is marked as warn_unused_result, causing build

-  # failures.

- -CFLAGS="${CFLAGS} -Wall -Werror"

- +#CFLAGS="${CFLAGS} -Wall -Werror"

-  OCFLAGS="${OCFLAGS} -Wall -Werror"

-  as_CACHEVAR=`$as_echo "ax_cv_check_cflags__-Werror=unused-result" | $as_tr_sh`

-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unused-result" >&5

@@ -1,11 +0,0 @@ 

- --- configure.orig	2014-07-30 14:35:18.781987406 +0200

- +++ configure	2014-07-30 14:36:12.686122224 +0200

- @@ -16978,7 +16978,7 @@

-  # The reason for -Wno-error=unused-result is a glibc/gcc interaction

-  # idiocy where write is marked as warn_unused_result, causing build

-  # failures.

- -CFLAGS="${CFLAGS} -Wall -Werror"

- +#CFLAGS="${CFLAGS} -Wall -Werror"

-  OCFLAGS="${OCFLAGS} -Wall -Werror"

-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unused-result" >&5

-  $as_echo_n "checking whether C compiler accepts -Werror=unused-result... " >&6; }

@@ -1,37 +0,0 @@ 

- diff --git a/redhat/varnish.service b/redhat/varnish.service

- index 659dba2..a4f3355 100644

- --- a/redhat/varnish.service

- +++ b/redhat/varnish.service

- @@ -27,6 +27,7 @@ EnvironmentFile=/etc/varnish/varnish.params

-  Type=forking

-  PIDFile=/var/run/varnish.pid

-  PrivateTmp=true

- +ExecStartPre=/usr/sbin/varnishd -C -f $VARNISH_VCL_CONF

-  ExecStart=/usr/sbin/varnishd \

-  	-P /var/run/varnish.pid \

-  	-f $VARNISH_VCL_CONF \

- diff --git a/redhat/varnishlog.service b/redhat/varnishlog.service

- index 1e3e274..c7a0193 100644

- --- a/redhat/varnishlog.service

- +++ b/redhat/varnishlog.service

- @@ -1,6 +1,6 @@

-  [Unit]

-  Description=Varnish HTTP accelerator logging daemon

- -After=network.target

- +After=varnish.service

-  

-  [Service]

-  Type=forking

- diff --git a/redhat/varnishncsa.service b/redhat/varnishncsa.service

- index df5f19f..e2ebdcd 100644

- --- a/redhat/varnishncsa.service

- +++ b/redhat/varnishncsa.service

- @@ -1,6 +1,6 @@

-  [Unit]

- -Description=Varnish NCSA logging

- -After=network.target

- +Description=Varnish HTTP accelerator NCSA daemon

- +After=varnish.service

-  

-  [Service]

-  Type=forking

@@ -1,10 +0,0 @@ 

- --- doc/sphinx/Makefile.in.orig	2014-10-08 09:48:47.000000000 +0200

- +++ doc/sphinx/Makefile.in	2014-11-25 22:49:55.137641462 +0100

- @@ -517,6 +517,7 @@

-  	rm -rf $(BUILDDIR)

-  

-  include/params.rst: $(top_builddir)/bin/varnishd/varnishd

- +	LD_LIBRARY_PATH=$(top_builddir)/lib/libvarnish/.libs:$(top_builddir)/lib/libvarnishcompat/.libs:$(top_builddir)/lib/libvcc/.libs:$(top_builddir)/lib/libvgz/.libs \

-  	$(top_builddir)/bin/varnishd/varnishd -x dumprstparam > include/params.rst

-  

-  # XXX add varnishstat here when it's been _opt2rst'ed

@@ -1,11 +0,0 @@ 

- --- configure.old	2015-03-05 13:20:10.546649666 +0100

- +++ configure	2015-03-05 13:20:14.099663485 +0100

- @@ -16794,7 +16794,7 @@

-  # The reason for -Wno-error=unused-result is a glibc/gcc interaction

-  # idiocy where write is marked as warn_unused_result, causing build

-  # failures.

- -CFLAGS="${CFLAGS} -Wall -Werror"

- +#CFLAGS="${CFLAGS} -Wall -Werror"

-  OCFLAGS="${OCFLAGS} -Wall -Werror"

-  as_CACHEVAR=`$as_echo "ax_cv_check_cflags__-Werror=unused-result" | $as_tr_sh`

-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unused-result" >&5

@@ -1,274 +0,0 @@ 

- This patch is a rebase of commit 9d61ea4d722549a984d912603902fccfac473824

- Author: Martin Blix Grydeland <martin@varnish-software.com>

- Date:   Fri Mar 13 15:23:15 2015 +0100

- 

-     Fail fetch on malformed Content-Length header

-     

-     Add a common content length parser that is being used by both client

-     and backend side.

-     

-     Original patch by: fgs

-     

-     Fixes: #1691

- 

- diff -Nur varnish-4.0.3.nofix/bin/varnishd/cache/cache.h varnish-4.0.3/bin/varnishd/cache/cache.h

- --- varnish-4.0.3.nofix/bin/varnishd/cache/cache.h	2015-02-18 15:14:11.000000000 +0100

- +++ varnish-4.0.3/bin/varnishd/cache/cache.h	2015-03-13 16:22:42.943549723 +0100

- @@ -208,7 +208,7 @@

-   *

-   */

-  

- -typedef ssize_t htc_read(struct http_conn *, void *, size_t);

- +typedef ssize_t htc_read(struct http_conn *, void *, ssize_t);

-  

-  struct http_conn {

-  	unsigned		magic;

- @@ -560,7 +560,7 @@

-  

-  	struct pool_task	fetch_task;

-  

- -	char			*h_content_length;

- +	ssize_t			content_length;

-  

-  #define BO_FLAG(l, r, w, d) unsigned	l:1;

-  #include "tbl/bo_flags.h"

- @@ -1014,6 +1014,7 @@

-  int http_GetHdrField(const struct http *hp, const char *hdr,

-      const char *field, char **ptr);

-  double http_GetHdrQ(const struct http *hp, const char *hdr, const char *field);

- +ssize_t http_GetContentLength(const struct http *hp);

-  uint16_t http_GetStatus(const struct http *hp);

-  void http_SetStatus(struct http *to, uint16_t status);

-  const char *http_GetReq(const struct http *hp);

- @@ -1040,7 +1041,7 @@

-      unsigned maxbytes, unsigned maxhdr);

-  enum htc_status_e HTTP1_Reinit(struct http_conn *htc);

-  enum htc_status_e HTTP1_Rx(struct http_conn *htc);

- -ssize_t HTTP1_Read(struct http_conn *htc, void *d, size_t len);

- +ssize_t HTTP1_Read(struct http_conn *htc, void *d, ssize_t len);

-  enum htc_status_e HTTP1_Complete(struct http_conn *htc);

-  uint16_t HTTP1_DissectRequest(struct req *);

-  uint16_t HTTP1_DissectResponse(struct http *sp, const struct http_conn *htc);

- diff -Nur varnish-4.0.3.nofix/bin/varnishd/cache/cache_http1_fetch.c varnish-4.0.3/bin/varnishd/cache/cache_http1_fetch.c

- --- varnish-4.0.3.nofix/bin/varnishd/cache/cache_http1_fetch.c	2015-02-18 15:14:11.000000000 +0100

- +++ varnish-4.0.3/bin/varnishd/cache/cache_http1_fetch.c	2015-03-13 16:22:42.944549727 +0100

- @@ -43,29 +43,6 @@

-  #include "vtcp.h"

-  #include "vtim.h"

-  

- -/*--------------------------------------------------------------------

- - * Convert a string to a size_t safely

- - */

- -

- -static ssize_t

- -vbf_fetch_number(const char *nbr, int radix)

- -{

- -	uintmax_t cll;

- -	ssize_t cl;

- -	char *q;

- -

- -	if (*nbr == '\0')

- -		return (-1);

- -	cll = strtoumax(nbr, &q, radix);

- -	if (q == NULL || *q != '\0')

- -		return (-1);

- -

- -	cl = (ssize_t)cll;

- -	if((uintmax_t)cl != cll) /* Protect against bogusly large values */

- -		return (-1);

- -	return (cl);

- -}

- -

-  /*--------------------------------------------------------------------*/

-  

-  static enum vfp_status __match_proto__(vfp_pull_f)

- @@ -167,7 +144,6 @@

-  V1F_Setup_Fetch(struct busyobj *bo)

-  {

-  	struct http_conn *htc;

- -	ssize_t cl;

-  

-  	CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);

-  	htc = &bo->htc;

- @@ -176,13 +152,15 @@

-  

-  	switch(htc->body_status) {

-  	case BS_EOF:

- +		assert(bo->content_length == -1);

-  		VFP_Push(bo, v1f_pull_eof, 0);

-  		return(-1);

-  	case BS_LENGTH:

- -		cl = vbf_fetch_number(bo->h_content_length, 10);

- -		VFP_Push(bo, v1f_pull_straight, cl);

- -		return (cl);

- +		assert(bo->content_length > 0);

- +		VFP_Push(bo, v1f_pull_straight, bo->content_length);

- +		return (bo->content_length);

-  	case BS_CHUNKED:

- +		assert(bo->content_length == -1);

-  		VFP_Push(bo, v1f_pull_chunked, -1);

-  		return (-1);

-  	default:

- diff -Nur varnish-4.0.3.nofix/bin/varnishd/cache/cache_http1_fsm.c varnish-4.0.3/bin/varnishd/cache/cache_http1_fsm.c

- --- varnish-4.0.3.nofix/bin/varnishd/cache/cache_http1_fsm.c	2015-02-18 15:14:11.000000000 +0100

- +++ varnish-4.0.3/bin/varnishd/cache/cache_http1_fsm.c	2015-03-13 16:22:42.944549727 +0100

- @@ -262,22 +262,22 @@

-  static enum req_body_state_e

-  http1_req_body_status(struct req *req)

-  {

- -	char *ptr, *endp;

- +	ssize_t cl;

-  

-  	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);

-  

- -	if (http_GetHdr(req->http, H_Content_Length, &ptr)) {

- -		AN(ptr);

- -		if (*ptr == '\0')

- -			return (REQ_BODY_FAIL);

- -		req->req_bodybytes = strtoul(ptr, &endp, 10);

- -		if (*endp != '\0' && !vct_islws(*endp))

- -			return (REQ_BODY_FAIL);

- -		if (req->req_bodybytes == 0)

- -			return (REQ_BODY_NONE);

- +	req->req_bodybytes = 0;

- +	cl = http_GetContentLength(req->http);

- +	if (cl == -2)

- +		return (REQ_BODY_FAIL);

- +	else if (cl == 0)

- +		return (REQ_BODY_NONE);

- +	else if (cl > 0) {

- +		req->req_bodybytes = cl;

-  		req->h1.bytes_yet = req->req_bodybytes - req->h1.bytes_done;

-  		return (REQ_BODY_PRESENT);

-  	}

- +	assert(cl == -1);	/* No Content-Length header */

-  	if (http_HdrIs(req->http, H_Transfer_Encoding, "chunked")) {

-  		req->chunk_ctr = -1;

-  		return (REQ_BODY_CHUNKED);

- diff -Nur varnish-4.0.3.nofix/bin/varnishd/cache/cache_http1_proto.c varnish-4.0.3/bin/varnishd/cache/cache_http1_proto.c

- --- varnish-4.0.3.nofix/bin/varnishd/cache/cache_http1_proto.c	2015-02-18 15:14:11.000000000 +0100

- +++ varnish-4.0.3/bin/varnishd/cache/cache_http1_proto.c	2015-03-13 16:22:42.944549727 +0100

- @@ -191,14 +191,15 @@

-   * Read up to len bytes, returning pipelined data first.

-   */

-  

- -ssize_t

- -HTTP1_Read(struct http_conn *htc, void *d, size_t len)

- +ssize_t __match_proto__(htc_read)

- +HTTP1_Read(struct http_conn *htc, void *d, ssize_t len)

-  {

-  	size_t l;

-  	unsigned char *p;

-  	ssize_t i = 0;

-  

-  	CHECK_OBJ_NOTNULL(htc, HTTP_CONN_MAGIC);

- +	assert(len > 0);

-  	l = 0;

-  	p = d;

-  	if (htc->pipeline.b) {

- diff -Nur varnish-4.0.3.nofix/bin/varnishd/cache/cache_http.c varnish-4.0.3/bin/varnishd/cache/cache_http.c

- --- varnish-4.0.3.nofix/bin/varnishd/cache/cache_http.c	2015-02-18 15:14:11.000000000 +0100

- +++ varnish-4.0.3/bin/varnishd/cache/cache_http.c	2015-03-13 16:22:42.943549723 +0100

- @@ -488,6 +488,35 @@

-  	return (i);

-  }

-  

- +/*--------------------------------------------------------------------*/

- +

- +ssize_t

- +http_GetContentLength(const struct http *hp)

- +{

- +	ssize_t cl, cll;

- +	char *b;

- +

- +	CHECK_OBJ_NOTNULL(hp, HTTP_MAGIC);

- +

- +	if (!http_GetHdr(hp, H_Content_Length, &b))

- +		return (-1);

- +	cl = 0;

- +	if (!vct_isdigit(*b))

- +		return (-2);

- +	for (;vct_isdigit(*b); b++) {

- +		cll = cl;

- +		cl *= 10;

- +		cl += *b - '0';

- +		if (cll != cl / 10)

- +			return (-2);

- +	}

- +	while (vct_islws(*b))

- +		b++;

- +	if (*b != '\0')

- +		return (-2);

- +	return (cl);

- +}

- +

-  /*--------------------------------------------------------------------

-   * XXX: redo with http_GetHdrField() ?

-   */

- diff -Nur varnish-4.0.3.nofix/bin/varnishd/cache/cache_rfc2616.c varnish-4.0.3/bin/varnishd/cache/cache_rfc2616.c

- --- varnish-4.0.3.nofix/bin/varnishd/cache/cache_rfc2616.c	2015-02-18 15:14:11.000000000 +0100

- +++ varnish-4.0.3/bin/varnishd/cache/cache_rfc2616.c	2015-03-13 16:22:42.944549727 +0100

- @@ -188,6 +188,7 @@

-  RFC2616_Body(struct busyobj *bo, struct dstat *stats)

-  {

-  	struct http *hp;

- +	ssize_t cl;

-  	char *b;

-  

-  	hp = bo->beresp;

- @@ -199,6 +200,8 @@

-  	else

-  		bo->should_close = 0;

-  

- +	bo->content_length = -1;

- +

-  	if (!strcasecmp(http_GetReq(bo->bereq), "head")) {

-  		/*

-  		 * A HEAD request can never have a body in the reply,

- @@ -246,9 +249,18 @@

-  		return (BS_ERROR);

-  	}

-  

- -	if (http_GetHdr(hp, H_Content_Length, &bo->h_content_length)) {

- -		stats->fetch_length++;

- -		return (BS_LENGTH);

- +	cl = http_GetContentLength(hp);

- +	if (cl == -2)

- +		return (BS_ERROR);

- +	if (cl >= 0) {

- +		bo->content_length = cl;

- +		if (cl == 0) {

- +			stats->fetch_zero++;

- +			return (BS_NONE);

- +		} else {

- +			stats->fetch_length++;

- +			return (BS_LENGTH);

- +		}

-  	}

-  

-  	if (http_HdrIs(hp, H_Connection, "keep-alive")) {

- diff -Nur varnish-4.0.3.nofix/bin/varnishtest/tests/r01691.vtc varnish-4.0.3/bin/varnishtest/tests/r01691.vtc

- --- varnish-4.0.3.nofix/bin/varnishtest/tests/r01691.vtc	1970-01-01 01:00:00.000000000 +0100

- +++ varnish-4.0.3/bin/varnishtest/tests/r01691.vtc	2015-03-13 16:22:42.945549731 +0100

- @@ -0,0 +1,21 @@

- +varnishtest "Test bogus Content-Length header"

- +

- +server s1 {

- +	rxreq

- +	txresp -nolen -hdr "Content-Length: bogus"

- +} -start

- +

- +varnish v1 -vcl+backend {

- +

- +} -start

- +

- +logexpect l1 -v v1 {

- +	  expect * 1002	VCL_Error "Body cannot be fetched"

- +} -start

- +

- +client c1 {

- +	txreq

- +	rxresp

- +} -run

- +

- +logexpect l1 -wait

@@ -1,77 +0,0 @@ 

- --- lib/libvcc/vmodtool.py.orig	2015-03-05 14:20:35.982791597 +0100

- +++ lib/libvcc/vmodtool.py	2015-03-05 14:34:46.896115280 +0100

- @@ -33,8 +33,8 @@

-  	vmod_${name}.rst -- Extracted documentation

-  """

-  

- -# This script should work with both Python 2 and Python 3.

- -from __future__ import print_function

- +## This script should work with both Python 2 and Python 3.

- +#from __future__ import print_function

-  

-  import sys

-  import re

- @@ -67,6 +67,15 @@

-  

-  #######################################################################

-  

- +# __future__ print_function is not available on python2.4 in rhel5, so

- +# make a local simple variant _print

- +

- +def _print(*objects, **kwargs):

- +  sep = kwargs.get('sep', ' ')

- +  end = kwargs.get('end', '\n')

- +  out = kwargs.get('file', sys.stdout)

- +  out.write(sep.join(objects) + end)

- +

-  def write_file_warning(fo, a, b, c):

-  	fo.write(a + "\n")

-  	fo.write(b + " NB:  This file is machine generated, DO NOT EDIT!\n")

- @@ -741,8 +750,8 @@

-  			if opts.strict:

-  				raise FormatError(m, details)

-  			else:

- -				print("WARNING: %s:" % m, file=sys.stderr)

- -				print(details, file=sys.stderr)

- +				_print("WARNING: %s:" % m, file=sys.stderr)

- +				_print(details, file=sys.stderr)

-  		else:

-  			for ln, i in self.l:

-  				o.doc(i)

- @@ -784,9 +793,12 @@

-  def runmain(inputvcc, outputname="vcc_if"):

-  	# Read the file in

-  	lines = []

- -	with open(inputvcc, "r") as fp:

- +	fp = open(inputvcc, "r")

- +	try:

-  		for i in fp:

-  			lines.append(i.rstrip())

- +	finally:

- +		fp.close

-  	ln = 0

-  

-  	#######################################################################

- @@ -839,11 +851,11 @@

-  		for i in sl:

-  			i.parse(vx)

-  			assert len(i.tl) == 0

- -	except ParseError as e:

- +	except ParseError, e:

-  		print("ERROR: Parse error reading \"%s\":" % inputvcc)

-  		pprint(str(e))

-  		exit(-1)

- -	except FormatError as e:

- +	except FormatError, e:

-  		print("ERROR: Format error reading \"%s\": %s" %

-  		    (inputvcc, pformat(e.msg)))

-  		print(e.details)

- @@ -916,7 +928,7 @@

-  		if not i_vcc:

-  			i_vcc = "vmod.vcc"

-  	else:

- -		print("ERROR: No vmod.vcc file supplied or found.",

- +		_print("ERROR: No vmod.vcc file supplied or found.",

-  		    file=sys.stderr)

-  		oparser.print_help()

-  		exit(-1)

@@ -1,87 +0,0 @@ 

- From 75955e86c37f69a4421a1fa49102790bb25ea7d1 Mon Sep 17 00:00:00 2001

- From: Lasse Karstensen <lkarsten@varnish-software.com>

- Date: Mon, 1 Feb 2016 14:05:47 +0100

- Subject: [PATCH] Revert removal of type=forking.

- 

- In fbc85bb3 the use of type=forking was removed. This made #1794

- reappear, as these tools when not daemonized exists when receiving

- a SIGHUP.

- 

- This is clearly suboptimal for log rotation.

- 

- Roll back this in the packages for now.

- ---

-  debian/varnishlog.service  | 4 +++-

-  debian/varnishncsa.service | 4 +++-

-  redhat/varnishlog.service  | 4 +++-

-  redhat/varnishncsa.service | 4 +++-

-  4 files changed, 12 insertions(+), 4 deletions(-)

- 

- diff --git a/debian/varnishlog.service b/debian/varnishlog.service

- index 7e54a4e..19e60fa 100644

- --- a/debian/varnishlog.service

- +++ b/debian/varnishlog.service

- @@ -3,9 +3,11 @@ Description=Varnish Cache HTTP accelerator logging daemon

-  After=varnish.service

-  

-  [Service]

- +Type=forking

- +PIDFile=/run/varnishlog.pid

-  User=varnishlog

-  Group=varnish

- -ExecStart=/usr/bin/varnishlog -a -w /var/log/varnish/varnish.log

- +ExecStart=/usr/bin/varnishlog -a -w /var/log/varnish/varnish.log -D -P /run/varnishlog.pid

-  ExecReload=/bin/kill -HUP $MAINPID

-  

-  [Install]

- diff --git a/debian/varnishncsa.service b/debian/varnishncsa.service

- index e8e1d28..ba22f0f 100644

- --- a/debian/varnishncsa.service

- +++ b/debian/varnishncsa.service

- @@ -3,9 +3,11 @@ Description=Varnish Cache HTTP accelerator log daemon

-  After=varnish.service

-  

-  [Service]

- +Type=forking

- +PIDFile=/run/varnishncsa.pid

-  User=varnishlog

-  Group=varnish

- -ExecStart=/usr/bin/varnishncsa -a -w /var/log/varnish/varnishncsa.log

- +ExecStart=/usr/bin/varnishncsa -a -w /var/log/varnish/varnishncsa.log -D -P /run/varnishncsa.pid

-  ExecReload=/bin/kill -HUP $MAINPID

-  

-  [Install]

- diff --git a/redhat/varnishlog.service b/redhat/varnishlog.service

- index 7e54a4e..19e60fa 100644

- --- a/redhat/varnishlog.service

- +++ b/redhat/varnishlog.service

- @@ -3,9 +3,11 @@ Description=Varnish Cache HTTP accelerator logging daemon

-  After=varnish.service

-  

-  [Service]

- +Type=forking

- +PIDFile=/run/varnishlog.pid

-  User=varnishlog

-  Group=varnish

- -ExecStart=/usr/bin/varnishlog -a -w /var/log/varnish/varnish.log

- +ExecStart=/usr/bin/varnishlog -a -w /var/log/varnish/varnish.log -D -P /run/varnishlog.pid

-  ExecReload=/bin/kill -HUP $MAINPID

-  

-  [Install]

- diff --git a/redhat/varnishncsa.service b/redhat/varnishncsa.service

- index e8e1d28..ba22f0f 100644

- --- a/redhat/varnishncsa.service

- +++ b/redhat/varnishncsa.service

- @@ -3,9 +3,11 @@ Description=Varnish Cache HTTP accelerator log daemon

-  After=varnish.service

-  

-  [Service]

- +Type=forking

- +PIDFile=/run/varnishncsa.pid

-  User=varnishlog

-  Group=varnish

- -ExecStart=/usr/bin/varnishncsa -a -w /var/log/varnish/varnishncsa.log

- +ExecStart=/usr/bin/varnishncsa -a -w /var/log/varnish/varnishncsa.log -D -P /run/varnishncsa.pid

-  ExecReload=/bin/kill -HUP $MAINPID

-  

-  [Install]

@@ -1,11 +0,0 @@ 

- --- bin/varnishtest/tests/r01576.vtc.orig	2015-09-30 13:39:14.000000000 +0200

- +++ bin/varnishtest/tests/r01576.vtc	2015-10-06 00:52:50.921509265 +0200

- @@ -42,7 +42,7 @@

-  

-  # This should fail with default params and JIT/no-JIT

-  client c1 {

- -	txreq -url /aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

- +	txreq -url /aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

-  	rxresp

-  } -run

-  

@@ -1,14 +0,0 @@ 

- --- bin/varnishtest/tests/v00017.vtc.orig	2015-09-30 13:39:14.000000000 +0200

- +++ bin/varnishtest/tests/v00017.vtc	2015-10-05 13:58:05.129191488 +0200

- @@ -36,9 +36,9 @@

-  	sub vcl_recv { if (client.ip ~ a) { return(pass); } }

-  }

-  

- -varnish v1 -errvcl {DNS lookup(10.1.2.): } {

- +varnish v1 -errvcl {DNS lookup(198..2.): } {

-  	backend b { .host = "127.0.0.1"; }

- -	acl a { "10.1.2."; }

- +	acl a { "198..2."; }

-  	sub vcl_recv { if (client.ip ~ a) { return(pass); } }

-  }

-  

@@ -1,10 +0,0 @@ 

- --- doc/sphinx/Makefile.in.orig	2015-10-04 09:30:26.260411617 +0200

- +++ doc/sphinx/Makefile.in	2015-10-04 09:31:05.661090770 +0200

- @@ -602,6 +602,7 @@

-  	rm -rf $(BUILDDIR)

-  

-  include/params.rst: $(top_builddir)/bin/varnishd/varnishd

- +	LD_LIBRARY_PATH=$(top_builddir)/lib/libvarnish/.libs:$(top_builddir)/lib/libvarnishcompat/.libs:$(top_builddir)/lib/libvcc/.libs:$(top_builddir)/lib/libvgz/.libs \

-  	$(top_builddir)/bin/varnishd/varnishd -x dumprstparam > include/params.rst

-  

-  # XXX add varnishstat here when it's been _opt2rst'ed

@@ -1,10 +0,0 @@ 

- --- doc/sphinx/Makefile.in.orig	2016-01-29 08:47:23.963344825 +0100

- +++ doc/sphinx/Makefile.in	2016-01-29 08:49:30.290601970 +0100

- @@ -531,6 +531,7 @@

-  	rm -rf $(BUILDDIR)

-  

-  include/params.rst: $(top_builddir)/bin/varnishd/varnishd

- +	LD_LIBRARY_PATH=$(top_builddir)/lib/libvarnish/.libs:$(top_builddir)/lib/libvarnishcompat/.libs:$(top_builddir)/lib/libvcc/.libs:$(top_builddir)/lib/libvgz/.libs \

-  	$(top_builddir)/bin/varnishd/varnishd -x dumprstparam > include/params.rst

-  

-  include/counters.rst: $(top_builddir)/bin/varnishstat/vsc2rst

@@ -1,111 +0,0 @@ 

- --- lib/libvcc/vmodtool.py.orig	2016-03-29 11:16:00.534066134 +0200

- +++ lib/libvcc/vmodtool.py	2016-03-29 12:11:54.571647851 +0200

- @@ -33,8 +33,8 @@

-  	vmod_${name}.rst -- Extracted documentation

-  """

-  

- -# This script should work with both Python 2 and Python 3.

- -from __future__ import print_function

- +## This script should work with both Python 2 and Python 3.

- +#from __future__ import print_function

-  

-  import sys

-  import re

- @@ -45,6 +45,16 @@

-  from os.path import dirname, exists, join, realpath

-  from pprint import pprint, pformat

-  

- +# __future__ print_function is not available on python2.4 in rhel5, so

- +# make a local simple variant _print

- +

- +def _print(*objects, **kwargs):

- +  sep = kwargs.get('sep', ' ')

- +  end = kwargs.get('end', '\n')

- +  out = kwargs.get('file', sys.stdout)

- +  out.write(sep.join(objects) + end)

- +

- +

-  ctypes = {

-  	'ACL':		"VCL_ACL",

-  	'BACKEND':	"VCL_BACKEND",

- @@ -728,7 +738,7 @@

-  	def get_token(self):

-  		while True:

-  			if len(self.tl) > 0:

- -				# print("T\t", self.tl[0])

- +				# _print("T\t", self.tl[0])

-  				return self.tl.pop(0)

-  			if len(self.l) == 0:

-  				break

- @@ -796,7 +806,7 @@

-  				raise FormatError("Unknown keyword: %s" %

-  				    t.str, "")

-  			else:

- -				print("WARNING: Unknown keyword: %s:" %

- +				_print("WARNING: Unknown keyword: %s:" %

-  				    t.str, file=sys.stderr)

-  				o = None

-  				while len(self.tl) > 0:

- @@ -809,8 +819,8 @@

-  			if opts.strict:

-  				raise FormatError(m, details)

-  			else:

- -				print("WARNING: %s:" % m, file=sys.stderr)

- -				print(details, file=sys.stderr)

- +				_print("WARNING: %s:" % m, file=sys.stderr)

- +				_print(details, file=sys.stderr)

-  		else:

-  			for ln, i in self.l:

-  				o.doc(i)

- @@ -852,9 +862,12 @@

-  def runmain(inputvcc, rstdir, outputprefix):

-  	# Read the file in

-  	lines = []

- -	with open(inputvcc, "r") as fp:

- +	fp = open(inputvcc, "r")

- +	try:

-  		for i in fp:

-  			lines.append(i.rstrip())

- +	finally:

- +		fp.close

-  	ln = 0

-  

-  	#######################################################################

- @@ -874,7 +887,7 @@

-  

-  	if False:

-  		for i in copy_right:

- -			print("(C)\t", i)

- +			_print("(C)\t", i)

-  

-  	#######################################################################

-  	# Break into sections

- @@ -899,14 +912,14 @@

-  		for i in sl:

-  			i.parse(vx)

-  			assert len(i.tl) == 0

- -	except ParseError as e:

- -		print("ERROR: Parse error reading \"%s\":" % inputvcc)

- +	except ParseError, e:

- +		_print("ERROR: Parse error reading \"%s\":" % inputvcc)

-  		pprint(str(e))

-  		exit(-1)

- -	except FormatError as e:

- -		print("ERROR: Format error reading \"%s\": %s" %

- +	except FormatError, e:

- +		_print("ERROR: Format error reading \"%s\": %s" %

-  		    (inputvcc, pformat(e.msg)))

- -		print(e.details)

- +		_print(e.details)

-  		exit(-2)

-  

-  	#######################################################################

- @@ -981,7 +994,7 @@

-  		if not i_vcc:

-  			i_vcc = "vmod.vcc"

-  	else:

- -		print("ERROR: No vmod.vcc file supplied or found.",

- +		_print("ERROR: No vmod.vcc file supplied or found.",

-  		    file=sys.stderr)

-  		oparser.print_help()

-  		exit(-1)

@@ -1,11 +0,0 @@ 

- --- configure.orig	2016-08-02 14:56:14.888475820 +0200

- +++ configure	2016-08-02 14:56:26.633158063 +0200

- @@ -17247,7 +17247,7 @@

-  # The reason for -Wno-error=unused-result is a glibc/gcc interaction

-  # idiocy where write is marked as warn_unused_result, causing build

-  # failures.

- -CFLAGS="${CFLAGS} -Wall -Werror"

- +#CFLAGS="${CFLAGS} -Wall -Werror"

-  OCFLAGS="${OCFLAGS} -Wall -Werror"

-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unused-result" >&5

-  $as_echo_n "checking whether C compiler accepts -Werror=unused-result... " >&6; }

@@ -1,11 +0,0 @@ 

- --- configure.orig	2016-08-24 22:21:08.524949225 +0200

- +++ configure	2016-08-24 22:30:04.047845691 +0200

- @@ -18108,7 +18108,7 @@

-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror" >&5

-  $as_echo "$ax_cv_check_cflags___Werror" >&6; }

-  if test x"$ax_cv_check_cflags___Werror" = xyes; then :

- -  CFLAGS="${CFLAGS} -Werror"

- +#  CFLAGS="${CFLAGS} -Werror"

-        OCFLAGS="${OCFLAGS} -Werror"

-  else

-    as_CACHEVAR=`$as_echo "ax_cv_check_cflags__${SUNCC_CFLAGS}" | $as_tr_sh`

@@ -1,100 +0,0 @@ 

- diff -Naur ../varnish-5.0.0-beta1.orig/bin/varnishd/Makefile.in ./bin/varnishd/Makefile.in

- --- ../varnish-5.0.0-beta1.orig/bin/varnishd/Makefile.in	2016-09-09 10:43:06.000000000 +0200

- +++ ./bin/varnishd/Makefile.in	2016-09-14 14:59:53.302301003 +0200

- @@ -2934,6 +2934,8 @@

-  	    -e 's/^/ "/' $(srcdir)/builtin.vcl >> $@

-  

-  vhp_hufdec.h: vhp_gen_hufdec

- +	LD_LIBRARY_PATH=\

- +	$(top_builddir)/lib/libvarnish/.libs:\

-  	$(AM_V_GEN) ./vhp_gen_hufdec > vhp_hufdec.h_

-  	mv vhp_hufdec.h_ vhp_hufdec.h

-  

- diff -Naur ../varnish-5.0.0-beta1.orig/doc/sphinx/Makefile.in ./doc/sphinx/Makefile.in

- --- ../varnish-5.0.0-beta1.orig/doc/sphinx/Makefile.in	2016-09-09 10:43:07.000000000 +0200

- +++ ./doc/sphinx/Makefile.in	2016-09-14 14:55:51.898109072 +0200

- @@ -614,39 +614,84 @@

-  	rm -rf $(BUILDDIR)

-  

-  include/cli.rst: $(top_builddir)/bin/varnishd/varnishd

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnish/.libs:\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvcc/.libs:\

- +$(top_builddir)/lib/libvgz/.libs \

-  	$(top_builddir)/bin/varnishd/varnishd -x dumprstcli > $@

-  

-  include/params.rst: $(top_builddir)/bin/varnishd/varnishd

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnish/.libs:\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvcc/.libs:\

- +$(top_builddir)/lib/libvgz/.libs \

-  	$(top_builddir)/bin/varnishd/varnishd -x dumprstparam > $@

-  

-  include/counters.rst: $(top_builddir)/bin/varnishstat/vsc2rst

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishstat/vsc2rst > $@

-  

-  # XXX add varnishstat here when it's been _opt2rst'ed

-  

-  include/varnishncsa_options.rst: $(top_builddir)/bin/varnishncsa/varnishncsa

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishncsa/varnishncsa --options > $@

-  include/varnishncsa_synopsis.rst: $(top_builddir)/bin/varnishncsa/varnishncsa

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishncsa/varnishncsa --synopsis > $@

-  

-  include/varnishlog_options.rst: $(top_builddir)/bin/varnishlog/varnishlog

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishlog/varnishlog --options > $@

-  include/varnishlog_synopsis.rst: $(top_builddir)/bin/varnishlog/varnishlog

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishlog/varnishlog --synopsis > $@

-  

-  include/varnishtop_options.rst: $(top_builddir)/bin/varnishtop/varnishtop

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishtop/varnishtop --options > $@

-  include/varnishtop_synopsis.rst: $(top_builddir)/bin/varnishtop/varnishtop

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishtop/varnishtop --synopsis > $@

-  

-  include/varnishhist_options.rst: $(top_builddir)/bin/varnishhist/varnishhist

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs:\

- +$(top_builddir)/lib/libvarnish/.libs \

-  	$(top_builddir)/bin/varnishhist/varnishhist --options > $@

-  include/varnishhist_synopsis.rst: $(top_builddir)/bin/varnishhist/varnishhist

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs:\

- +$(top_builddir)/lib/libvarnish/.libs \

-  	$(top_builddir)/bin/varnishhist/varnishhist --synopsis > $@

-  

-  include/varnishstat_options.rst: $(top_builddir)/bin/varnishstat/varnishstat

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishstat/varnishstat --options > $@

-  include/varnishstat_synopsis.rst: $(top_builddir)/bin/varnishstat/varnishstat

- +	LD_LIBRARY_PATH=\

- +$(top_builddir)/lib/libvarnishcompat/.libs:\

- +$(top_builddir)/lib/libvarnishapi/.libs \

-  	$(top_builddir)/bin/varnishstat/varnishstat --synopsis > $@

-  

-  include/vsl-tags.rst: $(top_builddir)/lib/libvarnishapi/vsl2rst

@@ -1,68 +0,0 @@ 

- --- lib/libvcc/vmodtool.py.orig	2016-09-14 14:39:29.159447283 +0200

- +++ lib/libvcc/vmodtool.py	2016-09-14 14:46:33.446283000 +0200

- @@ -1,4 +1,4 @@

- -#!/usr/bin/env python

- +#!/usr/bin/python2.4

-  #-

-  # Copyright (c) 2010-2016 Varnish Software

-  # All rights reserved.

- @@ -33,8 +33,8 @@

-  	vmod_${name}.rst -- Extracted documentation

-  """

-  

- -# This script should work with both Python 2 and Python 3.

- -from __future__ import print_function

- +## This script should work with both Python 2 and Python 3.

- +#from __future__ import print_function

-  

-  import os

-  import sys

- @@ -47,6 +47,16 @@

-  from pprint import pprint, pformat

-  from tempfile import mkstemp

-  

- +# __future__ print_function is not available on python2.4 in rhel5, so

- +# make a local simple variant _print

- +

- +def _print(*objects, **kwargs):

- +  sep = kwargs.get('sep', ' ')

- +  end = kwargs.get('end', '\n')

- +  out = kwargs.get('file', sys.stdout)

- +  out.write(sep.join(objects) + end)

- +

- +

-  rstfmt=False

-  

-  ctypes = {

- @@ -150,11 +160,11 @@

-  

-  def err(str, warn=True):

-  	if opts.strict or not warn:

- -		print("ERROR: " + str, file = sys.stderr)

- +		_print("ERROR: " + str, file = sys.stderr)

-  		exit(1)

-  		raise FormatError(str, "")

-  	else:

- -		print("WARNING: " + str, file = sys.stderr)

- +		_print("WARNING: " + str, file = sys.stderr)

-  

-  def fmt_cstruct(fo, mn, x):

-  	a = "\ttd_" + mn + "_" + x

- @@ -359,7 +369,7 @@

-  		self.parse()

-  

-  	def dump(self):

- -		print(type(self), self.line)

- +		_print(type(self), self.line)

-  

-  	def rstfile(self, fo, man):

-  		if self.rstlbl != None:

- @@ -866,7 +876,7 @@

-  		if not i_vcc:

-  			i_vcc = "vmod.vcc"

-  	else:

- -		print("ERROR: No vmod.vcc file supplied or found.",

- +		_print("ERROR: No vmod.vcc file supplied or found.",

-  		    file=sys.stderr)

-  		oparser.print_help()

-  		exit(-1)

@@ -1,63 +0,0 @@ 

- Patch from upstream

- 

- commit dbcbae227b757043651ee1e7d1cc729727f94c8d

- Author: Poul-Henning Kamp <phk@FreeBSD.org>

- Date:   Wed Sep 21 06:22:55 2016 +0000

- 

-     Do not insist the H2 connection preface arrives in a single packet.

-     

-     Fixes: #2094

-     Fixes: #2096

- 

- diff --git a/bin/varnishd/http1/cache_http1_proto.c b/bin/varnishd/http1/cache_http1_proto.c

- index b5273c6..e788ed6 100644

- --- a/bin/varnishd/http1/cache_http1_proto.c

- +++ b/bin/varnishd/http1/cache_http1_proto.c

- @@ -46,6 +46,8 @@

-  #include "config.h"

-  

-  #include "cache/cache.h"

- +#include "cache/cache_transport.h"

- +

-  #include "cache_http1.h"

-  

-  #include "vct.h"

- @@ -66,6 +68,7 @@ enum htc_status_e __match_proto__(htc_complete_f)

-  HTTP1_Complete(struct http_conn *htc)

-  {

-  	char *p;

- +	enum htc_status_e retval;

-  

-  	CHECK_OBJ_NOTNULL(htc, HTTP_CONN_MAGIC);

-  

- @@ -78,6 +81,11 @@ HTTP1_Complete(struct http_conn *htc)

-  	if (p == htc->rxbuf_e)

-  		return (HTC_S_EMPTY);

-  

- +	/* Do not return a partial H2 connection preface */

- +	retval = H2_prism_complete(htc);

- +	if (retval != HTC_S_JUNK)

- +		return (retval);

- +

-  	/*

-  	 * Here we just look for NL[CR]NL to see that reception

-  	 * is completed.  More stringent validation happens later.

- diff --git a/bin/varnishd/http2/cache_http2_proto.c b/bin/varnishd/http2/cache_http2_proto.c

- index 73d0c95..54b8a2e 100644

- --- a/bin/varnishd/http2/cache_http2_proto.c

- +++ b/bin/varnishd/http2/cache_http2_proto.c

- @@ -474,10 +474,11 @@ H2_prism_complete(struct http_conn *htc)

-  

-  	CHECK_OBJ_NOTNULL(htc, HTTP_CONN_MAGIC);

-  	l = htc->rxbuf_e - htc->rxbuf_b;

- -	if (l < strlen(H2_prism))

- -		return (HTC_S_MORE);

- -	if (!memcmp(htc->rxbuf_b, H2_prism, sizeof(H2_prism)))

- +	if (l >= sizeof(H2_prism) &&

- +	    !memcmp(htc->rxbuf_b, H2_prism, sizeof(H2_prism)))

-  		return (HTC_S_COMPLETE);

- +	if (l < sizeof(H2_prism) && !memcmp(htc->rxbuf_b, H2_prism, l))

- +		return (HTC_S_MORE);

-  	return (HTC_S_JUNK);

-  }

-  

@@ -1,21 +0,0 @@ 

- --- configure.ac.orig	2017-03-18 02:06:01.568741182 +0100

- +++ configure.ac	2017-03-18 02:09:17.808203587 +0100

- @@ -209,7 +209,6 @@

-  

-  # Support for visibility attribute

-  save_CFLAGS="${CFLAGS}"

- -CFLAGS="${CFLAGS} -Werror"

-  

-  AC_CACHE_CHECK([whether we have support for visibility attributes],

-  	[ac_cv_have_viz],

- @@ -535,10 +534,6 @@

-      AX_CHECK_COMPILE_FLAG([${SUNCC_CFLAGS}],

-  	[CFLAGS="${CFLAGS} ${SUNCC_CFLAGS}"

-  	 OCFLAGS="${OCFLAGS} ${SUNCC_CFLAGS}"])

- -else

- -    AX_CHECK_COMPILE_FLAG([-Werror],

- -	[CFLAGS="${CFLAGS} -Werror"

- -	 OCFLAGS="${OCFLAGS} -Werror"])

-  fi

-  

-  AX_CHECK_COMPILE_FLAG([-Werror=unused-result],

file removed
-18
@@ -1,18 +0,0 @@ 

- Index: bin/varnishd/cache_center.c

- ===================================================================

- --- bin/varnishd/cache_center.c	(revision 1912)

- +++ bin/varnishd/cache_center.c	(revision 1913)

- @@ -524,7 +524,12 @@

-  		 */

-  		WSL(sp->wrk, SLT_Debug, sp->fd,

-  		    "on waiting list on obj %u", sp->obj->xid);

- -		assert(!isnan(sp->wrk->used));

- +		/*

- +		 * There is a non-zero risk that we come here more than once

- +		 * before we get through, in that case cnt_recv must be set

- +		 */

- +		if (isnan(sp->wrk->used))

- +			sp->wrk->used = TIM_real();

-  		SES_Charge(sp);

-  		return (1);

-  	}

file removed
-12
@@ -1,12 +0,0 @@ 

- diff -rup varnish-5.1.2.orig/bin/varnishd/http1/cache_http1_vfp.c varnish-5.1.2/bin/varnishd/http1/cache_http1_vfp.c

- --- varnish-5.1.2.orig/bin/varnishd/http1/cache_http1_vfp.c	2017-08-02 22:43:30.137116214 +0200

- +++ varnish-5.1.2/bin/varnishd/http1/cache_http1_vfp.c	2017-08-02 22:44:06.433218762 +0200

- @@ -152,7 +152,7 @@ v1f_pull_chunked(struct vfp_ctx *vc, str

-  		if (q == NULL || *q != '\0')

-  			return (VFP_Error(vc, "chunked header number syntax"));

-  		cl = (ssize_t)cll;

- -		if ((uintmax_t)cl != cll)

- +		if (cl < 0 || (uintmax_t)cl != cll)

-  			return (VFP_Error(vc, "bogusly large chunk size"));

-  

-  		vfe->priv2 = cl;

file removed
-32
@@ -1,32 +0,0 @@ 

- --- ../varnish-2.1.orig/man/vcl.7so

- +++ man/vcl.7so

- @@ -126,7 +126,6 @@ it's saintmode list

-  can be set to the maximum list size. Setting a value of 0 disables

-  saintmode checking entirely for that backend. The value in the backend

-  declaration overrides the parameter.

- -

-  .Ss Directors

-  Directors choose from different backends based on health status and a

-  per-director algorithm.

- --- ../varnish-2.1.orig/bin/varnishd/varnishd.1

- +++ bin/varnishd/varnishd.1

- @@ -173,6 +173,9 @@ to the specified

-  See

-  .Sx Run-Time Parameters

-  for a list of parameters.

- +.It Fl S Ar file

- +Path to a file containing a secret used for authorizing access to the

- +management port.

-  .It Fl s Ar type Ns Xo

-  .Op , Ns Ar options

-  .Xc

- --- ../varnish-2.1.orig/redhat/varnish.sysconfig

- +++ ./redhat/varnish.sysconfig

- @@ -38,6 +38,7 @@

-               -T localhost:6082 \

-               -f /etc/varnish/default.vcl \

-               -u varnish -g varnish \

- +             -S /etc/varnish/secret \

-               -s file,/var/lib/varnish/varnish_storage.bin,1G"

-  

-  

@@ -1,277 +0,0 @@ 

- diff -Naur ../varnish-2.1.4/redhat/varnish.initrc ./redhat/varnish.initrc

- --- ../varnish-2.1.4/redhat/varnish.initrc	2010-11-04 13:57:41.208455907 +0100

- +++ ./redhat/varnish.initrc	2010-11-04 14:00:14.516330982 +0100

- @@ -1,6 +1,6 @@

-  #! /bin/sh

-  #

- -# varnish Control the varnish HTTP accelerator

- +# varnish Control the Varnish Cache

-  #

-  # chkconfig: - 90 10

-  # description: Varnish is a high-perfomance HTTP accelerator

- @@ -26,6 +26,7 @@

-  pidfile=/var/run/varnish.pid

-  

-  exec="/usr/sbin/varnishd"

- +reload_exec="/usr/bin/varnish_reload_vcl"

-  prog="varnishd"

-  config="/etc/sysconfig/varnish"

-  lockfile="/var/lock/subsys/varnish"

- @@ -47,7 +48,7 @@

-  		echo $config not found

-  		exit 6

-  	fi

- -	echo -n "Starting varnish HTTP accelerator: "

- +	echo -n "Starting Varnish Cache: "

-  

-  	# Open files (usually 1024, which is way too small for varnish)

-  	ulimit -n ${NFILES:-131072}

- @@ -79,7 +80,7 @@

-  }

-  

-  stop() {

- -	echo -n "Stopping varnish HTTP accelerator: "

- +	echo -n "Stopping Varnish Cache: "

-  	killproc -p $pidfile $prog

-  	retval=$?

-  	echo

- @@ -93,7 +94,12 @@

-  }

-  

-  reload() {

- -	restart

- +	if [ "$RELOAD_VCL" = "1" ]

- +	then

- +		$reload_exec

- +	else

- +		force_reload

- +	fi

-  }

-  

-  force_reload() {

- diff -Naur ../varnish-2.1.4/redhat/varnish_reload_vcl ./redhat/varnish_reload_vcl

- --- ../varnish-2.1.4/redhat/varnish_reload_vcl	1970-01-01 01:00:00.000000000 +0100

- +++ ./redhat/varnish_reload_vcl	2010-11-04 13:58:14.708330664 +0100

- @@ -0,0 +1,114 @@

- +#!/bin/bash

- +#

- +# reload vcl revisited

- +# A script that loads new vcl based on data from /etc/sysconfig/varnish

- +# Ingvar Hagelund <ingvar@redpill-linpro.com>

- +#

- +# This is free software, distributed under the standard 2 clause BSD license,

- +# see the LICENSE file in the Varnish documentation directory

- +#

- +# The following environment variables have to be set:

- +# RELOAD_VCL, VARNISH_VCL_CONF, VARNISH_ADMIN_LISTEN_PORT

- +# The following are optional:

- +# VARNISH_SECRET_FILE, VARNISH_ADMIN_LISTEN_ADDRESS

- +#

- +# Requires GNU bash and GNU date

- +#

- +

- +debug=false

- +

- +missing() {

- +	echo "Missing configuration variable: $1"

- +	exit 2

- +}

- +

- +print_debug() {

- +	echo "

- +Parsed configuration:

- +RELOAD_VCL=\"$RELOAD_VCL\"

- +VARNISH_VCL_CONF=\"$VARNISH_VCL_CONF\"

- +VARNISH_ADMIN_LISTEN_ADDRESS=\"$VARNISH_ADMIN_LISTEN_ADDRESS\"

- +VARNISH_ADMIN_LISTEN_PORT=\"$VARNISH_ADMIN_LISTEN_PORT\"

- +VARNISH_SECRET_FILE=\"$VARNISH_SECRET_FILE\"

- +"

- +}

- +

- +# Read configuration

- +. /etc/sysconfig/varnish

- +

- +$debug && print_debug

- +

- +# Check configuration

- +if [ ! "$RELOAD_VCL" = "1" ]; then

- +	echo "Error: RELOAD_VCL is not set to 1"

- +	exit 2

- +

- +elif [ -z "$VARNISH_VCL_CONF" ]; then

- +	echo "Error: VARNISH_VCL_CONF is not set"

- +	exit 2

- +

- +elif [ ! -s "$VARNISH_VCL_CONF" ]; then

- +	echo "Eror: VCL config $VARNISH_VCL_CONF is unreadable or empty"

- +	exit 2

- +

- +elif [ -z "$VARNISH_ADMIN_LISTEN_ADDRESS" ]; then

- +	echo "Warning: VARNISH_ADMIN_LISTEN_ADDRESS is not set, using 127.0.0.1"

- +	VARNISH_ADMIN_LISTEN_ADDRESS="127.0.0.1"

- +

- +elif [ -z "$VARNISH_ADMIN_LISTEN_PORT" ]; then

- +	echo "Error: VARNISH_ADMIN_LISTEN_PORT is not set"

- +	exit 2

- +

- +elif [ -z "$VARNISH_SECRET_FILE" ]; then

- +	echo "Warning: VARNISH_SECRET_FILE is not set"

- +	secret=""

- +

- +elif [ ! -s "$VARNISH_SECRET_FILE" ]; then

- +	echo "Error: varnish secret file $VARNISH_SECRET_FILE is unreadable or empty"

- +	exit 2

- +else

- +	secret="-S $VARNISH_SECRET_FILE"

- +fi

- +

- +# Done parsing, set up command

- +VARNISHADM="varnishadm $secret -T $VARNISH_ADMIN_LISTEN_ADDRESS:$VARNISH_ADMIN_LISTEN_PORT"

- +

- +# Now do the real work

- +new_config="reload_$(date +%FT%H:%M:%S)"

- +

- +# Check if we are able to connect at all

- +if $VARNISHADM vcl.list > /dev/null; then

- +	$debug && echo vcl.list succeeded

- +else

- +	echo "Unable to run $VARNISHADM vcl.list"

- +	exit 1

- +fi

- +

- +if $VARNISHADM vcl.list | awk ' { print $3 } ' | grep -q $new_config; then

- +	echo Trying to use new config $new_config, but that is already in use

- +	exit 2

- +fi

- +

- +current_config=$( $VARNISHADM vcl.list | awk ' /^active/ { print $3 } ' )

- +

- +echo "Loading vcl from $VARNISH_VCL_CONF"

- +echo "Current running config name is $current_config"

- +echo "Using new config name $new_config"

- +

- +if $VARNISHADM vcl.load $new_config $VARNISH_VCL_CONF; then

- +	$debug && echo "$VARNISHADM vcl.load succeded"

- +else

- +	echo "$VARNISHADM vcl.load failed"

- +	exit 1

- +fi

- +

- +if $VARNISHADM vcl.use $new_config; then

- +	$debug && echo "$VARNISHADM vcl.use succeded"

- +else

- +	echo "$VARNISHADM vcl.use failed"

- +	exit 1

- +fi

- +$VARNISHADM vcl.list

- +echo Done

- +exit 0

- +

- diff -Naur ../varnish-2.1.4/redhat/varnish.sysconfig ./redhat/varnish.sysconfig

- --- ../varnish-2.1.4/redhat/varnish.sysconfig	2010-10-21 10:57:22.000000000 +0200

- +++ ./redhat/varnish.sysconfig	2010-11-04 13:59:34.293455974 +0100

- @@ -14,6 +14,13 @@

-  # Maximum size of corefile (for ulimit -c). Default in Fedora is 0

-  # DAEMON_COREFILE_LIMIT="unlimited"

-  

- +# Set this to 1 to make init script reload try to switch vcl without restart.

- +# To make this work, you need to set the following variables

- +# explicit: VARNISH_VCL_CONF, VARNISH_ADMIN_LISTEN_ADDRESS,

- +# VARNISH_ADMIN_LISTEN_PORT, VARNISH_SECRET_FILE, or in short,

- +# use Alternative 3, Advanced configuration, below

- +RELOAD_VCL=1

- +

-  # This file contains 4 alternatives, please use only one.

-  

-  ## Alternative 1, Minimal configuration, no VCL

- @@ -34,12 +41,12 @@

-  # one content server selected by the vcl file, based on the request.  Use a

-  # fixed-size cache file.

-  #

- -DAEMON_OPTS="-a :6081 \

- -             -T localhost:6082 \

- -             -f /etc/varnish/default.vcl \

- -             -u varnish -g varnish \

- -             -S /etc/varnish/secret \

- -             -s file,/var/lib/varnish/varnish_storage.bin,1G"

- +#DAEMON_OPTS="-a :6081 \

- +#             -T localhost:6082 \

- +#             -f /etc/varnish/default.vcl \

- +#             -u varnish -g varnish \

- +#             -S /etc/varnish/secret \

- +#             -s file,/var/lib/varnish/varnish_storage.bin,1G"

-  

-  

-  ## Alternative 3, Advanced configuration

- @@ -47,49 +54,53 @@

-  # See varnishd(1) for more information.

-  #

-  # # Main configuration file. You probably want to change it :)

- -# VARNISH_VCL_CONF=/etc/varnish/default.vcl

- +VARNISH_VCL_CONF=/etc/varnish/default.vcl

-  #

-  # # Default address and port to bind to

-  # # Blank address means all IPv4 and IPv6 interfaces, otherwise specify

-  # # a host name, an IPv4 dotted quad, or an IPv6 address in brackets.

-  # VARNISH_LISTEN_ADDRESS=

- -# VARNISH_LISTEN_PORT=6081

- +VARNISH_LISTEN_PORT=6081

-  #

-  # # Telnet admin interface listen address and port

- -# VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1

- -# VARNISH_ADMIN_LISTEN_PORT=6082

- +VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1

- +VARNISH_ADMIN_LISTEN_PORT=6082

- +#

- +# # Shared secret file for admin interface

- +VARNISH_SECRET_FILE=/etc/varnish/secret

-  #

-  # # The minimum number of worker threads to start

- -# VARNISH_MIN_THREADS=1

- +VARNISH_MIN_THREADS=1

-  #

-  # # The Maximum number of worker threads to start

- -# VARNISH_MAX_THREADS=1000

- +VARNISH_MAX_THREADS=1000

-  #

-  # # Idle timeout for worker threads

- -# VARNISH_THREAD_TIMEOUT=120

- +VARNISH_THREAD_TIMEOUT=120

-  #

-  # # Cache file location

- -# VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin

- +VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin

-  #

-  # # Cache file size: in bytes, optionally using k / M / G / T suffix,

-  # # or in percentage of available disk space using the % suffix.

- -# VARNISH_STORAGE_SIZE=1G

- +VARNISH_STORAGE_SIZE=1G

-  #

-  # # Backend storage specification

- -# VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"

- +VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"

-  #

-  # # Default TTL used when the backend does not specify one

- -# VARNISH_TTL=120

- +VARNISH_TTL=120

-  #

-  # # DAEMON_OPTS is used by the init script.  If you add or remove options, make

-  # # sure you update this section, too.

- -# DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \

- -#              -f ${VARNISH_VCL_CONF} \

- -#              -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \

- -#              -t ${VARNISH_TTL} \

- -#              -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \

- -#              -u varnish -g varnish \

- -#              -s ${VARNISH_STORAGE}"

- +DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \

- +             -f ${VARNISH_VCL_CONF} \

- +             -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \

- +             -t ${VARNISH_TTL} \

- +             -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \

- +             -u varnish -g varnish \

- +             -S ${VARNISH_SECRET_FILE} \

- +             -s ${VARNISH_STORAGE}"

-  #

-  

-  

@@ -1,9 +0,0 @@ 

- --- doc/changes-2.0.5-2.0.6.xml.orig	2009-12-23 11:42:58.168643121 +0100

- +++ doc/changes-2.0.5-2.0.6.xml	2009-12-23 11:43:05.827643574 +0100

- @@ -49,5 +49,5 @@

-        <para>Document the <code>-C</code> option

-        to <code>varnishd</code>.</para>

-      </change>

- -  <subsystem>

- +  </subsystem>

-  </group>

@@ -1,53 +0,0 @@ 

- --- doc/changes-2.0.6-2.1.0.xml.orig	2010-04-14 15:16:12.308484148 +0200

- +++ doc/changes-2.0.6-2.1.0.xml	2010-04-14 15:16:28.844484368 +0200

- @@ -2,7 +2,7 @@

-  <!DOCTYPE group [

-  <!ENTITY mdash "&#8212;">

-  ]>

- -<!-- $Id: changes-2.0.6-2.1.0.xml 4641 2010-03-24 10:36:56Z tfheen $ -->

- +<!-- $Id: changes-2.0.6-2.1.0.xml 4643 2010-03-24 12:41:53Z tfheen $ -->

-  <group from="2.0.6" to="2.1.0">

-    <subsystem>

-      <name>varnishd</name>

- @@ -48,7 +48,7 @@

-        <para>When closing connections, we experimented with sending RST

-        to free up load balancers and free up threads more quickly.

-        This caused some problems with NAT routers and so has been

- -      reverted for now.

- +      reverted for now.</para>

-      </change>

-  

-      <change type="enh">

- @@ -176,7 +176,7 @@

-  

-      <change type="enh">

-        <para><code>purge.hash</code> is now deprecated and no longer

- -      shown in help listings.</code>.</para>

- +      shown in help listings.</para>

-      </change>

-  

-      <change type="enh" ref="607">

- @@ -298,11 +298,19 @@

-        <para>Exit at the end of the file when started

-  	with <code>-d</code>.</para>

-      </change>

- +  </subsystem>

-  

- +  <subsystem>

- +    <name>varnishadm</name>

-  

- -varnishadm:

- - - timeout support

- - - secret support

- - - handle cli banner

- +    <change type="enh">

- +      <para><code>varnishadm</code> can now have a timeout when trying

- +      to connect to the running <code>varnishd</code>.</para>

- +    </change>

-  

- +    <change type="enh">

- +      <para><code>varnishadm</code> now knows how to respond to the

- +      secret from a secured <code>varnishd</code></para>

- +    </change>

- +  </subsystem>

-  </group>

file removed
-13
@@ -1,13 +0,0 @@ 

- diff -Naur ../varnish-2.0-beta1.orig/redhat/varnish.sysconfig ./redhat/varnish.sysconfig

- --- ../varnish-2.0-beta1.orig/redhat/varnish.sysconfig	2008-06-18 12:59:41.000000000 +0200

- +++ ./redhat/varnish.sysconfig	2008-09-02 14:50:51.000000000 +0200

- @@ -11,6 +11,9 @@

-  # Default log size is 82MB + header

-  MEMLOCK=82000

-  

- +# Maximum size of corefile (for ulimit -c). Default in Fedora is 0

- +# DAEMON_COREFILE_LIMIT="unlimited"

- +

-  # This file contains 4 alternatives, please use only one.

-  

-  ## Alternative 1, Minimal configuration, no VCL

file removed
-13
@@ -1,13 +0,0 @@ 

- Index: bin/varnishtest/vtc_server.c

- ===================================================================

- --- bin/varnishtest/vtc_server.c	(revision 3155)

- +++ bin/varnishtest/vtc_server.c	(revision 3157)

- @@ -97,7 +97,7 @@

-  		vtc_log(vl, 3, "Accepted socket fd is %d", fd);

-  		http_process(vl, s->spec, fd, 0);

-  		vtc_log(vl, 3, "shutting fd %d", fd);

- -		AZ(shutdown(fd, SHUT_WR));

- +		assert((shutdown(fd, SHUT_WR) == 0) || errno == ENOTCONN);

-  		TCP_close(&fd);

-  	}

-  	vtc_log(vl, 2, "Ending");

@@ -1,85 +0,0 @@ 

- Index: include/vrt.h

- ===================================================================

- --- include/vrt.h	(revisjon 3169)

- +++ include/vrt.h	(revisjon 3171)

- @@ -154,6 +154,7 @@

-  

-  /* Simple stuff */

-  int VRT_strcmp(const char *s1, const char *s2);

- +void VRT_memmove(void *dst, const void *src, unsigned len);

-  

-  void VRT_ESI(struct sess *sp);

-  void VRT_Rollback(struct sess *sp);

- Index: lib/libvcl/vcc_fixed_token.c

- ===================================================================

- --- lib/libvcl/vcc_fixed_token.c	(revisjon 3169)

- +++ lib/libvcl/vcc_fixed_token.c	(revisjon 3171)

- @@ -434,6 +434,7 @@

-  	vsb_cat(sb, "\n");

-  	vsb_cat(sb, "/* Simple stuff */\n");

-  	vsb_cat(sb, "int VRT_strcmp(const char *s1, const char *s2);\n");

- +	vsb_cat(sb, "void VRT_memmove(void *dst, const void *src, unsigned len);\n");

-  	vsb_cat(sb, "\n");

-  	vsb_cat(sb, "void VRT_ESI(struct sess *sp);\n");

-  	vsb_cat(sb, "void VRT_Rollback(struct sess *sp);\n");

- Index: lib/libvcl/vcc_acl.c

- ===================================================================

- --- lib/libvcl/vcc_acl.c	(revisjon 3169)

- +++ lib/libvcl/vcc_acl.c	(revisjon 3171)

- @@ -328,23 +328,37 @@

-  	int depth, l, m, i;

-  	unsigned at[VRT_ACL_MAXADDR + 1];

-  	const char *oc;

- +	struct sockaddr sa;

-  

-  	Fh(tl, 0, "\nstatic int\n");

-  	Fh(tl, 0, "match_acl_%s_%s(const struct sess *sp, const void *p)\n",

-  	    pfx, acln);

-  	Fh(tl, 0, "{\n");

- -	Fh(tl, 0, "\tunsigned fam;\n");

-  	Fh(tl, 0, "\tconst unsigned char *a;\n");

- +	assert(sizeof (unsigned char) == 1);

- +	assert(sizeof (unsigned short) == 2);

- +	assert(sizeof (unsigned int) == 4);

- +	if (sizeof sa.sa_family == 1)

- +		Fh(tl, 0, "\tunsigned char fam;\n");

- +	else if (sizeof sa.sa_family == 2)

- +		Fh(tl, 0, "\tunsigned short fam;\n");

- +	else if (sizeof sa.sa_family == 4)

- +		Fh(tl, 0, "\tunsigned int fam;\n");

- +	else

- +		assert(0 == __LINE__);

- +		

-  	Fh(tl, 0, "\n");

-  	Fh(tl, 0, "\ta = p;\n");

- -	Fh(tl, 0, "\tfam = a[%d];\n", offsetof(struct sockaddr, sa_family));

- +	Fh(tl, 0, "\tVRT_memmove(&fam, a + %d, sizeof fam);\n",

- +	    offsetof(struct sockaddr, sa_family));

-  	Fh(tl, 0, "\tif (fam == %d)\n", PF_INET);

-  	Fh(tl, 0, "\t\ta += %d;\n", offsetof(struct sockaddr_in, sin_addr));

-  	Fh(tl, 0, "\telse if (fam == %d)\n", PF_INET6);

-  	Fh(tl, 0, "\t\ta += %d;\n", offsetof(struct sockaddr_in6, sin6_addr));

- -	Fh(tl, 0, "\telse\n");

- +	Fh(tl, 0, "\telse {\n");

- +	Fh(tl, 0, "\t\tVRT_acl_log(sp, \"NO_FAM %s\");\n", acln);

-  	Fh(tl, 0, "\t\treturn(0);\n");

- -	Fh(tl, 0, "\n");

- +	Fh(tl, 0, "\t}\n\n");

-  	depth = -1;

-  	oc = 0;

-  	at[0] = 256;

- Index: bin/varnishd/cache_vrt.c

- ===================================================================

- --- bin/varnishd/cache_vrt.c	(revisjon 3169)

- +++ bin/varnishd/cache_vrt.c	(revisjon 3171)

- @@ -726,3 +726,10 @@

-  	return (strcmp(s1, s2));

-  }

-  

- +void

- +VRT_memmove(void *dst, const void *src, unsigned len)

- +{

- +

- +	(void)memmove(dst, src, len);

- +}

- +

@@ -1,46 +0,0 @@ 

- Index: bin/varnishtest/tests/r00801.vtc

- ===================================================================

- --- bin/varnishtest/tests/r00801.vtc	(revisjon 0)

- +++ bin/varnishtest/tests/r00801.vtc	(revisjon 5461)

- @@ -0,0 +1,24 @@

- +# $Id$

- +

- +test "Regression test for duplicate content-length in pass"

- +

- +server s1 {

- +	rxreq

- +	txresp \

- +		-hdr "Date: Mon, 25 Oct 2010 06:34:06 GMT" \

- +		-hdr "Content-length: 10xx" \

- +		-nolen -bodylen 10

- +} -start

- +

- +

- +varnish v1 -vcl+backend {

- +	sub vcl_recv { return (pass); }

- +} -start

- +

- +client c1 {

- +	txreq 

- +	rxresp

- +	expect resp.http.content-length == "10"

- +} -run

- +

- +

- Index: bin/varnishd/cache_fetch.c

- ===================================================================

- --- bin/varnishd/cache_fetch.c	(revisjon 5460)

- +++ bin/varnishd/cache_fetch.c	(revisjon 5461)

- @@ -552,9 +552,11 @@

-  		assert(uu == sp->obj->len);

-  	}

-  

- -	if (mklen > 0)

- +	if (mklen > 0) {

- +		http_Unset(sp->obj->http, H_Content_Length);

-  		http_PrintfHeader(sp->wrk, sp->fd, sp->obj->http,

-  		    "Content-Length: %u", sp->obj->len);

- +	}

-  

-  	if (http_HdrIs(hp, H_Connection, "close"))

-  		cls = 1;

@@ -1,12 +0,0 @@ 

- Index: redhat/varnish.initrc

- ===================================================================

- --- redhat/varnish.initrc	(revisjon 5498)

- +++ redhat/varnish.initrc	(arbeidskopi)

- @@ -70,6 +70,7 @@

-  			echo

-  		else

-  			echo_failure

- +			echo

-  		fi

-  		return $retval

-  	fi

@@ -1,36 +0,0 @@ 

- diff -Naur ../varnish-2.1.4/redhat/varnish.initrc ./redhat/varnish.initrc

- --- ../varnish-2.1.4/redhat/varnish.initrc	2010-10-21 10:57:22.000000000 +0200

- +++ ./redhat/varnish.initrc	2010-11-03 15:20:07.663331341 +0100

- @@ -12,6 +12,8 @@

-  # Provides: varnish

-  # Required-Start: $network $local_fs $remote_fs

-  # Required-Stop: $network $local_fs $remote_fs

- +# Default-Start:

- +# Default-Stop:

-  # Should-Start: $syslog

-  # Short-Description: start and stop varnishd

-  # Description: Varnish is a high-perfomance HTTP accelerator

- diff -Naur ../varnish-2.1.4/redhat/varnishlog.initrc ./redhat/varnishlog.initrc

- --- ../varnish-2.1.4/redhat/varnishlog.initrc	2010-10-21 10:57:22.000000000 +0200

- +++ ./redhat/varnishlog.initrc	2010-11-03 15:20:07.664330786 +0100

- @@ -12,6 +12,8 @@

-  # Provides: varnishlog

-  # Required-Start: $network $local_fs $remote_fs

-  # Required-Stop: $network $local_fs $remote_fs

- +# Default-Start:

- +# Default-Stop:

-  # Short-Description: start and stop varnishlog

-  # Description: Varnish HTTP accelerator logging daemon

-  ### END INIT INFO

- diff -Naur ../varnish-2.1.4/redhat/varnishncsa.initrc ./redhat/varnishncsa.initrc

- --- ../varnish-2.1.4/redhat/varnishncsa.initrc	2010-10-21 10:57:22.000000000 +0200

- +++ ./redhat/varnishncsa.initrc	2010-11-03 15:20:07.664330786 +0100

- @@ -12,6 +12,8 @@

-  # Provides: varnishncsa

-  # Required-Start: $network $local_fs $remote_fs

-  # Required-Stop: $network $local_fs $remote_fs

- +# Default-Start:

- +# Default-Stop:

-  # Short-Description: start and stop varnishncsa

-  # Description: Varnish HTTP accelerator logging daemon

-  ### END INIT INFO

@@ -1,11 +0,0 @@ 

- --- bin/varnishd/cache_ban.c.orig	2012-09-18 11:44:55.867165803 +0200

- +++ bin/varnishd/cache_ban.c	2012-09-18 11:45:37.879300620 +0200

- @@ -81,7 +81,7 @@

-  	const void		*arg2_spec;

-  };

-  

- -static VTAILQ_HEAD(banhead_s,ban) ban_head = VTAILQ_HEAD_INITIALIZER(ban_head);

- +static volatile VTAILQ_HEAD(banhead_s,ban) ban_head = VTAILQ_HEAD_INITIALIZER(ban_head);

-  static struct lock ban_mtx;

-  static struct ban *ban_magic;

-  static pthread_t ban_thread;

file removed
-15
@@ -1,15 +0,0 @@ 

- Patch by Robert Scheck <robert@fedoraproject.org> for varnish >= 2.1, which adds the

- missing (former implicit) linking to libm. And as implicit linking can be dangerous,

- this changed, see: http://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking

- 

- --- bin/varnishtest/Makefile.am		2010-03-24 10:44:13.000000000 +0100

- +++ bin/varnishtest/Makefile.am.libm	2010-04-07 22:57:03.000000000 +0200

- @@ -25,7 +25,7 @@

-  		$(top_builddir)/lib/libvarnish/libvarnish.la \

-  		$(top_builddir)/lib/libvarnishcompat/libvarnishcompat.la \

-  		$(top_builddir)/lib/libvarnishapi/libvarnishapi.la \

- -		${PTHREAD_LIBS}

- +		${LIBM} ${PTHREAD_LIBS}

-  

-  EXTRA_DIST = $(top_srcdir)/bin/varnishtest/tests/*.vtc \

-  	$(top_srcdir)/bin/varnishtest/tests/README

@@ -1,170 +0,0 @@ 

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/b00000.vtc ./bin/varnishtest/tests/b00000.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/b00000.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/b00000.vtc	2010-04-30 10:58:57.199838479 +0200

- @@ -9,7 +9,7 @@

-  	txresp -body "012345\n"

-  } -start

-  

- -varnish v1 -arg "-smalloc,1m" -vcl+backend {} -start

- +varnish v1 -storage "-smalloc,1m" -vcl+backend {} -start

-  

-  varnish v1 -cliok "param.set diag_bitmap 0x2"

-  

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00000.vtc ./bin/varnishtest/tests/p00000.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00000.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00000.vtc	2010-04-30 10:58:57.150839765 +0200

- @@ -11,7 +11,8 @@

-  

-  varnish v1 \

-  	-arg "-pdiag_bitmap=0x20000" \

- -	-arg "-spersistent,${tmpdir}/_.per,10m" -vcl+backend { } -start 

- +	-storage "-spersistent,${tmpdir}/_.per,10m" \

- +	-vcl+backend { } -start 

-  

-  varnish v1 -stop

-  

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00001.vtc ./bin/varnishtest/tests/p00001.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00001.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00001.vtc	2010-04-30 11:05:26.478837801 +0200

- @@ -11,7 +11,8 @@

-  

-  varnish v1 \

-  	-arg "-pdiag_bitmap=0x20000" \

- -	-arg "-spersistent,${tmpdir}/_.per,10m" -vcl+backend { } -start 

- +	-storage "-spersistent,${tmpdir}/_.per,10m" \

- +	-vcl+backend { } -start

-  

-  client c1 {

-  	txreq -url "/"

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00002.vtc ./bin/varnishtest/tests/p00002.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00002.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00002.vtc	2010-04-30 10:58:57.151838730 +0200

- @@ -11,8 +11,8 @@

-  

-  varnish v1 \

-  	-arg "-pdiag_bitmap=0x20000" \

- -	-arg "-spersistent,${tmpdir}/_.per1,10m" \

- -	-arg "-spersistent,${tmpdir}/_.per2,10m" \

- +	-storage "-spersistent,${tmpdir}/_.per1,10m" \

- +	-storage "-spersistent,${tmpdir}/_.per2,10m" \

-  	-vcl+backend { } -start 

-  

-  client c1 {

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00003.vtc ./bin/varnishtest/tests/p00003.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00003.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00003.vtc	2010-04-30 11:06:28.054838375 +0200

- @@ -11,7 +11,7 @@

-  

-  varnish v1 \

-  	-arg "-pdiag_bitmap=0x20000" \

- -	-arg "-spersistent,${tmpdir}/_.per,10m" \

- +	-storage "-spersistent,${tmpdir}/_.per,10m" \

-  	-vcl+backend { } -start 

-  

-  varnish v1 -cliok purge.list

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00004.vtc ./bin/varnishtest/tests/p00004.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00004.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00004.vtc	2010-04-30 11:03:35.717837935 +0200

- @@ -13,7 +13,7 @@

-  

-  varnish v1 \

-  	-arg "-pdiag_bitmap=0x20000" \

- -	-arg "-spersistent,${tmpdir}/_.per,10m" \

- +	-storage "-spersistent,${tmpdir}/_.per,10m" \

-  	-vcl+backend { } -start 

-  

-  client c1 {

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00005.vtc ./bin/varnishtest/tests/p00005.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00005.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00005.vtc	2010-04-30 11:06:59.774838225 +0200

- @@ -11,7 +11,7 @@

-  

-  varnish v1 \

-  	-arg "-pdiag_bitmap=0x30000" \

- -	-arg "-spersistent,${tmpdir}/_.per,10m" \

- +	-storage "-spersistent,${tmpdir}/_.per,10m" \

-  	-vcl+backend { 

-  		sub vcl_fetch {

-  			set beresp.ttl = 3s;

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/p00006.vtc ./bin/varnishtest/tests/p00006.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/p00006.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/p00006.vtc	2010-04-30 11:04:20.310962837 +0200

- @@ -13,7 +13,7 @@

-  

-  

-  varnish v1 \

- -	-arg "-spersistent,${tmpdir}/_.per,10m" \

- +	-storage "-spersistent,${tmpdir}/_.per,10m" \

-  	-vcl+backend { } -start 

-  

-  client c1 {

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/tests/v00010.vtc ./bin/varnishtest/tests/v00010.vtc

- --- ../varnish-2.1.1.orig/bin/varnishtest/tests/v00010.vtc	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/tests/v00010.vtc	2010-04-30 10:58:57.199838479 +0200

- @@ -13,7 +13,7 @@

-  	txresp -hdr "Foo: foo" -body "abcdef\n"

-  } -start

-  

- -varnish v1 -arg "-smalloc,1m" -vcl+backend {

- +varnish v1 -storage "-smalloc,1m" -vcl+backend {

-  

-  	sub vcl_fetch {

-  		if (beresp.http.panic) {

- diff -Naur ../varnish-2.1.1.orig/bin/varnishtest/vtc_varnish.c ./bin/varnishtest/vtc_varnish.c

- --- ../varnish-2.1.1.orig/bin/varnishtest/vtc_varnish.c	2010-04-26 10:50:52.000000000 +0200

- +++ ./bin/varnishtest/vtc_varnish.c	2010-04-30 10:58:57.261838026 +0200

- @@ -33,6 +33,7 @@

-  

-  #include <stdio.h>

-  

- +#include <limits.h>

-  #include <ctype.h>

-  #include <fcntl.h>

-  #include <stdlib.h>

- @@ -68,6 +69,8 @@

-  

-  	struct varnish_stats	*stats;

-  

- +	struct vsb		*storage;

- +

-  	struct vsb		*args;

-  	int			fds[4];

-  	pid_t			pid;

- @@ -171,9 +174,15 @@

-  		vtc_log(v->vl, 0, "Varnish name must start with 'v'");

-  

-  	v->args = vsb_newauto();

- +

- +	v->storage = vsb_newauto();

- +	vsb_printf(v->storage, "-sfile,%s,10M", v->workdir);

- +	vsb_finish(v->storage);

- +

-  	v->cli_fd = -1;

-  	VTAILQ_INSERT_TAIL(&varnishes, v, list);

-  

- +

-  	return (v);

-  }

-  

- @@ -269,6 +278,7 @@

-  	vsb_printf(vsb, " -S %s/_S", v->workdir);

-  	vsb_printf(vsb, " -M %s:%s", abuf, pbuf);

-  	vsb_printf(vsb, " -P %s/varnishd.pid", v->workdir);

- +	vsb_printf(vsb, " %s", vsb_data(v->storage));

-  	vsb_printf(vsb, " %s", vsb_data(v->args));

-  	vsb_finish(vsb);

-  	AZ(vsb_overflowed(vsb));

- @@ -663,6 +673,13 @@

-  	for (; *av != NULL; av++) {

-  		if (vtc_error)

-  			break;

- +		if (!strcmp(*av, "-storage")) {

- +			vsb_clear(v->storage);

- +			vsb_cat(v->storage, av[1]);

- +			vsb_finish(v->storage);

- +			av++;

- +			continue;

- +		}

-  		if (!strcmp(*av, "-arg")) {

-  			AN(av[1]);

-  			AZ(v->pid);

@@ -1,73 +0,0 @@ 

- Index: configure.ac

- ===================================================================

- --- configure.ac	(revision 5691)

- +++ configure.ac	(working copy)

- @@ -39,6 +39,13 @@

-  # Checks for libraries.

-  save_LIBS="${LIBS}"

-  LIBS=""

- +AC_CHECK_LIB(jemalloc, malloc)

- +RT_LIBS="${LIBS}"

- +LIBS="${save_LIBS}"

- +AC_SUBST(RT_LIBS)

- +

- +save_LIBS="${LIBS}"

- +LIBS=""

-  AC_CHECK_LIB(rt, clock_gettime)

-  RT_LIBS="${LIBS}"

-  LIBS="${save_LIBS}"

- @@ -423,25 +430,21 @@

-  AC_DEFINE_UNQUOTED([VCC_CC],"$VCC_CC",[C compiler command line for VCL code])

-  

-  # Use jemalloc on Linux

- -JEMALLOC_SUBDIR=

-  JEMALLOC_LDADD=

-  AC_ARG_ENABLE(jemalloc,

-  AS_HELP_STRING([--disable-jemalloc],[do not use jemalloc (default is yes on Linux, no everywhere else)]),

-  [if test "x$enableval" = "xyes"; then

- -	JEMALLOC_SUBDIR=libjemalloc

- -	JEMALLOC_LDADD='$(top_builddir)/lib/libjemalloc/libjemalloc_mt.la'

- +	JEMALLOC_LDADD='-ljemalloc'

-  fi],

-  [case $target in #(

-  *-*-linux*)

- -	JEMALLOC_SUBDIR=libjemalloc

- -	JEMALLOC_LDADD='$(top_builddir)/lib/libjemalloc/libjemalloc_mt.la'

- +	JEMALLOC_LDADD='-ljemalloc'

-  	;; #(

-  *)

-  	true

-  	;;

-  esac])

-  

- -AC_SUBST(JEMALLOC_SUBDIR)

-  AC_SUBST(JEMALLOC_LDADD)

-  

-  # Generate output

- @@ -467,7 +470,6 @@

-      lib/libvarnishapi/Makefile

-      lib/libvarnishcompat/Makefile

-      lib/libvcl/Makefile

- -    lib/libjemalloc/Makefile

-      man/Makefile

-      redhat/Makefile

-      varnishapi.pc

- Index: lib/Makefile.am

- ===================================================================

- --- lib/Makefile.am	(revision 5691)

- +++ lib/Makefile.am	(working copy)

- @@ -4,12 +4,10 @@

-  	libvarnishcompat \

-  	libvarnish \

-  	libvarnishapi \

- -	libvcl \

- -	@JEMALLOC_SUBDIR@

- +	libvcl 

-  

-  DIST_SUBDIRS = 	\

-  	libvarnishcompat \

-  	libvarnish \

-  	libvarnishapi \

- -	libvcl \

- -	libjemalloc

- +	libvcl 

file removed
-24
@@ -1,24 +0,0 @@ 

- diff -Naur ../varnish-2.0-beta1.orig/redhat/varnish.initrc ./redhat/varnish.initrc

- --- ../varnish-2.0-beta1.orig/redhat/varnish.initrc	2008-08-27 09:45:40.000000000 +0200

- +++ ./redhat/varnish.initrc	2008-08-29 22:52:23.000000000 +0200

- @@ -31,8 +31,6 @@

-  # Include varnish defaults

-  [ -e /etc/sysconfig/varnish ] && . /etc/sysconfig/varnish

-  

- -lockfile=/var/lock/subsys/$prog

- -

-  start() {

-  

-  	if [ ! -x $exec ]

- diff -Naur ../varnish-2.0-beta1.orig/redhat/varnishlog.initrc ./redhat/varnishlog.initrc

- --- ../varnish-2.0-beta1.orig/redhat/varnishlog.initrc	2008-08-27 09:45:40.000000000 +0200

- +++ ./redhat/varnishlog.initrc	2008-08-29 22:53:30.000000000 +0200

- @@ -32,8 +32,6 @@

-  # Include varnish defaults

-  [ -e /etc/sysconfig/varnishlog ] && . /etc/sysconfig/varnishlog

-  

- -lockfile=/var/lock/subsys/$prog

- -

-  start() {

-  

-  	if [ ! -x $exec ]

@@ -1,13 +0,0 @@ 

- --- lib/libvarnish/vre.c.orig	2012-08-28 23:56:02.163515172 +0200

- +++ lib/libvarnish/vre.c	2012-08-28 23:56:18.111315730 +0200

- @@ -40,9 +40,7 @@

-  	pcre_extra		*re_extra;

-  };

-  

- -#ifndef PCRE_STUDY_JIT_COMPILE

- -#define PCRE_STUDY_JIT_COMPILE 0

- -#endif

- +#define PCRE_STUDY_JIT_COMPILE 0

-  

-  /*

-   * We don't want to spread or even expose the majority of PCRE options

@@ -1,11 +0,0 @@ 

- --- bin/varnishtest/tests/c00031.vtc.orig	2010-08-24 12:33:29.062232351 +0200

- +++ bin/varnishtest/tests/c00031.vtc	2010-08-24 12:31:57.804150780 +0200

- @@ -9,7 +9,7 @@

-  	txresp

-  } -start

-  

- -varnish v1 -arg "-p thread_pool_stack=131072" -vcl+backend {} -start

- +varnish v1 -arg "-p thread_pool_stack=262144" -vcl+backend {} -start

-  

-  client c1 {

-  	txreq -url "/"

@@ -1,24 +0,0 @@ 

- diff -Naur ../varnish-2.0-beta2.orig/lib/libjemalloc/jemalloc_linux.c ./lib/libjemalloc/jemalloc_linux.c

- --- ../varnish-2.0-beta2.orig/lib/libjemalloc/jemalloc_linux.c	2008-09-24 20:05:19.000000000 +0200

- +++ ./lib/libjemalloc/jemalloc_linux.c	2008-10-06 14:13:28.950350627 +0200

- @@ -257,7 +257,7 @@

-  #  define NO_TLS

-  #endif

-  #ifdef __powerpc__

- -#  define PAGESIZE_2POW		12

- +#  define PAGESIZE_2POW		16

-  #  define QUANTUM_2POW		4

-  #  define SIZEOF_PTR_2POW	2

-  #endif

- diff -Naur ../varnish-2.0-beta2.orig/lib/libjemalloc/malloc.c ./lib/libjemalloc/malloc.c

- --- ../varnish-2.0-beta2.orig/lib/libjemalloc/malloc.c	2008-09-24 20:05:19.000000000 +0200

- +++ ./lib/libjemalloc/malloc.c	2008-10-06 14:13:42.023005090 +0200

- @@ -261,7 +261,7 @@

-  #  define NO_TLS

-  #endif

-  #ifdef __powerpc__

- -#  define PAGESIZE_2POW		12

- +#  define PAGESIZE_2POW		16

-  #  define QUANTUM_2POW		4

-  #  define SIZEOF_PTR_2POW	2

-  #endif

@@ -1,15 +0,0 @@ 

- diff -Naur ../varnish-2.1.2.orig/lib/libjemalloc/jemalloc_linux.c ./lib/libjemalloc/jemalloc_linux.c

- --- ../varnish-2.1.2.orig/lib/libjemalloc/jemalloc_linux.c	2010-05-05 09:32:02.000000000 +0200

- +++ ./lib/libjemalloc/jemalloc_linux.c	2010-07-29 15:39:00.221232248 +0200

- @@ -273,6 +273,11 @@

-  #  define QUANTUM_2POW		4

-  #  define SIZEOF_PTR_2POW	2

-  #endif

- +#ifdef __s390__

- +#  define PAGESIZE_2POW		12

- +#  define QUANTUM_2POW		4

- +#  define SIZEOF_PTR_2POW	2

- +#endif

-  #ifdef __s390x__

-  #  define PAGESIZE_2POW		12

-  #  define QUANTUM_2POW		4

@@ -1,15 +0,0 @@ 

- diff -Naur ../varnish-2.0.3.orig/lib/libjemalloc/jemalloc_linux.c ./lib/libjemalloc/jemalloc_linux.c

- --- ../varnish-2.0.3.orig/lib/libjemalloc/jemalloc_linux.c	2009-02-12 12:15:24.000000000 +0100

- +++ ./lib/libjemalloc/jemalloc_linux.c	2009-06-04 15:27:34.000000000 +0200

- @@ -272,6 +272,11 @@

-  #  define QUANTUM_2POW		4

-  #  define SIZEOF_PTR_2POW	2

-  #endif

- +#ifdef __s390x__

- +#  define PAGESIZE_2POW		12

- +#  define QUANTUM_2POW		4

- +#  define SIZEOF_PTR_2POW	3

- +#endif

-  

-  #define	QUANTUM			((size_t)(1U << QUANTUM_2POW))

-  #define	QUANTUM_MASK		(QUANTUM - 1)

@@ -1,11 +0,0 @@ 

- --- lib/libjemalloc/jemalloc_linux.c.old	2009-08-14 10:38:53.783906580 +0200

- +++ lib/libjemalloc/jemalloc_linux.c	2009-08-14 10:39:04.215906982 +0200

- @@ -243,7 +243,7 @@

-  #  define SIZEOF_PTR_2POW	3

-  #  define NO_TLS

-  #endif

- -#ifdef __sparc64__

- +#ifdef __sparc__

-  #  define PAGESIZE_2POW		13

-  #  define QUANTUM_2POW		4

-  #  define SIZEOF_PTR_2POW	3

@@ -1,607 +0,0 @@ 

- Index: include/libvarnish.h

- ===================================================================

- --- include/libvarnish.h	(revision 3417)

- +++ include/libvarnish.h	(working copy)

- @@ -63,6 +63,7 @@

-  void TCP_name(const struct sockaddr *addr, unsigned l, char *abuf, unsigned alen, char *pbuf, unsigned plen);

-  int TCP_connect(int s, const struct sockaddr *name, socklen_t namelen, int msec);

-  void TCP_close(int *s);

- +void TCP_set_read_timeout(int socket, double seconds);

-  #endif

-  

-  /* from libvarnish/time.c */

- Index: include/vrt_obj.h

- ===================================================================

- --- include/vrt_obj.h	(revision 3417)

- +++ include/vrt_obj.h	(working copy)

- @@ -28,6 +28,12 @@

-  void VRT_l_bereq_url(const struct sess *, const char *, ...);

-  const char * VRT_r_bereq_proto(const struct sess *);

-  void VRT_l_bereq_proto(const struct sess *, const char *, ...);

- +double VRT_r_bereq_connect_timeout(struct sess *);

- +void VRT_l_bereq_connect_timeout(struct sess *, double);

- +double VRT_r_bereq_first_byte_timeout(struct sess *);

- +void VRT_l_bereq_first_byte_timeout(struct sess *, double);

- +double VRT_r_bereq_between_bytes_timeout(struct sess *);

- +void VRT_l_bereq_between_bytes_timeout(struct sess *, double);

-  const char * VRT_r_obj_proto(const struct sess *);

-  void VRT_l_obj_proto(const struct sess *, const char *, ...);

-  int VRT_r_obj_status(const struct sess *);

- Index: include/vrt.h

- ===================================================================

- --- include/vrt.h	(revision 3417)

- +++ include/vrt.h	(working copy)

- @@ -69,6 +69,8 @@

-  	const unsigned char		*ipv6_sockaddr;

-  

-  	double				connect_timeout;

- +	double				first_byte_timeout;

- +	double				between_bytes_timeout;

-  	unsigned			max_connections;

-  	struct vrt_backend_probe 	probe;

-  };

- Index: lib/libvarnish/tcp.c

- ===================================================================

- --- lib/libvarnish/tcp.c	(revision 3417)

- +++ lib/libvarnish/tcp.c	(working copy)

- @@ -47,6 +47,7 @@

-  #include <stdlib.h>

-  #include <string.h>

-  #include <unistd.h>

- +#include <math.h>

-  

-  #include "config.h"

-  #ifndef HAVE_STRLCPY

- @@ -209,3 +210,16 @@

-  	    errno == ENOTCONN);

-  	*s = -1;

-  }

- +

- +

- +void

- +TCP_set_read_timeout(int s, double seconds)

- +{

- +	struct timeval timeout;

- +	timeout.tv_sec = floor(seconds);

- +	timeout.tv_usec = 1e6 * (seconds - timeout.tv_sec);

- +#ifdef SO_RCVTIMEO_WORKS

- +	AZ(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout));

- +#endif

- +}

- +

- Index: lib/libvcl/vcc_gen_obj.tcl

- ===================================================================

- --- lib/libvcl/vcc_gen_obj.tcl	(revision 3417)

- +++ lib/libvcl/vcc_gen_obj.tcl	(working copy)

- @@ -127,6 +127,22 @@

-  	{     pipe pass      miss     fetch                        }

-  	"const struct sess *"

-      }

- +    { bereq.connect_timeout

- +	RW TIME

- +	{     pass      miss     }

- +	"struct sess *"

- +    }

- +    { bereq.first_byte_timeout

- +	RW TIME

- +	{     pass      miss     }

- +	"struct sess *"

- +    }

- +    { bereq.between_bytes_timeout

- +	RW TIME

- +	{     pass      miss     }

- +	"struct sess *"

- +    }

- + 

-  

-      # The (possibly) cached object

-      { obj.proto

- Index: lib/libvcl/vcc_obj.c

- ===================================================================

- --- lib/libvcl/vcc_obj.c	(revision 3417)

- +++ lib/libvcl/vcc_obj.c	(working copy)

- @@ -123,6 +123,27 @@

-  	    "HDR_BEREQ",

-  	    VCL_MET_PIPE | VCL_MET_PASS | VCL_MET_MISS | VCL_MET_FETCH

-  	},

- +	{ "bereq.connect_timeout", TIME, 21,

- +	    "VRT_r_bereq_connect_timeout(sp)",

- +	    "VRT_l_bereq_connect_timeout(sp, ",

- +	    V_RW,

- +	    0,

- +	    VCL_MET_PASS | VCL_MET_MISS

- +	},

- +	{ "bereq.first_byte_timeout", TIME, 24,

- +	    "VRT_r_bereq_first_byte_timeout(sp)",

- +	    "VRT_l_bereq_first_byte_timeout(sp, ",

- +	    V_RW,

- +	    0,

- +	    VCL_MET_PASS | VCL_MET_MISS

- +	},

- +	{ "bereq.between_bytes_timeout", TIME, 27,

- +	    "VRT_r_bereq_between_bytes_timeout(sp)",

- +	    "VRT_l_bereq_between_bytes_timeout(sp, ",

- +	    V_RW,

- +	    0,

- +	    VCL_MET_PASS | VCL_MET_MISS

- +	},

-  	{ "obj.proto", STRING, 9,

-  	    "VRT_r_obj_proto(sp)",

-  	    "VRT_l_obj_proto(sp, ",

- Index: lib/libvcl/vcc_backend.c

- ===================================================================

- --- lib/libvcl/vcc_backend.c	(revision 3417)

- +++ lib/libvcl/vcc_backend.c	(working copy)

- @@ -481,6 +481,8 @@

-  	    "?port",

-  	    "?host_header",

-  	    "?connect_timeout",

- +	    "?first_byte_timeout",

- +	    "?between_bytes_timeout",

-  	    "?probe",

-  	    "?max_connections",

-  	    NULL);

- @@ -545,6 +547,20 @@

-  			Fb(tl, 0, ",\n");

-  			ExpectErr(tl, ';');

-  			vcc_NextToken(tl);

- +		} else if (vcc_IdIs(t_field, "first_byte_timeout")) {

- +			Fb(tl, 0, "\t.first_byte_timeout = ");

- +			vcc_TimeVal(tl);

- +			ERRCHK(tl);

- +			Fb(tl, 0, ",\n");

- +			ExpectErr(tl, ';');

- +			vcc_NextToken(tl);

- +		} else if (vcc_IdIs(t_field, "between_bytes_timeout")) {

- +			Fb(tl, 0, "\t.between_bytes_timeout = ");

- +			vcc_TimeVal(tl);

- +			ERRCHK(tl);

- +			Fb(tl, 0, ",\n");

- +			ExpectErr(tl, ';');

- +			vcc_NextToken(tl);

-  		} else if (vcc_IdIs(t_field, "max_connections")) {

-  			u = vcc_UintVal(tl);

-  			vcc_NextToken(tl);

- Index: lib/libvcl/vcc_fixed_token.c

- ===================================================================

- --- lib/libvcl/vcc_fixed_token.c	(revision 3417)

- +++ lib/libvcl/vcc_fixed_token.c	(working copy)

- @@ -349,6 +349,8 @@

-  	vsb_cat(sb, "	const unsigned char		*ipv6_sockaddr;\n");

-  	vsb_cat(sb, "\n");

-  	vsb_cat(sb, "	double				connect_timeout;\n");

- +	vsb_cat(sb, "	double				first_byte_timeout;\n");

- +	vsb_cat(sb, "	double				between_bytes_timeout;\n");

-  	vsb_cat(sb, "	unsigned			max_connections;\n");

-  	vsb_cat(sb, "	struct vrt_backend_probe 	probe;\n");

-  	vsb_cat(sb, "};\n");

- @@ -488,6 +490,12 @@

-  	vsb_cat(sb, "void VRT_l_bereq_url(const struct sess *, const char *, ...);\n");

-  	vsb_cat(sb, "const char * VRT_r_bereq_proto(const struct sess *);\n");

-  	vsb_cat(sb, "void VRT_l_bereq_proto(const struct sess *, const char *, ...);\n");

- +	vsb_cat(sb, "double VRT_r_bereq_connect_timeout(struct sess *);\n");

- +	vsb_cat(sb, "void VRT_l_bereq_connect_timeout(struct sess *, double);\n");

- +	vsb_cat(sb, "double VRT_r_bereq_first_byte_timeout(struct sess *);\n");

- +	vsb_cat(sb, "void VRT_l_bereq_first_byte_timeout(struct sess *, double);\n");

- +	vsb_cat(sb, "double VRT_r_bereq_between_bytes_timeout(struct sess *);\n");

- +	vsb_cat(sb, "void VRT_l_bereq_between_bytes_timeout(struct sess *, double);\n");

-  	vsb_cat(sb, "const char * VRT_r_obj_proto(const struct sess *);\n");

-  	vsb_cat(sb, "void VRT_l_obj_proto(const struct sess *, const char *, ...);\n");

-  	vsb_cat(sb, "int VRT_r_obj_status(const struct sess *);\n");

- Index: bin/varnishd/mgt_param.c

- ===================================================================

- --- bin/varnishd/mgt_param.c	(revision 3417)

- +++ bin/varnishd/mgt_param.c	(working copy)

- @@ -98,6 +98,24 @@

-  		cli_out(cli, "%u", *dst);

-  }

-  

- +static void

- +tweak_generic_timeout_double(struct cli *cli, volatile double *dst, const char *arg)

- +{

- +	double u;

- +

- +	if (arg != NULL) {

- +		u = strtod(arg, NULL);

- +		if (u < 0) {

- +			cli_out(cli, "Timeout must be greater or equal to zero\n");

- +			cli_result(cli, CLIS_PARAM);

- +			return;

- +		}

- +		*dst = u;

- +	} else

- +		cli_out(cli, "%f", *dst);

- +}

- +

- +

-  /*--------------------------------------------------------------------*/

-  

-  static void

- @@ -109,7 +127,15 @@

-  	tweak_generic_timeout(cli, dest, arg);

-  }

-  

- +static void

- +tweak_timeout_double(struct cli *cli, const struct parspec *par, const char *arg)

- +{

- +	volatile double *dest;

-  

- +	dest = par->priv;

- +	tweak_generic_timeout_double(cli, dest, arg);

- +}

- +

-  /*--------------------------------------------------------------------*/

-  

-  static void

- @@ -739,14 +765,33 @@

-  		"Cache vbe_conn's or rely on malloc, that's the question.",

-  		EXPERIMENTAL,

-  		"off", "bool" },

- -	{ "connect_timeout", tweak_uint,

- +	{ "connect_timeout", tweak_timeout_double,

-  		&master.connect_timeout,0, UINT_MAX,

- -		"Default connection timeout for backend connections.  "

- +		"Default connection timeout for backend connections. "

-  		"We only try to connect to the backend for this many "

- -		"milliseconds before giving up.  "

- -		"VCL can override this default value for each backend.",

- +		"seconds before giving up. "

- +		"VCL can override this default value for each backend "

- +		"and backend request.",

-  		0,

- -		"400", "ms" },

- +		"0.4", "s" },

- +	{ "first_byte_timeout", tweak_timeout_double,

- +		&master.first_byte_timeout,0, UINT_MAX,

- +		"Default timeout for receiving first byte from backend. "

- +		"We only wait for this many seconds for the first "

- +		"byte before giving up. A value of 0 means it will never time out. "

- +		"VCL can override this default value for each backend  and"

- +		"backend request. This parameter does not apply to pipe.",

- +		0,

- +		"60", "s" },

- +	{ "between_bytes_timeout", tweak_timeout_double,

- +		&master.between_bytes_timeout,0, UINT_MAX,

- +		"Default timeout between bytes when receiving data from backend. "

- +		"We only wait for this many seconds between bytes "

- +		"before giving up. A value of 0 means it will never time out. "

- +		"VCL can override this default value for each backend and "

- +		"backend request. This parameter does not apply to pipe.",

- +		0,

- +		"60", "s" },

-  	{ "accept_fd_holdoff", tweak_timeout,

-  		&master.accept_fd_holdoff, 0,  3600*1000,

-  		"If we run out of file descriptors, the accept thread will "

- Index: bin/varnishd/cache_backend_cfg.c

- ===================================================================

- --- bin/varnishd/cache_backend_cfg.c	(revision 3417)

- +++ bin/varnishd/cache_backend_cfg.c	(working copy)

- @@ -222,6 +222,8 @@

-  	REPLACE(b->hosthdr, vb->hosthdr);

-  

-  	b->connect_timeout = vb->connect_timeout;

- +	b->first_byte_timeout = vb->first_byte_timeout;

- +	b->between_bytes_timeout = vb->between_bytes_timeout;

-  	b->max_conn = vb->max_connections;

-  

-  	/*

- Index: bin/varnishd/varnishd.1

- ===================================================================

- --- bin/varnishd/varnishd.1	(revision 3417)

- +++ bin/varnishd/varnishd.1	(working copy)

- @@ -387,6 +387,15 @@

-  .Pp

-  The default is

-  .Dv off .

- +.It Va between_bytes_timeout

- +Default timeout between bytes when receiving data from backend.

- +We only wait for this many seconds between bytes before giving up.

- +A value of 0 means it will never time out.

- +VCL can override this default value for each backend and backend request.

- +This parameter does not apply to pipe.

- +.Pp

- +The default is

- +.Dv 60 seconds

-  .It Va client_http11

-  Whether to force the use of HTTP/1.1 when responding to client

-  requests, or just use the same protocol version as that used by the

- @@ -394,6 +403,13 @@

-  .Pp

-  The default is

-  .Dv off .

- +.It Va connect_timeout

- +Default connection timeout for backend connections.

- +We only try to connect to the backend for this many seconds before giving up.

- +VCL can override this default value for each backend and backend request.

- +.Pp

- +The default is

- +.Dv 0.4 seconds

-  .It Va default_ttl

-  The default time-to-live assigned to objects if neither the backend

-  nor the configuration assign one.

- @@ -409,6 +425,15 @@

-  backend server does not specify a content length.

-  .Pp

-  The default is 128 kilobytes.

- +.It Va first_byte_timeout

- +Default timeout for receiving first byte from backend.

- +We only wait for this many seconds for the first byte before giving up.

- +A value of 0 means it will never time out.

- +VCL can override this default value for each backend and backend request.

- +This parameter does not apply to pipe.

- +.Pp

- +The default is

- +.Dv 60 seconds

-  .It Va group

-  The name of an unprivileged group to which the child process should

-  switch before it starts accepting connections.

- Index: bin/varnishd/cache_backend.c

- ===================================================================

- --- bin/varnishd/cache_backend.c	(revision 3417)

- +++ bin/varnishd/cache_backend.c	(working copy)

- @@ -94,7 +94,7 @@

-  	if (s < 0) 

-  		return (s);

-  

- -	tmo = params->connect_timeout;

- +	tmo = (int)(sp->connect_timeout * 1000);

-  	if (bp->connect_timeout > 10e-3)

-  		tmo = (int)(bp->connect_timeout * 1000);

-  

- Index: bin/varnishd/cache_fetch.c

- ===================================================================

- --- bin/varnishd/cache_fetch.c	(revision 3417)

- +++ bin/varnishd/cache_fetch.c	(working copy)

- @@ -336,6 +336,8 @@

-  	if (sp->vbe == NULL)

-  		return (__LINE__);

-  	vc = sp->vbe;

- +	/* Inherit the backend timeouts from the selected backend */

- +	SES_InheritBackendTimeouts(sp);

-  

-  	/*

-  	 * Now that we know our backend, we can set a default Host:

- @@ -369,8 +371,12 @@

-  	VSL_stats->backend_req++;

-  

-  	HTC_Init(htc, bereq->ws, vc->fd);

- -	do

- -		i = HTC_Rx(htc);

- +	TCP_set_read_timeout(vc->fd, sp->first_byte_timeout);

- +	do {

- + 		i = HTC_Rx(htc);

- +		TCP_set_read_timeout(vc->fd, sp->between_bytes_timeout);

- +	}

- +

-  	while (i == 0);

-  

-  	if (i < 0) {

- Index: bin/varnishd/cache_backend.h

- ===================================================================

- --- bin/varnishd/cache_backend.h	(revision 3417)

- +++ bin/varnishd/cache_backend.h	(working copy)

- @@ -104,6 +104,8 @@

-  	char			*ident;

-  	char			*vcl_name;

-  	double			connect_timeout;

- +	double			first_byte_timeout;

- +	double			between_bytes_timeout;

-  

-  	uint32_t		hash;

-  

- Index: bin/varnishd/cache_vrt.c

- ===================================================================

- --- bin/varnishd/cache_vrt.c	(revision 3417)

- +++ bin/varnishd/cache_vrt.c	(working copy)

- @@ -288,6 +288,49 @@

-  	return (atoi(sp->http->hd[HTTP_HDR_STATUS].b));

-  }

-  

- +void

- +VRT_l_bereq_connect_timeout(struct sess *sp, double num)

- +{

- +	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

- +	sp->connect_timeout = (num > 0 ? num : 0);

- +}

- +

- +double

- +VRT_r_bereq_connect_timeout(struct sess *sp)

- +{

- +	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

- +	return sp->connect_timeout;

- +}

- +

- +void

- +VRT_l_bereq_first_byte_timeout(struct sess *sp, double num)

- +{

- +	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

- +	sp->first_byte_timeout = (num > 0 ? num : 0);

- +}

- +

- +double

- +VRT_r_bereq_first_byte_timeout(struct sess *sp)

- +{

- +	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

- +	return sp->first_byte_timeout;

- +}

- +

- +void

- +VRT_l_bereq_between_bytes_timeout(struct sess *sp, double num)

- +{

- +	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

- +	sp->between_bytes_timeout = (num > 0 ? num : 0);

- +}

- +

- +double

- +VRT_r_bereq_between_bytes_timeout(struct sess *sp)

- +{

- +	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);

- +	return sp->between_bytes_timeout;

- +}

- +

- +

-  /*--------------------------------------------------------------------*/

-  

-  void

- Index: bin/varnishd/cache_center.c

- ===================================================================

- --- bin/varnishd/cache_center.c	(revision 3417)

- +++ bin/varnishd/cache_center.c	(working copy)

- @@ -851,6 +851,8 @@

-  	CHECK_OBJ_NOTNULL(sp->vcl, VCL_CONF_MAGIC);

-  	AZ(sp->obj);

-  

- +	SES_ResetBackendTimeouts(sp);

- +

-  	/* By default we use the first backend */

-  	AZ(sp->director);

-  	sp->director = sp->vcl->director[0];

- Index: bin/varnishd/cache_session.c

- ===================================================================

- --- bin/varnishd/cache_session.c	(revision 3417)

- +++ bin/varnishd/cache_session.c	(working copy)

- @@ -58,6 +58,7 @@

-  

-  #include "shmlog.h"

-  #include "cache.h"

- +#include "cache_backend.h"

-  

-  /*--------------------------------------------------------------------*/

-  

- @@ -316,6 +317,8 @@

-  	sp->http = &sm->http[0];

-  	sp->http0 = &sm->http[1];

-  

- +	SES_ResetBackendTimeouts(sp);

- +

-  	return (sp);

-  }

-  

- @@ -367,3 +370,37 @@

-  	MTX_INIT(&stat_mtx);

-  	MTX_INIT(&ses_mem_mtx);

-  }

- +

- +void

- +SES_ResetBackendTimeouts(struct sess *sp)

- +{

- +	sp->connect_timeout = params->connect_timeout;

- +	sp->first_byte_timeout = params->first_byte_timeout;

- +	sp->between_bytes_timeout = params->between_bytes_timeout;

- +}

- +

- +void

- +SES_InheritBackendTimeouts(struct sess *sp)

- +{

- +	struct backend *be = NULL;

- +

- +	AN(sp);

- +	AN(sp->vbe);

- +	AN(sp->vbe->backend);

- +

- +	be = sp->vbe->backend;

- +	/* 

- +	 * We only inherit the backend's timeout if the session timeout

- +	 * has not already been set in the VCL, as the order of precedence

- +	 * is parameter < backend definition < VCL.

- +	 */

- +	if (be->connect_timeout > 1e-3 && 

- +			sp->connect_timeout == params->connect_timeout)

- +		sp->connect_timeout = be->connect_timeout;

- +	if (be->first_byte_timeout > 1e-3 && 

- +			sp->first_byte_timeout == params->first_byte_timeout)

- +		sp->first_byte_timeout = be->first_byte_timeout;

- +	if (be->between_bytes_timeout > 1e-3 

- +			&& sp->between_bytes_timeout == params->between_bytes_timeout)

- +		sp->between_bytes_timeout = be->between_bytes_timeout;

- +}

- Index: bin/varnishd/cache.h

- ===================================================================

- --- bin/varnishd/cache.h	(revision 3417)

- +++ bin/varnishd/cache.h	(working copy)

- @@ -344,6 +344,12 @@

-  	double			t_resp;

-  	double			t_end;

-  

- +	/* Timeouts */

- +	double connect_timeout;

- +	double first_byte_timeout;

- +	double between_bytes_timeout;

- + 

- +

-  	/* Acceptable grace period */

-  	double			grace;

-  

- @@ -529,6 +535,8 @@

-  void SES_Delete(struct sess *sp);

-  void SES_RefSrcAddr(struct sess *sp);

-  void SES_Charge(struct sess *sp);

- +void SES_ResetBackendTimeouts(struct sess *sp);

- +void SES_InheritBackendTimeouts(struct sess *sp);

-  

-  /* cache_shmlog.c */

-  void VSL_Init(void);

- Index: bin/varnishd/heritage.h

- ===================================================================

- --- bin/varnishd/heritage.h	(revision 3417)

- +++ bin/varnishd/heritage.h	(working copy)

- @@ -154,8 +154,12 @@

-  	unsigned		cache_vbe_conns;

-  

-  	/* Default connection_timeout */

- -	unsigned		connect_timeout;

- +	double			connect_timeout;

-  

- +	/* Read timeouts for backend */

- +	double			first_byte_timeout;

- +	double	 		between_bytes_timeout;

- +

-  	/* How long to linger on sessions */

-  	unsigned		session_linger;

-  

- Index: man/vcl.7so

- ===================================================================

- --- man/vcl.7so	(revision 3417)

- +++ man/vcl.7so	(working copy)

- @@ -92,6 +92,26 @@

-      set req.backend = www;

-  }

-  .Ed

- +.Pp

- +The timeout parameters can be overridden in the backend declaration.

- +The timeout parameters are

- +.Fa .connect_timeout

- +for the time to wait for a backend connection,

- +.Fa .first_byte_timeout

- +for the time to wait for the first byte from the backend and

- +.Fa .between_bytes_timeout

- +for time to wait between each received byte.

- +.Pp

- +These can be set in the declaration like this:

- +.Bd -literal -offset 4n

- +backend www {

- +    .host = "www.example.com";

- +    .port = "http";

- +    .connect_timeout = 1s;

- +    .first_byte_timeout = 5s;

- +    .between_bytes_timeout = 2s;

- +}

- +.Ed

-  .Ss Directors

-  Directors choose from different backends based on health status and a

-  per-director algorithm.

- @@ -484,6 +504,14 @@

-  .It Va req.http. Ns Ar header

-  The corresponding HTTP

-  .Ar header .

- +.It Va bereq.connect_timeout

- +The time in seconds to wait for a backend connection.

- +.It Va bereq.first_byte_timeout

- +The time in seconds to wait for the first byte from the backend.

- +Not available in pipe mode.

- +.It Va bereq.between_bytes_timeout

- +The time in seconds to wait between each received byte from the backend.

- +Not available in pipe mode.

-  .El

-  .Pp

-  The following variables are available while preparing a backend

file removed
-13
@@ -1,13 +0,0 @@ 

- Index: bin/varnishtest/tests/v00002.vtc

- ===================================================================

- --- bin/varnishtest/tests/v00002.vtc	(revision 4730)

- +++ bin/varnishtest/tests/v00002.vtc	(revision 4731)

- @@ -114,7 +114,7 @@

-  

-  varnish v1 -badvcl {

-  	/* too many IP numbers */

- -	backend b1 { .host = "cnn.com"; }

- +	backend b1 { .host = "v00002.freebsd.dk"; }

-  }

-  

-  varnish v1 -badvcl {

@@ -1,23 +0,0 @@ 

- diff -Naur ../varnish-2.0.2.orig/bin/varnishtest/Makefile.am ./bin/varnishtest/Makefile.am

- --- ../varnish-2.0.2.orig/bin/varnishtest/Makefile.am	2008-11-14 13:24:08.000000000 +0100

- +++ ./bin/varnishtest/Makefile.am	2008-11-17 13:40:05.964237951 +0100

- @@ -1,6 +1,6 @@

-  # $Id: Makefile.am 3374 2008-11-10 10:12:28Z tfheen $

-  

- -TESTS_ENVIRONMENT = ./varnishtest

- +TESTS_ENVIRONMENT = ./varnishtest -v

-  TESTS = $(srcdir)/tests/*.vtc

-  

-  DISTCLEANFILES = _.ok

- diff -Naur ../varnish-2.0.2.orig/bin/varnishtest/Makefile.in ./bin/varnishtest/Makefile.in

- --- ../varnish-2.0.2.orig/bin/varnishtest/Makefile.in	2008-11-14 13:59:33.000000000 +0100

- +++ ./bin/varnishtest/Makefile.in	2008-11-17 13:40:51.503384938 +0100

- @@ -204,7 +204,7 @@

-  top_builddir = @top_builddir@

-  top_srcdir = @top_srcdir@

-  varnishconfdir = @varnishconfdir@

- -TESTS_ENVIRONMENT = ./varnishtest

- +TESTS_ENVIRONMENT = ./varnishtest -v

-  TESTS = $(srcdir)/tests/*.vtc

-  DISTCLEANFILES = _.ok

-  INCLUDES = -I$(top_srcdir)/include

@@ -1,781 +0,0 @@ 

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/Makefile.in bin/varnishtest/Makefile.in

- --- ../varnish-2.0-rc1/bin/varnishtest/Makefile.in	2008-10-08 13:39:45.000000000 +0200

- +++ bin/varnishtest/Makefile.in	2008-10-09 20:05:13.000000000 +0200

- @@ -96,7 +96,6 @@

-  DEFS = @DEFS@

-  DEPDIR = @DEPDIR@

-  DL_LIBS = @DL_LIBS@

- -DSYMUTIL = @DSYMUTIL@

-  ECHO = @ECHO@

-  ECHO_C = @ECHO_C@

-  ECHO_N = @ECHO_N@

- @@ -123,7 +122,6 @@

-  MAKEINFO = @MAKEINFO@

-  MKDIR_P = @MKDIR_P@

-  NET_LIBS = @NET_LIBS@

- -NMEDIT = @NMEDIT@

-  OBJEXT = @OBJEXT@

-  PACKAGE = @PACKAGE@

-  PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/tests/a00008.vtc bin/varnishtest/tests/a00008.vtc

- --- ../varnish-2.0-rc1/bin/varnishtest/tests/a00008.vtc	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/tests/a00008.vtc	2008-10-09 13:49:15.000000000 +0200

- @@ -1,4 +1,4 @@

- -# $Id: a00008.vtc 3012 2008-07-24 12:22:35Z des $

- +# $Id: a00008.vtc 3272 2008-10-09 11:39:24Z phk $

-  

-  test "Sema operations"

-  

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc.c bin/varnishtest/vtc.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc.c 3243 2008-10-05 10:22:21Z phk $

- + * $Id: vtc.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  #include <stdio.h>

- @@ -41,7 +41,8 @@

-  #define		MAX_FILESIZE		(1024 * 1024)

-  #define		MAX_TOKENS		100

-  

- -static struct vtclog	*vl;

- +const char	*vtc_file;

- +char		*vtc_desc;

-  

-  /**********************************************************************

-   * Read a file into memory

- @@ -80,7 +81,7 @@

-   */

-  

-  void

- -parse_string(char *buf, const struct cmds *cmd, void *priv)

- +parse_string(char *buf, const struct cmds *cmd, void *priv, struct vtclog *vl)

-  {

-  	char *token_s[MAX_TOKENS], *token_e[MAX_TOKENS];

-  	char *p, *q;

- @@ -183,7 +184,7 @@

-  		}

-  	

-  		assert(cp->cmd != NULL);

- -		cp->cmd(token_s, priv, cmd);

- +		cp->cmd(token_s, priv, cmd, vl);

-  	}

-  }

-  

- @@ -196,7 +197,7 @@

-  {

-  

-  	for (; cmd->name != NULL; cmd++)

- -		cmd->cmd(NULL, NULL, NULL);

- +		cmd->cmd(NULL, NULL, NULL, NULL);

-  }

-  

-  /**********************************************************************

- @@ -209,6 +210,7 @@

-  

-  	(void)priv;

-  	(void)cmd;

- +	(void)vl;

-  

-  	if (av == NULL)

-  		return;

- @@ -216,6 +218,7 @@

-  

-  	printf("#    TEST %s\n", av[1]);

-  	AZ(av[2]);

- +	vtc_desc = strdup(av[1]);

-  }

-  

-  /**********************************************************************

- @@ -270,6 +273,7 @@

-  {

-  

-  	(void)cmd;

- +	(void)vl;

-  	if (av == NULL)

-  		return;

-  	printf("cmd_dump(%p)\n", priv);

- @@ -293,16 +297,20 @@

-  };

-  

-  static void

- -exec_file(const char *fn)

- +exec_file(const char *fn, struct vtclog *vl)

-  {

-  	char *buf;

-  

- -	printf("#    TEST %s starting\n", fn);

- +	vtc_file = fn;

- +	vtc_desc = NULL;

- +	vtc_log(vl, 1, "TEST %s starting", fn);

-  	buf = read_file(fn);

- -	parse_string(buf, cmds, NULL);

- -	printf("#    RESETTING after %s\n", fn);

- +	parse_string(buf, cmds, NULL, vl);

- +	vtc_log(vl, 1, "RESETTING after %s", fn);

-  	reset_cmds(cmds);

- -	printf("#    TEST %s completed\n", fn);

- +	vtc_log(vl, 1, "TEST %s completed", fn);

- +	vtc_file = NULL;

- +	free(vtc_desc);

-  }

-  

-  /**********************************************************************

- @@ -325,10 +333,11 @@

-  {

-  	int ch;

-  	FILE *fok;

- +	static struct vtclog	*vl;

-  

-  	setbuf(stdout, NULL);

-  	setbuf(stderr, NULL);

- -	vl = vtc_logopen("");

- +	vl = vtc_logopen("top");

-  	AN(vl);

-  	while ((ch = getopt(argc, argv, "qv")) != -1) {

-  		switch (ch) {

- @@ -350,7 +359,7 @@

-  

-  	init_sema();

-  	for (ch = 0; ch < argc; ch++)

- -		exec_file(argv[ch]);

- +		exec_file(argv[ch], vl);

-  	fok = fopen("_.ok", "w");

-  	if (fok != NULL)

-  		fclose(fok);

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc_client.c bin/varnishtest/vtc_client.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc_client.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc_client.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc_client.c 3127 2008-08-26 07:51:12Z phk $

- + * $Id: vtc_client.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  #include <stdio.h>

- @@ -51,7 +51,7 @@

-  

-  	char			*spec;

-  	

- -	const char		*connect;

- +	char			*connect;

-  

-  	pthread_t		tp;

-  };

- @@ -98,26 +98,42 @@

-   */

-  

-  static struct client *

- -client_new(char *name)

- +client_new(const char *name)

-  {

-  	struct client *c;

-  

- +	AN(name);

-  	ALLOC_OBJ(c, CLIENT_MAGIC);

-  	AN(c);

- -	c->name = name;

- +	REPLACE(c->name, name);

-  	c->vl = vtc_logopen(name);

-  	AN(c->vl);

- -	if (*name != 'c') {

- +	if (*c->name != 'c')

-  		vtc_log(c->vl, 0, "Client name must start with 'c'");

- -		exit (1);

- -	}

-  

- -	c->connect = "127.0.0.1:9081";

- +	REPLACE(c->connect, "127.0.0.1:9081");

-  	VTAILQ_INSERT_TAIL(&clients, c, list);

-  	return (c);

-  }

-  

-  /**********************************************************************

- + * Clean up client

- + */

- +

- +static void

- +client_delete(struct client *c)

- +{

- +

- +	CHECK_OBJ_NOTNULL(c, CLIENT_MAGIC);

- +	vtc_logclose(c->vl);

- +	free(c->spec);

- +	free(c->name);

- +	free(c->connect);

- +	/* XXX: MEMLEAK (?)*/

- +	FREE_OBJ(c);

- +}

- +

- +/**********************************************************************

-   * Start the client thread

-   */

-  

- @@ -173,6 +189,7 @@

-  

-  	(void)priv;

-  	(void)cmd;

- +	(void)vl;

-  

-  	if (av == NULL) {

-  		/* Reset and free */

- @@ -180,8 +197,7 @@

-  			VTAILQ_REMOVE(&clients, c, list);

-  			if (c->tp != 0)

-  				client_wait(c);

- -			FREE_OBJ(c);

- -			/* XXX: MEMLEAK */

- +			client_delete(c);

-  		}

-  		return;

-  	}

- @@ -198,7 +214,7 @@

-  

-  	for (; *av != NULL; av++) {

-  		if (!strcmp(*av, "-connect")) {

- -			c->connect = av[1];

- +			REPLACE(c->connect, av[1]);

-  			av++;

-  			continue;

-  		}

- @@ -218,6 +234,6 @@

-  			vtc_log(c->vl, 0, "Unknown client argument: %s", *av);

-  			exit (1);

-  		}

- -		c->spec = *av;

- +		REPLACE(c->spec, *av);

-  	}

-  }

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc.h bin/varnishtest/vtc.h

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc.h	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc.h	2008-10-09 13:49:15.000000000 +0200

- @@ -23,14 +23,14 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   * 

- - * $Id: vtc.h 3244 2008-10-05 10:22:53Z phk $

- + * $Id: vtc.h 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  struct vsb;

-  struct vtclog;

-  struct cmds;

-  

- -#define CMD_ARGS char * const *av, void *priv, const struct cmds *cmd

- +#define CMD_ARGS char * const *av, void *priv, const struct cmds *cmd, struct vtclog *vl

-  typedef void cmd_f(CMD_ARGS);

-  

-  struct cmds {

- @@ -38,7 +38,7 @@

-  	cmd_f		*cmd;

-  };

-  

- -void parse_string(char *buf, const struct cmds *cmd, void *priv);

- +void parse_string(char *buf, const struct cmds *cmd, void *priv, struct vtclog *vl);

-  

-  cmd_f cmd_dump;

-  cmd_f cmd_delay;

- @@ -47,13 +47,17 @@

-  cmd_f cmd_varnish;

-  cmd_f cmd_sema;

-  

- +extern const char *vtc_file;

- +extern char *vtc_desc;

- +extern int vtc_verbosity;

- +

-  void init_sema(void);

-  

-  void http_process(struct vtclog *vl, const char *spec, int sock, int client);

-  

-  void cmd_server_genvcl(struct vsb *vsb);

-  

- -extern int vtc_verbosity;

-  struct vtclog *vtc_logopen(const char *id);

- +void vtc_logclose(struct vtclog *vl);

-  void vtc_log(struct vtclog *vl, unsigned lvl, const char *fmt, ...);

-  void vtc_dump(struct vtclog *vl, unsigned lvl, const char *pfx, const char *str);

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc_http.c bin/varnishtest/vtc_http.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc_http.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc_http.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc_http.c 3207 2008-09-21 06:47:37Z phk $

- + * $Id: vtc_http.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  

- @@ -70,7 +70,7 @@

-   * Generate a synthetic body

-   */

-  

- -static const char *

- +static char *

-  synth_body(const char *len)

-  {

-  	int i, j, k, l;

- @@ -185,6 +185,7 @@

-  	char *rhs;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	assert(!strcmp(av[0], "expect"));

-  	av++;

- @@ -419,6 +420,7 @@

-  	struct http *hp;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AN(hp->client);

-  	assert(!strcmp(av[0], "rxresp"));

- @@ -445,9 +447,10 @@

-  	const char *proto = "HTTP/1.1";

-  	const char *status = "200";

-  	const char *msg = "Ok";

- -	const char *body = NULL;

- +	char *body = NULL;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AZ(hp->client);

-  	assert(!strcmp(av[0], "txresp"));

- @@ -482,7 +485,7 @@

-  	for(; *av != NULL; av++) {

-  		if (!strcmp(*av, "-body")) {

-  			AZ(body);

- -			body = av[1];

- +			REPLACE(body, av[1]);

-  			av++;

-  		} else if (!strcmp(*av, "-bodylen")) {

-  			AZ(body);

- @@ -515,6 +518,7 @@

-  	struct http *hp;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AZ(hp->client);

-  	assert(!strcmp(av[0], "rxreq"));

- @@ -544,6 +548,7 @@

-  	const char *body = NULL;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AN(hp->client);

-  	assert(!strcmp(av[0], "txreq"));

- @@ -609,6 +614,7 @@

-  	int i;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AN(av[1]);

-  	AZ(av[2]);

- @@ -628,6 +634,7 @@

-  	struct http *hp;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AN(av[1]);

-  	AZ(av[2]);

- @@ -646,6 +653,7 @@

-  	struct http *hp;

-  

-  	(void)cmd;

- +	(void)vl;

-  	CAST_OBJ_NOTNULL(hp, priv, HTTP_MAGIC);

-  	AN(av[1]);

-  	AZ(av[2]);

- @@ -692,7 +700,7 @@

-  	q = strchr(s, '\0');

-  	assert(q > s);

-  	AN(s);

- -	parse_string(s, http_cmds, hp);

- +	parse_string(s, http_cmds, hp, vl);

-  	vsb_delete(hp->vsb);

-  	free(hp->rxbuf);

-  	free(hp);

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc_log.c bin/varnishtest/vtc_log.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc_log.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc_log.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc_log.c 3248 2008-10-05 10:40:46Z phk $

- + * $Id: vtc_log.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  #include <stdio.h>

- @@ -62,6 +62,15 @@

-  	return (vl);

-  }

-  

- +void

- +vtc_logclose(struct vtclog *vl)

- +{

- +

- +	CHECK_OBJ_NOTNULL(vl, VTCLOG_MAGIC);

- +	vsb_delete(vl->vsb);

- +	FREE_OBJ(vl);

- +}

- +

-  static const char *lead[] = {

-  	"----",

-  	"#   ",

- @@ -77,6 +86,7 @@

-  vtc_log(struct vtclog *vl, unsigned lvl, const char *fmt, ...)

-  {

-  

- +	CHECK_OBJ_NOTNULL(vl, VTCLOG_MAGIC);

-  	assert(lvl < NLEAD);

-  	if (lvl > vtc_verbosity)

-  		return;

- @@ -91,8 +101,11 @@

-  	AZ(vsb_overflowed(vl->vsb));

-  	(void)fputs(vsb_data(vl->vsb), stdout);

-  	vsb_clear(vl->vsb);

- -	if (lvl == 0)

- +	if (lvl == 0) {

- +		printf("---- TEST FILE: %s\n", vtc_file);

- +		printf("---- TEST DESCRIPTION: %s\n", vtc_desc);

-  		exit (1);

- +	}

-  }

-  

-  /**********************************************************************

- @@ -105,6 +118,7 @@

-  {

-  	int nl = 1;

-  

- +	CHECK_OBJ_NOTNULL(vl, VTCLOG_MAGIC);

-  	assert(lvl < NLEAD);

-  	if (lvl > vtc_verbosity)

-  		return;

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc_sema.c bin/varnishtest/vtc_sema.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc_sema.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc_sema.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc_sema.c 3012 2008-07-24 12:22:35Z des $

- + * $Id: vtc_sema.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  #include <stdio.h>

- @@ -42,7 +42,6 @@

-  	unsigned		magic;

-  #define SEMA_MAGIC		0x29b64317

-  	char			*name;

- -	struct vtclog		*vl;

-  	VTAILQ_ENTRY(sema)	list;

-  	pthread_mutex_t		mtx;

-  	pthread_cond_t		cond;

- @@ -59,17 +58,15 @@

-   */

-  

-  static struct sema *

- -sema_new(char *name)

- +sema_new(char *name, struct vtclog *vl)

-  {

-  	struct sema *r;

-  

-  	ALLOC_OBJ(r, SEMA_MAGIC);

-  	AN(r);

- -	r->vl = vtc_logopen(name);

- -	AN(r->vl);

-  	r->name = name;

-  	if (*name != 'r')

- -		vtc_log(r->vl, 0, "Sema name must start with 'r'");

- +		vtc_log(vl, 0, "Sema name must start with 'r' (%s)", *name);

-  

-  	AZ(pthread_mutex_init(&r->mtx, NULL));

-  	AZ(pthread_cond_init(&r->cond, NULL));

- @@ -84,24 +81,31 @@

-   */

-  

-  static void

- -sema_sync(struct sema *r, const char *av)

- +sema_sync(struct sema *r, const char *av, struct vtclog *vl)

-  {

-  	unsigned u;

-  

- +	CHECK_OBJ_NOTNULL(r, SEMA_MAGIC);

-  	u = strtoul(av, NULL, 0);

-  

-  	AZ(pthread_mutex_lock(&r->mtx));

-  	if (r->expected == 0)

-  		r->expected = u;

- -	assert(r->expected == u);

- +	if (r->expected != u)

- +		vtc_log(vl, 0,

- +		    "Sema(%s) use error: different expectations (%u vs %u)",

- +		    r->name, r->expected, u);

-  

-  	if (++r->waiters == r->expected) {

- -		vtc_log(r->vl, 4, "Wake %u", r->expected);

- +		vtc_log(vl, 4, "Sema(%s) wake %u", r->name, r->expected);

-  		AZ(pthread_cond_broadcast(&r->cond));

-  		r->waiters = 0;

-  		r->expected = 0;

- -	} else 

- +	} else {

- +		vtc_log(vl, 4, "Sema(%s) wait %u of %u",

- +		    r->name, r->waiters, r->expected);

-  		AZ(pthread_cond_wait(&r->cond, &r->mtx));

- +	}

-  	AZ(pthread_mutex_unlock(&r->mtx));

-  }

-  

- @@ -121,9 +125,10 @@

-  		AZ(pthread_mutex_lock(&sema_mtx));

-  		/* Reset and free */

-  		VTAILQ_FOREACH_SAFE(r, &semas, list, r2) {

- -			VTAILQ_REMOVE(&semas, r, list);

- -			FREE_OBJ(r);

- -			/* XXX: MEMLEAK */

- +			AZ(pthread_mutex_lock(&r->mtx));

- +			AZ(r->waiters);

- +			AZ(r->expected);

- +			AZ(pthread_mutex_unlock(&r->mtx));

-  		}

-  		AZ(pthread_mutex_unlock(&sema_mtx));

-  		return;

- @@ -137,7 +142,7 @@

-  		if (!strcmp(r->name, av[0]))

-  			break;

-  	if (r == NULL) 

- -		r = sema_new(av[0]);

- +		r = sema_new(av[0], vl);

-  	AZ(pthread_mutex_unlock(&sema_mtx));

-  	av++;

-  

- @@ -145,10 +150,10 @@

-  		if (!strcmp(*av, "sync")) {

-  			av++;

-  			AN(*av);

- -			sema_sync(r, *av);

- +			sema_sync(r, *av, vl);

-  			continue;

-  		}

- -		vtc_log(r->vl, 0, "Unknown sema argument: %s", *av);

- +		vtc_log(vl, 0, "Unknown sema argument: %s", *av);

-  	}

-  }

-  

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc_server.c bin/varnishtest/vtc_server.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc_server.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc_server.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc_server.c 3157 2008-09-02 20:20:48Z phk $

- + * $Id: vtc_server.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  

- @@ -57,7 +57,7 @@

-  	

-  	int			depth;

-  	int			sock;

- -	const char		*listen;

- +	char			*listen;

-  	struct vss_addr		**vss_addr;

-  	char			*addr;

-  	char			*port;

- @@ -109,20 +109,20 @@

-   */

-  

-  static struct server *

- -server_new(char *name)

- +server_new(const char *name)

-  {

-  	struct server *s;

-  

- +	AN(name);

-  	ALLOC_OBJ(s, SERVER_MAGIC);

-  	AN(s);

- -	s->name = name;

- +	REPLACE(s->name, name);

-  	s->vl = vtc_logopen(name);

-  	AN(s->vl);

- -	if (*name != 's') {

- +	if (*s->name != 's')

-  		vtc_log(s->vl, 0, "Server name must start with 's'");

- -		exit (1);

- -	}

- -	s->listen = "127.0.0.1:9080";

- +

- +	REPLACE(s->listen, "127.0.0.1:9080");

-  	AZ(VSS_parse(s->listen, &s->addr, &s->port));

-  	s->repeat = 1;

-  	s->depth = 1;

- @@ -132,6 +132,22 @@

-  }

-  

-  /**********************************************************************

- + * Clean up a server

- + */

- +

- +static void

- +server_delete(struct server *s)

- +{

- +

- +	CHECK_OBJ_NOTNULL(s, SERVER_MAGIC);

- +	vtc_logclose(s->vl);

- +	free(s->listen);

- +	free(s->name);

- +	/* XXX: MEMLEAK (?) (VSS ??) */

- +	FREE_OBJ(s);

- +}

- +

- +/**********************************************************************

-   * Start the server thread

-   */

-  

- @@ -211,6 +227,7 @@

-  

-  	(void)priv;

-  	(void)cmd;

- +	(void)vl;

-  

-  	if (av == NULL) {

-  		/* Reset and free */

- @@ -218,8 +235,7 @@

-  			VTAILQ_REMOVE(&servers, s, list);

-  			if (s->sock >= 0) 

-  				server_wait(s);

- -			FREE_OBJ(s);

- -			/* XXX: MEMLEAK */

- +			server_delete(s);

-  		}

-  		return;

-  	}

- @@ -241,7 +257,7 @@

-  			continue;

-  		}

-  		if (!strcmp(*av, "-listen")) {

- -			s->listen = av[1];

- +			REPLACE(s->listen, av[1]);

-  			AZ(VSS_parse(s->listen, &s->addr, &s->port));

-  			av++;

-  			continue;

- diff -Naur ../varnish-2.0-rc1/bin/varnishtest/vtc_varnish.c bin/varnishtest/vtc_varnish.c

- --- ../varnish-2.0-rc1/bin/varnishtest/vtc_varnish.c	2008-10-08 13:18:24.000000000 +0200

- +++ bin/varnishtest/vtc_varnish.c	2008-10-09 13:49:16.000000000 +0200

- @@ -23,7 +23,7 @@

-   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

-   * SUCH DAMAGE.

-   *

- - * $Id: vtc_varnish.c 3242 2008-10-01 08:27:59Z phk $

- + * $Id: vtc_varnish.c 3272 2008-10-09 11:39:24Z phk $

-   */

-  

-  

- @@ -131,21 +131,20 @@

-   */

-  

-  static struct varnish *

- -varnish_new(char *name)

- +varnish_new(const char *name)

-  {

-  	struct varnish *v;

-  

- +	AN(name);

-  	ALLOC_OBJ(v, VARNISH_MAGIC);

-  	AN(v);

- -	v->name = name;

- +	REPLACE(v->name, name);

-  	v->vl = vtc_logopen(name);

-  	AN(v->vl);

-  	v->vl1 = vtc_logopen(name);

-  	AN(v->vl1);

- -	if (*name != 'v') {

- +	if (*v->name != 'v')

-  		vtc_log(v->vl, 0, "Varnish name must start with 'v'");

- -		exit (1);

- -	}

-  

-  	v->args = "";

-  	v->telnet = "127.0.0.1:9001";

- @@ -156,6 +155,21 @@

-  }

-  

-  /**********************************************************************

- + * Delete a varnish instance

- + */

- +

- +static void

- +varnish_delete(struct varnish *v)

- +{

- +

- +	CHECK_OBJ_NOTNULL(v, VARNISH_MAGIC);

- +	vtc_logclose(v->vl);

- +	free(v->name);

- +	/* XXX: MEMLEAK */

- +	FREE_OBJ(v);

- +}

- +

- +/**********************************************************************

-   * Varnish listener

-   */

-  

- @@ -418,8 +432,8 @@

-   */

-  

-  static void

- -varnish_expect(struct varnish *v, char * const *av) {

- -	uint64_t	val, ref;

- +varnish_expect(const struct varnish *v, char * const *av) {

- +	uint64_t val, ref;

-  	int good;

-  	char *p;

-  	int i;

- @@ -428,6 +442,7 @@

-  

-  	for (i = 0; i < 10; i++, usleep(100000)) {

-  

- +

-  #define MAC_STAT(n, t, f, d) 					\

-  		if (!strcmp(av[0], #n)) {			\

-  			val = v->stats->n;			\

- @@ -435,6 +450,7 @@

-  #include "stat_field.h"

-  #undef MAC_STAT

-  		{

- +			val = 0;

-  			vtc_log(v->vl, 0, "stats field %s unknown", av[0]);

-  		}

-  

- @@ -472,6 +488,7 @@

-  

-  	(void)priv;

-  	(void)cmd;

- +	(void)vl;

-  

-  	if (av == NULL) {

-  		/* Reset and free */

- @@ -479,8 +496,7 @@

-  			if (v->cli_fd >= 0)

-  				varnish_wait(v);

-  			VTAILQ_REMOVE(&varnishes, v, list);

- -			FREE_OBJ(v);

- -			/* XXX: MEMLEAK */

- +			varnish_delete(v);

-  		}

-  		return;

-  	}

@@ -1,28 +0,0 @@ 

- diff -Naur ../varnish-2.0-beta1.orig/redhat/README.redhat ./redhat/README.redhat

- --- ../varnish-2.0-beta1.orig/redhat/README.redhat	2008-08-27 09:45:40.000000000 +0200

- +++ ./redhat/README.redhat	2008-09-02 16:14:43.000000000 +0200

- @@ -5,6 +5,24 @@

-  

-  Varnish should work fine with GCC 3.3 and above.

-  

- +Upgrading from 1.x to 2.0

- +=========================

- +There are a few changes in the vcl language from varnish-1.x to 2.0.

- +Because of varnish' dynamic vcl loading feature, there is no way to

- +guarantee that the vcl file in use actually exists on disk. Thus,

- +there is no way to securely automate this process, and one must do the

- +changes by hand.

- +

- +In vcl, the word "insert" has been replaced by "deliver". 

- +

- +In the vcl declaration of backends, where one earlier used "set

- +backend", backend parts are now just prefixed with a dot, so the

- +default localhost configuration will look like this:

- +

- +backend default {

- +  .host = "127.0.0.1";

- +  .port = "80";

- +}

-  

-  Configuration of addresses and ports

-  ====================================

The repos contains a lot of unused patches. This PR removes them, via:

fedpkg unused-patches | xargs git rm -f

Hi, Jorton

I haven't thought of deleting patches, and am a bit unsure where to go with this. Some of these files are in use in some releases, for example varnish-4.0.2.fix_ld_library_path_in_sphinx_build.patch is used in epel7. Why should I want to remove it?

I also like to be able to build packages across release boundaries, for example, I make sure that the epel7 package compiles cleanly on epel6, and the rawhide package compiles on epel7. Will this removing of files change that?

Ingvar

Hi Ingvar, thanks for looking at this!

It doesn't make sense to me to keep patches in the master branch which do not apply to the version of the package maintained in that branch - is standard practice that we delete these. e.g. varnish-4.0.2.fix_ld_library_path_in_sphinx_build.patch is replaced by varnish-5.1.1.fix_ld_library_path_in_doc_build.patch - the latter does apply to the 5.1.3 sources, the former does not. So even if you merge master to epel7 in the future, nothing is lost here.

Obviously keeping the obsolete patches is not particularly harmful, it's just clutter and makes the package a little harder to work with.

Pull-Request has been merged by ingvar

6 years ago
Metadata
Changes Summary 50
-112
file removed
varnish-3.0.4.fix_CVE-2013-4484.patch
-13
file removed
varnish-4.0.0.fix_find_provides.patch
-10
file removed
varnish-4.0.0.fix_ld_library_path_in_sphinx_build.patch
-11
file removed
varnish-4.0.0_fix_Werror_el6.patch
-11
file removed
varnish-4.0.1_fix_Werror_el6.patch
-37
file removed
varnish-4.0.2-systemd_service_fixes.patch
-10
file removed
varnish-4.0.2.fix_ld_library_path_in_sphinx_build.patch
-11
file removed
varnish-4.0.3_fix_Werror_el6.patch
-274
file removed
varnish-4.0.3_fix_content_length_bug.patch
-77
file removed
varnish-4.0.3_fix_python24.el5.patch
-87
file removed
varnish-4.1-systemd_daemon.git75955e8.patch
-11
file removed
varnish-4.1.0.adjust_pcre_test_r01576.patch
-14
file removed
varnish-4.1.0.fix_dns_test_corner_case_v00017.patch
-10
file removed
varnish-4.1.0.fix_ld_library_path_in_sphinx_build.patch
-10
file removed
varnish-4.1.1.fix_ld_library_path_in_sphinx_build.patch
-111
file removed
varnish-4.1.2_fix_python24.el5.patch
-11
file removed
varnish-4.1.3_fix_Werror_el6.patch
-11
file removed
varnish-5.0.0.fix_Werror_el6.patch
-100
file removed
varnish-5.0.0.fix_ld_library_path_in_doc_build.patch
-68
file removed
varnish-5.0.0.fix_python24.el5.patch
-63
file removed
varnish-5.0.0.fix_test_suite_on_secondary_arches.patch
-21
file removed
varnish-5.1.1.fix_Werror_el6.patch
-18
file removed
varnish-cs1913.patch
-12
file removed
varnish-vsv00001.patch
-32
file removed
varnish.S-option.patch
-277
file removed
varnish.add_varnish_vcl_reload.patch
-9
file removed
varnish.changes-2.0.6.patch
-53
file removed
varnish.changes-2.1.0.patch
-13
file removed
varnish.coresize.patch
-13
file removed
varnish.cs3157.patch
-85
file removed
varnish.endianfix.cs3170-3071.patch
-46
file removed
varnish.fix_Content-Length_header.r5461.patch
-12
file removed
varnish.fix_initscript_missing_echo.r5498.patch
-36
file removed
varnish.fix_missing_lsb_defaults_in_initscript.r5501.patch
-11
file removed
varnish.fix_ppc64_upstream_bug_1194.patch
-15
file removed
varnish.floor.patch
-170
file removed
varnish.from_r4750_fixes_lowspec_buildhost.patch
-73
file removed
varnish.jemalloc_as_system_library.patch
-24
file removed
varnish.lockfile.patch
-13
file removed
varnish.no_pcre_jit.patch
-11
file removed
varnish.ppc64_stacksize_test.patch
-24
file removed
varnish.ppc_pagesize.patch
-15
file removed
varnish.s390_pagesize.patch
-15
file removed
varnish.s390x_pagesize.patch
-11
file removed
varnish.sparc_pagesize.patch
-607
file removed
varnish.timeout_backport.patch
-13
file removed
varnish.v00002fix.patch
-23
file removed
varnish.varnishtest_debugflag.patch
-781
file removed
varnish.varnishtest_rc1-3273.patch
-28
file removed
varnish.vcl_changes.patch