1. 29 Oct, 2021 10 commits
  2. 28 Oct, 2021 16 commits
  3. 27 Oct, 2021 8 commits
    • Nick Mathewson's avatar
      tor_circmgr: Refactor and re-enable build_timeout() test · b7c7c8ba
      Nick Mathewson authored
      The previous version of this test used the old, racy version of
      wait_for (see #149).  The new version is refactored so that
      simulated time is only allowed to advance after each step is done,
      so that we can actually be sure that each step in the process will
      happen as it should.
      
      In order to get the time-advances to proceed properly, and avoid
      polluting state between tests, I've had to introduce some machinery
      to encode the proper amount for time to advance.  It isn't something
      I'd want to use for a whole bunch of tests, but for just one set,
      it's fine.
      
      These tests now pass reliably for me.
      
      I wonder if a discrete-event-simulation approach (hello, Shadow)
      would let us write tests like these to our hearts' content?
      b7c7c8ba
    • Nick Mathewson's avatar
      Small FAQ update. · 3c82666d
      Nick Mathewson authored
      3c82666d
    • Nick Mathewson's avatar
      Add missing entries to Architecture.md · 01894dcd
      Nick Mathewson authored
      01894dcd
    • Nick Mathewson's avatar
      Upgrade to fslock version 0.2 · 2fae63b5
      Nick Mathewson authored
      This version makes all locks per-handle rather than per-process, by
      moving from lockf() to flock() on unix.
      2fae63b5
    • eta's avatar
      Improve and future-proof the `arti` CLI · 4fa0122d
      eta authored
      This switches out `arti`'s argument-parsing library with `clap`, which
      is a lot more featureful (and very widely used within the Rust
      ecosystem). We also now use a lot of `clap`'s features to improve the
      CLI experience:
      
      - The CLI now expects a subcommand (currently, either "help", or "proxy"
        for the existing SOCKS proxy behaviour). This should let us add
        additional non-SOCKS-proxy features to arti in future.
      - `clap` supports default values determined at runtime, so the way the
        default config file is loaded was changed: now, we determine the
        OS-specific path for said file before invoking `clap`, so the help
        command can show it properly.
        - The behaviour of `tor_config` was also changed; now, one simply
          specifies a list of configuration files to load, together with
          whether they're required.
        - That function also way overused generics; this has been fixed.
      - Instead of using the ARTI_LOG environment variable to configure
        logging, one now uses the `-l, --log-level` CLI option.
        (The intent is for this option to be more discoverable by users.)
      - The `proxy` subcommand allows the user to override the SOCKS port used
        on the CLI without editing the config file.
      4fa0122d
    • Nick Mathewson's avatar
      134c04a6
    • eta's avatar
      Add Futureproof<T> wrapper type, use for GuardDisabled enum · 5a4db67b
      eta authored
      The Futureproof<T> type lets you serialize and deserialize types whose
      representations might change (most useful for enums that might grow
      additional variants). It uses #[serde(untagged)] to accomplish this.
      
      This gets used in order to make the `disabled` field of `Guard` more
      robust against future guard disablement reasons being added.
      
      A test was also added to verify correct behaviour of the new type.
      5a4db67b
    • eta's avatar
      Add #[serde(flatten)] HashMap fields to serializable objects · 7a931b4d
      eta authored
      As per arti#175, we'd like to be able to handle newer Arti versions
      storing additional state in the persisted state files, without dropping
      this data on the floor when we write out changes to these files.
      
      Use the #[serde(flatten)] mechanism to achieve this, by adding catch-all
      HashMap<String, JsonValue> fields to all structs that are at risk of
      this happening to them.
      7a931b4d
  4. 26 Oct, 2021 6 commits