From 5093472aa13707b5a3e3dc266e3f7f5e4510fb16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Fr=C3=B6jdh?= Date: Fri, 30 May 2025 16:57:16 +0200 Subject: [PATCH] WIP --- slsDetectorSoftware/CMakeLists.txt | 5 +-- slsDetectorSoftware/src/Module.cpp | 4 +-- slsDetectorSoftware/src/SharedMemory.h | 13 ++++++-- slsSupportLib/src/network_utils.cpp | 44 +++++++++++++------------- tests/CMakeLists.txt | 1 - 5 files changed, 36 insertions(+), 31 deletions(-) diff --git a/slsDetectorSoftware/CMakeLists.txt b/slsDetectorSoftware/CMakeLists.txt index e61084330..c7397bc48 100755 --- a/slsDetectorSoftware/CMakeLists.txt +++ b/slsDetectorSoftware/CMakeLists.txt @@ -29,7 +29,6 @@ target_link_libraries(slsDetectorObject slsProjectOptions slsSupportStatic pthread - rt PRIVATE slsProjectWarnings ) @@ -98,9 +97,7 @@ if(SLS_USE_TEXTCLIENT) add_executable(${val1} src/CmdApp.cpp) target_link_libraries(${val1} - slsDetectorStatic - pthread - rt + slsDetectorStatic ) SET_SOURCE_FILES_PROPERTIES( src/Caller.cpp PROPERTIES COMPILE_FLAGS "-Wno-unused-variable -Wno-unused-but-set-variable") diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index d1356c30f..5cf49e162 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1203,7 +1203,7 @@ void Module::setDestinationUDPIP(const IpAddr ip) { } sendToDetector(F_SET_DEST_UDP_IP, ip, nullptr); if (shm()->useReceiverFlag) { - MacAddr retval(0LU); + MacAddr retval{uint64_t(0)}; sendToReceiver(F_SET_RECEIVER_UDP_IP, ip, retval); LOG(logINFO) << "Setting destination udp mac of Module " << moduleIndex << " to " << retval; @@ -1226,7 +1226,7 @@ void Module::setDestinationUDPIP2(const IpAddr ip) { } sendToDetector(F_SET_DEST_UDP_IP2, ip, nullptr); if (shm()->useReceiverFlag) { - MacAddr retval(0LU); + MacAddr retval{uint64_t(0)}; sendToReceiver(F_SET_RECEIVER_UDP_IP2, ip, retval); LOG(logINFO) << "Setting destination udp mac2 of Module " << moduleIndex << " to " << retval; diff --git a/slsDetectorSoftware/src/SharedMemory.h b/slsDetectorSoftware/src/SharedMemory.h index 880e7e89f..21766098d 100644 --- a/slsDetectorSoftware/src/SharedMemory.h +++ b/slsDetectorSoftware/src/SharedMemory.h @@ -25,8 +25,12 @@ #include namespace sls { - -#define SHM_DETECTOR_PREFIX "/slsDetectorPackage_detector_" +#ifdef __APPLE__ + // On macOS SHM_NAME_MAX is 31 so we need the shortest possible prefix + #define SHM_DETECTOR_PREFIX "/sls_" +#else + #define SHM_DETECTOR_PREFIX "/slsDetectorPackage_detector_" +#endif #define SHM_MODULE_PREFIX "_module_" #define SHM_ENV_NAME "SLSDETNAME" @@ -203,6 +207,11 @@ template class SharedMemory { throw SharedMemoryError(msg); } + #ifdef __APPLE__ + // On macOS, fstat returns the allocated size and not the requested size. + // This means we can't check for size since we always get for example 16384 bytes. + return; + #endif auto actual_size = static_cast(sb.st_size); auto expected_size = sizeof(T); if (actual_size != expected_size) { diff --git a/slsSupportLib/src/network_utils.cpp b/slsSupportLib/src/network_utils.cpp index 423e9825a..1925d15ca 100644 --- a/slsSupportLib/src/network_utils.cpp +++ b/slsSupportLib/src/network_utils.cpp @@ -15,7 +15,7 @@ #include #include #include -#include +// #include #include #include #include @@ -178,30 +178,30 @@ IpAddr InterfaceNameToIp(const std::string &ifn) { MacAddr InterfaceNameToMac(const std::string &inf) { // TODO! Copied from genericSocket needs to be refactored! - struct ifreq ifr; - char mac[32]; - const int mac_len = sizeof(mac); - memset(mac, 0, mac_len); + // struct ifreq ifr; + // char mac[32]; + // const int mac_len = sizeof(mac); + // memset(mac, 0, mac_len); - int sock = socket(PF_INET, SOCK_STREAM, 0); - strncpy(ifr.ifr_name, inf.c_str(), sizeof(ifr.ifr_name) - 1); - ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; + // int sock = socket(PF_INET, SOCK_STREAM, 0); + // strncpy(ifr.ifr_name, inf.c_str(), sizeof(ifr.ifr_name) - 1); + // ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; - if (-1 == ioctl(sock, SIOCGIFHWADDR, &ifr)) { - perror("ioctl(SIOCGIFHWADDR) "); - return MacAddr{}; - } - for (int j = 0, k = 0; j < 6; j++) { - k += snprintf( - mac + k, mac_len - k - 1, j ? ":%02X" : "%02X", - (int)(unsigned int)(unsigned char)ifr.ifr_hwaddr.sa_data[j]); - } - mac[mac_len - 1] = '\0'; + // if (-1 == ioctl(sock, SIOCGIFHWADDR, &ifr)) { + // perror("ioctl(SIOCGIFHWADDR) "); + // return MacAddr{}; + // } + // for (int j = 0, k = 0; j < 6; j++) { + // k += snprintf( + // mac + k, mac_len - k - 1, j ? ":%02X" : "%02X", + // (int)(unsigned int)(unsigned char)ifr.ifr_hwaddr.sa_data[j]); + // } + // mac[mac_len - 1] = '\0'; - if (sock != 1) { - close(sock); - } - return MacAddr(mac); + // if (sock != 1) { + // close(sock); + // } + return MacAddr(); } void validatePortNumber(uint16_t port) { diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4811f1798..cfab4730b 100755 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -25,7 +25,6 @@ target_link_libraries(tests slsProjectOptions slsSupportStatic pthread - rt PRIVATE slsProjectWarnings )