diff options
author | Jose <jose@zeroc.com> | 2016-12-14 12:59:21 -0800 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-12-14 12:59:21 -0800 |
commit | b650952f6306594c4cd28e5f2ee76b9907e5024e (patch) | |
tree | eab1852e9a9ffb4cfff2ea40ca0158e9c7f3dd7d | |
parent | Fix for JS workers tests (diff) | |
parent | Fix for dependency parsing (diff) | |
download | ice-b650952f6306594c4cd28e5f2ee76b9907e5024e.tar.bz2 ice-b650952f6306594c4cd28e5f2ee76b9907e5024e.tar.xz ice-b650952f6306594c4cd28e5f2ee76b9907e5024e.zip |
Merge remote-tracking branch 'origin/3.6'
-rw-r--r-- | cpp/src/IceSSL/OpenSSLEngine.cpp | 17 | ||||
-rw-r--r-- | cpp/src/IceSSL/OpenSSLTransceiverI.cpp | 6 | ||||
-rwxr-xr-x | cpp/src/IceSSL/Util.cpp | 6 | ||||
-rw-r--r-- | cpp/src/Slice/Preprocessor.cpp | 32 |
4 files changed, 45 insertions, 16 deletions
diff --git a/cpp/src/IceSSL/OpenSSLEngine.cpp b/cpp/src/IceSSL/OpenSSLEngine.cpp index 8a6af245907..25320a03a8a 100644 --- a/cpp/src/IceSSL/OpenSSLEngine.cpp +++ b/cpp/src/IceSSL/OpenSSLEngine.cpp @@ -41,7 +41,7 @@ IceUtil::Mutex* staticMutex = 0; int instanceCount = 0; bool initOpenSSL = false; -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) IceUtil::Mutex* locks = 0; #endif @@ -53,7 +53,7 @@ extern "C" // OpenSSL 1.1.0 introduces a new thread API and removes // the need to use a custom thread callback. // -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) // // OpenSSL mutex callback. // @@ -124,7 +124,7 @@ IceSSL_opensslPasswordCallback(char* buf, int size, int flag, void* userData) DH* IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength) { -# if OPENSSL_VERSION_NUMBER >= 0x10100000L +# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) SSL_CTX* ctx = SSL_get_SSL_CTX(ssl); # else SSL_CTX* ctx = ssl->ctx; @@ -154,7 +154,7 @@ public: // OpenSSL 1.1.0 introduces a new thread API and removes // the need to use a custom thread callback. // -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) if(CRYPTO_get_locking_callback() == IceSSL_opensslLockCallback) { assert(locks); @@ -222,11 +222,12 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) : // // OpenSSL 1.1.0 remove the need for library initialization and cleanup. // -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) if(!CRYPTO_get_id_callback()) { CRYPTO_set_id_callback(IceSSL_opensslThreadIdCallback); } + // // Create the mutexes and set the callbacks. // @@ -333,7 +334,7 @@ OpenSSLEngine::~OpenSSLEngine() // // OpenSSL 1.1.0 remove the need for library initialization and cleanup. // -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) // // Clean up OpenSSL resources. // @@ -406,7 +407,7 @@ OpenSSLEngine::initialize() "IceSSL: unable to create SSL context:\n" + sslErrors()); } -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) int securityLevel = properties->getPropertyAsIntWithDefault(propPrefix + "SecurityLevel", -1); if(securityLevel != -1) { @@ -961,7 +962,7 @@ OpenSSLEngine::parseProtocols(const StringSeq& protocols) const SSL_METHOD* OpenSSLEngine::getMethod(int /*protocols*/) { -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) SSL_METHOD* meth = const_cast<SSL_METHOD*>(TLS_method()); #else // diff --git a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp index d3195e2b141..863b758791d 100644 --- a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +++ b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp @@ -36,7 +36,7 @@ using namespace IceSSL; // // See: http://cvs.openssl.org/chngview?cn=22569 // -#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL && !defined(LIBRESSL_VERSION_NUMBER) namespace { @@ -170,13 +170,13 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B // // See: http://cvs.openssl.org/chngview?cn=22569 // -#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL && !defined(LIBRESSL_VERSION_NUMBER) IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(sslMutex); #endif int ret = _incoming ? SSL_accept(_ssl) : SSL_connect(_ssl); -#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x100000bfL && !defined(LIBRESSL_VERSION_NUMBER) sync.release(); #endif if(ret <= 0) diff --git a/cpp/src/IceSSL/Util.cpp b/cpp/src/IceSSL/Util.cpp index 0c227c7e279..f6fd6a92563 100755 --- a/cpp/src/IceSSL/Util.cpp +++ b/cpp/src/IceSSL/Util.cpp @@ -131,7 +131,7 @@ namespace { # ifndef OPENSSL_NO_DH -# if OPENSSL_VERSION_NUMBER < 0x10100000L +# if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) // The following arrays are predefined Diffie Hellman group parameters. // These are known strong primes, distributed with the OpenSSL library @@ -359,7 +359,7 @@ unsigned char dh4096[] = // // Convert a predefined parameter set into a DH value. // -# if OPENSSL_VERSION_NUMBER >= 0x10100000L +# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) static DH* convertDH(const unsigned char* buf, int len) { @@ -449,7 +449,7 @@ IceSSL::DHParams::get(int keyLength) // No match found. Use one of the predefined parameter sets instead. // IceUtil::Mutex::Lock sync(*this); -# if OPENSSL_VERSION_NUMBER >= 0x10100000L +# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) if(keyLength >= 4096) { if(!_dh4096) diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp index 912d024ab2e..2e0192edab9 100644 --- a/cpp/src/Slice/Preprocessor.cpp +++ b/cpp/src/Slice/Preprocessor.cpp @@ -382,12 +382,40 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons // First remove the backslash used to escape new lines. // string::size_type pos; - while((pos = unprocessed.find("\\\n")) != string::npos) + while((pos = unprocessed.find(" \\\n")) != string::npos) { - unprocessed.replace(pos, 2, "\n"); + unprocessed.replace(pos, 3, "\n"); } // + // Split filenames in separate lines: + // + // /foo/A.ice /foo/B.ice becomes + // /foo/A.ice + // /foo/B.ice + // + // C:\foo\A.ice C:\foo\B.ice becomes + // C:\foo\A.ice + // C:\foo\B.ice + // + pos = 0; +#ifdef _WIN32 + while((pos = unprocessed.find(".ice ", pos)) != string::npos) + { + if(unprocessed.find(":", pos) == pos + 6) + { + unprocessed.replace(pos, 5, ".ice\n"); + pos += 5; + } + } +#else + while((pos = unprocessed.find(".ice /", pos)) != string::npos) + { + unprocessed.replace(pos, 5, ".ice\n"); + } +#endif + + // // Get the main output file name. // #ifdef _MSC_VER |