When getting connected devices merge the device info retrieved by each method. When the router is running in AP mode the neighbour check does not return IP addresses for the devices it returns while the wl and arp checks do seem to. However, because the neighbour check happens last the Device entries that it produces overwrite those produced for the same MACs by the previous two checks.
This change makes the merging of those sets also attempt to merge the fields of the Device. One risk here is that the new device and old device both have valid but different values for a field. This is considered an error so I just log and carry on. This has the effect of making the values in the first device seen for a MAC take precedence while previously it would have been the last device that would have. I think this difference is a low risk as either way it's unexpected behaviour if they don't match up.
When getting connected devices merge the device info retrieved by each method. When the router is running in AP mode the neighbour check does not return IP addresses for the devices it returns while the wl and arp checks do seem to. However, because the neighbour check happens last the Device entries that it produces overwrite those produced for the same MACs by the previous two checks.
This change makes the merging of those sets also attempt to merge the fields of the Device. One risk here is that the new device and old device both have valid but different values for a field. This is considered an error so I just log and carry on. This has the effect of making the values in the first device seen for a MAC take precedence while previously it would have been the last device that would have. I think this difference is a low risk as either way it's unexpected behaviour if they don't match up.