Ignore:
Timestamp:
2011-01-21 12:00:27 (3 years ago)
Author:
Poul-Henning Kamp <phk@…>
Branches:
master, 3.0, 4.0, experimental-ims
Children:
a97f5f
Parents:
8e00aa
git-author:
Poul-Henning Kamp <phk@…> (2011-01-21 12:00:27)
git-committer:
Poul-Henning Kamp <phk@…> (2011-01-21 12:00:27)
Message:

Replay of SVN r5766

Unify header handling for gzip, and make wrk->do_g[un]zip usable
as intention flags.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bin/varnishd/cache_center.c

    r0b06c85 rda30ce  
    587587 
    588588        AZ(sp->wrk->vfp); 
    589         /* XXX: precedence, also: do_esi */ 
    590         if (sp->wrk->do_esi) { 
    591                 sp->wrk->vfp = &vfp_esi; 
    592         } else 
     589 
     590        /* We won't gunzip unless it is gzip'ed, if we do remove C-E header */ 
    593591        if (sp->wrk->do_gunzip && 
    594             http_HdrIs(sp->wrk->beresp, H_Content_Encoding, "gzip")) { 
     592             !http_HdrIs(sp->wrk->beresp, H_Content_Encoding, "gzip")) 
     593                sp->wrk->do_gunzip = 0; 
     594        if (sp->wrk->do_gunzip)  
    595595                http_Unset(sp->wrk->beresp, H_Content_Encoding); 
    596                 sp->wrk->vfp = &vfp_gunzip; 
    597         } else if (sp->wrk->do_gzip && 
    598             !http_HdrIs(sp->wrk->beresp, H_Content_Encoding, "gzip")) { 
     596 
     597 
     598        /* And we wont gzip if it already has a C-E header, if we do add it */ 
     599        if (sp->wrk->do_gzip && 
     600             http_GetHdr(sp->wrk->beresp, H_Content_Encoding, NULL)) 
     601                sp->wrk->do_gzip = 0; 
     602        if (sp->wrk->do_gzip)  
    599603                http_PrintfHeader(sp->wrk, sp->fd, sp->wrk->beresp, 
    600604                    "Content-Encoding: %s", "gzip"); 
     605 
     606        /* But we can't do both */ 
     607        assert(sp->wrk->do_gzip == 0 || sp->wrk->do_gunzip == 0); 
     608 
     609        /* ESI takes precedence and handles gzip/gunzip also */ 
     610        if (sp->wrk->do_esi) 
     611                sp->wrk->vfp = &vfp_esi; 
     612        else if (sp->wrk->do_gunzip) 
     613                sp->wrk->vfp = &vfp_gunzip; 
     614        else if (sp->wrk->do_gzip) 
    601615                sp->wrk->vfp = &vfp_gzip; 
    602         } 
    603616 
    604617        l = http_EstimateWS(sp->wrk->beresp, 
Note: See TracChangeset for help on using the changeset viewer.