Skip to content
Snippets Groups Projects
  1. May 27, 2022
  2. May 24, 2022
  3. May 13, 2022
  4. May 12, 2022
  5. May 11, 2022
  6. May 09, 2022
  7. May 06, 2022
  8. May 05, 2022
  9. May 04, 2022
  10. Apr 26, 2022
  11. Apr 25, 2022
  12. Apr 22, 2022
    • Ian Jackson's avatar
      logfiles: Introduce LogfileListConfigBuilder · 79decd4a
      Ian Jackson authored
      In
        tpo/core/arti!462 (comment 2797697)
      we decided not to do this.
      
      However, having looked again at the way the FallbackList works, I
      think there is a lot of value in making these two things (and anything
      else like them[1]) as similar as possible.
      
      [1] At least PreemptiveCircuitConfig.initial_predicted_ports and
      NetworkConfig.authorities need the same treatment, and perhaps also
      GuardUsage.restrictions (although there is no
      GuardRestrictionBuilder).
      
      In the irc discussion I imagined `LogfilesConfigBuilder` as opposed to
      `LogfileConfigBuilder` (differing only in the `s`) which would be bad,
      but we can use `List` instead.
      
      We do *not* need to abstract away the validated version of the config.
      Providing a type alias helps the derive_builder sub_builder DTRT
      without needing special overrides.
      
      I have split this commit so that we can drop it, if we conclude it's
      not wanted.
      79decd4a
    • Ian Jackson's avatar
      fallback list: Introduce and use FallbackListBuilder · 962b6c32
      Ian Jackson authored
      Now the network fallbacks configuration wants to Deserialize
      a Vec<FallbackDirBuilder>, rather than validated Vec<FallbackDir>.
      
      Methods on FallbackListBuilder are as per
        tpo/core/arti!462 (comment 2797697)
      mutatis mutandi for the fact that this struct has only fallbacks in it.
      962b6c32
  13. Apr 12, 2022
  14. Apr 11, 2022
    • Nick Mathewson's avatar
      Implement a better clock skew estimator. · cf362fac
      Nick Mathewson authored
      This time, our estimator discards outliers, takes the mean of what's
      left, and uses the standard deviation to try to figure out how
      seriously to take our report of skew/not-skew.
      
      These estimates are still not actually used.
      cf362fac
  15. Apr 07, 2022
  16. Apr 04, 2022
    • Nick Mathewson's avatar
      Add RetrySchedule::reset() · 57608f96
      Nick Mathewson authored
      Previously the code would do stuff like
      
      ```
          schedule = RetrySchedule::new(INITIAL_DELAY);
      ```
      
      which is needlessly verbose, since the schedule already keeps track
      of its initial delay.
      57608f96
    • Nick Mathewson's avatar
      circmgr: Avoid a race condition in circuit usage restriction · 86c59dd1
      Nick Mathewson authored
      We were treating restrict_mut() failures as internal errors, and
      using internal errors to represent them.  But in fact, these
      failures are entirely possible based on timing.  Here's how it
      happens:
      
      * Two different circuit requests arrive at the same time, and both
        notice a pending circuit that they could use.
      * The pending circuit completes; both pending requests are notified.
      * The first request calls restrict_mut(), and restricts the request
        in such a way that the second couldn't use it.
      * The second request calls restrict_mut(), and gets a failure.
      
      Because of this issue, we treat these errors as transient failures
      and just wait for another circuit.
      
      Closes #427.
      
      (This is not a breaking API change, since `AbstractSpec` is a
      crate-private trait.)
      86c59dd1
Loading