Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

Commit c723788

Browse files
authored
Fix data issue in internal transport (#1105)
1 parent 873a3e9 commit c723788

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

source/core/owt_base/internal/TransportBase.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,10 @@ void TransportSession::sendData(TransportData data)
165165
void TransportSession::prepareSend(TransportData data)
166166
{
167167
// Only access m_sendQueue in IO service thread.
168-
m_sendQueue.push(data);
168+
TransportMessage toSend(data.buffer.get(), data.length);
169+
TransportData wrappedData{toSend.messageData(),
170+
toSend.messageLength()};
171+
m_sendQueue.push(wrappedData);
169172
if (m_sendQueue.size() == 1) {
170173
sendHandler();
171174
}
@@ -184,24 +187,21 @@ void TransportSession::sendHandler()
184187
return;
185188
}
186189

187-
TransportData data = m_sendQueue.front();
188-
TransportMessage toSend(data.buffer.get(), data.length);
189-
TransportData wrappedData{toSend.messageData(),
190-
toSend.messageLength()};
190+
TransportData& data = m_sendQueue.front();
191191

192-
ELOG_DEBUG("SendHandler- %p %zu", this, (size_t)wrappedData.length);
192+
ELOG_DEBUG("SendHandler- %p %zu", this, (size_t)data.length);
193193
auto self(shared_from_this());
194194
if (m_sslSocket) {
195195
boost::asio::async_write(
196196
*m_sslSocket,
197-
boost::asio::buffer(wrappedData.buffer.get(), wrappedData.length),
197+
boost::asio::buffer(data.buffer.get(), data.length),
198198
boost::bind(&TransportSession::writeHandler, self,
199199
boost::asio::placeholders::error,
200200
boost::asio::placeholders::bytes_transferred));
201201
} else {
202202
boost::asio::async_write(
203203
m_socket,
204-
boost::asio::buffer(wrappedData.buffer.get(), wrappedData.length),
204+
boost::asio::buffer(data.buffer.get(), data.length),
205205
boost::bind(&TransportSession::writeHandler, self,
206206
boost::asio::placeholders::error,
207207
boost::asio::placeholders::bytes_transferred));

0 commit comments

Comments
 (0)