diff --git a/configure.ac b/configure.ac index 52a47af071..328d48e54d 100644 --- a/configure.ac +++ b/configure.ac @@ -89,6 +89,45 @@ else: exit 1 fi +dnl ---------------------------------------------------------------------------- +dnl check for special OS like MacOS X or FreeBSD +dnl ---------------------------------------------------------------------------- + +tr_DARWIN="no" +tr_FREEBSD="no" +tr_ARM="no" + +case $target in + *-apple-darwin*) + tr_DARWIN="yes" + ;; + + *-*-freebsd*) + tr_FREEBSD="yes" + ;; + + armv7l-*-linux-gnueabihf) + CPPFLAGS="${CPPFLAGS} -O0" + tr_ARM="yes" + tr_ARM7="yes" + ;; + + armv6l-*-linux-gnueabihf) + dnl ---------------------------------------------------------------------------- + dnl special flags for Arm V6 (pi) + dnl ---------------------------------------------------------------------------- + CPPFLAGS="${CPPFLAGS} -O0 -DUSE_EABI_HARDFLOAT -march=armv6 -mfloat-abi=hard" + tr_ARM="yes" + tr_ARM6="yes" + ;; +esac + +AM_CONDITIONAL(ENABLE_DARWIN, test "x$tr_DARWIN" = xyes) +AM_CONDITIONAL(ENABLE_FREEBSD, test "x$tr_FREEBSD" = xyes) +AM_CONDITIONAL(ENABLE_ARM, test "x$tr_ARM" = xyes) +AM_CONDITIONAL(ENABLE_ARMV6, test "x$tr_ARM6" = xyes) +AM_CONDITIONAL(ENABLE_ARMV7, test "x$tr_ARM7" = xyes) + dnl ---------------------------------------------------------------------------- dnl checks for compiler and basic settings dnl ---------------------------------------------------------------------------- @@ -103,8 +142,8 @@ case $target in enable_static="yes" enable_shared="no" - list_cc="[gcc-4 gcc-3 gcc cc]" - list_cxx="[g++-4 g++-3 g++ cxx]" + list_cc="[gcc-5 gcc-4 gcc-3 gcc cc]" + list_cxx="[g++-5 g++-4 g++-3 g++ cxx]" ;; @@ -128,43 +167,6 @@ AC_PROG_RANLIB AX_CXX_COMPILE_STDCXX_11(noext, mandatory) AX_CXX_CHECK_UNORDERED_MAP_EMPLACE -dnl ---------------------------------------------------------------------------- -dnl check for special OS like MacOS X or FreeBSD -dnl ---------------------------------------------------------------------------- - -tr_DARWIN="no" -tr_FREEBSD="no" -tr_ARM="no" - -case $target in - *-apple-darwin*) - tr_DARWIN="yes" - ;; - - *-*-freebsd*) - tr_FREEBSD="yes" - ;; - - armv7l-*-linux-gnueabihf) - tr_ARM="yes" - tr_ARM7="yes" - ;; - - armv6l-*-linux-gnueabihf) - dnl ---------------------------------------------------------------------------- - dnl special flags for Arm V6 (pi) - dnl ---------------------------------------------------------------------------- - CPPFLAGS="${CPPFLAGS} -DUSE_EABI_HARDFLOAT -march=armv6 -mfloat-abi=hard" - tr_ARM="yes" - tr_ARM6="yes" - ;; -esac - -AM_CONDITIONAL(ENABLE_DARWIN, test "x$tr_DARWIN" = xyes) -AM_CONDITIONAL(ENABLE_FREEBSD, test "x$tr_FREEBSD" = xyes) -AM_CONDITIONAL(ENABLE_ARM, test "x$tr_ARM" = xyes) -AM_CONDITIONAL(ENABLE_ARMV6, test "x$tr_ARM6" = xyes) -AM_CONDITIONAL(ENABLE_ARMV7, test "x$tr_ARM7" = xyes) dnl ---------------------------------------------------------------------------- dnl bits diff --git a/js/server/tests/aql-graph-traverser.js b/js/server/tests/aql-graph-traverser.js index 81013d3d67..7f7cc92d51 100644 --- a/js/server/tests/aql-graph-traverser.js +++ b/js/server/tests/aql-graph-traverser.js @@ -869,7 +869,7 @@ function complexInternaSuite () { }, testMultipleBlocksResult: function () { - var query = "FOR x IN OUTBOUND @startId @@eCol RETURN x"; + var query = "FOR x IN OUTBOUND @startId @@eCol SORT x._key RETURN x"; var amount = 10000; var startId = vn + "/test"; var bindVars = { diff --git a/lib/SimpleHttpClient/ClientConnection.cpp b/lib/SimpleHttpClient/ClientConnection.cpp index 40fc497465..fe1d055a12 100644 --- a/lib/SimpleHttpClient/ClientConnection.cpp +++ b/lib/SimpleHttpClient/ClientConnection.cpp @@ -135,15 +135,20 @@ bool ClientConnection::connectSocket () { if (_endpoint->isConnected()) { _endpoint->disconnect(); + _isConnected = false; } _socket = _endpoint->connect(_connectTimeout, _requestTimeout); if (! TRI_isvalidsocket(_socket)) { _errorDetails = _endpoint->_errorMessage; + _isConnected = false; return false; } + + _isConnected = true; + // note: checkSocket will disconnect the socket if the check fails if (checkSocket()) { return _endpoint->isConnected(); } diff --git a/lib/SimpleHttpClient/ConnectionManager.cpp b/lib/SimpleHttpClient/ConnectionManager.cpp index 9d11ed347c..a6db708c3b 100644 --- a/lib/SimpleHttpClient/ConnectionManager.cpp +++ b/lib/SimpleHttpClient/ConnectionManager.cpp @@ -297,10 +297,6 @@ ConnectionManager::SingleServerConnection* ConnectionManager::leaseConnection (s // finally create the SingleServerConnection std::unique_ptr c(new SingleServerConnection(s, cn.get(), ep.get(), endpoint)); - if (c == nullptr) { - return nullptr; - } - // Now put it into our administration: s->addConnection(c.get()); diff --git a/lib/SimpleHttpClient/GeneralClientConnection.cpp b/lib/SimpleHttpClient/GeneralClientConnection.cpp index 041ed78b35..e35f280d4c 100644 --- a/lib/SimpleHttpClient/GeneralClientConnection.cpp +++ b/lib/SimpleHttpClient/GeneralClientConnection.cpp @@ -103,7 +103,7 @@ bool GeneralClientConnection::connect () { return false; } - _isConnected = connectSocket(); + connectSocket(); if (! _isConnected) { return false; diff --git a/lib/SimpleHttpClient/SslClientConnection.cpp b/lib/SimpleHttpClient/SslClientConnection.cpp index e4134ddd3b..52477cae13 100644 --- a/lib/SimpleHttpClient/SslClientConnection.cpp +++ b/lib/SimpleHttpClient/SslClientConnection.cpp @@ -163,31 +163,37 @@ bool SslClientConnection::connectSocket () { if (_endpoint->isConnected()) { disconnectSocket(); + _isConnected = false; } _socket = _endpoint->connect(_connectTimeout, _requestTimeout); if (! TRI_isvalidsocket(_socket) || _ctx == nullptr) { _errorDetails = _endpoint->_errorMessage; + _isConnected = false; return false; } + + _isConnected = true; _ssl = SSL_new(_ctx); if (_ssl == nullptr) { _errorDetails = std::string("failed to create ssl context"); disconnectSocket(); + _isConnected = false; return false; } if (SSL_set_fd(_ssl, (int) TRI_get_fd_or_handle_of_socket(_socket)) != 1) { _errorDetails = std::string("SSL: failed to create context ") + - ERR_error_string(ERR_get_error(), NULL); + ERR_error_string(ERR_get_error(), nullptr); disconnectSocket(); + _isConnected = false; return false; } - SSL_set_verify(_ssl, SSL_VERIFY_NONE, NULL); + SSL_set_verify(_ssl, SSL_VERIFY_NONE, nullptr); ERR_clear_error(); @@ -242,6 +248,7 @@ bool SslClientConnection::connectSocket () { } } disconnectSocket(); + _isConnected = false; return false; }