Skip to content

Commit ceb0ce5

Browse files
authored
refactor: Decouple net from xrpld and move rpc-related classes to the rpc folder (#5477)
As a step of modularisation, this change moves code from `xrpld` to `libxrpl`.
1 parent fb89213 commit ceb0ce5

33 files changed

+83
-64
lines changed

Builds/levelization/results/loops.txt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ Loop: xrpld.app xrpld.core
1010
Loop: xrpld.app xrpld.ledger
1111
xrpld.app > xrpld.ledger
1212

13-
Loop: xrpld.app xrpld.net
14-
xrpld.app > xrpld.net
15-
1613
Loop: xrpld.app xrpld.overlay
1714
xrpld.overlay > xrpld.app
1815

@@ -25,15 +22,9 @@ Loop: xrpld.app xrpld.rpc
2522
Loop: xrpld.app xrpld.shamap
2623
xrpld.app > xrpld.shamap
2724

28-
Loop: xrpld.core xrpld.net
29-
xrpld.net > xrpld.core
30-
3125
Loop: xrpld.core xrpld.perflog
3226
xrpld.perflog == xrpld.core
3327

34-
Loop: xrpld.net xrpld.rpc
35-
xrpld.rpc ~= xrpld.net
36-
3728
Loop: xrpld.overlay xrpld.rpc
3829
xrpld.rpc ~= xrpld.overlay
3930

Builds/levelization/results/ordering.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ libxrpl.basics > xrpl.basics
22
libxrpl.crypto > xrpl.basics
33
libxrpl.json > xrpl.basics
44
libxrpl.json > xrpl.json
5+
libxrpl.net > xrpl.basics
6+
libxrpl.net > xrpl.net
57
libxrpl.protocol > xrpl.basics
68
libxrpl.protocol > xrpl.json
79
libxrpl.protocol > xrpl.protocol
@@ -62,9 +64,9 @@ test.jtx > xrpl.basics
6264
test.jtx > xrpld.app
6365
test.jtx > xrpld.core
6466
test.jtx > xrpld.ledger
65-
test.jtx > xrpld.net
6667
test.jtx > xrpld.rpc
6768
test.jtx > xrpl.json
69+
test.jtx > xrpl.net
6870
test.jtx > xrpl.protocol
6971
test.jtx > xrpl.resource
7072
test.jtx > xrpl.server
@@ -109,7 +111,6 @@ test.rpc > test.toplevel
109111
test.rpc > xrpl.basics
110112
test.rpc > xrpld.app
111113
test.rpc > xrpld.core
112-
test.rpc > xrpld.net
113114
test.rpc > xrpld.overlay
114115
test.rpc > xrpld.rpc
115116
test.rpc > xrpl.json
@@ -134,6 +135,7 @@ test.toplevel > xrpl.json
134135
test.unit_test > xrpl.basics
135136
tests.libxrpl > xrpl.basics
136137
xrpl.json > xrpl.basics
138+
xrpl.net > xrpl.basics
137139
xrpl.protocol > xrpl.basics
138140
xrpl.protocol > xrpl.json
139141
xrpl.resource > xrpl.basics
@@ -149,6 +151,7 @@ xrpld.app > xrpld.consensus
149151
xrpld.app > xrpld.nodestore
150152
xrpld.app > xrpld.perflog
151153
xrpld.app > xrpl.json
154+
xrpld.app > xrpl.net
152155
xrpld.app > xrpl.protocol
153156
xrpld.app > xrpl.resource
154157
xrpld.conditions > xrpl.basics
@@ -158,14 +161,11 @@ xrpld.consensus > xrpl.json
158161
xrpld.consensus > xrpl.protocol
159162
xrpld.core > xrpl.basics
160163
xrpld.core > xrpl.json
164+
xrpld.core > xrpl.net
161165
xrpld.core > xrpl.protocol
162166
xrpld.ledger > xrpl.basics
163167
xrpld.ledger > xrpl.json
164168
xrpld.ledger > xrpl.protocol
165-
xrpld.net > xrpl.basics
166-
xrpld.net > xrpl.json
167-
xrpld.net > xrpl.protocol
168-
xrpld.net > xrpl.resource
169169
xrpld.nodestore > xrpl.basics
170170
xrpld.nodestore > xrpld.core
171171
xrpld.nodestore > xrpld.unity
@@ -189,6 +189,7 @@ xrpld.rpc > xrpld.core
189189
xrpld.rpc > xrpld.ledger
190190
xrpld.rpc > xrpld.nodestore
191191
xrpld.rpc > xrpl.json
192+
xrpld.rpc > xrpl.net
192193
xrpld.rpc > xrpl.protocol
193194
xrpld.rpc > xrpl.resource
194195
xrpld.rpc > xrpl.server

cmake/RippledCore.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,15 @@ target_link_libraries(xrpl.libxrpl.protocol PUBLIC
9999
add_module(xrpl resource)
100100
target_link_libraries(xrpl.libxrpl.resource PUBLIC xrpl.libxrpl.protocol)
101101

102+
# Level 06
103+
add_module(xrpl net)
104+
target_link_libraries(xrpl.libxrpl.net PUBLIC
105+
xrpl.libxrpl.basics
106+
xrpl.libxrpl.json
107+
xrpl.libxrpl.protocol
108+
xrpl.libxrpl.resource
109+
)
110+
102111
add_module(xrpl server)
103112
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol)
104113

@@ -121,6 +130,7 @@ target_link_modules(xrpl PUBLIC
121130
protocol
122131
resource
123132
server
133+
net
124134
)
125135

126136
# All headers in libxrpl are in modules.

cmake/RippledInstall.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ install (
1919
xrpl.libxrpl.protocol
2020
xrpl.libxrpl.resource
2121
xrpl.libxrpl.server
22+
xrpl.libxrpl.net
2223
xrpl.libxrpl
2324
antithesis-sdk-cpp
2425
EXPORT RippleExports
File renamed without changes.

src/xrpld/net/HTTPClient.h renamed to include/xrpl/net/HTTPClient.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
#ifndef RIPPLE_NET_HTTPCLIENT_H_INCLUDED
2121
#define RIPPLE_NET_HTTPCLIENT_H_INCLUDED
2222

23-
#include <xrpld/core/Config.h>
24-
2523
#include <xrpl/basics/ByteUtilities.h>
24+
#include <xrpl/beast/utility/Journal.h>
2625

2726
#include <boost/asio/io_service.hpp>
2827
#include <boost/asio/streambuf.hpp>
@@ -44,7 +43,11 @@ class HTTPClient
4443
static constexpr auto maxClientHeaderBytes = kilobytes(32);
4544

4645
static void
47-
initializeSSLContext(Config const& config, beast::Journal j);
46+
initializeSSLContext(
47+
std::string const& sslVerifyDir,
48+
std::string const& sslVerifyFile,
49+
bool sslVerify,
50+
beast::Journal j);
4851

4952
static void
5053
get(bool bSSL,

src/xrpld/net/HTTPClientSSLContext.h renamed to include/xrpl/net/HTTPClientSSLContext.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,10 @@
2020
#ifndef RIPPLE_NET_HTTPCLIENTSSLCONTEXT_H_INCLUDED
2121
#define RIPPLE_NET_HTTPCLIENTSSLCONTEXT_H_INCLUDED
2222

23-
#include <xrpld/core/Config.h>
24-
#include <xrpld/net/RegisterSSLCerts.h>
25-
2623
#include <xrpl/basics/Log.h>
2724
#include <xrpl/basics/contract.h>
25+
#include <xrpl/beast/utility/Journal.h>
26+
#include <xrpl/net/RegisterSSLCerts.h>
2827

2928
#include <boost/asio.hpp>
3029
#include <boost/asio/ip/tcp.hpp>
@@ -37,31 +36,33 @@ class HTTPClientSSLContext
3736
{
3837
public:
3938
explicit HTTPClientSSLContext(
40-
Config const& config,
39+
std::string const& sslVerifyDir,
40+
std::string const& sslVerifyFile,
41+
bool sslVerify,
4142
beast::Journal j,
4243
boost::asio::ssl::context_base::method method =
4344
boost::asio::ssl::context::sslv23)
44-
: ssl_context_{method}, j_(j), verify_{config.SSL_VERIFY}
45+
: ssl_context_{method}, j_(j), verify_{sslVerify}
4546
{
4647
boost::system::error_code ec;
4748

48-
if (config.SSL_VERIFY_FILE.empty())
49+
if (sslVerifyFile.empty())
4950
{
5051
registerSSLCerts(ssl_context_, ec, j_);
5152

52-
if (ec && config.SSL_VERIFY_DIR.empty())
53+
if (ec && sslVerifyDir.empty())
5354
Throw<std::runtime_error>(boost::str(
5455
boost::format("Failed to set_default_verify_paths: %s") %
5556
ec.message()));
5657
}
5758
else
5859
{
59-
ssl_context_.load_verify_file(config.SSL_VERIFY_FILE);
60+
ssl_context_.load_verify_file(sslVerifyFile);
6061
}
6162

62-
if (!config.SSL_VERIFY_DIR.empty())
63+
if (!sslVerifyDir.empty())
6364
{
64-
ssl_context_.add_verify_path(config.SSL_VERIFY_DIR, ec);
65+
ssl_context_.add_verify_path(sslVerifyDir, ec);
6566

6667
if (ec)
6768
Throw<std::runtime_error>(boost::str(
File renamed without changes.

src/xrpld/net/detail/HTTPClient.cpp renamed to src/libxrpl/net/HTTPClient.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
*/
1818
//==============================================================================
1919

20-
#include <xrpld/net/AutoSocket.h>
21-
#include <xrpld/net/HTTPClient.h>
22-
#include <xrpld/net/HTTPClientSSLContext.h>
23-
2420
#include <xrpl/basics/Log.h>
2521
#include <xrpl/beast/core/LexicalCast.h>
22+
#include <xrpl/net/AutoSocket.h>
23+
#include <xrpl/net/HTTPClient.h>
24+
#include <xrpl/net/HTTPClientSSLContext.h>
2625

2726
#include <boost/asio.hpp>
2827
#include <boost/asio/ip/tcp.hpp>
@@ -36,9 +35,13 @@ namespace ripple {
3635
static std::optional<HTTPClientSSLContext> httpClientSSLContext;
3736

3837
void
39-
HTTPClient::initializeSSLContext(Config const& config, beast::Journal j)
38+
HTTPClient::initializeSSLContext(
39+
std::string const& sslVerifyDir,
40+
std::string const& sslVerifyFile,
41+
bool sslVerify,
42+
beast::Journal j)
4043
{
41-
httpClientSSLContext.emplace(config, j);
44+
httpClientSSLContext.emplace(sslVerifyDir, sslVerifyFile, sslVerify, j);
4245
}
4346

4447
//------------------------------------------------------------------------------

src/xrpld/net/detail/RegisterSSLCerts.cpp renamed to src/libxrpl/net/RegisterSSLCerts.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
//==============================================================================
1919

20-
#include <xrpld/net/RegisterSSLCerts.h>
20+
#include <xrpl/net/RegisterSSLCerts.h>
2121

2222
#if BOOST_OS_WINDOWS
2323
#include <boost/asio/ssl/error.hpp>

0 commit comments

Comments
 (0)