From 9a3bddef19a7fc6c863db04a1c23d7b9730a1214 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Wed, 2 Oct 2019 11:54:40 +0200 Subject: [PATCH 1/3] Windows multicast socket fix --- lib/socket.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/socket.cpp b/lib/socket.cpp index 1b1c6ace..733c969f 100644 --- a/lib/socket.cpp +++ b/lib/socket.cpp @@ -1766,6 +1766,11 @@ uint16_t Socket::UDPConnection::bind(int port, std::string iface, const std::str sockaddr_in *addr4 = (sockaddr_in *)(rp->ai_addr); // multicast has a "1110" bit prefix multicast = (((char *)&(addr4->sin_addr))[0] & 0xF0) == 0xE0; +#ifdef __CYGWIN__ + if (multicast){ + ((sockaddr_in*)rp->ai_addr)->sin_addr.s_addr = htonl(INADDR_ANY); + } +#endif } if (multicast){ const int optval = 1; From dcc50efbd0064c191ca51decd1a47fe557873606 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 3 Oct 2019 10:20:58 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Fixed=20compiling=20of=20-DDEBUG=3D3=20-DNO?= =?UTF-8?q?SSL=3D1=20option=20combination=20=F0=9F=98=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/socket.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/socket.cpp b/lib/socket.cpp index 733c969f..1d5e2e68 100644 --- a/lib/socket.cpp +++ b/lib/socket.cpp @@ -1137,7 +1137,11 @@ Socket::Connection::Connection(const Connection &rhs){ clear(); if (!rhs){return;} #if DEBUG >= DLVL_DEVEL +#ifdef SSL HIGH_MSG("Copying %s socket", rhs.sslConnected ? "SSL" : "regular"); +#else + HIGH_MSG("Copying regular socket"); +#endif #endif conntime = rhs.conntime; isTrueSocket = rhs.isTrueSocket; @@ -1166,7 +1170,11 @@ Socket::Connection &Socket::Connection::operator=(const Socket::Connection &rhs) clear(); if (!rhs){return *this;} #if DEBUG >= DLVL_DEVEL +#ifdef SSL HIGH_MSG("Assigning %s socket", rhs.sslConnected ? "SSL" : "regular"); +#else + HIGH_MSG("Assigning regular socket"); +#endif #endif conntime = rhs.conntime; isTrueSocket = rhs.isTrueSocket; From d9c3b636c83bf0ee903ba83ff434952a37cf1c93 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 3 Oct 2019 14:41:26 +0200 Subject: [PATCH 3/3] Fixed live pull inputs in Windows/Cygwin --- src/io.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/io.cpp b/src/io.cpp index a4dfa954..d692c230 100644 --- a/src/io.cpp +++ b/src/io.cpp @@ -599,6 +599,9 @@ namespace Mist { DEBUG_MSG(DLVL_FAIL, "Failed to negotiate for incoming track %lu, there does not seem to be a connection with the buffer", tid); return; } + #if defined(__CYGWIN__) || defined(_WIN32) + static std::map preservedTempMetas; + #endif unsigned long offset = 6 * trackOffset[tid]; //If we have a new track to negotiate if (!trackState.count(tid)) { @@ -626,9 +629,10 @@ namespace Mist { std::string tmpStr = tmpVal.toNetPacked(); memcpy(metaPages[tid].mapped, tmpStr.data(), tmpStr.size()); - - - + #if defined(__CYGWIN__) || defined(_WIN32) + IPC::preservePage(pageName); + preservedTempMetas[tid] = pageName; + #endif snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), finalTid); metaPages[tid].init(pageName, SHM_TRACK_INDEX_SIZE, true); @@ -645,9 +649,6 @@ namespace Mist { } return; } - #if defined(__CYGWIN__) || defined(_WIN32) - static std::map preservedTempMetas; - #endif switch (trackState[tid]) { case FILL_NEW: { unsigned long newTid = ((long)(tmp[offset]) << 24) | ((long)(tmp[offset + 1]) << 16) | ((long)(tmp[offset + 2]) << 8) | tmp[offset + 3];