@@ -33,12 +33,11 @@ static void diffToTarget(uint32_t *target, double diff)
33
33
34
34
35
35
EthStratumClient::EthStratumClient (int const & worktimeout, string const & email, bool const & submitHashrate) : PoolClient(),
36
- m_socket(nullptr ),
37
- m_securesocket(nullptr ),
36
+ m_socket(nullptr ),
38
37
m_worktimer(m_io_service),
39
38
m_responsetimer(m_io_service),
40
39
m_hashrate_event(m_io_service),
41
- m_resolver(m_io_service)
40
+ m_resolver(m_io_service)
42
41
{
43
42
m_authorized = false ;
44
43
m_pending = 0 ;
@@ -54,15 +53,6 @@ EthStratumClient::~EthStratumClient()
54
53
{
55
54
m_io_service.stop ();
56
55
m_serviceThread.join ();
57
-
58
- if (m_connection.SecLevel () != SecureLevel::NONE) {
59
- if (m_securesocket)
60
- delete m_securesocket;
61
- }
62
- else {
63
- if (m_socket)
64
- delete m_socket;
65
- }
66
56
}
67
57
68
58
void EthStratumClient::connect ()
@@ -85,7 +75,7 @@ void EthStratumClient::connect()
85
75
method = boost::asio::ssl::context::tlsv12;
86
76
87
77
boost::asio::ssl::context ctx (method);
88
- m_securesocket = new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_service, ctx);
78
+ m_securesocket = std::make_shared< boost::asio::ssl::stream<boost::asio::ip::tcp::socket> >(m_io_service, ctx);
89
79
m_socket = &m_securesocket->next_layer ();
90
80
91
81
if (m_connection.SecLevel () != SecureLevel::ALLOW_SELFSIGNED) {
@@ -127,7 +117,8 @@ void EthStratumClient::connect()
127
117
}
128
118
}
129
119
else {
130
- m_socket = new boost::asio::ip::tcp::socket (m_io_service);
120
+ m_nonsecuresocket = std::make_shared<boost::asio::ip::tcp::socket>(m_io_service);
121
+ m_socket = m_nonsecuresocket.get ();
131
122
}
132
123
133
124
// Activate keep alive to detect disconnects
@@ -182,14 +173,6 @@ void EthStratumClient::disconnect()
182
173
catch (std::exception const & _e) {
183
174
cwarn << " Error while disconnecting:" << _e.what ();
184
175
}
185
-
186
- if (m_connection.SecLevel () != SecureLevel::NONE) {
187
- delete m_securesocket;
188
- }
189
- else {
190
- delete m_socket;
191
- }
192
-
193
176
m_authorized = false ;
194
177
m_connected.store (false , std::memory_order_relaxed);
195
178
@@ -233,7 +216,7 @@ void EthStratumClient::async_write_with_response()
233
216
boost::asio::placeholders::error));
234
217
}
235
218
else {
236
- async_write (*m_socket , m_requestBuffer,
219
+ async_write (*m_nonsecuresocket , m_requestBuffer,
237
220
boost::bind (&EthStratumClient::handleResponse, this ,
238
221
boost::asio::placeholders::error));
239
222
}
@@ -606,7 +589,7 @@ void EthStratumClient::hashrate_event_handler(const boost::system::error_code& e
606
589
async_write (*m_securesocket, m_requestBuffer,
607
590
boost::bind (&EthStratumClient::handleHashrateResponse, this , boost::asio::placeholders::error));
608
591
else
609
- async_write (*m_socket , m_requestBuffer,
592
+ async_write (*m_nonsecuresocket , m_requestBuffer,
610
593
boost::bind (&EthStratumClient::handleHashrateResponse, this , boost::asio::placeholders::error));
611
594
}
612
595
0 commit comments