Added code for all methods of the SFTMsgWriter class
besides writeFileListDataMsg() method.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@463 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/SFTMsgWriter.cxx b/rfb/SFTMsgWriter.cxx
index e74775e..4ea85a8 100644
--- a/rfb/SFTMsgWriter.cxx
+++ b/rfb/SFTMsgWriter.cxx
@@ -43,32 +43,51 @@
bool
SFTMsgWriter::writeFileDownloadData(unsigned int dataSize, void *pData)
{
- return false;
+ m_pOS->writeU8(msgTypeFileDownloadData);
+ m_pOS->writeU8(0);
+ m_pOS->writeU16(dataSize);
+ m_pOS->writeU16(dataSize);
+ m_pOS->writeBytes(pData, dataSize);
+ m_pOS->flush();
+ return true;
}
bool
SFTMsgWriter::writeFileDownloadData(unsigned int modTime)
{
- return false;
+ m_pOS->writeU8(msgTypeFileDownloadData);
+ m_pOS->writeU8(0);
+ m_pOS->writeU16(0);
+ m_pOS->writeU16(0);
+ m_pOS->writeU32(modTime);
+ m_pOS->flush();
+ return true;
}
bool
SFTMsgWriter::writeFileUploadCancel(unsigned int reasonLen, char *pReason)
{
- return false;
+ m_pOS->writeU8(msgTypeFileUploadCancel);
+ return writeU8U16StringMsg(0, reasonLen, pReason);
}
bool
SFTMsgWriter::writeFileDownloadFailed(unsigned int reasonLen, char *pReason)
{
- return false;
+ m_pOS->writeU8(msgTypeFileDownloadFailed);
+ return writeU8U16StringMsg(0, reasonLen, pReason);
}
bool
SFTMsgWriter::writeFileDirSizeData(unsigned int dirSizeLow,
unsigned short dirSizeHigh)
{
- return false;
+ m_pOS->writeU8(msgTypeFileDirSizeData);
+ m_pOS->writeU8(0);
+ m_pOS->writeU16(dirSizeHigh);
+ m_pOS->writeU32(dirSizeLow);
+ m_pOS->flush();
+ return true;
}
bool
@@ -76,11 +95,16 @@
unsigned short reasonLen,
char *pReason)
{
- return false;
+ m_pOS->writeU8(msgTypeFileLastRequestFailed);
+ return writeU8U16StringMsg(lastRequest, reasonLen, pReason);
}
bool
SFTMsgWriter::writeU8U16StringMsg(unsigned char p1, unsigned short p2, char *pP3)
{
- return false;
+ m_pOS->writeU8(p1);
+ m_pOS->writeU16(p2);
+ m_pOS->writeBytes(pP3, p2);
+ m_pOS->flush();
+ return true;
}