Skip to content

Commit 50205e9

Browse files
fix(netwatch): ensure ips and other fields are sorted (#110)
This ensures these don't change order between calls, even if the underlying systems did change ordering. This is required for some comparisons to be valid Co-authored-by: Diva Martínez <git@divma.net>
1 parent 513ec2b commit 50205e9

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

netwatch/src/interfaces.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,13 @@ impl State {
223223
let ifaces = netdev::interface::get_interfaces();
224224
let local_addresses = LocalAddresses::from_raw_interfaces(&ifaces);
225225

226-
for iface in ifaces {
226+
for mut iface in ifaces {
227+
// ensure these are all sorted, so any comparisons made are stable
228+
iface.ipv4.sort();
229+
iface.ipv6.sort();
230+
iface.ipv6_scope_ids.sort();
231+
iface.dns_servers.sort();
232+
227233
let ni = Interface { iface };
228234
let if_up = ni.is_up();
229235
let name = ni.iface.name.clone();

0 commit comments

Comments
 (0)