SoundMetrics / aris-integration-sdk

SDK for building custom controllers for the ARIS sonar.
MIT License
5 stars 2 forks source link

arislog doesn't see link-local ARIS on multi-interface setup #52

Closed curtnichols closed 7 years ago

curtnichols commented 7 years ago

Expected Behavior

arislog should see a sonar whether it's on a subnet with DHCP assignment or an actual direct link, even when the ARIS is on a separate physical link.

Current Behavior

Given the context below, ARIS on the 192.168 subnet appear but ARIS on link-local don't.

Steps to Reproduce (for bugs)

Set up configuration per the context below.

  1. Run arislog.
  2. Note that 24--on the USB-Ethernet adapter--does not appear.
  3. Move 24 to the 192.168 network on the switch.
  4. Note that 24 now appears.

Your Environment

Context

Explorers on the network are seen on the 192.168 ethernet; my local ARIS 24 when link-local on a USB-Ethernet adapter is not seen.

curtnichols commented 7 years ago

A brief look at the socket code doesn't reveal anything obvious (compared to the BackEnd's listener).

fvasquez commented 7 years ago

If the listener is binding to INADDRANY I believe that means it's listening on any and all_ NICs.

curtnichols commented 7 years ago

Neither ARIScope nor arislog specifically refer to INADDR_ANY, yet ARIScope behaves correctly.

Stepping through the code, endpoint::endpoint sets the address to INADDR_ANY.

Presently, arislog works correctly only in the x86/Debug target; the other three targets don't show the link local beacons (they're not received). Will likely take a look into boost versions and known bugs and/or back-dating the compiler.

Note: ARIScope uses VC2017 tools (v141) and Boost 1.64.

Target Toolset Boost 1.64 Boost 1.63 Boost 1.61
Debug/x86 v141 PASS
Debug/x64 v141 FAIL
Release/x86 v141 FAIL
Release/x64 v141 FAIL
Debug/x86 v140 PASS PASS PASS
Debug/x64 v140 FAIL FAIL FAIL
Release/x86 v140 FAIL FAIL FAIL
Release/x64 v140 FAIL FAIL FAIL
curtnichols commented 7 years ago

This was an environmental issue. If you don't click all three checkboxes on the firewall dialog it won't see the interface for the USB-Ethernet adapter; apparently that's treated as a public network.