1. 15 May, 2019 4 commits
  2. 14 May, 2019 1 commit
    • Dridi Boukelmoune's avatar
      Kill strcat and strcpy usage in VIN_n_Arg · 3a1fd9bb
      Dridi Boukelmoune authored
      If an absolute path is provided as n_arg with a length of exactly
      PATH_MAX-1 then the combination of strcpy and strcat for the trailing
      slash '/' overflows dn by one byte, writing its new null-terminating
      character '\0' right after dn's upper bound.
      
      By using a fixed-length VSB we can simply ensure that we stay within
      bounds at a reasonable cost. Guarding VSB operations should silence
      Flexelint as a nice side effect.
      
      VIN_n_Arg is not exposed outside of the source tree, and both callers
      today provide a valid dir argument, so we can now make it part of the
      contract with an assertion, simplifying the strdup error handling.
      3a1fd9bb
  3. 13 May, 2019 5 commits
  4. 12 May, 2019 1 commit
  5. 09 May, 2019 5 commits
  6. 08 May, 2019 2 commits
  7. 07 May, 2019 1 commit
  8. 06 May, 2019 8 commits
  9. 05 May, 2019 4 commits
  10. 03 May, 2019 9 commits
    • Dridi Boukelmoune's avatar
      Help Coccinelle a tiny bit more · 06e7329d
      Dridi Boukelmoune authored
      It currently freaks out when it's not aware of a type, or when it
      encounters v_*_ macros in a function signature. This doesn't improve the
      results of the existing patches but we should take a habit of specifying
      where additional C includes are.
      06e7329d
    • Dridi Boukelmoune's avatar
      Swap isomorphism subjects · c722eb77
      Dridi Boukelmoune authored
      In this order it becomes possible to use VCL_VOID transparently as void
      without having to declare it again as a typedef. It doesn't matter for
      VRT_CTX because it tends to be easier to use it instead of its actual
      C type (with the typedef-in-patch penalty).
      
      Wave in my general direction if you're not slink and yet can make sense
      of the previous paragraph.
      c722eb77
    • Dridi Boukelmoune's avatar
      Timid start of Coccinelle type isomorphisms · 535192c3
      Dridi Boukelmoune authored
      This way we don't need to constantly deal with typedef ORing when we
      encounter a varnish-defined type. We still need to declare typedefs
      that we use, but it's already one order of magnitude more convenient.
      535192c3
    • Poul-Henning Kamp's avatar
      Simplifications · 2c8d4a78
      Poul-Henning Kamp authored
      2c8d4a78
    • Dridi Boukelmoune's avatar
      Verbosity no longer cycles through in varnishstat · f41055d3
      Dridi Boukelmoune authored
      Refs #2990
      f41055d3
    • Poul-Henning Kamp's avatar
      56c37d90
    • Nils Goroll's avatar
      update for #2471 · df909f16
      Nils Goroll authored
      df909f16
    • Nils Goroll's avatar
      no implicit warmup for manual temperature control · adf18f4d
      Nils Goroll authored
      As discussed during bugwash, we should be consistent about the manual
      temperature controls and not transition cold->warm, but rather fail.
      adf18f4d
    • Nils Goroll's avatar
      change semantics of the vcl 'auto' state and centralize vcl mgt · 424c7b85
      Nils Goroll authored
      Conceptually, the auto state was a variant of the warm state which
      would automatically cool the vcl. Yet, cooling did not only transition
      the temperature, but also the state, so 'auto' only worked one way -
      except that vcl.use or moving a label (by labeling another vcl) would
      also set 'auto', so a manual warm/cold setting would get lost.
      
      Now the auto-state will remain no matter the actual temperature or
      labeling, so when a vcl needs to implicitly change temperature (due to
      being used or being labeled), an auto vcl will remain auto, and a
      cold/warm vcl will change state, but never become 'auto' implicitly.
      
      The vcl state/temperature test v00003.vtc, besides testing the new
      auto semantics, now also checks for the right vcl.list output and has
      been reduced by a duplicate check (warm event check has been
      integrated into an existing warm event).
      
      On other code changes:
      
      * mgt_vcl_setstate
      
        is now only concerned with the state, the temperature will be
        changed implicitly if so required. The state will either end up
        changed or restored, depending on success.
      
        owner of changes to the (struct vclprog).state member
      
      * mgt_vcl_settemp
      
        responsible for the right action to change the temperature. For auto,
        it will only change the temperature, for non-auto, also the state.
      
        owner of changes to the (struct vclprog).warm member
      
      * mgt_vcl_tellchild
      
        Inform the child about a change and/or temperature change
      
      * mgt_vcl_set_cooldown
      
        Update the cooldown (go_cold) appropriately, should be called after
        a change/temperature change.
      
      Fixes #2834
      Closes #2801
      424c7b85