• Dridi Boukelmoune's avatar
    range: Propagate the VDP error for short ranges · dc5bddbd
    Dridi Boukelmoune authored
    And fix the h2_req VDP error handling as per the VDP contract.
    
    Test case inspired by Simon. Since this is one of those test cases that
    explicitly mix two features I wasn't sure whether I wanted to make this
    an h2 test case or a range test case. Since this was ultimately a range
    bug I decided to register it in a range test case.
    
    It's not obvious what should have been authoritative here. The range VDP
    was rightfully latching an error via SC_RANGE_SHORT that is defined as an
    error-type session close reason, but VDP_DeliverObj() doesn't take that
    into account. While SC_RANGE_SHORT isn't a session/protocol error for h2
    but rather a stream error it is not obvious what VDP_DeliverObj() should
    do in the absence of a negative retval and the presence of a non-null
    sess_close.
    
    Maybe another way could be to turn enum sess_close into a struct and
    embed http1 and h2 specificities directly in struct fields. We already
    have somewhat structured information in the sess_close.h table.
    
    Refs 03f71c6e
    dc5bddbd
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_conn_pool.c Loading commit data...
cache_conn_pool.h 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_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...