Changeset 36bd0c


Ignore:
Timestamp:
2007-11-20 17:30:23 (6 years ago)
Author:
Poul-Henning Kamp <phk@…>
Branches:
2.0, 2.1, tags/varnish-2.0, tags/varnish-2.0-beta1, tags/varnish-2.0-beta1@3141, tags/varnish-2.0-beta2, tags/varnish-2.0-beta2@3221, tags/varnish-2.0-rc1, tags/varnish-2.0-rc1@3266, tags/varnish-2.0-tp1, tags/varnish-2.0-tp1@2734, tags/varnish-2.0-tp2, tags/varnish-2.0-tp2@2803, tags/varnish-2.0.1, tags/varnish-2.0.2, tags/varnish-2.0.3, tags/varnish-2.0.4, tags/varnish-2.0.5, tags/varnish-2.0.6, tags/varnish-2.1.0, tags/varnish-2.1.1, tags/varnish-2.1.2, tags/varnish-2.1.3, tags/varnish-2.1.4
Children:
856bdb3
Parents:
823ebd
git-author:
Poul-Henning Kamp <phk@…> (2007-11-20 17:30:23)
git-committer:
Poul-Henning Kamp <phk@…> (2007-11-20 17:30:23)
Message:

Make the incmt and remflg persistent across the parse chunks

git-svn-id:  http://www.varnish-cache.org/svn/trunk@2273 d4fa192b-c00b-0410-8231-f00ffab90ce4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bin/varnishd/cache_vrt_esi.c

    rced1a7 r36bd0c  
    7878        int                     neb; 
    7979        int                     is_esi; 
     80        int                     remflg; /* inside <esi:remove> </esi:remove> */ 
     81        int                     incmt;  /* inside <!--esi ... --> comment */ 
    8082}; 
    8183 
     
    344346        txt t, o; 
    345347        int celem;              /* closing element */ 
    346         int remflg;             /* inside <esi:remove> </esi:remove> */ 
    347         int incmt;              /* inside <!--esi ... --> comment */ 
    348348        int i; 
    349349 
     
    352352        ew->dst.b = t.b; 
    353353        ew->dst.e = t.b; 
    354         remflg = 0; 
    355         incmt = 0; 
    356354        o.b = t.b; 
    357355        for (p = t.b; p < t.e; ) { 
    358                 if (incmt && *p == '-') { 
     356                if (ew->incmt && *p == '-') { 
    359357                        /* 
    360358                         * We are inside an <!--esi comment and need to zap 
     
    362360                         */ 
    363361                        if (p + 2 >= t.e) { 
    364                                 /* XXX: need to return pending incmt  */ 
     362                                /* XXX: need to return pending ew->incmt  */ 
    365363                                return (p - t.b); 
    366364                        } 
    367365                        if (!memcmp(p, "-->", 3)) { 
    368                                 incmt = 0; 
     366                                ew->incmt = 0; 
    369367                                o.e = p; 
    370368                                esi_addverbatim(ew, o); 
     
    387385                        return (p - t.b); 
    388386 
    389                 if (remflg == 0 && !memcmp(p, "<!--esi", i > 7 ? 7 : i)) { 
     387                if (ew->remflg == 0 && !memcmp(p, "<!--esi", i > 7 ? 7 : i)) { 
    390388                        /* 
    391389                         * ESI comment. <!--esi...--> 
    392390                         * at least 10 char, but we only test on the 
    393391                         * first seven because the tail is handled 
    394                          * by the incmt flag. 
     392                         * by the ew->incmt flag. 
    395393                         */ 
    396394                        ew->is_esi++; 
     
    403401                        p += 7; 
    404402                        o.b = p; 
    405                         incmt = 1; 
     403                        ew->incmt = 1; 
    406404                        continue; 
    407405                } 
     
    462460                        ew->is_esi++; 
    463461 
    464                         if (celem != remflg) { 
     462                        if (celem != ew->remflg) { 
    465463                                /* 
    466464                                 * ESI 1.0 violation, ignore element 
    467465                                 */ 
    468                                 esi_error(ew, p, 1 + q - p, 
    469                                     remflg ? "ESI 1.0 forbids nested esi:remove" 
     466                                esi_error(ew, p, 1 + q - p, ew->remflg ? 
     467                                    "ESI 1.0 forbids nested esi:remove" 
    470468                                    : "ESI 1.0 esi:remove not opened"); 
    471469                                         
    472                                 if (!remflg) { 
     470                                if (!ew->remflg) { 
    473471                                        o.e = p; 
    474472                                        esi_addverbatim(ew, o); 
     
    482480                                o.e = p; 
    483481                                esi_addverbatim(ew, o); 
    484                                 remflg = !celem; 
     482                                ew->remflg = !celem; 
    485483                        } else { 
    486484                                /* close element */ 
    487                                 remflg = !celem; 
     485                                ew->remflg = !celem; 
    488486                        } 
    489487                        p = q + 1; 
     
    492490                } 
    493491 
    494                 if (remflg && r + 3 < q && !memcmp(r, "esi:", 4)) { 
     492                if (ew->remflg && r + 3 < q && !memcmp(r, "esi:", 4)) { 
    495493                        /* 
    496494                         * ESI 1.0 violation, no esi: elements in esi:remove 
Note: See TracChangeset for help on using the changeset viewer.