GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

Make sure that a circuit doesn't use relays in the same family

We implement `Relay::in_same_family` which is in turn used by
`ExitPathBuilder::pick_path` to avoid picking relays in the
same family.

Compared to the original C implementation, we are missing
support for options EnforceDistinctSubnets and NodeFamilySets.

This has only been very lightly tested so far.

Closes: #43
2 jobs for pu/fix-arti-48 in 10 minutes and 12 seconds (queued for 55 minutes and 39 seconds)
latest
Status Job ID Name Coverage
  Build
passed #7292
rust-latest

00:03:24

passed #7293
rust-nightly

00:06:47