• Nils Goroll's avatar
    Add VDP_END action for delivery processors · de6288cb
    Nils Goroll authored
    VDP_END marks the end of successful processing, it is issued by
    VDP_DeliverObj() and may also be sent downstream by processors ending
    the stream (for return value != 0)
    
    VDP_END must at most be generated once per processor, so any VDP
    sending it downstream must itself not forward it a second time.
    
    * VDP_bytes()
    
    The only relevant change is the assertion that VDP_END must not be
    received by any VDP more than once. This comes with minor
    restructuring of the handling of the three actions
    
    * VDP_DeliverObj()
    
    Here, VDP_END is pushed down after succesful iteration over the
    objects. We could also send the last storage segment with VDP_END, but
    this would require a change in all stevedores. Unless there is a good
    case for it, I do not see much value in this minor optimization.
    
    * ESI:
    
    In ved_vdp_esi_bytes we now push down VDP_END whenever we are done
    with an ESI object at esi_level == 0.
    
    ved_bytes() handles the pushes from higher esi levels downwards, so
    it now changes VDP_END into VDP_FLUSH. We need to remove the
    additional VDP_FLUSH from ved_deliver because the VDP_END from
    VDP_DeliverObj() needs to be the last bit sent.
    
    The gzgz vdp actually does something which would be impossible for an
    esi_level == 0 VDP: push bytes from _fini. This could be reworked, but
    there is also no need to.
    
    * range VDP
    
    Here we now send the VDP_END with the last segment before the end of
    the range is it.
    
    We also take the opportunity and eleminate null VDP_bytes calls before
    the range is reached.
    
    * rot13 debug VDP
    
    Here we need to ensure that we pass on VDP_END
    de6288cb
Name
Last commit
Last update
..
cache.h Loading commit data...
cache_acceptor.c Loading commit data...
cache_backend.c Loading commit data...
cache_backend.h Loading commit data...
cache_backend_probe.c Loading commit data...
cache_ban.c Loading commit data...
cache_ban.h Loading commit data...
cache_ban_build.c Loading commit data...
cache_ban_lurker.c Loading commit data...
cache_busyobj.c Loading commit data...
cache_cli.c Loading commit data...
cache_deliver_proc.c Loading commit data...
cache_director.c Loading commit data...
cache_director.h Loading commit data...
cache_esi.h Loading commit data...
cache_esi_deliver.c Loading commit data...
cache_esi_fetch.c Loading commit data...
cache_esi_parse.c Loading commit data...
cache_expire.c Loading commit data...
cache_fetch.c Loading commit data...
cache_fetch_proc.c Loading commit data...
cache_filter.h Loading commit data...
cache_gzip.c Loading commit data...
cache_hash.c Loading commit data...
cache_http.c Loading commit data...
cache_lck.c Loading commit data...
cache_main.c Loading commit data...
cache_mempool.c Loading commit data...
cache_obj.c Loading commit data...
cache_obj.h Loading commit data...
cache_objhead.h Loading commit data...
cache_panic.c Loading commit data...
cache_pool.c Loading commit data...
cache_pool.h Loading commit data...
cache_range.c Loading commit data...
cache_req.c Loading commit data...
cache_req_body.c Loading commit data...
cache_req_fsm.c Loading commit data...
cache_rfc2616.c Loading commit data...
cache_session.c Loading commit data...
cache_shmlog.c Loading commit data...
cache_tcp_pool.c Loading commit data...
cache_tcp_pool.h Loading commit data...
cache_transport.h Loading commit data...
cache_varnishd.h Loading commit data...
cache_vary.c Loading commit data...
cache_vcl.c Loading commit data...
cache_vcl.h Loading commit data...
cache_vgz.h Loading commit data...
cache_vpi.c Loading commit data...
cache_vrt.c Loading commit data...
cache_vrt_filter.c Loading commit data...
cache_vrt_priv.c Loading commit data...
cache_vrt_re.c Loading commit data...
cache_vrt_var.c Loading commit data...
cache_vrt_vcl.c Loading commit data...
cache_vrt_vmod.c Loading commit data...
cache_wrk.c Loading commit data...
cache_ws.c Loading commit data...