From 63074284764ccafa2f5444d4ebb0ddbfa1261b47 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Fri, 23 Oct 2020 20:09:59 +0200 Subject: [PATCH] Attempt to make cygwin compiles work again --- CMakeLists.txt | 2 +- lib/socket.cpp | 11 ++++++++--- src/io.cpp | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1848dad2..263a062c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif(COMMAND cmake_policy) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++98") SET(SOURCE_DIR ${PROJECT_SOURCE_DIR}) SET(BINARY_DIR ${PROJECT_BINARY_DIR}) diff --git a/lib/socket.cpp b/lib/socket.cpp index e6c99dfd..420ae87b 100644 --- a/lib/socket.cpp +++ b/lib/socket.cpp @@ -1583,7 +1583,11 @@ Socket::UDPConnection::UDPConnection(bool nonblock){ down = 0; destAddr = 0; destAddr_size = 0; +#ifdef __CYGWIN__ + data.allocate(SOCKETSIZE); +#else data.allocate(2048); +#endif }// Socket::UDPConnection UDP Contructor ///Checks if the UDP receive buffer is at least 1 mbyte, attempts to increase and warns user through log message on failure. @@ -1599,23 +1603,27 @@ void Socket::UDPConnection::checkRecvBuf(){ setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void*)&recvbuf, sizeof(recvbuf)); slen = sizeof(recvbuf); getsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void*)&recvbuf, &slen); +#ifndef __CYGWIN__ if (recvbuf < 1024*1024){ recvbuf = 1024*1024; setsockopt(sock, SOL_SOCKET, SO_RCVBUFFORCE, (void*)&recvbuf, sizeof(recvbuf)); slen = sizeof(recvbuf); getsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void*)&recvbuf, &slen); } +#endif if (recvbuf < 200*1024){ recvbuf = 200*1024; setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void*)&recvbuf, sizeof(recvbuf)); slen = sizeof(recvbuf); getsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void*)&recvbuf, &slen); +#ifndef __CYGWIN__ if (recvbuf < 200*1024){ recvbuf = 200*1024; setsockopt(sock, SOL_SOCKET, SO_RCVBUFFORCE, (void*)&recvbuf, sizeof(recvbuf)); slen = sizeof(recvbuf); getsockopt(sock, SOL_SOCKET, SO_RCVBUF, (void*)&recvbuf, &slen); } +#endif } if (recvbuf < 200*1024){ WARN_MSG("Your UDP receive buffer is set < 200 kbyte (%db) and the kernel denied our request for an increase. It's recommended to set your net.core.rmem_max setting to at least 200 kbyte for best results.", origbuf); @@ -1996,9 +2004,6 @@ uint16_t Socket::UDPConnection::bind(int port, std::string iface, const std::str /// \return True if a packet was received, false otherwise. bool Socket::UDPConnection::Receive(){ if (sock == -1){return false;} -#ifdef __CYGWIN__ - data.allocate((SOCKETSIZE); -#endif data.truncate(0); socklen_t destsize = destAddr_size; int r = recvfrom(sock, data, data.rsize(), MSG_TRUNC | MSG_DONTWAIT, (sockaddr *)destAddr, &destsize); diff --git a/src/io.cpp b/src/io.cpp index 10c1c7ac..8d6f56b1 100644 --- a/src/io.cpp +++ b/src/io.cpp @@ -282,6 +282,7 @@ namespace Mist{ /// \TODO META Re-Implement for Cygwin/Win32! #if defined(__CYGWIN__) || defined(_WIN32) + /* static int wipedAlready = 0; if (lowest && lowest > wipedAlready + 1){ for (int curr = wipedAlready + 1; curr < lowest; ++curr){ @@ -292,6 +293,7 @@ namespace Mist{ } // Print a message about registering the page or not. if (inserted){IPC::preservePage(curPage[idx].name);} + */ #endif // Close our link to the page. This will NOT destroy the shared page, as we've set master to // false upon construction Note: if there was a registering failure above, this WILL destroy the