• Nils Goroll's avatar
    Loosen assertion on ctx->(req|bo), fix shard and vcl_pipe · 478ff9e2
    Nils Goroll authored
    in VRT_priv_task() we asserted that only one of ctx->req and ctx->bo is
    set when not in vcl_pipe {}, but we also need to extend that assertion
    to when ctx->method == 0 after vcl_pipe as finished because
    VRT_priv_task() could be called from director resolution.
    
    Being at it, I also noticed that our behavior in vcl_pipe {} is
    inconsistent as, from the shard director perspective, it is a backend
    method. So now, vcl_pipe {} is handled like vcl_backend_* {}.
    
    We still need to make up our mind about #3329 / #3330 and depending on
    the outcome we might need to touch some places again which were changed
    in this commit.
    
    Fixes #3361
    
     Conflicts:
    	doc/changes.rst
    	lib/libvmod_directors/vmod.vcc
    	lib/libvmod_directors/vmod_shard.c
    478ff9e2