Dridi Boukelmoune

Results 159 comments of Dridi Boukelmoune

> I talked about this and #3584 with @Dridi, but I think his suggestion above needs a little bit more context :-) More context: we were discussing two approaches, one...

```vcl sub vcl_backend_revalidate { if (beresp.backend.name ~ "legacy") { return (replace); } } # built-in sub vcl_backend_revalidate { beresp.merge(obj); return (reuse); } ``` I have been confronted to misbehaving backends...

> Can it be called with any other object besides `obj`? Yes, it can be called in a different context with different arguments. ```vcl sub vcl_init { my_replicator.request(...).merge(req); my_replicator.send(); #...

One use case we might also consider is not merging surrogate keys for example: ```vcl sub vcl_backend_revalidate { if (beresp.http.xkey) { # don't keep track of stale surrogate keys set...

```vcl set beresp.http.new_xkey = beresp.http.xkey.collect(); # or beresp.http.new_xkey.clone(beresp.http.xkey); ``` Now that we have type properties and methods, we can make vmod_header redundant by enhancing the VCL_HEADER and VCL_HTTP types.

I added cef6f007b722a7358d2ba083343cc9b956bf4f1e to show that `vcc_ExprEdit()` can be useful for more than just constant HEADER assignments, it can also help simplify libvcc. The general pattern is: ```diff - Fb(tl,...

bugwash: - needs live testing - ~rename `fetch_no_thread` counter to `bgfetch_no_thread`~ - ~and update description~ - ~add test coverage~ - reviews

If regular production traffic is good enough for live testing, then I'd say it's been live-tested for a week now on the enterprise side. What is left is reviews, and...