mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
Fix gcc warnings and errors
This commit is contained in:
@@ -62,13 +62,13 @@ namespace beast
|
||||
#include "tests/beast_TestPeerLogic.h"
|
||||
#include "tests/beast_TestPeerTest.h"
|
||||
|
||||
#include "tests/detail/beast_TestPeerType.h"
|
||||
#include "tests/detail/beast_TestPeerTestType.h"
|
||||
#include "tests/detail/beast_TestPeerDetailsTcp.h"
|
||||
#include "tests/detail/beast_TestPeerLogicSyncServer.h"
|
||||
#include "tests/detail/beast_TestPeerLogicSyncClient.h"
|
||||
#include "tests/detail/beast_TestPeerLogicAsyncServer.h"
|
||||
#include "tests/detail/beast_TestPeerLogicAsyncClient.h"
|
||||
#include "tests/detail/beast_TestPeerType.h"
|
||||
#include "tests/detail/beast_TestPeerTestType.h"
|
||||
#include "tests/detail/beast_TestPeerDetailsTcp.h"
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
// if Object did not have a declaration for
|
||||
// protocol_type::socket
|
||||
//
|
||||
template <typename Object, class Enable = void>
|
||||
template <typename AsioObject, class Enable = void>
|
||||
struct native_socket
|
||||
{
|
||||
typedef void* native_socket_type;
|
||||
@@ -83,16 +83,15 @@ public:
|
||||
native_socket_type m_socket;
|
||||
};
|
||||
|
||||
template <typename Object>
|
||||
struct native_socket <Object, typename boost::enable_if <boost::is_class <
|
||||
typename Object::protocol_type::socket> >::type>
|
||||
template <typename AsioObject>
|
||||
struct native_socket <AsioObject, typename boost::enable_if <boost::is_class <
|
||||
typename AsioObject::protocol_type::socket> >::type>
|
||||
{
|
||||
typedef typename Object::protocol_type::socket native_socket_type;
|
||||
typedef typename AsioObject::protocol_type::socket native_socket_type;
|
||||
native_socket (Socket& peer)
|
||||
: m_socket (&peer.this_layer <native_socket_type> ()) { }
|
||||
native_socket_type& get () noexcept { return *m_socket; }
|
||||
native_socket_type& operator-> () noexcept { return *m_socket; }
|
||||
|
||||
private:
|
||||
native_socket_type* m_socket;
|
||||
};
|
||||
|
||||
@@ -25,7 +25,7 @@ public:
|
||||
timeoutSeconds = 3
|
||||
};
|
||||
|
||||
TestPeerTests () : UnitTest ("TestPeer", "beast")
|
||||
TestPeerTests () : UnitTest ("TestPeer", "beast", runManual)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -31,8 +31,6 @@ protected:
|
||||
typedef protocol_type::endpoint endpoint_type;
|
||||
typedef protocol_type::resolver resolver_type;
|
||||
|
||||
struct NoArg { }; // dummy
|
||||
|
||||
public:
|
||||
typedef protocol_type arg_type;
|
||||
typedef socket_type native_socket_type;
|
||||
|
||||
@@ -20,19 +20,49 @@
|
||||
#ifndef BEAST_TESTPEERTYPE_H_INCLUDED
|
||||
#define BEAST_TESTPEERTYPE_H_INCLUDED
|
||||
|
||||
template <typename Logic, typename DetailsType>
|
||||
template <typename Logic, typename Details>
|
||||
class TestPeerType
|
||||
: public DetailsType
|
||||
: public Details
|
||||
, public Logic
|
||||
, public TestPeer
|
||||
, public Thread
|
||||
{
|
||||
protected:
|
||||
// TestPeerDetails
|
||||
using Details::get_socket;
|
||||
using Details::get_acceptor;
|
||||
using Details::get_io_service;
|
||||
|
||||
// Details
|
||||
typedef typename Details::protocol_type protocol_type;
|
||||
typedef typename Details::socket_type socket_type;
|
||||
typedef typename Details::acceptor_type acceptor_type;
|
||||
typedef typename Details::endpoint_type endpoint_type;
|
||||
typedef typename Details::resolver_type resolver_type;
|
||||
|
||||
using Details::get_native_socket;
|
||||
using Details::get_native_acceptor;
|
||||
using Details::get_endpoint;
|
||||
|
||||
// TestPeerLogic
|
||||
using Logic::error;
|
||||
using Logic::socket;
|
||||
using Logic::get_role;
|
||||
using Logic::get_model;
|
||||
using Logic::on_connect;
|
||||
using Logic::on_connect_async;
|
||||
using Logic::pure_virtual;
|
||||
|
||||
public:
|
||||
typedef typename DetailsType::arg_type arg_type;
|
||||
typedef TestPeerType <Logic, DetailsType> ThisType;
|
||||
// Details
|
||||
typedef typename Details::arg_type arg_type;
|
||||
typedef typename Details::native_socket_type native_socket_type;
|
||||
typedef typename Details::native_acceptor_type native_acceptor_type;
|
||||
|
||||
typedef TestPeerType <Logic, Details> ThisType;
|
||||
|
||||
TestPeerType (arg_type const& arg)
|
||||
: DetailsType (arg)
|
||||
: Details (arg)
|
||||
, Logic (get_socket ())
|
||||
, Thread (name ())
|
||||
{
|
||||
@@ -162,13 +192,17 @@ public:
|
||||
if (failure (get_native_acceptor ().open (get_endpoint (get_role ()).protocol (), error ())))
|
||||
return;
|
||||
|
||||
if (failure (get_native_acceptor ().set_option (socket_type::reuse_address (true), error ())))
|
||||
// VFALCO TODO Figure out how to not hard code boost::asio::socket_base
|
||||
if (failure (get_native_acceptor ().set_option (
|
||||
boost::asio::socket_base::reuse_address (true), error ())))
|
||||
return;
|
||||
|
||||
if (failure (get_native_acceptor ().bind (get_endpoint (get_role ()), error ())))
|
||||
return;
|
||||
|
||||
if (failure (get_native_acceptor ().listen (socket_type::max_connections, error ())))
|
||||
// VFALCO TODO Figure out how to not hard code boost::asio::socket_base
|
||||
if (failure (get_native_acceptor ().listen (
|
||||
boost::asio::socket_base::max_connections, error ())))
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@ MultiSocket* MultiSocket::New (boost::asio::io_service& io_service,
|
||||
class MultiSocketTests : public UnitTest
|
||||
{
|
||||
public:
|
||||
class Details : public TestPeerDetails
|
||||
class MultiSocketDetails : public TestPeerDetails
|
||||
{
|
||||
public:
|
||||
typedef int arg_type;
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
tcpv6 = 32
|
||||
};
|
||||
|
||||
Details (arg_type flags)
|
||||
MultiSocketDetails (arg_type flags)
|
||||
: m_flags (flags)
|
||||
{
|
||||
m_socketOptions.useClientSsl = (flags & client_ssl) != 0;
|
||||
@@ -66,6 +66,8 @@ public:
|
||||
static String getArgName (arg_type arg)
|
||||
{
|
||||
String s;
|
||||
if (arg & tcpv4) s << "tcpv4:";
|
||||
if (arg & tcpv6) s << "tcpv6:";
|
||||
if (arg != 0)
|
||||
{
|
||||
s << "[";
|
||||
@@ -73,8 +75,6 @@ public:
|
||||
if (arg & server_ssl) s << "server_ssl,";
|
||||
if (arg & server_ssl_required) s << "server_ssl_required,";
|
||||
if (arg & server_proxy) s << "server_proxy,";
|
||||
if (arg & tcpv4) s << "tcpv4,";
|
||||
if (arg & tcpv6) s << "tcpv6,";
|
||||
s = s.substring (0, s.length () - 1) + "]";
|
||||
}
|
||||
else
|
||||
@@ -104,8 +104,10 @@ public:
|
||||
MultiSocket::Options m_socketOptions;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
template <class InternetProtocol>
|
||||
class DetailsType : public Details
|
||||
class MultiSocketDetailsType : public MultiSocketDetails
|
||||
{
|
||||
protected:
|
||||
typedef InternetProtocol protocol_type;
|
||||
@@ -118,8 +120,8 @@ public:
|
||||
typedef socket_type native_socket_type;
|
||||
typedef acceptor_type native_acceptor_type;
|
||||
|
||||
explicit DetailsType (arg_type flags = none)
|
||||
: Details (flags)
|
||||
explicit MultiSocketDetailsType (arg_type flags = none)
|
||||
: MultiSocketDetails (flags)
|
||||
, m_socket (get_io_service ())
|
||||
, m_acceptor (get_io_service ())
|
||||
, m_multiSocket (m_socket, getSocketOptions ())
|
||||
@@ -149,24 +151,20 @@ public:
|
||||
|
||||
endpoint_type get_endpoint (TestPeer::Role role)
|
||||
{
|
||||
if (getFlags () & Details::tcpv4)
|
||||
{
|
||||
if (role == TestPeer::Role::server)
|
||||
{
|
||||
return endpoint_type (boost::asio::ip::address_v4::any (), 1053);
|
||||
}
|
||||
else
|
||||
{
|
||||
return endpoint_type (boost::asio::ip::address_v4::loopback (), 1053);
|
||||
}
|
||||
}
|
||||
else
|
||||
if (getFlags () & MultiSocketDetails::tcpv6)
|
||||
{
|
||||
if (role == TestPeer::Role::server)
|
||||
return endpoint_type (boost::asio::ip::tcp::v6 (), 1052);
|
||||
else
|
||||
return endpoint_type (boost::asio::ip::address_v6 ().from_string ("::1"), 1052);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (role == TestPeer::Role::server)
|
||||
return endpoint_type (boost::asio::ip::address_v4::any (), 1053);
|
||||
else
|
||||
return endpoint_type (boost::asio::ip::address_v4::loopback (), 1053);
|
||||
}
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -176,7 +174,7 @@ public:
|
||||
SocketWrapper <acceptor_type> m_acceptor_wrapper;
|
||||
};
|
||||
|
||||
MultiSocketTests () : UnitTest ("MultiSocket", "ripple")
|
||||
MultiSocketTests () : UnitTest ("MultiSocket", "ripple", runManual)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -195,7 +193,7 @@ public:
|
||||
template <typename InternetProtocol, class Arg>
|
||||
void testProtocol (Arg const& arg)
|
||||
{
|
||||
testAsync <DetailsType <InternetProtocol> > (arg);
|
||||
testAsync <MultiSocketDetailsType <InternetProtocol> > (arg);
|
||||
}
|
||||
|
||||
void testOptions (int flags)
|
||||
@@ -208,14 +206,14 @@ public:
|
||||
void runTest ()
|
||||
{
|
||||
// These should pass
|
||||
testOptions (Details::none);
|
||||
testOptions (Details::server_ssl);
|
||||
testOptions (Details::client_ssl | Details::server_ssl);
|
||||
testOptions (Details::client_ssl | Details::server_ssl_required);
|
||||
testOptions (MultiSocketDetails::none);
|
||||
testOptions (MultiSocketDetails::server_ssl);
|
||||
testOptions (MultiSocketDetails::client_ssl | MultiSocketDetails::server_ssl);
|
||||
testOptions (MultiSocketDetails::client_ssl | MultiSocketDetails::server_ssl_required);
|
||||
|
||||
// These should fail
|
||||
testOptions (Details::client_ssl);
|
||||
testOptions (Details::server_ssl_required);
|
||||
testOptions (MultiSocketDetails::client_ssl);
|
||||
testOptions (MultiSocketDetails::server_ssl_required);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -14,12 +14,11 @@ public:
|
||||
boost::asio::ssl::context& context,
|
||||
Handler& handler)
|
||||
: m_handler (handler)
|
||||
, mSocket (io_service, context)
|
||||
, mStrand (io_service)
|
||||
, mSocket (io_service, context)
|
||||
#if RIPPLE_USES_BEAST_SOCKETS
|
||||
, m_socketWrapper (mSocket)
|
||||
#endif
|
||||
|
||||
{
|
||||
}
|
||||
|
||||
@@ -258,11 +257,11 @@ private:
|
||||
private:
|
||||
Handler& m_handler;
|
||||
|
||||
boost::asio::io_service::strand mStrand;
|
||||
AutoSocket mSocket;
|
||||
#if RIPPLE_USES_BEAST_SOCKETS
|
||||
SocketWrapper <AutoSocket> m_socketWrapper;
|
||||
#endif
|
||||
boost::asio::io_service::strand mStrand;
|
||||
|
||||
boost::asio::streambuf mLineBuffer;
|
||||
Blob mQueryVec;
|
||||
|
||||
Reference in New Issue
Block a user