Use fcntl to make a socket non blocking (MacOS fix)

master
Andrzej Rybczak 5 years ago
parent 5b1a390270
commit 17c950cc57
  1. 7
      src/screens/visualizer.cpp

@ -760,10 +760,13 @@ void Visualizer::OpenDataSource()
for (auto addr = res; addr != nullptr; addr = addr->ai_next) for (auto addr = res; addr != nullptr; addr = addr->ai_next)
{ {
m_source_fd = socket(res->ai_family, SOCK_NONBLOCK | res->ai_socktype, m_source_fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
res->ai_protocol);
if (m_source_fd >= 0) 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); errcode = bind(m_source_fd, res->ai_addr, res->ai_addrlen);
if (errcode < 0) if (errcode < 0)
{ {

Loading…
Cancel
Save