Before this change, if you had a NixOS configuration that used an older
version of Nixpkgs that provides Syncthing version 1.x, and you upgraded
to a newer version of Nixpkgs that provides Syncthing version 2.x, then
you might have encountered a race condition which causes
syncthing-init.service to fail.
This commit prevents that race condition from happening. This should
make it safer for users to upgrade from Syncthing version 1.x to
Syncthing version 2.x.
Fixes#465573.
Ethr is a comprehensive network performance measurement tool that operates in three distinct modes:
* **Server Mode** (`-s`)
* Runs Ethr as a server listener to accept incoming connections for performance tests.
* Supports binding to specific IPs and ports.
* Includes a Text UI (`-ui`) option and an option to exit after handling a single client connection (similar to iPerf3 behavior) for precise synchronization.
* **Client Mode** (`-c <server>`)
* Connects to an Ethr server to perform comprehensive performance benchmarks.
* **Supported Protocols:** TCP, UDP, HTTP, HTTPS, and ICMP.
* **Measurement Capabilities:**
* **Bandwidth:** Measure throughput with options for throttling (`-b`), buffer length (`-l`), and reverse direction (`-r`).
* **Connections/s:** Benchmark connection establishment rates.
* **Packets/s:** Measure packet processing rates.
* **Latency & Loss:** Detailed analysis of latency, packet loss, and jitter.
* **Diagnostics:** Supports TraceRoute and MyTraceRoute (MTR).
* Supports multi-threaded parallel sessions (`-n`).
* **External Mode** (`-x <destination>`)
* Allows Ethr to test against non-Ethr endpoints (standard URLs or Host:Port combinations).
* **Use Cases:** Testing connectivity against public websites or standard services (e.g., `www.microsoft.com:443`).
* **Supported Tests:**
* **TCP/ICMP:** Connection establishment rates and connectivity checks.
* **Ping:** Loss and latency measurements.
* **TraceRoute:** Standard and MTR-style path analysis.