diff --git a/src/shared/constants.h b/src/shared/constants.h index ed94c0cde9..9310434047 100644 --- a/src/shared/constants.h +++ b/src/shared/constants.h @@ -22,6 +22,13 @@ static const std::unordered_map ROBOT_MULTICAST_CHANNELS = { {12, "ff02::c3d0:42d2:bb12"}, {13, "ff02::c3d0:42d2:bb13"}, {14, "ff02::c3d0:42d2:bb14"}, {15, "ff02::c3d0:42d2:bb15"}}; +// the name of the loopback network interface, which differs across platforms +#ifdef __APPLE__ +static const std::string LOOPBACK_INTERFACE = "lo0"; +#else +static const std::string LOOPBACK_INTERFACE = "lo"; +#endif + // PlotJuggler's default host and port static const std::string PLOTJUGGLER_GUI_DEFAULT_HOST = "ff02::c3d0:42d2:aaaa"; static const short unsigned int PLOTJUGGLER_GUI_DEFAULT_PORT = 9870; diff --git a/src/software/logger/plotjuggler_sink.h b/src/software/logger/plotjuggler_sink.h index 99b1a8583b..14b3919c9f 100644 --- a/src/software/logger/plotjuggler_sink.h +++ b/src/software/logger/plotjuggler_sink.h @@ -4,6 +4,7 @@ #include #include "proto/visualization.pb.h" +#include "shared/constants.h" #include "software/logger/custom_logging_levels.h" #include "software/networking/udp/threaded_udp_sender.h" @@ -20,7 +21,7 @@ class PlotJugglerSink * * @param interface The interface to send Plotjuggler UDP packets on */ - PlotJugglerSink(const std::string& interface = "lo"); + PlotJugglerSink(const std::string& interface = LOOPBACK_INTERFACE); ~PlotJugglerSink() = default; diff --git a/src/software/networking/udp/BUILD b/src/software/networking/udp/BUILD index 5e78de1f29..05244d26ff 100644 --- a/src/software/networking/udp/BUILD +++ b/src/software/networking/udp/BUILD @@ -17,6 +17,7 @@ cc_test( ], deps = [ ":network_utils", + "//shared:constants", "//shared/test_util:tbots_gtest_main", ], ) @@ -68,6 +69,7 @@ cc_test( ], deps = [ ":threaded_proto_udp_listener", + "//shared:constants", "//shared/test_util:tbots_gtest_main", "@protobuf//:empty_cc_proto", ], @@ -90,6 +92,7 @@ cc_test( ], deps = [ ":threaded_proto_udp_sender", + "//shared:constants", "//shared/test_util:tbots_gtest_main", "@protobuf//:empty_cc_proto", ], diff --git a/src/software/networking/udp/network_utils_test.cpp b/src/software/networking/udp/network_utils_test.cpp index 52cc8b8c32..e9ede4cfd8 100644 --- a/src/software/networking/udp/network_utils_test.cpp +++ b/src/software/networking/udp/network_utils_test.cpp @@ -2,9 +2,11 @@ #include +#include "shared/constants.h" + TEST(NetworkUtilsTest, getLocalIpValidInterface) { - std::string interface = "lo"; + std::string interface = LOOPBACK_INTERFACE; std::optional local_ip = getLocalIp(interface, true); EXPECT_TRUE(local_ip); EXPECT_EQ(local_ip.value(), "127.0.0.1"); diff --git a/src/software/networking/udp/threaded_proto_udp_listener_test.cpp b/src/software/networking/udp/threaded_proto_udp_listener_test.cpp index 70bac1ae1e..9b15496a06 100644 --- a/src/software/networking/udp/threaded_proto_udp_listener_test.cpp +++ b/src/software/networking/udp/threaded_proto_udp_listener_test.cpp @@ -3,6 +3,7 @@ #include #include "google/protobuf/empty.pb.h" +#include "shared/constants.h" #include "software/networking/tbots_network_exception.h" TEST(ThreadedProtoUdpListenerTest, error_finding_local_ip_address) @@ -17,12 +18,12 @@ TEST(ThreadedProtoUdpListenerTest, error_creating_socket) { // This will always fail because it requires root privileges to open this port EXPECT_THROW(ThreadedProtoUdpListener( - "224.5.23.1", 1023, "lo", [](const auto&) {}, true), + "224.5.23.1", 1023, LOOPBACK_INTERFACE, [](const auto&) {}, true), TbotsNetworkException); } TEST(ThreadedProtoUdpListenerTest, no_error_creating_socket) { ThreadedProtoUdpListener( - "224.5.23.0", 40000, "lo", [](const auto&) {}, true); + "224.5.23.0", 40000, LOOPBACK_INTERFACE, [](const auto&) {}, true); } diff --git a/src/software/networking/udp/threaded_proto_udp_sender_test.cpp b/src/software/networking/udp/threaded_proto_udp_sender_test.cpp index f9c04d1322..893926d3cc 100644 --- a/src/software/networking/udp/threaded_proto_udp_sender_test.cpp +++ b/src/software/networking/udp/threaded_proto_udp_sender_test.cpp @@ -3,6 +3,7 @@ #include #include "google/protobuf/empty.pb.h" +#include "shared/constants.h" #include "software/networking/tbots_network_exception.h" TEST(ThreadedProtoUdpSenderTest, error_finding_local_ip_address) @@ -14,5 +15,6 @@ TEST(ThreadedProtoUdpSenderTest, error_finding_local_ip_address) TEST(ThreadedProtoUdpSenderTest, no_error_creating_socket) { - ThreadedProtoUdpSender("224.5.23.1", 40000, "lo", true); + ThreadedProtoUdpSender("224.5.23.1", 40000, + LOOPBACK_INTERFACE, true); }