1. 15 Jan, 2021 8 commits
    • Nils Goroll's avatar
      fix unrelated syntax errors in vtcs. · cfed0152
      Nils Goroll authored
      These tests had syntax errors besides the error handling actually being
      tested, which triggered with future changes to VCC.
      
      Originally from #3163
      cfed0152
    • Dridi Boukelmoune's avatar
      doc: Draw the VCL_REGEX line · ecb767a8
      Dridi Boukelmoune authored
      Requested by phk.
      ecb767a8
    • Dridi Boukelmoune's avatar
      vmod_cookie: Use the new REGEX type · 259e2b8f
      Dridi Boukelmoune authored
      And get a glimpse at how we can simplify VMODs making use of regular
      expressions without breaking existing VCL.
      259e2b8f
    • Dridi Boukelmoune's avatar
      vmod: Teach VMODs to use REGEX expressions · 2b132048
      Dridi Boukelmoune authored
      When they take a regular expression as an argument, they can benefit
      from compile time checks and avoid PRIV_CALL or on-the-fly regex
      compilation.
      2b132048
    • Dridi Boukelmoune's avatar
      vrt: Replace void pointers with the regex types · 5391143e
      Dridi Boukelmoune authored
      Now that we have a proper type for regular expressions, use it in the
      VRT API where it makes sense. The VRT_re_{init,fini}() functions were
      moved to VPI since they are here strictly to support libvcc.
      
      Summary: in VRT we use VCL_REGEX but in VPI we use struct vre.
      5391143e
    • Dridi Boukelmoune's avatar
      vcc: New REGEX type with expressions · 20c820e8
      Dridi Boukelmoune authored
      By introducing a proper REGEX type in VCL we can centralize the regular
      expressions literals parsing. The type itself is currently not very
      potent since VMODs aren't aware of it, but as a first step it allows
      error messages to be improved at compile time.
      20c820e8
    • Nils Goroll's avatar
      Fix a potential race between boc state and the storage list · 2065315a
      Nils Goroll authored
      We check for the next storage element under the boc mutex, but reference
      the boc state in relation to it after releasing the lock.
      
      Take a copy of the boc state to close this (potential) race.
      
      Fixes #3335, hopefully
      2065315a
    • Nils Goroll's avatar
      Try to send VDP_END with the last bytes · c2d45aef
      Nils Goroll authored
      Follow-up to #3125 :
      
      That PR added VDP_END, but always issued another VDP_bytes() call with
      no data.
      
      We now make it the responsibility of the object iterator to send
      VDP_END and opportunistically try to issue it with the last bytes in
      order to avoid the additional VDP_bytes() call with no data.
      
      As noted by Martin in
      https://github.com/varnishcache/varnish-cache/pull/3125#issuecomment-600620905
      the advantage is that "in H/2 there is the need to send a frame with a
      last bit set to mark the end of the stream" and in H/1 we could generate
      the end chunk right after the last bit of data.
      
      This change does not implement these optimizations yet, but prepares the
      grounds.
      c2d45aef
  2. 14 Jan, 2021 6 commits
  3. 13 Jan, 2021 14 commits
  4. 12 Jan, 2021 12 commits