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;
 }
diff --git a/rfb/SFTMsgWriter.h b/rfb/SFTMsgWriter.h
index ba5bf1c..dcf2e2d 100644
--- a/rfb/SFTMsgWriter.h
+++ b/rfb/SFTMsgWriter.h
@@ -26,6 +26,7 @@
 
 #include <rdr/OutStream.h>
 #include <rfb/FileInfo.h>
+#include <rfb/msgTypes.h>
 
 namespace rfb {
   class SFTMsgWriter