forked from qt-creator/qt-creator
SSH: Fix send buffer flushing.
There might be more data to send than what fits into one packet. This case was not handled correctly. Change-Id: I5a415223c37ec8a041503d901bbcc81e903f46d9 Reviewed-by: Daniel Molkentin <daniel.molkentin@nokia.com>
This commit is contained in:
committed by
Daniel Molkentin
parent
cc35259431
commit
3e809de1cf
@@ -116,9 +116,11 @@ void AbstractSshChannel::handleWindowAdjust(quint32 bytesToAdd)
|
|||||||
|
|
||||||
void AbstractSshChannel::flushSendBuffer()
|
void AbstractSshChannel::flushSendBuffer()
|
||||||
{
|
{
|
||||||
const quint32 bytesToSend = qMin(m_remoteMaxPacketSize,
|
while (true) {
|
||||||
qMin<quint32>(m_remoteWindowSize, m_sendBuffer.size()));
|
const quint32 bytesToSend = qMin(m_remoteMaxPacketSize,
|
||||||
if (bytesToSend > 0) {
|
qMin<quint32>(m_remoteWindowSize, m_sendBuffer.size()));
|
||||||
|
if (bytesToSend == 0)
|
||||||
|
break;
|
||||||
const QByteArray &data = m_sendBuffer.left(bytesToSend);
|
const QByteArray &data = m_sendBuffer.left(bytesToSend);
|
||||||
m_sendFacility.sendChannelDataPacket(m_remoteChannel, data);
|
m_sendFacility.sendChannelDataPacket(m_remoteChannel, data);
|
||||||
m_sendBuffer.remove(0, bytesToSend);
|
m_sendBuffer.remove(0, bytesToSend);
|
||||||
|
Reference in New Issue
Block a user