• Guillaume Quintard's avatar
    fetch: Backends are in charge of printing headers · 70633086
    Guillaume Quintard authored
    The current backend implementation reads the headers all at once, as a
    big buffer, then manually chops them up, and later on, in the startfetch
    step, Varnish loops through all the headers and prints them.
    
    This is inconvenient for custom backends that are most likely going to
    use http_SetH() (directly or via http_SetHeader(), http_PrinfHeader() or
    others), which also prints the headers being added. As a result, those
    implementations end up logging the header twice.
    
    To work around the issue we can push the burden of logging the beresp
    headers onto the backend implementation. It does change one test, as
    now the Timestamp:Beresp log record appears after the headers instead
    of before.
    70633086
cache_fetch.c 30.6 KB