• David Goulet's avatar
    hs-v3: Close client intro circuits if the descriptor is replaced · 9ba16c4d
    David Goulet authored
    
    
    When storing a descriptor in the client cache, if we are about to replace an
    existing descriptor, make sure to close every introduction circuits of the old
    descriptor so we don't have leftovers lying around.
    
    Ticket 27471 describes a situation where tor is sending an INTRODUCE1 cell on
    an introduction circuit for which it doesn't have a matching intro point
    object (taken from the descriptor).
    
    The main theory is that, after a new descriptor showed up, the introduction
    points changed which led to selecting an introduction circuit not used by the
    service anymore thus for which we are unable to find the corresponding
    introduction point within the descriptor we just fetched.
    
    Closes #27471.
    
    Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
    9ba16c4d