From 8eb6937323b0e48183dfbf1bc9a6973dc06ef6dc Mon Sep 17 00:00:00 2001
From: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Date: Mon, 23 Mar 2015 15:36:09 -0400
Subject: [PATCH] audio: fix socket opening on OSX

On OSX we need a second call to fcntl to specify O_NON_BLOCK.
It's ignored when passed in socket()

Refs #69052

Change-Id: I7f9c356423d4d0c35a4dc04deb38b39ad1e0d576
---
 src/media/socket_pair.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/media/socket_pair.cpp b/src/media/socket_pair.cpp
index 6fd6d5be82..6688104b52 100644
--- a/src/media/socket_pair.cpp
+++ b/src/media/socket_pair.cpp
@@ -55,7 +55,6 @@ extern "C" {
 
 #ifdef __APPLE__
 #include <fcntl.h>
-#define SOCK_NONBLOCK O_NONBLOCK
 #endif
 
 namespace ring {
@@ -153,10 +152,17 @@ udp_socket_create(sockaddr_storage *addr, socklen_t *addr_len, int local_port)
     if (res0 == 0)
         return -1;
     for (res = res0; res; res=res->ai_next) {
+#ifdef __APPLE__
+        udp_fd = socket(res->ai_family, SOCK_DGRAM, 0);
+        if (udp_fd != -1 && fcntl(udp_fd, F_SETFL, O_NONBLOCK) != -1) {
+#else
         udp_fd = socket(res->ai_family, SOCK_DGRAM | SOCK_NONBLOCK, 0);
-        if (udp_fd != -1) break;
+        if (udp_fd != -1) {
+#endif
+           break;
+        }
         RING_ERR("socket error");
-    }
+     }
 
     if (udp_fd < 0) {
         freeaddrinfo(res0);
-- 
GitLab