Skip to content
Snippets Groups Projects
  1. Dec 05, 2017
    • David Goulet's avatar
      hs-v3: Cleanup HS circuits when marking as closed · e80893e5
      David Goulet authored
      
      First, hs_service_intro_circ_has_closed() is now called in circuit_mark_for
      close() because the HS subsystem needs to learn when an intro point is
      actually not established anymore as soon as possible. There is a time window
      between a close and a free.
      
      Second, when we mark for close, we also remove it from the circuitmap because
      between the close and the free, a service can launch an new circuit to that
      same intro point and thus register it which only succeeds if the intro point
      authentication key is not already in the map.
      
      However, we still do a remove from the circuitmap in circuit_free() in order
      to also cleanup the circuit if it wasn't marked for close prior to the free.
      
      Fixes #23603
      
      Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
      e80893e5
    • David Goulet's avatar
      hs-v3: Don't cleanup intro point in has_closed() · ba63c409
      David Goulet authored
      
      The hs_service_intro_circ_has_closed() was removing intro point objects if too
      many retries.
      
      We shouldn't cleanup those objects in that function at all but rather let
      cleanup_intro_points() do its job and clean it properly.
      
      This was causing an issue in #23603.
      
      Furthermore, this moves the logic of remembering failing intro points in the
      cleanup_intro_points() function which should really be the only function to
      know when to cleanup and thus when an introduction point should be remembered
      as a failed one.
      
      Fixes #23603
      
      Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
      ba63c409
  2. Dec 04, 2017
  3. Dec 01, 2017
  4. Nov 30, 2017
Loading