1. 15 Mar, 2021 3 commits
  2. 14 Mar, 2021 4 commits
  3. 13 Mar, 2021 4 commits
  4. 12 Mar, 2021 1 commit
  5. 11 Mar, 2021 1 commit
    • Guillaume Quintard's avatar
      builtin: Introduce vcl_builtin_* subs · 3f3d67d9
      Guillaume Quintard authored
      Provide a set of predictable subroutines that will be called by the
      built-in vcl. Only transactional built-in subroutines are concerned,
      which excludes vcl_init and vcl_fini.
      
      Closes #3548
      3f3d67d9
  6. 10 Mar, 2021 3 commits
    • Dridi Boukelmoune's avatar
      doc: Fix broken sentence · 762a52de
      Dridi Boukelmoune authored
      Better diff with the --word-diff --ignore-all-space options.
      762a52de
    • Dridi Boukelmoune's avatar
      SQUASHME: Avoid a cache hit in the test case · f0e97920
      Dridi Boukelmoune authored
      When it was in its own file it worked fine...
      f0e97920
    • 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
  7. 07 Mar, 2021 1 commit
  8. 03 Mar, 2021 9 commits
    • Poul-Henning Kamp's avatar
      Also increase the stack for GCOVING · c8ccfa4b
      Poul-Henning Kamp authored
      c8ccfa4b
    • Nils Goroll's avatar
      builtin: Minor polish · c4b418a1
      Nils Goroll authored
      Only copy the host header if needed
      c4b418a1
    • Dridi Boukelmoune's avatar
      3efdc84b
    • Dridi Boukelmoune's avatar
      builtin: Split vcl_backend_response too · 7d2e14df
      Dridi Boukelmoune authored
      It's one more indirection than vcl_recv because the same logic applies
      to multiple cases, so we first have subs for the different conditions
      and they all call the shared vcl_beresp_hitmiss sub.
      
      The vcl_beresp_hitmiss sub returns on purpose, that doesn't change the
      default VCL behavior and makes it more usable from VCL code:
      
          if (some user condition applies) {
                  call vcl_beresp_hitmiss;
          }
      
      No need to force all call sites to return(deliver) when the desired
      outcome is explicit. Extracting this sub also enables VCL authors to
      only tweak the hitmiss TTL in one place.
      
      For better compliance, we might also introduce a vcl_beresp_hitpass sub
      for some of the built-in cases where a hit-for-miss object might be less
      appropriate. The compliance effort will however change some semantics
      and is outside of the scope of this split.
      7d2e14df
    • Dridi Boukelmoune's avatar
      builtin: Split vcl_recv in logical chunks · 90127a47
      Dridi Boukelmoune authored
      There is a very slight breaking change in the sense that the host header
      check is grouped with its normalization which swaps its order with the
      PRI method check.
      
      In practice that only means that if you have both an unattended PRI
      request missing a host header, you'll get a 400 instead of a 405. You
      have to get both wrong in the first place so I don't consider this a
      concern.
      90127a47
    • Dridi Boukelmoune's avatar
      vcc: Allow arbitrary subs in the built-in VCL · 28590eef
      Dridi Boukelmoune authored
      Now that we know in advance the available suboutines in the built-in VCL
      we can use that as the condition to create an append-able subroutine
      when the vcl_ prefix is encountered.
      
      This work is currently incomplete, at least because non-state built-in
      subroutines are currently not listed when an unknwon subroutine is
      encountered.
      
      Also, instead of proper test coverage this currently uses b00000.vtc as
      a strawman to show how to skip a specific processing.
      28590eef
    • Dridi Boukelmoune's avatar
      vcc: Parse the built-in VCL independently · e45595ec
      Dridi Boukelmoune authored
      This is a lookahead parsing to learn about built-in subroutines that are
      not tied to a VCL state. Instead of maintaining a mapping of the other
      subroutines the builtin.vcl file itself becomes authoritative.
      e45595ec
    • Dridi Boukelmoune's avatar
      builtin: Adopt our C code style for the builtin VCL · 4646a5bd
      Dridi Boukelmoune authored
      I removed the else keyword from vcl_backend_response because it doesn't
      add any value.
      
      Better diff with the --ignore-all-space option.
      4646a5bd
    • Dridi Boukelmoune's avatar
      builtin: Standardize all comments to '#' · 5b89fb4f
      Dridi Boukelmoune authored
      It's a bit all over the place right now and '#' is the most "scripty" of
      the 3 types of comments we have.
      
      Better diff with the --word-diff --word-diff-regex=. options.
      
      Salavaged from #3503
      5b89fb4f
  9. 02 Mar, 2021 3 commits
    • Poul-Henning Kamp's avatar
      doc: Bring back changes to vcl-hashing.rst · 75c7f15a
      Poul-Henning Kamp authored
      On their own, those changes improve the documentation and don't mention
      the reverted "hash_data() in vcl_recv" feature.
      
      Refs e98e8e64
      75c7f15a
    • Dridi Boukelmoune's avatar
      hash: Revert recent hash changes · 5ea8940c
      Dridi Boukelmoune authored
      This reverts the following commits:
      
      - e98e8e64.
        "Documentation updates for changed `vcl_hash{}` / `hash_data()`"
      - 001279eb.
        "Document proper design pattern for using hash_data() in vcl_recv,"
      - e36573e2.
        "Add a test-case for hash_data() in vcl_recv{}"
      - 03fe0cee.
        "Allow hash_data() in vcl_recv{}"
      - 4ebc3cfe.
        "Make it possible to override the initial digest, and explain in"
      - d6ad52f5
        "Change the way we calculate the hash key for the cache."
      
      Conflicts:
      	doc/sphinx/reference/dp_vcl_recv_hash.rst
      	doc/sphinx/reference/index.rst
      
      Concerns were raised regarding a change of the way we compute the hash
      key outside of the dot-zero release where we would expect such breaking
      changes (among other things, vmod_shard relies on hash stability).
      
      There is also no definite consensus of how to handle hashing from
      vcl_recv.
      5ea8940c
    • Nils Goroll's avatar
      Accept all ENET* ECONN* EHOST* errnos · 81aa74cc
      Nils Goroll authored
      ... documented on Linux as POSIX.1
      
      The exception here is ECONNREFUSED which so far we only tolerate for
      Solaris and which seems to make sense for connect() only.
      
      To be discussed in #3539
      81aa74cc
  10. 01 Mar, 2021 8 commits
  11. 25 Feb, 2021 1 commit
  12. 24 Feb, 2021 2 commits