Skip to content

Commit 540cfeb

Browse files
authored
Merge pull request #1114 from evoskuil/master
Return resume result, refuse resume on a full store.
2 parents c6b6022 + b85d039 commit 540cfeb

6 files changed

Lines changed: 16 additions & 10 deletions

File tree

include/bitcoin/node/full_node.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class BCN_API full_node
103103
/// -----------------------------------------------------------------------
104104

105105
/// Resume nework connections.
106-
void resume() NOEXCEPT override;
106+
bool resume() NOEXCEPT override;
107107

108108
/// Suspend all existing and future network connections.
109109
/// A race condition can result in an unsuspended connection.

include/bitcoin/node/protocols/protocol.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class BCN_API protocol
9696
/// Network suspension (does not affect administrative connections).
9797
virtual bool suspended() const NOEXCEPT;
9898
virtual void suspend(const code& ec) NOEXCEPT;
99-
virtual void resume() NOEXCEPT;
99+
virtual bool resume() NOEXCEPT;
100100

101101
/// Organizers.
102102
/// -----------------------------------------------------------------------

include/bitcoin/node/sessions/session.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class BCN_API session
9797
/// Network suspension (does not affect administrative connections).
9898
virtual bool suspended() const NOEXCEPT;
9999
virtual void suspend(const code& ec) NOEXCEPT;
100-
virtual void resume() NOEXCEPT;
100+
virtual bool resume() NOEXCEPT;
101101

102102
/// Suspend all connections.
103103
virtual void fault(const code& ec) NOEXCEPT;

src/full_node.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,17 +263,23 @@ void full_node::unsubscribe_chase(object_key key) NOEXCEPT
263263
// Suspensions.
264264
// ----------------------------------------------------------------------------
265265

266-
void full_node::resume() NOEXCEPT
266+
bool full_node::resume() NOEXCEPT
267267
{
268+
if (query_.is_full())
269+
{
270+
LOGF("Cannot resume network, disk full.");
271+
return false;
272+
}
273+
268274
if (query_.is_fault())
269275
{
270276
LOGF("Cannot resume network, " << query_.get_fault());
271-
return;
277+
return false;
272278
}
273279

274280
LOGS("Resuming network.");
275281
notify(error::success, chase::resume, {});
276-
net::resume();
282+
return net::resume();
277283
}
278284

279285
// This is just a best effort, the call may have to be repeated.

src/protocols/protocol.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ void protocol::suspend(const code& ec) NOEXCEPT
113113
session_->suspend(ec);
114114
}
115115

116-
void protocol::resume() NOEXCEPT
116+
bool protocol::resume() NOEXCEPT
117117
{
118-
session_->resume();
118+
return session_->resume();
119119
}
120120

121121
// Organizers.

src/sessions/session.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,9 @@ void session::suspend(const code& ec) NOEXCEPT
201201
node_.suspend(ec);
202202
}
203203

204-
void session::resume() NOEXCEPT
204+
bool session::resume() NOEXCEPT
205205
{
206-
node_.resume();
206+
return node_.resume();
207207
}
208208

209209
BC_POP_WARNING()

0 commit comments

Comments
 (0)