From 17c950cc57c010137c006cec0de257deca52e855 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Fri, 18 Dec 2020 15:47:39 +0100 Subject: [PATCH] Use fcntl to make a socket non blocking (MacOS fix) --- src/screens/visualizer.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/screens/visualizer.cpp b/src/screens/visualizer.cpp index dfb80922..b6348b07 100644 --- a/src/screens/visualizer.cpp +++ b/src/screens/visualizer.cpp @@ -760,10 +760,13 @@ void Visualizer::OpenDataSource() for (auto addr = res; addr != nullptr; addr = addr->ai_next) { - m_source_fd = socket(res->ai_family, SOCK_NONBLOCK | res->ai_socktype, - res->ai_protocol); + m_source_fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol); if (m_source_fd >= 0) { + // No SOCK_NONBLOCK on MacOS + int socket_flags = fcntl(m_source_fd, F_GETFL, 0); + fcntl(m_source_fd, F_SETFL, socket_flags | O_NONBLOCK); + errcode = bind(m_source_fd, res->ai_addr, res->ai_addrlen); if (errcode < 0) {