The for loop "for (currIface = ifaces; currIface != 0; currIface = currIface->ifa_next)" is surrounded by a try-catch block. If for some reason poco can not handle one of the addresses from getifaddrs, poco will stop parsing the list and return what it has found.
On my Mac with a thunderbolt ethernet adapter, I found that it was not detecting the adapter because poco could not handle an earlier entry in the map. Surrounding the interior of the for-loop with try-catch made my external ethernet adapter show up properly.
The for loop "for (currIface = ifaces; currIface != 0; currIface = currIface->ifa_next)" is surrounded by a try-catch block. If for some reason poco can not handle one of the addresses from getifaddrs, poco will stop parsing the list and return what it has found.
On my Mac with a thunderbolt ethernet adapter, I found that it was not detecting the adapter because poco could not handle an earlier entry in the map. Surrounding the interior of the for-loop with try-catch made my external ethernet adapter show up properly.