mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
To simulate varying network conditions in our tests, each `Host` in our test network has an "inbox" that contains all incoming network packets with an added latency. When another hosts sends a packet, the packet gets added to the inbox. Internally, the inbox has a binary heap that sorts incoming `Transmits` by their latency and only delivers them to the node when that delay is up. Currently, this delivery doesn't always happen because we fail to take into account the timestamp as when the next `Transmit` is due when we figure out what to do next. Instead of just looking at the inner state via `poll_transmit`, we now also consult the inbox of messages as to when the next message is due and wake up at the correct time. Not doing this caused our state machine to think that packets got dropped because `REFRESH` messages to the relays were timing out. Resolves: #9118
Connlib
Firezone's connectivity library shared by all clients.
Building Connlib
You shouldn't need to build connlib directly; it's typically built as a dependency of one of the other Firezone components. See READMEs in those directories for relevant instructions.