Skip to content

Commit 2cd3e6b

Browse files
committed
fix: set g_socket_events_mode before creating connman
also actually set socketEventsMode in tests
1 parent ba2461c commit 2cd3e6b

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

src/init.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1627,6 +1627,12 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
16271627
}
16281628
}
16291629

1630+
std::string sem_str = args.GetArg("-socketevents", DEFAULT_SOCKETEVENTS);
1631+
::g_socket_events_mode = SEMFromString(sem_str);
1632+
if (::g_socket_events_mode == SocketEventsMode::Unknown) {
1633+
return InitError(strprintf(_("Invalid -socketevents ('%s') specified. Only these modes are supported: %s"), sem_str, GetSupportedSocketEventsStr()));
1634+
}
1635+
16301636
assert(!node.banman);
16311637
node.banman = std::make_unique<BanMan>(gArgs.GetDataDirNet() / "banlist", &uiInterface, args.GetIntArg("-bantime", DEFAULT_MISBEHAVING_BANTIME));
16321638
assert(!node.connman);
@@ -2381,6 +2387,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
23812387
connOptions.m_added_nodes = args.GetArgs("-addnode");
23822388
connOptions.nMaxOutboundLimit = *opt_max_upload;
23832389
connOptions.m_peer_connect_timeout = peer_connect_timeout;
2390+
connOptions.socketEventsMode = ::g_socket_events_mode;
23842391

23852392
// Port to bind to if `-bind=addr` is provided without a `:port` suffix.
23862393
const uint16_t default_bind_port =
@@ -2488,14 +2495,6 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
24882495
}
24892496
}
24902497

2491-
std::string sem_str = args.GetArg("-socketevents", DEFAULT_SOCKETEVENTS);
2492-
const auto sem = SEMFromString(sem_str);
2493-
if (sem == SocketEventsMode::Unknown) {
2494-
return InitError(strprintf(_("Invalid -socketevents ('%s') specified. Only these modes are supported: %s"), sem_str, GetSupportedSocketEventsStr()));
2495-
}
2496-
connOptions.socketEventsMode = sem;
2497-
::g_socket_events_mode = sem;
2498-
24992498
const std::string& i2psam_arg = args.GetArg("-i2psam", "");
25002499
if (!i2psam_arg.empty()) {
25012500
const std::optional<CService> addr{Lookup(i2psam_arg, 7656, fNameLookup)};

src/test/util/setup_common.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -189,18 +189,17 @@ BasicTestingSetup::BasicTestingSetup(const std::string& chainName, const std::ve
189189
m_node.addrman = std::make_unique<AddrMan>(*m_node.netgroupman,
190190
/*deterministic=*/false,
191191
m_node.args->GetIntArg("-checkaddrman", 0));
192-
m_node.connman = std::make_unique<CConnman>(0x1337, 0x1337, *m_node.addrman, *m_node.netgroupman); // Deterministic randomness for tests.
193-
{
194-
std::string sem_str = m_args.GetArg("-socketevents", DEFAULT_SOCKETEVENTS);
195-
const auto sem = SEMFromString(sem_str);
196-
if (sem == SocketEventsMode::Unknown) {
197-
throw std::runtime_error(
198-
strprintf("Invalid -socketevents ('%s') specified. Only these modes are supported: %s",
199-
sem_str, GetSupportedSocketEventsStr()));
200-
}
201-
::g_socket_events_mode = sem;
192+
193+
std::string sem_str = m_args.GetArg("-socketevents", DEFAULT_SOCKETEVENTS);
194+
::g_socket_events_mode = SEMFromString(sem_str);
195+
if (::g_socket_events_mode == SocketEventsMode::Unknown) {
196+
throw std::runtime_error(
197+
strprintf("Invalid -socketevents ('%s') specified. Only these modes are supported: %s",
198+
sem_str, GetSupportedSocketEventsStr()));
202199
}
203200

201+
m_node.connman = std::make_unique<CConnman>(0x1337, 0x1337, *m_node.addrman, *m_node.netgroupman); // Deterministic randomness for tests.
202+
204203
fCheckBlockIndex = true;
205204
m_node.evodb = std::make_unique<CEvoDB>(1 << 20, true, true);
206205
m_node.mnhf_manager = std::make_unique<CMNHFManager>(*m_node.evodb);
@@ -337,6 +336,7 @@ TestingSetup::TestingSetup(const std::string& chainName, const std::vector<const
337336
{
338337
CConnman::Options options;
339338
options.m_msgproc = m_node.peerman.get();
339+
options.socketEventsMode = ::g_socket_events_mode;
340340
m_node.connman->Init(options);
341341
}
342342

0 commit comments

Comments
 (0)