]> err.no Git - varnish/commitdiff
Added the parameter err_ttl, which sets the TTL for synthesized error pages. Default...
authorpetter <petter@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Fri, 18 Jul 2008 07:01:42 +0000 (07:01 +0000)
committerpetter <petter@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Fri, 18 Jul 2008 07:01:42 +0000 (07:01 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2949 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_center.c
varnish-cache/bin/varnishd/cache_synthetic.c
varnish-cache/bin/varnishd/heritage.h
varnish-cache/bin/varnishd/mgt_param.c
varnish-cache/bin/varnishd/varnishd.1

index 77d89d153c71e49aa2232b083b093ff756ccabb5..637f47d7350db183d1a6c897005f479d899a381d 100644 (file)
@@ -567,7 +567,7 @@ void RES_BuildHttp(struct sess *sp);
 void RES_WriteObj(struct sess *sp);
 
 /* cache_synthetic.c */
-void SYN_ErrorPage(struct sess *sp, int status, const char *reason);
+void SYN_ErrorPage(struct sess *sp, int status, const char *reason, int ttl);
 
 /* cache_vary.c */
 void VRY_Create(const struct sess *sp);
index 61d76333d6d641302a00a908ac7e6020d8e41b4f..da05126c8dfdbc06e07864465abaf5008acbb981 100644 (file)
@@ -309,7 +309,7 @@ cnt_error(struct sess *sp)
 {
 
        AZ(sp->obj);
-       SYN_ErrorPage(sp, sp->err_code, sp->err_reason);
+       SYN_ErrorPage(sp, sp->err_code, sp->err_reason, params->err_ttl);
        sp->err_code = 0;
        sp->err_reason = NULL;
        sp->step = STP_DONE;
@@ -878,7 +878,7 @@ cnt_start(struct sess *sp)
        *sp->http0 = *sp->http;
 
        if (done != 0) {
-               SYN_ErrorPage(sp, done, NULL);          /* XXX: STP_ERROR ? */
+               SYN_ErrorPage(sp, done, NULL, params->err_ttl);         /* XXX: STP_ERROR ? */
                sp->step = STP_DONE;
                return (0);
        }
index 23fb563a01ebe71f780fda7ff2dbe17e0e67ab7e..8c0b41716794307fd836fa7e84aa9d499461cebc 100644 (file)
@@ -47,7 +47,7 @@
  */
 
 void
-SYN_ErrorPage(struct sess *sp, int status, const char *reason)
+SYN_ErrorPage(struct sess *sp, int status, const char *reason, int ttl)
 {
        struct http *h;
        struct worker *w;
@@ -57,7 +57,6 @@ SYN_ErrorPage(struct sess *sp, int status, const char *reason)
        unsigned u;
        struct vsb vsb;
        int fd;
-       int ttl = 0;                            /* XXX: ?? */
 
        WSL_Flush(sp->wrk, 0);
        assert(status >= 100 && status <= 999);
index 85d5456de66ffd50c87d1efbdd2a2f365fd4652b..767ac8c793f0d196b5b11c03035f540d95612d4a 100644 (file)
@@ -77,6 +77,9 @@ struct params {
 
        /* TTL used for lack of anything better */
        unsigned                default_ttl;
+       
+       /* TTL used for synthesized error pages */
+       unsigned                err_ttl;
 
        /* Worker threads and pool */
        unsigned                wthread_min;
index 936733f084b348a2f1d28978a0f0eb87210cb605..416b0d940d65dcb2023ce4906493bf1e35a10fe8 100644 (file)
@@ -784,6 +784,10 @@ static const struct parspec parspec[] = {
                "Use 0x notation and do the bitor in your head :-)\n",
                0,
                "0", "bitmap" },
+       { "err_ttl", tweak_uint, &master.err_ttl, 0, UINT_MAX,
+               "The TTL assigned to the synthesized error pages\n",
+               0,
+               "0", "seconds" },
        { NULL, NULL, NULL }
 };
 
index 400ab2d4b01f980c7d4614262117b08e4abf216b..c30ccaff473a9f19860f515a42e296194cd3fa21 100644 (file)
@@ -389,6 +389,10 @@ nor the configuration assign one.
 Note that changes to this parameter are not applied retroactively.
 .Pp
 The default is 120 seconds.
+.It Va err_ttl
+The default time-to-live assigned to the synthesized error pages.
+.Pp
+The default is 0 seconds.
 .It Va fetch_chunksize
 The default chunk size used when retrieving documents for which the
 backend server does not specify a content length.