1. 16 Jun, 2020 1 commit
  2. 15 Jun, 2020 4 commits
  3. 14 Jun, 2020 2 commits
  4. 12 Jun, 2020 7 commits
    • Dridi Boukelmoune's avatar
      New VRE_quote() function · c82e3aba
      Dridi Boukelmoune authored
      This is a tool for VMOD authors for the use case of building a regular
      expression partially from arbitrary input, where the input is intended
      for an exact match.
      
      For example, one could implement a dispatch feature depending on the
      request's host header, building something like:
      
          "\.?\Q" + req.http.host + "\E$"
      
      A malicious client could however hijack the regular expression with a
      \E sequence in the host header. To get safely to this result you can
      do this instead in pseudo-code before compiling the regex:
      
          VSB_cat(vsb, "\\.?");
          VRE_quote(vsb, req.http.host);
          VSB_putc(vsb, '$');
      
      The input is enclosed with PCRE's \Q and \E escape sequences, ensuring
      that \E sequences in the input string don't allow Little Bobby Tables'
      cousin to mess with your regular expressions.
      c82e3aba
    • Martin Blix Grydeland's avatar
      Allow EXP_Remove() to be called before EXP_Insert() · 611a48e3
      Martin Blix Grydeland authored
      Once HSH_Unbusy() has been called there is a possibility for
      EXP_Remove() to be called before the fetch thread has had a chance to call
      EXP_Insert(). By adding a OC_EF_NEW flag on the objects during
      HSH_Unbusy(), that is removed again during EXP_Insert(), we can keep track
      and clean up once EXP_Insert() is called by the inserting thread if
      EXP_Remove() was called in the mean time.
      
      This patch also removes the AZ(OC_F_DYING) in EXP_Insert(), as that is no
      longer a requirement.
      
      Fixes: #2999
      611a48e3
    • Martin Blix Grydeland's avatar
      Execute EXP_Insert after unbusy in HSH_Insert · 68e262a7
      Martin Blix Grydeland authored
      This makes the order of events the same as on real cache insertions.
      68e262a7
    • Martin Blix Grydeland's avatar
      Repurpose OC_EF_REFD flag slightly · 7050ccee
      Martin Blix Grydeland authored
      The OC_EF_REFD flag indicates whether expiry has a ref on the
      OC. Previously, the flag was only gained during the call to
      EXP_Insert. With this patch, and the helper function EXP_RefNewObjcore(),
      the flag is gained while holding the objhead mutex during
      HSH_Unbusy(). This enables the expiry functions to test on missing
      OC_EF_REFD and quickly return without having to take the main expiry
      mutex.
      7050ccee
    • Martin Blix Grydeland's avatar
      Only count exp_mailed events when actually posting · 9210cd77
      Martin Blix Grydeland authored
      When posting to the expiry thread, we wrongly counted exp_mailed also if
      the OC in question was already on the mail queue. This could cause a
      discrepency between the exp_mailed and exp_received counters.
      9210cd77
    • Martin Blix Grydeland's avatar
      Move the locking calls outside exp_mail_it · 1638ff0a
      Martin Blix Grydeland authored
      This enables doing extra handling while holding the mutex specific to
      EXP_Insert/EXP_Remove before/after calling exp_mail_it.
      1638ff0a
    • Dridi Boukelmoune's avatar
      319ed9f6
  5. 11 Jun, 2020 4 commits
    • Dridi Boukelmoune's avatar
      Revert "Only build manual pages in maintainer mode" · be1191ea
      Dridi Boukelmoune authored
      This reverts commit cc42bd31.
      
      For some reason Travis CI jobs use autogen.sh and don't build with all
      the bells and whistles we expect developers to work with. Despite the
      explicit mention in autogen.des:
      
          # Use this when doing code development
      
      Some of our continuous integration doesn't emulate this properly. At
      least on the VTEST and CircleCI sides we do things as expected. I will
      reintroduce this change later when Travis CI is ready to take it.
      be1191ea
    • Dridi Boukelmoune's avatar
      Soft retirement of autogen.sh · 0b4a90c0
      Dridi Boukelmoune authored
      We shouldn't need to care about all the details when autoreconf(1) can
      do that for us. The autoworld has changed over the last decade and this
      only affects Varnish developers since we ship release archives with a
      turnkey configure script. So let's see how much wreckage this change will
      cause.
      
      The script remains until its refcount drops to zero.
      
      In order to get early feedback for MacOS the relevant Travis CI job is
      already updated.
      0b4a90c0
    • Dridi Boukelmoune's avatar
      Only build manual pages in maintainer mode · cc42bd31
      Dridi Boukelmoune authored
      When we release a dist archive, it comes with the documentation but
      since some of it is generated by programs we end up it makes no real
      difference, and actually it makes things worse: rebuilding from the
      dist archive ends up with a rebuild of the documentation because some
      sources ended up being rebuilt. In other words, the documentation we
      ship is dead weight in the dist archive and doesn't reduce the number
      of build dependencies downstream.
      
      From now on, rst2man remains mandatory to build our manual pages but
      can safely be omitted by packaging scripts.
      cc42bd31
    • Nils Goroll's avatar
      Add the debugging aid to Assert Curses return codes · 6744a693
      Nils Goroll authored
      taken from varnishtop. NOOP because #if 0'd
      6744a693
  6. 10 Jun, 2020 16 commits
  7. 09 Jun, 2020 6 commits