• Poul-Henning Kamp's avatar
    Overhaul the ESI parser in light of #433 and the prospect of future · ea05165b
    Poul-Henning Kamp authored
    addition of features to the ESI code.
    
    The particular situation in #433 arises because a XML comment is not
    bounded in length, the same way as an <esi:include...> element naturally
    is.  This opens the window for trouble when large sections of XML is
    commented out for some reason or another.
    
    Bite the bullet and create a "storage-pointer" consisting of a pointer
    to a storage segment and a pointer into that segment.
    
    Add a main-loop which uses these pointers to walks over the entire
    object, looking for stuff we care about, and handle each appropriately.
    
    In addition to coping properly with the situation in #433, this code is
    also close to 100 lines shorter and has a more logical structure.
    
    The downside is that it is isn't quite as memory-access-alergic as the
    previous version.  (I challenge anybody to measure the effect of this.)
    
    Fixes: #433
    
    
    
    git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@3575 d4fa192b-c00b-0410-8231-f00ffab90ce4
    ea05165b
cache_vrt_esi.c 19.2 KB