]> source.dussan.org Git - tigervnc.git/commitdiff
Fixed svn:eol-style properties.
authorConstantin Kaplinsky <const@tightvnc.com>
Fri, 19 May 2006 10:09:44 +0000 (10:09 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Fri, 19 May 2006 10:09:44 +0000 (10:09 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@561 3789f03b-4d11-0410-bbf8-ca57d06f2519

12 files changed:
rfb/CFTMsgReader.cxx
rfb/CFTMsgReader.h
rfb/CFTMsgWriter.cxx
rfb/CFTMsgWriter.h
rfb/SFileTransfer.cxx
rfb/SFileTransfer.h
rfb/SFileTransferManager.cxx
rfb/SFileTransferManager.h
rfb_win32/SFileTransferManagerWin32.cxx
rfb_win32/SFileTransferManagerWin32.h
rfb_win32/SFileTransferWin32.cxx
rfb_win32/SFileTransferWin32.h

index 66adbf50c88a22a44c329178a1cb21b286abc209..5a17fc25d2b1cc55e205713f23670378f4717ac5 100644 (file)
-/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- CFTMsgReader.cxx\r
-\r
-#include <rfb/CFTMsgReader.h>\r
-\r
-using namespace rfb;\r
-\r
-CFTMsgReader::CFTMsgReader(rdr::InStream *pIS)\r
-{\r
-  m_pInStream = pIS;\r
-}\r
-\r
-CFTMsgReader::~CFTMsgReader()\r
-{\r
-\r
-}\r
-\r
-int \r
-CFTMsgReader::readFileListData(FileInfo *pFileInfo)\r
-{\r
-  unsigned char flags = m_pInStream->readU8();\r
-  int numFiles = m_pInStream->readU16();\r
-  int dataSize = m_pInStream->readU16();\r
-  int compressedSize = m_pInStream->readU16();\r
-  \r
-  if (flags & 0x80) {\r
-    return -1;\r
-  } else {\r
-    if (numFiles > 0) {\r
-      char *pFilenames = new char[compressedSize];\r
-      SIZEDATAINFO *pSDI = new SIZEDATAINFO[numFiles];\r
-      for (int i = 0; i < numFiles; i++) {\r
-        pSDI[i].size = m_pInStream->readU32();\r
-        pSDI[i].data = m_pInStream->readU32();\r
-      }\r
-      m_pInStream->readBytes((void *)pFilenames, compressedSize);\r
-      createFileInfo(numFiles, pFileInfo, pSDI, pFilenames);\r
-      delete [] pSDI;\r
-      delete [] pFilenames;\r
-    }\r
-  }\r
-  return numFiles;\r
-}\r
-\r
-void * \r
-CFTMsgReader::readFileDownloadData(unsigned int *pSize, unsigned int *pModTime)\r
-{\r
-  unsigned char compressLevel = m_pInStream->readU8();\r
-  int realSize = m_pInStream->readU16();\r
-  int compressedSize = m_pInStream->readU16();\r
-\r
-  if ((realSize == 0) && (compressedSize == 0)) {\r
-    *pSize = 0;\r
-    *pModTime = m_pInStream->readU32();\r
-    return NULL;\r
-  } else {\r
-    char *pFile = new char [compressedSize];\r
-    if (pFile == NULL) {\r
-      m_pInStream->skip(compressedSize);\r
-      *pModTime = 0;\r
-      return NULL;\r
-    } else {\r
-      m_pInStream->readBytes(pFile, compressedSize);\r
-      *pSize = compressedSize;\r
-      return pFile;\r
-    }\r
-  }\r
-}\r
-\r
-char * \r
-CFTMsgReader::readFileUploadCancel(unsigned int *pReasonSize)\r
-{\r
-  m_pInStream->skip(1);\r
-  return readReasonMsg(pReasonSize);\r
-}\r
-\r
-char * \r
-CFTMsgReader::readFileDownloadFailed(unsigned int *pReasonSize)\r
-{\r
-  m_pInStream->skip(1);\r
-  return readReasonMsg(pReasonSize);\r
-}\r
-\r
-int \r
-CFTMsgReader::readFileDirSizeData(unsigned short *pDirSizeLow16, \r
-                                 unsigned int *pDirSizeHigh32)\r
-{\r
-  m_pInStream->skip(1);\r
-  *pDirSizeLow16 = m_pInStream->readU16();\r
-  *pDirSizeHigh32 = m_pInStream->readU32();\r
-  return 1;\r
-}\r
-\r
-char * \r
-CFTMsgReader::readFileLastRqstFailed(int *pTypeOfRequest, unsigned int *pReasonSize)\r
-{\r
-  *pTypeOfRequest = m_pInStream->readU8();\r
-  return readReasonMsg(pReasonSize);\r
-}\r
-\r
-bool \r
-CFTMsgReader::createFileInfo(unsigned int numFiles, FileInfo *fi, \r
-                             SIZEDATAINFO *pSDInfo, char *pFilenames)\r
-{\r
-  int pos = 0;\r
-  int size = 0;\r
-  for (unsigned int i = 0; i < numFiles; i++) {\r
-    size = pSDInfo[i].size;\r
-    if (size == FT_NET_ATTR_DIR) {\r
-      fi->add((pFilenames + pos), size, pSDInfo[i].data, FT_ATTR_DIR);\r
-    } else {\r
-      fi->add((pFilenames + pos), size, pSDInfo[i].data, FT_ATTR_FILE);\r
-    }\r
-    pos += strlen(pFilenames + pos) + 1;\r
-  }\r
-  return true;\r
-}\r
-\r
-char * \r
-CFTMsgReader::readReasonMsg(unsigned int *pReasonSize)\r
-{\r
-  int reasonLen = m_pInStream->readU16();\r
-  int _reasonLen = reasonLen + 1;\r
-  char *pReason;\r
-  if (reasonLen == 0) {\r
-    *pReasonSize = 0;\r
-    return NULL;\r
-  } else {\r
-    pReason = new char [_reasonLen];\r
-    if (pReason == NULL) {\r
-      m_pInStream->skip(reasonLen);\r
-      *pReasonSize = 0;\r
-      return NULL;\r
-    }\r
-    m_pInStream->readBytes(pReason, reasonLen);\r
-    memset(((char *)pReason+reasonLen), '\0', 1);\r
-    return pReason;\r
-  }\r
-}\r
-\r
+/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- CFTMsgReader.cxx
+
+#include <rfb/CFTMsgReader.h>
+
+using namespace rfb;
+
+CFTMsgReader::CFTMsgReader(rdr::InStream *pIS)
+{
+  m_pInStream = pIS;
+}
+
+CFTMsgReader::~CFTMsgReader()
+{
+
+}
+
+int 
+CFTMsgReader::readFileListData(FileInfo *pFileInfo)
+{
+  unsigned char flags = m_pInStream->readU8();
+  int numFiles = m_pInStream->readU16();
+  int dataSize = m_pInStream->readU16();
+  int compressedSize = m_pInStream->readU16();
+  
+  if (flags & 0x80) {
+    return -1;
+  } else {
+    if (numFiles > 0) {
+      char *pFilenames = new char[compressedSize];
+      SIZEDATAINFO *pSDI = new SIZEDATAINFO[numFiles];
+      for (int i = 0; i < numFiles; i++) {
+        pSDI[i].size = m_pInStream->readU32();
+        pSDI[i].data = m_pInStream->readU32();
+      }
+      m_pInStream->readBytes((void *)pFilenames, compressedSize);
+      createFileInfo(numFiles, pFileInfo, pSDI, pFilenames);
+      delete [] pSDI;
+      delete [] pFilenames;
+    }
+  }
+  return numFiles;
+}
+
+void * 
+CFTMsgReader::readFileDownloadData(unsigned int *pSize, unsigned int *pModTime)
+{
+  unsigned char compressLevel = m_pInStream->readU8();
+  int realSize = m_pInStream->readU16();
+  int compressedSize = m_pInStream->readU16();
+
+  if ((realSize == 0) && (compressedSize == 0)) {
+    *pSize = 0;
+    *pModTime = m_pInStream->readU32();
+    return NULL;
+  } else {
+    char *pFile = new char [compressedSize];
+    if (pFile == NULL) {
+      m_pInStream->skip(compressedSize);
+      *pModTime = 0;
+      return NULL;
+    } else {
+      m_pInStream->readBytes(pFile, compressedSize);
+      *pSize = compressedSize;
+      return pFile;
+    }
+  }
+}
+
+char * 
+CFTMsgReader::readFileUploadCancel(unsigned int *pReasonSize)
+{
+  m_pInStream->skip(1);
+  return readReasonMsg(pReasonSize);
+}
+
+char * 
+CFTMsgReader::readFileDownloadFailed(unsigned int *pReasonSize)
+{
+  m_pInStream->skip(1);
+  return readReasonMsg(pReasonSize);
+}
+
+int 
+CFTMsgReader::readFileDirSizeData(unsigned short *pDirSizeLow16, 
+                                 unsigned int *pDirSizeHigh32)
+{
+  m_pInStream->skip(1);
+  *pDirSizeLow16 = m_pInStream->readU16();
+  *pDirSizeHigh32 = m_pInStream->readU32();
+  return 1;
+}
+
+char * 
+CFTMsgReader::readFileLastRqstFailed(int *pTypeOfRequest, unsigned int *pReasonSize)
+{
+  *pTypeOfRequest = m_pInStream->readU8();
+  return readReasonMsg(pReasonSize);
+}
+
+bool 
+CFTMsgReader::createFileInfo(unsigned int numFiles, FileInfo *fi, 
+                             SIZEDATAINFO *pSDInfo, char *pFilenames)
+{
+  int pos = 0;
+  int size = 0;
+  for (unsigned int i = 0; i < numFiles; i++) {
+    size = pSDInfo[i].size;
+    if (size == FT_NET_ATTR_DIR) {
+      fi->add((pFilenames + pos), size, pSDInfo[i].data, FT_ATTR_DIR);
+    } else {
+      fi->add((pFilenames + pos), size, pSDInfo[i].data, FT_ATTR_FILE);
+    }
+    pos += strlen(pFilenames + pos) + 1;
+  }
+  return true;
+}
+
+char * 
+CFTMsgReader::readReasonMsg(unsigned int *pReasonSize)
+{
+  int reasonLen = m_pInStream->readU16();
+  int _reasonLen = reasonLen + 1;
+  char *pReason;
+  if (reasonLen == 0) {
+    *pReasonSize = 0;
+    return NULL;
+  } else {
+    pReason = new char [_reasonLen];
+    if (pReason == NULL) {
+      m_pInStream->skip(reasonLen);
+      *pReasonSize = 0;
+      return NULL;
+    }
+    m_pInStream->readBytes(pReason, reasonLen);
+    memset(((char *)pReason+reasonLen), '\0', 1);
+    return pReason;
+  }
+}
+
index b0e2c7a7341cfa3552d50aa77a02a5014d823198..aece3e78d0c0a6c0a144fa34fb17b64abccaeba8 100644 (file)
@@ -1,56 +1,56 @@
-/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- CFTMsgReader.h\r
-\r
-#ifndef __RFB_CFTMSGREADER_H__\r
-#define __RFB_CFTMSGREADER_H__\r
-\r
-#include <rdr/InStream.h>\r
-#include <rfb/FileInfo.h>\r
-\r
-namespace rfb {\r
-  class CFTMsgReader\r
-  {\r
-  public:\r
-    CFTMsgReader(rdr::InStream *pIS);\r
-    ~CFTMsgReader();\r
-    \r
-    int readFileListData(FileInfo *pFileInfo);\r
-    int readFileDirSizeData(unsigned short *pDirSizeLow16, unsigned int *pDirSizeHigh32);\r
-    \r
-    char *readFileUploadCancel(unsigned int *pReasonSize);\r
-    char *readFileDownloadFailed(unsigned int *pReasonSize);\r
-    char *readFileLastRqstFailed(int *pTypeOfRequest, unsigned int *pReasonSize);\r
-    void *readFileDownloadData(unsigned int *pSize, unsigned int *pModTime);\r
-    \r
-  private:\r
-    rdr::InStream *m_pInStream;\r
-    \r
-    bool createFileInfo(unsigned int numFiles, FileInfo *fi, \r
-                        SIZEDATAINFO *pSDInfo, char *pFilenames);\r
-    char *readReasonMsg(unsigned int *pReasonSize);\r
-  };\r
-}\r
-\r
-#endif // __RFB_CFTMSGREADER_H__\r
+/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- CFTMsgReader.h
+
+#ifndef __RFB_CFTMSGREADER_H__
+#define __RFB_CFTMSGREADER_H__
+
+#include <rdr/InStream.h>
+#include <rfb/FileInfo.h>
+
+namespace rfb {
+  class CFTMsgReader
+  {
+  public:
+    CFTMsgReader(rdr::InStream *pIS);
+    ~CFTMsgReader();
+    
+    int readFileListData(FileInfo *pFileInfo);
+    int readFileDirSizeData(unsigned short *pDirSizeLow16, unsigned int *pDirSizeHigh32);
+    
+    char *readFileUploadCancel(unsigned int *pReasonSize);
+    char *readFileDownloadFailed(unsigned int *pReasonSize);
+    char *readFileLastRqstFailed(int *pTypeOfRequest, unsigned int *pReasonSize);
+    void *readFileDownloadData(unsigned int *pSize, unsigned int *pModTime);
+    
+  private:
+    rdr::InStream *m_pInStream;
+    
+    bool createFileInfo(unsigned int numFiles, FileInfo *fi, 
+                        SIZEDATAINFO *pSDInfo, char *pFilenames);
+    char *readReasonMsg(unsigned int *pReasonSize);
+  };
+}
+
+#endif // __RFB_CFTMSGREADER_H__
index 278cf800c660505cf4033b8771512dfe9406f9dc..5e6854ed2d5f09e30c322be3b2161b023a59e5cf 100644 (file)
-/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- CFTMsgWriter.cxx\r
-\r
-#include <rfb/CFTMsgWriter.h>\r
-\r
-using namespace rfb;\r
-\r
-CFTMsgWriter::CFTMsgWriter(rdr::OutStream *pOS)\r
-{\r
-  m_pOutStream = pOS;\r
-}\r
-\r
-CFTMsgWriter::~CFTMsgWriter()\r
-{\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileListRqst(unsigned short dirnameLen, char *pDirName, \r
-                                bool bDirOnly)\r
-{\r
-  if (dirnameLen >= FT_FILENAME_SIZE) return false;\r
-\r
-  unsigned char flags = 0;\r
-  if (bDirOnly) flags = 0x10;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileListRequest);\r
-  m_pOutStream->writeU8(flags);\r
-  m_pOutStream->writeU16(dirnameLen);\r
-  m_pOutStream->writeBytes((void *)pDirName, dirnameLen);\r
-  m_pOutStream->flush();\r
-\r
-  return true;\r
-}\r
-\r
-\r
-bool \r
-CFTMsgWriter::writeFileDownloadCancel(unsigned short reasonLen, char *pReason)\r
-{\r
-  m_pOutStream->writeU8(msgTypeFileDownloadCancel);\r
-  return writeU8U16StringMsg(reasonLen, pReason);\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileDownloadRqst(unsigned short filenameLen, char *pFilename, \r
-                                    unsigned int position)\r
-{\r
-  if (filenameLen >= FT_FILENAME_SIZE) return false;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileDownloadRequest);\r
-  m_pOutStream->writeU8(0);\r
-  m_pOutStream->writeU16(filenameLen);\r
-  m_pOutStream->writeU32(position);\r
-  m_pOutStream->writeBytes(pFilename, filenameLen);\r
-  m_pOutStream->flush();\r
-\r
-  return true;\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileUploadData(unsigned short dataSize, char *pData)\r
-{\r
-  m_pOutStream->writeU8(msgTypeFileUploadData);\r
-  m_pOutStream->writeU8(0);\r
-  m_pOutStream->writeU16(dataSize);\r
-  m_pOutStream->writeU16(dataSize);\r
-  m_pOutStream->writeBytes(pData, dataSize);\r
-  m_pOutStream->flush();\r
-\r
-  return true;\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileUploadData(unsigned int modTime)\r
-{\r
-  m_pOutStream->writeU8(msgTypeFileUploadData);\r
-  m_pOutStream->writeU8(0);\r
-  m_pOutStream->writeU16(0);\r
-  m_pOutStream->writeU16(0);\r
-  m_pOutStream->writeU32(modTime);\r
-  m_pOutStream->flush();\r
-\r
-  return true;\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileUploadFailed(unsigned short reasonLen, char *pReason)\r
-{\r
-  m_pOutStream->writeU8(msgTypeFileUploadFailed);\r
-  return writeU8U16StringMsg(reasonLen, pReason);\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileUploadRqst(unsigned short filenameLen, char *pFilename, \r
-                                  unsigned int position)\r
-{\r
-  if (filenameLen >= FT_FILENAME_SIZE) return false;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileUploadRequest);\r
-  m_pOutStream->writeU8(0);\r
-  m_pOutStream->writeU16(filenameLen);\r
-  m_pOutStream->writeU32(position);\r
-  m_pOutStream->writeBytes((void *)pFilename, filenameLen);\r
-  m_pOutStream->flush();\r
-\r
-  return true;\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileCreateDirRqst(unsigned short dirNameLen, char *pDirName)\r
-{\r
-  if (dirNameLen >= FT_FILENAME_SIZE) return false;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileCreateDirRequest);\r
-  return writeU8U16StringMsg(dirNameLen, pDirName);\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileDirSizeRqst(unsigned short dirNameLen, char *pDirName)\r
-{\r
-  if (dirNameLen >= FT_FILENAME_SIZE) return false;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileDirSizeRequest);\r
-  return writeU8U16StringMsg(dirNameLen, pDirName);\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileRenameRqst(unsigned short oldNameLen, unsigned short newNameLen,\r
-                                  char *pOldName, char *pNewName)\r
-{\r
-  if ((oldNameLen >= FT_FILENAME_SIZE) || (newNameLen >= FT_FILENAME_SIZE)) return false;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileRenameRequest);\r
-  m_pOutStream->writeU8(0);\r
-  m_pOutStream->writeU16(oldNameLen);\r
-  m_pOutStream->writeU16(newNameLen);\r
-  m_pOutStream->writeBytes(pOldName, oldNameLen);\r
-  m_pOutStream->writeBytes(pNewName, newNameLen);\r
-  m_pOutStream->flush();\r
-  \r
-  return true;\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeFileDeleteRqst(unsigned short nameLen, char *pName)\r
-{\r
-  if (nameLen >= FT_FILENAME_SIZE) return false;\r
-\r
-  m_pOutStream->writeU8(msgTypeFileDeleteRequest);\r
-  return writeU8U16StringMsg(nameLen, pName);\r
-}\r
-\r
-bool \r
-CFTMsgWriter::writeU8U16StringMsg(unsigned short strLength, char *pString)\r
-{\r
-  m_pOutStream->writeU8(0);\r
-  m_pOutStream->writeU16(strLength);\r
-  m_pOutStream->writeBytes(pString, strLength);\r
-  m_pOutStream->flush();\r
-  return true;\r
-}\r
+/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- CFTMsgWriter.cxx
+
+#include <rfb/CFTMsgWriter.h>
+
+using namespace rfb;
+
+CFTMsgWriter::CFTMsgWriter(rdr::OutStream *pOS)
+{
+  m_pOutStream = pOS;
+}
+
+CFTMsgWriter::~CFTMsgWriter()
+{
+}
+
+bool 
+CFTMsgWriter::writeFileListRqst(unsigned short dirnameLen, char *pDirName, 
+                                bool bDirOnly)
+{
+  if (dirnameLen >= FT_FILENAME_SIZE) return false;
+
+  unsigned char flags = 0;
+  if (bDirOnly) flags = 0x10;
+
+  m_pOutStream->writeU8(msgTypeFileListRequest);
+  m_pOutStream->writeU8(flags);
+  m_pOutStream->writeU16(dirnameLen);
+  m_pOutStream->writeBytes((void *)pDirName, dirnameLen);
+  m_pOutStream->flush();
+
+  return true;
+}
+
+
+bool 
+CFTMsgWriter::writeFileDownloadCancel(unsigned short reasonLen, char *pReason)
+{
+  m_pOutStream->writeU8(msgTypeFileDownloadCancel);
+  return writeU8U16StringMsg(reasonLen, pReason);
+}
+
+bool 
+CFTMsgWriter::writeFileDownloadRqst(unsigned short filenameLen, char *pFilename, 
+                                    unsigned int position)
+{
+  if (filenameLen >= FT_FILENAME_SIZE) return false;
+
+  m_pOutStream->writeU8(msgTypeFileDownloadRequest);
+  m_pOutStream->writeU8(0);
+  m_pOutStream->writeU16(filenameLen);
+  m_pOutStream->writeU32(position);
+  m_pOutStream->writeBytes(pFilename, filenameLen);
+  m_pOutStream->flush();
+
+  return true;
+}
+
+bool 
+CFTMsgWriter::writeFileUploadData(unsigned short dataSize, char *pData)
+{
+  m_pOutStream->writeU8(msgTypeFileUploadData);
+  m_pOutStream->writeU8(0);
+  m_pOutStream->writeU16(dataSize);
+  m_pOutStream->writeU16(dataSize);
+  m_pOutStream->writeBytes(pData, dataSize);
+  m_pOutStream->flush();
+
+  return true;
+}
+
+bool 
+CFTMsgWriter::writeFileUploadData(unsigned int modTime)
+{
+  m_pOutStream->writeU8(msgTypeFileUploadData);
+  m_pOutStream->writeU8(0);
+  m_pOutStream->writeU16(0);
+  m_pOutStream->writeU16(0);
+  m_pOutStream->writeU32(modTime);
+  m_pOutStream->flush();
+
+  return true;
+}
+
+bool 
+CFTMsgWriter::writeFileUploadFailed(unsigned short reasonLen, char *pReason)
+{
+  m_pOutStream->writeU8(msgTypeFileUploadFailed);
+  return writeU8U16StringMsg(reasonLen, pReason);
+}
+
+bool 
+CFTMsgWriter::writeFileUploadRqst(unsigned short filenameLen, char *pFilename, 
+                                  unsigned int position)
+{
+  if (filenameLen >= FT_FILENAME_SIZE) return false;
+
+  m_pOutStream->writeU8(msgTypeFileUploadRequest);
+  m_pOutStream->writeU8(0);
+  m_pOutStream->writeU16(filenameLen);
+  m_pOutStream->writeU32(position);
+  m_pOutStream->writeBytes((void *)pFilename, filenameLen);
+  m_pOutStream->flush();
+
+  return true;
+}
+
+bool 
+CFTMsgWriter::writeFileCreateDirRqst(unsigned short dirNameLen, char *pDirName)
+{
+  if (dirNameLen >= FT_FILENAME_SIZE) return false;
+
+  m_pOutStream->writeU8(msgTypeFileCreateDirRequest);
+  return writeU8U16StringMsg(dirNameLen, pDirName);
+}
+
+bool 
+CFTMsgWriter::writeFileDirSizeRqst(unsigned short dirNameLen, char *pDirName)
+{
+  if (dirNameLen >= FT_FILENAME_SIZE) return false;
+
+  m_pOutStream->writeU8(msgTypeFileDirSizeRequest);
+  return writeU8U16StringMsg(dirNameLen, pDirName);
+}
+
+bool 
+CFTMsgWriter::writeFileRenameRqst(unsigned short oldNameLen, unsigned short newNameLen,
+                                  char *pOldName, char *pNewName)
+{
+  if ((oldNameLen >= FT_FILENAME_SIZE) || (newNameLen >= FT_FILENAME_SIZE)) return false;
+
+  m_pOutStream->writeU8(msgTypeFileRenameRequest);
+  m_pOutStream->writeU8(0);
+  m_pOutStream->writeU16(oldNameLen);
+  m_pOutStream->writeU16(newNameLen);
+  m_pOutStream->writeBytes(pOldName, oldNameLen);
+  m_pOutStream->writeBytes(pNewName, newNameLen);
+  m_pOutStream->flush();
+  
+  return true;
+}
+
+bool 
+CFTMsgWriter::writeFileDeleteRqst(unsigned short nameLen, char *pName)
+{
+  if (nameLen >= FT_FILENAME_SIZE) return false;
+
+  m_pOutStream->writeU8(msgTypeFileDeleteRequest);
+  return writeU8U16StringMsg(nameLen, pName);
+}
+
+bool 
+CFTMsgWriter::writeU8U16StringMsg(unsigned short strLength, char *pString)
+{
+  m_pOutStream->writeU8(0);
+  m_pOutStream->writeU16(strLength);
+  m_pOutStream->writeBytes(pString, strLength);
+  m_pOutStream->flush();
+  return true;
+}
index c49c2aaedde27ef57d051f3754e630ed861bb137..e4cdc0bda1bbba6b88079760d49f7833dfabc54e 100644 (file)
@@ -1,67 +1,67 @@
-/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- CFTMsgWriter.h\r
-\r
-#ifndef __RFB_CFTMSGWRITER_H__\r
-#define __RFB_CFTMSGWRITER_H__\r
-\r
-#include <rdr/types.h>\r
-#include <rdr/OutStream.h>\r
-#include <rfb/msgTypes.h>\r
-#include <rfb/fttypes.h>\r
-\r
-namespace rfb {\r
-  class CFTMsgWriter\r
-  {\r
-  public:\r
-    CFTMsgWriter(rdr::OutStream *pOS);\r
-    ~CFTMsgWriter();\r
-    \r
-    bool writeFileListRqst(unsigned short dirnameLen, char *pDirName, bool bDirOnly);\r
-    \r
-    bool writeFileDownloadCancel(unsigned short reasonLen, char *pReason);\r
-    bool writeFileDownloadRqst(unsigned short filenameLen, char *pFilename, \r
-                               unsigned int position);\r
-    \r
-    bool writeFileUploadData(unsigned short dataSize, char *pData);\r
-    bool writeFileUploadData(unsigned int modTime);\r
-    bool writeFileUploadFailed(unsigned short reasonLen, char *pReason);\r
-    bool writeFileUploadRqst(unsigned short filenameLen, char *pFilename, \r
-                             unsigned int position);\r
-    \r
-    bool writeFileCreateDirRqst(unsigned short dirNameLen, char *pDirName);\r
-    bool writeFileDirSizeRqst(unsigned short dirNameLen, char *pDirName);\r
-    \r
-    bool writeFileRenameRqst(unsigned short oldNameLen, unsigned short newNameLen,\r
-                             char *pOldName, char *pNewName);\r
-    bool writeFileDeleteRqst(unsigned short nameLen, char *pName);\r
-    \r
-  private:\r
-    rdr::OutStream *m_pOutStream;\r
-    \r
-    bool writeU8U16StringMsg(unsigned short strLength, char *pString);\r
-  };\r
-}\r
-\r
-#endif // __RFB_CFTMSGWRITER_H__\r
+/* Copyright (C) 2005 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- CFTMsgWriter.h
+
+#ifndef __RFB_CFTMSGWRITER_H__
+#define __RFB_CFTMSGWRITER_H__
+
+#include <rdr/types.h>
+#include <rdr/OutStream.h>
+#include <rfb/msgTypes.h>
+#include <rfb/fttypes.h>
+
+namespace rfb {
+  class CFTMsgWriter
+  {
+  public:
+    CFTMsgWriter(rdr::OutStream *pOS);
+    ~CFTMsgWriter();
+    
+    bool writeFileListRqst(unsigned short dirnameLen, char *pDirName, bool bDirOnly);
+    
+    bool writeFileDownloadCancel(unsigned short reasonLen, char *pReason);
+    bool writeFileDownloadRqst(unsigned short filenameLen, char *pFilename, 
+                               unsigned int position);
+    
+    bool writeFileUploadData(unsigned short dataSize, char *pData);
+    bool writeFileUploadData(unsigned int modTime);
+    bool writeFileUploadFailed(unsigned short reasonLen, char *pReason);
+    bool writeFileUploadRqst(unsigned short filenameLen, char *pFilename, 
+                             unsigned int position);
+    
+    bool writeFileCreateDirRqst(unsigned short dirNameLen, char *pDirName);
+    bool writeFileDirSizeRqst(unsigned short dirNameLen, char *pDirName);
+    
+    bool writeFileRenameRqst(unsigned short oldNameLen, unsigned short newNameLen,
+                             char *pOldName, char *pNewName);
+    bool writeFileDeleteRqst(unsigned short nameLen, char *pName);
+    
+  private:
+    rdr::OutStream *m_pOutStream;
+    
+    bool writeU8U16StringMsg(unsigned short strLength, char *pString);
+  };
+}
+
+#endif // __RFB_CFTMSGWRITER_H__
index e947a7421fae1b5102795704a97145be9d326e7e..9161fff793e7781c640a8c4f42ddd91c43308809 100644 (file)
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *    \r
- * Developed by Dennis Syrovatsky\r
- *\r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransfer.cxx\r
-\r
-#include <rfb/msgTypes.h>\r
-#include <rfb/SFileTransfer.h>\r
-\r
-using namespace rfb;\r
-\r
-SFileTransfer::SFileTransfer(network::Socket *sock) : \r
-  m_pSocket(sock), m_reader(&sock->inStream()), m_writer(&sock->outStream()),\r
-  m_bUploadStarted(false), m_bDownloadStarted(false)\r
-{\r
-}\r
-\r
-SFileTransfer::~SFileTransfer()\r
-{\r
-}\r
-\r
-bool\r
-SFileTransfer::processMessages(int type)\r
-{\r
-  switch(type)\r
-  {\r
-    case msgTypeFileListRequest:\r
-      return processFileListRequest();\r
-    case msgTypeFileDownloadRequest:\r
-      return processFileDownloadRequest();\r
-    case msgTypeFileUploadRequest:\r
-      return processFileUploadRequest();\r
-    case msgTypeFileUploadData:\r
-      return processFileUploadData();\r
-    case msgTypeFileDownloadCancel:\r
-      return processFileDownloadCancel();\r
-    case msgTypeFileUploadFailed:\r
-      return processFileUploadFailed();\r
-    case msgTypeFileCreateDirRequest:\r
-      return processFileCreateDirRequest();\r
-    case msgTypeFileDirSizeRequest:\r
-      return processFileDirSizeRequest();\r
-    case msgTypeFileRenameRequest:\r
-      return processFileRenameRequest();\r
-    case msgTypeFileDeleteRequest:\r
-      return processFileDeleteRequest();\r
-    default:\r
-      return false;\r
-  }\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileListRequest()\r
-{\r
-  char szDirName[FT_FILENAME_SIZE] = {0};\r
-  unsigned int dirNameSize = FT_FILENAME_SIZE;\r
-  unsigned int flags = 0;\r
-\r
-  if (!m_reader.readFileListRqst(&dirNameSize, szDirName, &flags)) return false;\r
-\r
-  if (!convertPathFromNet(szDirName)) return false;\r
-\r
-  bool bDirOnly = false;\r
-  if (flags & 0x10) bDirOnly = true;\r
-\r
-  FileInfo fi;\r
-  if (!makeFileList(szDirName, &fi, bDirOnly)) return false;\r
-\r
-  return m_writer.writeFileListData((unsigned char)flags, &fi);\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileDownloadRequest()\r
-{\r
-  char szName[FT_FILENAME_SIZE] = {0};\r
-  unsigned int nameSize = FT_FILENAME_SIZE;\r
-  unsigned int position = 0;\r
-\r
-  if (!m_reader.readFileDownloadRqst(&nameSize, szName, &position)) return false;\r
-\r
-  if (!convertPathFromNet(szName)) return false;\r
-\r
-  if (m_bDownloadStarted) {\r
-    char reason[] = "The download is already started";\r
-    m_writer.writeFileLastRqstFailed(msgTypeFileDownloadRequest, strlen(reason), reason);\r
-    return false;\r
-  }\r
-\r
-  if (!m_fileReader.create(szName)) return false;\r
-\r
-  m_bDownloadStarted = true;\r
-\r
-  sendFileDownloadPortion();\r
-\r
-  return true;\r
-}\r
-\r
-bool\r
-SFileTransfer::sendFileDownloadPortion()\r
-{\r
-  char buffer[FT_MAX_SENDING_SIZE];\r
-  unsigned int bytesRead = 0;\r
-\r
-  if (m_fileReader.read((void *)buffer, FT_MAX_SENDING_SIZE, &bytesRead)) {\r
-    if (bytesRead == 0) {\r
-      m_writer.writeFileDownloadData(m_fileReader.getTime());\r
-      m_fileReader.close();\r
-      m_bDownloadStarted = false;\r
-      return true;\r
-    } else {\r
-      m_writer.writeFileDownloadData(bytesRead, buffer);\r
-      return initDownloadCallback();\r
-    }\r
-  } else {\r
-    char reason[] = "Error while reading from file";\r
-    m_writer.writeFileDownloadFailed(strlen(reason), reason);\r
-    m_fileReader.close();\r
-    m_bDownloadStarted = false;\r
-    return true;\r
-  }\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileUploadRequest()\r
-{\r
-  char szName[FT_FILENAME_SIZE] = {0};\r
-  unsigned int nameSize = FT_FILENAME_SIZE;\r
-  unsigned int position = 0;\r
-\r
-  if (!m_reader.readFileUploadRqst(&nameSize, szName, &position)) return false;\r
-\r
-  if (!convertPathFromNet(szName)) return false;\r
-\r
-  if (m_bUploadStarted) {\r
-    char reason[] = "The upload is already started";\r
-    m_writer.writeFileLastRqstFailed(msgTypeFileUploadRequest, strlen(reason), reason);\r
-    return false;\r
-  }\r
-\r
-  if (!m_fileWriter.create(szName)) {\r
-    char reason[] = "Can't create local file";\r
-    m_writer.writeFileLastRqstFailed(msgTypeFileUploadRequest, strlen(reason), reason);\r
-    return true;\r
-  }\r
-\r
-  m_bUploadStarted = true;\r
-\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileUploadData()\r
-{\r
-  unsigned int dataSize = 0;\r
-  unsigned int modTime = 0;\r
-\r
-  void *pUploadData = m_reader.readFileUploadData(&dataSize, &modTime);\r
-\r
-  if (!m_bUploadStarted) {\r
-      char reason[] = "Upload is impossible";\r
-      m_writer.writeFileUploadCancel(strlen(reason), reason);\r
-  } else {\r
-    if (pUploadData == NULL) {\r
-      if (modTime == 0) {\r
-        char reason[] = "Upload failed";\r
-        m_writer.writeFileUploadCancel(strlen(reason), reason);\r
-      } else {\r
-        m_fileWriter.setTime(modTime);\r
-      }\r
-      m_fileWriter.close();\r
-      m_bUploadStarted = false;\r
-    } else {\r
-      unsigned int dataWritten = 0;\r
-      m_fileWriter.write(pUploadData, dataSize, &dataWritten);\r
-      if (dataWritten != dataSize) {\r
-        char reason[] = "Upload failed";\r
-        m_writer.writeFileUploadCancel(strlen(reason), reason);\r
-        m_fileWriter.close();\r
-        m_bUploadStarted = false;\r
-      }\r
-    }\r
-  }\r
-  delete [] pUploadData;\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileDownloadCancel()\r
-{\r
-  char szReason[FT_FILENAME_SIZE] = {0};\r
-  unsigned int reasonSize = FT_FILENAME_SIZE;\r
-\r
-  if (!m_reader.readFileDownloadCancel(&reasonSize, szReason)) return false;\r
-\r
-  m_fileReader.close();\r
-  m_bDownloadStarted = false;\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileUploadFailed()\r
-{\r
-  char szReason[FT_FILENAME_SIZE] = {0};\r
-  unsigned int reasonSize = FT_FILENAME_SIZE;\r
-\r
-  if (!m_reader.readFileUploadFailed(&reasonSize, szReason)) return false;\r
-\r
-  deleteIt(m_fileWriter.getFilename());\r
-  m_fileWriter.close();\r
-  m_bUploadStarted = false;\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileCreateDirRequest()\r
-{\r
-  char szName[FT_FILENAME_SIZE] = {0};\r
-  unsigned int nameSize = FT_FILENAME_SIZE;\r
-\r
-  if (!m_reader.readFileCreateDirRqst(&nameSize, szName)) return false;\r
-\r
-  if (!convertPathFromNet(szName)) return false;\r
-\r
-  return createDir(szName);\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileDirSizeRequest()\r
-{\r
-  char szName[FT_FILENAME_SIZE] = {0};\r
-  unsigned int nameSize = FT_FILENAME_SIZE;\r
-\r
-  if (!m_reader.readFileDirSizeRqst(&nameSize, szName)) return false;\r
-\r
-  if (!convertPathFromNet(szName)) return false;\r
-\r
-  unsigned short highSize16 = 0;\r
-  unsigned int lowSize32 = 0;\r
-\r
-  if (!getDirSize(szName, &highSize16, &lowSize32)) return false;\r
-\r
-  return m_writer.writeFileDirSizeData(lowSize32, highSize16);\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileRenameRequest()\r
-{\r
-  char szOldName[FT_FILENAME_SIZE] = {0};\r
-  char szNewName[FT_FILENAME_SIZE] = {0};\r
-\r
-  unsigned int oldNameSize = FT_FILENAME_SIZE;\r
-  unsigned int newNameSize = FT_FILENAME_SIZE;\r
-\r
-  if (!m_reader.readFileRenameRqst(&oldNameSize, &newNameSize, szOldName, szNewName)) return false;\r
-\r
-  if ((!convertPathFromNet(szOldName)) || (!convertPathFromNet(szNewName))) return false;\r
-\r
-  return renameIt(szOldName, szNewName);\r
-}\r
-\r
-bool \r
-SFileTransfer::processFileDeleteRequest()\r
-{\r
-  char szName[FT_FILENAME_SIZE] = {0};\r
-  unsigned int nameSize = FT_FILENAME_SIZE;\r
-\r
-  if (!m_reader.readFileDeleteRqst(&nameSize, szName)) return false;\r
-\r
-  if (!convertPathFromNet(szName)) return false;\r
-\r
-  return deleteIt(szName);\r
-}\r
-\r
-bool \r
-SFileTransfer::convertPathFromNet(char *pszPath)\r
-{\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransfer::makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly)\r
-{\r
-  return false;\r
-}\r
-\r
-bool \r
-SFileTransfer::deleteIt(char *pszPath)\r
-{\r
-  return false;\r
-}\r
-\r
-bool \r
-SFileTransfer::renameIt(char *pszOldPath, char *pszNewPath)\r
-{\r
-  return false;\r
-}\r
-\r
-bool \r
-SFileTransfer::createDir(char *pszPath)\r
-{\r
-  return false;\r
-}\r
-\r
-bool \r
-SFileTransfer::getDirSize(char *pszName, unsigned short *pHighSize16, \r
-                          unsigned int *pLowSize32)\r
-{\r
-  return false;\r
-}\r
-\r
-bool\r
-SFileTransfer::initDownloadCallback()\r
-{\r
-  return false;\r
-}\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *    
+ * Developed by Dennis Syrovatsky
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransfer.cxx
+
+#include <rfb/msgTypes.h>
+#include <rfb/SFileTransfer.h>
+
+using namespace rfb;
+
+SFileTransfer::SFileTransfer(network::Socket *sock) : 
+  m_pSocket(sock), m_reader(&sock->inStream()), m_writer(&sock->outStream()),
+  m_bUploadStarted(false), m_bDownloadStarted(false)
+{
+}
+
+SFileTransfer::~SFileTransfer()
+{
+}
+
+bool
+SFileTransfer::processMessages(int type)
+{
+  switch(type)
+  {
+    case msgTypeFileListRequest:
+      return processFileListRequest();
+    case msgTypeFileDownloadRequest:
+      return processFileDownloadRequest();
+    case msgTypeFileUploadRequest:
+      return processFileUploadRequest();
+    case msgTypeFileUploadData:
+      return processFileUploadData();
+    case msgTypeFileDownloadCancel:
+      return processFileDownloadCancel();
+    case msgTypeFileUploadFailed:
+      return processFileUploadFailed();
+    case msgTypeFileCreateDirRequest:
+      return processFileCreateDirRequest();
+    case msgTypeFileDirSizeRequest:
+      return processFileDirSizeRequest();
+    case msgTypeFileRenameRequest:
+      return processFileRenameRequest();
+    case msgTypeFileDeleteRequest:
+      return processFileDeleteRequest();
+    default:
+      return false;
+  }
+}
+
+bool 
+SFileTransfer::processFileListRequest()
+{
+  char szDirName[FT_FILENAME_SIZE] = {0};
+  unsigned int dirNameSize = FT_FILENAME_SIZE;
+  unsigned int flags = 0;
+
+  if (!m_reader.readFileListRqst(&dirNameSize, szDirName, &flags)) return false;
+
+  if (!convertPathFromNet(szDirName)) return false;
+
+  bool bDirOnly = false;
+  if (flags & 0x10) bDirOnly = true;
+
+  FileInfo fi;
+  if (!makeFileList(szDirName, &fi, bDirOnly)) return false;
+
+  return m_writer.writeFileListData((unsigned char)flags, &fi);
+}
+
+bool 
+SFileTransfer::processFileDownloadRequest()
+{
+  char szName[FT_FILENAME_SIZE] = {0};
+  unsigned int nameSize = FT_FILENAME_SIZE;
+  unsigned int position = 0;
+
+  if (!m_reader.readFileDownloadRqst(&nameSize, szName, &position)) return false;
+
+  if (!convertPathFromNet(szName)) return false;
+
+  if (m_bDownloadStarted) {
+    char reason[] = "The download is already started";
+    m_writer.writeFileLastRqstFailed(msgTypeFileDownloadRequest, strlen(reason), reason);
+    return false;
+  }
+
+  if (!m_fileReader.create(szName)) return false;
+
+  m_bDownloadStarted = true;
+
+  sendFileDownloadPortion();
+
+  return true;
+}
+
+bool
+SFileTransfer::sendFileDownloadPortion()
+{
+  char buffer[FT_MAX_SENDING_SIZE];
+  unsigned int bytesRead = 0;
+
+  if (m_fileReader.read((void *)buffer, FT_MAX_SENDING_SIZE, &bytesRead)) {
+    if (bytesRead == 0) {
+      m_writer.writeFileDownloadData(m_fileReader.getTime());
+      m_fileReader.close();
+      m_bDownloadStarted = false;
+      return true;
+    } else {
+      m_writer.writeFileDownloadData(bytesRead, buffer);
+      return initDownloadCallback();
+    }
+  } else {
+    char reason[] = "Error while reading from file";
+    m_writer.writeFileDownloadFailed(strlen(reason), reason);
+    m_fileReader.close();
+    m_bDownloadStarted = false;
+    return true;
+  }
+}
+
+bool 
+SFileTransfer::processFileUploadRequest()
+{
+  char szName[FT_FILENAME_SIZE] = {0};
+  unsigned int nameSize = FT_FILENAME_SIZE;
+  unsigned int position = 0;
+
+  if (!m_reader.readFileUploadRqst(&nameSize, szName, &position)) return false;
+
+  if (!convertPathFromNet(szName)) return false;
+
+  if (m_bUploadStarted) {
+    char reason[] = "The upload is already started";
+    m_writer.writeFileLastRqstFailed(msgTypeFileUploadRequest, strlen(reason), reason);
+    return false;
+  }
+
+  if (!m_fileWriter.create(szName)) {
+    char reason[] = "Can't create local file";
+    m_writer.writeFileLastRqstFailed(msgTypeFileUploadRequest, strlen(reason), reason);
+    return true;
+  }
+
+  m_bUploadStarted = true;
+
+  return true;
+}
+
+bool 
+SFileTransfer::processFileUploadData()
+{
+  unsigned int dataSize = 0;
+  unsigned int modTime = 0;
+
+  void *pUploadData = m_reader.readFileUploadData(&dataSize, &modTime);
+
+  if (!m_bUploadStarted) {
+      char reason[] = "Upload is impossible";
+      m_writer.writeFileUploadCancel(strlen(reason), reason);
+  } else {
+    if (pUploadData == NULL) {
+      if (modTime == 0) {
+        char reason[] = "Upload failed";
+        m_writer.writeFileUploadCancel(strlen(reason), reason);
+      } else {
+        m_fileWriter.setTime(modTime);
+      }
+      m_fileWriter.close();
+      m_bUploadStarted = false;
+    } else {
+      unsigned int dataWritten = 0;
+      m_fileWriter.write(pUploadData, dataSize, &dataWritten);
+      if (dataWritten != dataSize) {
+        char reason[] = "Upload failed";
+        m_writer.writeFileUploadCancel(strlen(reason), reason);
+        m_fileWriter.close();
+        m_bUploadStarted = false;
+      }
+    }
+  }
+  delete [] pUploadData;
+  return true;
+}
+
+bool 
+SFileTransfer::processFileDownloadCancel()
+{
+  char szReason[FT_FILENAME_SIZE] = {0};
+  unsigned int reasonSize = FT_FILENAME_SIZE;
+
+  if (!m_reader.readFileDownloadCancel(&reasonSize, szReason)) return false;
+
+  m_fileReader.close();
+  m_bDownloadStarted = false;
+  return true;
+}
+
+bool 
+SFileTransfer::processFileUploadFailed()
+{
+  char szReason[FT_FILENAME_SIZE] = {0};
+  unsigned int reasonSize = FT_FILENAME_SIZE;
+
+  if (!m_reader.readFileUploadFailed(&reasonSize, szReason)) return false;
+
+  deleteIt(m_fileWriter.getFilename());
+  m_fileWriter.close();
+  m_bUploadStarted = false;
+  return true;
+}
+
+bool 
+SFileTransfer::processFileCreateDirRequest()
+{
+  char szName[FT_FILENAME_SIZE] = {0};
+  unsigned int nameSize = FT_FILENAME_SIZE;
+
+  if (!m_reader.readFileCreateDirRqst(&nameSize, szName)) return false;
+
+  if (!convertPathFromNet(szName)) return false;
+
+  return createDir(szName);
+}
+
+bool 
+SFileTransfer::processFileDirSizeRequest()
+{
+  char szName[FT_FILENAME_SIZE] = {0};
+  unsigned int nameSize = FT_FILENAME_SIZE;
+
+  if (!m_reader.readFileDirSizeRqst(&nameSize, szName)) return false;
+
+  if (!convertPathFromNet(szName)) return false;
+
+  unsigned short highSize16 = 0;
+  unsigned int lowSize32 = 0;
+
+  if (!getDirSize(szName, &highSize16, &lowSize32)) return false;
+
+  return m_writer.writeFileDirSizeData(lowSize32, highSize16);
+}
+
+bool 
+SFileTransfer::processFileRenameRequest()
+{
+  char szOldName[FT_FILENAME_SIZE] = {0};
+  char szNewName[FT_FILENAME_SIZE] = {0};
+
+  unsigned int oldNameSize = FT_FILENAME_SIZE;
+  unsigned int newNameSize = FT_FILENAME_SIZE;
+
+  if (!m_reader.readFileRenameRqst(&oldNameSize, &newNameSize, szOldName, szNewName)) return false;
+
+  if ((!convertPathFromNet(szOldName)) || (!convertPathFromNet(szNewName))) return false;
+
+  return renameIt(szOldName, szNewName);
+}
+
+bool 
+SFileTransfer::processFileDeleteRequest()
+{
+  char szName[FT_FILENAME_SIZE] = {0};
+  unsigned int nameSize = FT_FILENAME_SIZE;
+
+  if (!m_reader.readFileDeleteRqst(&nameSize, szName)) return false;
+
+  if (!convertPathFromNet(szName)) return false;
+
+  return deleteIt(szName);
+}
+
+bool 
+SFileTransfer::convertPathFromNet(char *pszPath)
+{
+  return true;
+}
+
+bool 
+SFileTransfer::makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly)
+{
+  return false;
+}
+
+bool 
+SFileTransfer::deleteIt(char *pszPath)
+{
+  return false;
+}
+
+bool 
+SFileTransfer::renameIt(char *pszOldPath, char *pszNewPath)
+{
+  return false;
+}
+
+bool 
+SFileTransfer::createDir(char *pszPath)
+{
+  return false;
+}
+
+bool 
+SFileTransfer::getDirSize(char *pszName, unsigned short *pHighSize16, 
+                          unsigned int *pLowSize32)
+{
+  return false;
+}
+
+bool
+SFileTransfer::initDownloadCallback()
+{
+  return false;
+}
index 9328ead8f4926fd7e1d85572ccb5f40d4cd0162f..62bed406ae00afce7bdfa8dbafabffb82cba40cf 100644 (file)
@@ -1,83 +1,83 @@
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransfer.h\r
-\r
-#ifndef __RFB_SFILETRANSFER_H__\r
-#define __RFB_SFILETRANSFER_H__\r
-\r
-#include <network/Socket.h>\r
-#include <rfb/SFTMsgReader.h>\r
-#include <rfb/SFTMsgWriter.h>\r
-#include <rfb/FileWriter.h>\r
-#include <rfb/FileReader.h>\r
-#include <rfb/FileInfo.h>\r
-#include <rfb/fttypes.h>\r
-\r
-namespace rfb {\r
-  class SFileTransfer\r
-  {\r
-  public:\r
-    SFileTransfer(network::Socket *sock);\r
-    ~SFileTransfer();\r
-\r
-       bool processMessages(int type);\r
-    bool sendFileDownloadPortion();\r
-\r
-  protected:\r
-    bool processFileListRequest();\r
-    bool processFileDownloadRequest();\r
-    bool processFileUploadRequest();\r
-    bool processFileUploadData();\r
-    bool processFileDownloadCancel();\r
-    bool processFileUploadFailed();\r
-    bool processFileCreateDirRequest();\r
-    bool processFileDirSizeRequest();\r
-    bool processFileRenameRequest();\r
-    bool processFileDeleteRequest();\r
-\r
-    virtual bool initDownloadCallback();\r
-    virtual bool makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly);\r
-    virtual bool convertPathFromNet(char *pszPath);\r
-\r
-    virtual bool deleteIt(char *pszPath);\r
-    virtual bool renameIt(char *pszOldPath, char *pszNewPath);\r
-    virtual bool createDir(char *pszPath);\r
-\r
-    virtual bool getDirSize(char *pszName, unsigned short *pHighSize16, unsigned int *pLowSize32);\r
-\r
-    bool m_bUploadStarted;\r
-    bool m_bDownloadStarted;\r
-    \r
-  private:\r
-    SFTMsgReader m_reader;\r
-    SFTMsgWriter m_writer;\r
-\r
-    FileWriter m_fileWriter;\r
-    FileReader m_fileReader;\r
-\r
-    network::Socket *m_pSocket;\r
-  };\r
-}\r
-\r
-#endif // __RFB_SFILETRANSFER_H__\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransfer.h
+
+#ifndef __RFB_SFILETRANSFER_H__
+#define __RFB_SFILETRANSFER_H__
+
+#include <network/Socket.h>
+#include <rfb/SFTMsgReader.h>
+#include <rfb/SFTMsgWriter.h>
+#include <rfb/FileWriter.h>
+#include <rfb/FileReader.h>
+#include <rfb/FileInfo.h>
+#include <rfb/fttypes.h>
+
+namespace rfb {
+  class SFileTransfer
+  {
+  public:
+    SFileTransfer(network::Socket *sock);
+    ~SFileTransfer();
+
+       bool processMessages(int type);
+    bool sendFileDownloadPortion();
+
+  protected:
+    bool processFileListRequest();
+    bool processFileDownloadRequest();
+    bool processFileUploadRequest();
+    bool processFileUploadData();
+    bool processFileDownloadCancel();
+    bool processFileUploadFailed();
+    bool processFileCreateDirRequest();
+    bool processFileDirSizeRequest();
+    bool processFileRenameRequest();
+    bool processFileDeleteRequest();
+
+    virtual bool initDownloadCallback();
+    virtual bool makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly);
+    virtual bool convertPathFromNet(char *pszPath);
+
+    virtual bool deleteIt(char *pszPath);
+    virtual bool renameIt(char *pszOldPath, char *pszNewPath);
+    virtual bool createDir(char *pszPath);
+
+    virtual bool getDirSize(char *pszName, unsigned short *pHighSize16, unsigned int *pLowSize32);
+
+    bool m_bUploadStarted;
+    bool m_bDownloadStarted;
+    
+  private:
+    SFTMsgReader m_reader;
+    SFTMsgWriter m_writer;
+
+    FileWriter m_fileWriter;
+    FileReader m_fileReader;
+
+    network::Socket *m_pSocket;
+  };
+}
+
+#endif // __RFB_SFILETRANSFER_H__
index c13e0c172d2768029fa0821d0542a2744bbc381e..d8b231af398b209e2c08718dd0f54d1c06611eab 100644 (file)
@@ -1,55 +1,55 @@
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransferManager.cxx\r
-\r
-#include <rfb/SFileTransferManager.h>\r
-\r
-using namespace rfb;\r
-\r
-SFileTransferManager::SFileTransferManager()\r
-{\r
-\r
-}\r
-\r
-SFileTransferManager::~SFileTransferManager()\r
-{\r
-  destroy();\r
-}\r
-\r
-void\r
-SFileTransferManager::destroyObject(SFileTransfer *pFT)\r
-{\r
-  if (pFT == NULL) return;\r
-\r
-  m_lstFTObjects.remove(pFT);\r
-\r
-  delete pFT;\r
-}\r
-\r
-void\r
-SFileTransferManager::destroy()\r
-{\r
-  while(!m_lstFTObjects.empty())\r
-    delete m_lstFTObjects.front();\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransferManager.cxx
+
+#include <rfb/SFileTransferManager.h>
+
+using namespace rfb;
+
+SFileTransferManager::SFileTransferManager()
+{
+
+}
+
+SFileTransferManager::~SFileTransferManager()
+{
+  destroy();
+}
+
+void
+SFileTransferManager::destroyObject(SFileTransfer *pFT)
+{
+  if (pFT == NULL) return;
+
+  m_lstFTObjects.remove(pFT);
+
+  delete pFT;
+}
+
+void
+SFileTransferManager::destroy()
+{
+  while(!m_lstFTObjects.empty())
+    delete m_lstFTObjects.front();
 }
\ No newline at end of file
index 107d144570598e9890a2742d3dfa592f12606307..4ee1406e0efaf263cd874dae9af2f0691bdff24b 100644 (file)
@@ -1,51 +1,51 @@
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransferManager.h\r
-\r
-#ifndef __RFB_SFILETRANSFERMANAGER_H__\r
-#define __RFB_SFILETRANSFERMANAGER_H__\r
-\r
-#include <list>\r
-\r
-#include <rfb/SFileTransfer.h>\r
-#include <network/Socket.h>\r
-\r
-namespace rfb {\r
-  class SFileTransferManager\r
-  {\r
-  public:\r
-    SFileTransferManager();\r
-    ~SFileTransferManager();\r
-\r
-    virtual SFileTransfer *createObject(network::Socket *sock) = 0;\r
-    void destroyObject(SFileTransfer *pFT);\r
-\r
-  protected:\r
-    std::list<SFileTransfer*> m_lstFTObjects;\r
-\r
-    void destroy();\r
-  };\r
-}\r
-\r
-#endif // __RFB_SFILETRANSFERMANAGER_H__\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransferManager.h
+
+#ifndef __RFB_SFILETRANSFERMANAGER_H__
+#define __RFB_SFILETRANSFERMANAGER_H__
+
+#include <list>
+
+#include <rfb/SFileTransfer.h>
+#include <network/Socket.h>
+
+namespace rfb {
+  class SFileTransferManager
+  {
+  public:
+    SFileTransferManager();
+    ~SFileTransferManager();
+
+    virtual SFileTransfer *createObject(network::Socket *sock) = 0;
+    void destroyObject(SFileTransfer *pFT);
+
+  protected:
+    std::list<SFileTransfer*> m_lstFTObjects;
+
+    void destroy();
+  };
+}
+
+#endif // __RFB_SFILETRANSFERMANAGER_H__
index 000b372bcc2bd1405704d3e69d1c06817981166e..edc898be1336ec8607dd7b170f1099ba8f3ad748 100644 (file)
@@ -1,71 +1,71 @@
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransferManagerWin32.cxx\r
-\r
-#include <rfb_win32/SFileTransferManagerWin32.h>\r
-\r
-using namespace rfb;\r
-using namespace win32;\r
-\r
-SFileTransferManagerWin32::SFileTransferManagerWin32()\r
-{\r
-\r
-}\r
-\r
-SFileTransferManagerWin32::~SFileTransferManagerWin32()\r
-{\r
-\r
-}\r
-\r
-SFileTransfer *\r
-SFileTransferManagerWin32::createObject(network::Socket *sock)\r
-{\r
-  rfb::SFileTransfer *pFT = 0;\r
-  rfb::win32::SFileTransferWin32 *pFTWin32 = 0;\r
-\r
-  pFTWin32 = new SFileTransferWin32(sock);\r
-  if (pFTWin32 == NULL) return NULL;\r
-\r
-  pFT = (SFileTransfer *) pFTWin32;\r
-\r
-  m_lstFTObjects.push_front(pFT);\r
-\r
-  return pFT;\r
-}\r
-\r
-void \r
-SFileTransferManagerWin32::processDownloadMsg(MSG msg)\r
-{\r
-  SFileTransfer *pFT = (SFileTransfer *)msg.lParam;\r
-\r
-  if (pFT != NULL) {\r
-    std::list<SFileTransfer*>::iterator i;\r
-    for (i=m_lstFTObjects.begin(); i!=m_lstFTObjects.end(); i++) {\r
-      if ((*i) == pFT) {\r
-        (*i)->sendFileDownloadPortion();\r
-        return;\r
-      }\r
-    }\r
-  }\r
-}\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransferManagerWin32.cxx
+
+#include <rfb_win32/SFileTransferManagerWin32.h>
+
+using namespace rfb;
+using namespace win32;
+
+SFileTransferManagerWin32::SFileTransferManagerWin32()
+{
+
+}
+
+SFileTransferManagerWin32::~SFileTransferManagerWin32()
+{
+
+}
+
+SFileTransfer *
+SFileTransferManagerWin32::createObject(network::Socket *sock)
+{
+  rfb::SFileTransfer *pFT = 0;
+  rfb::win32::SFileTransferWin32 *pFTWin32 = 0;
+
+  pFTWin32 = new SFileTransferWin32(sock);
+  if (pFTWin32 == NULL) return NULL;
+
+  pFT = (SFileTransfer *) pFTWin32;
+
+  m_lstFTObjects.push_front(pFT);
+
+  return pFT;
+}
+
+void 
+SFileTransferManagerWin32::processDownloadMsg(MSG msg)
+{
+  SFileTransfer *pFT = (SFileTransfer *)msg.lParam;
+
+  if (pFT != NULL) {
+    std::list<SFileTransfer*>::iterator i;
+    for (i=m_lstFTObjects.begin(); i!=m_lstFTObjects.end(); i++) {
+      if ((*i) == pFT) {
+        (*i)->sendFileDownloadPortion();
+        return;
+      }
+    }
+  }
+}
index 6014f38940385c23b949ea4b2ac8a92384e5db43..b98de4f01aeb68b17ad32fe44becfdd9ca6c0f93 100644 (file)
@@ -1,48 +1,48 @@
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransferManagerWin32.h\r
-\r
-#ifndef __RFB_WIN32_SFILETRANSFERMANAGERWIN32_H__\r
-#define __RFB_WIN32_SFILETRANSFERMANAGERWIN32_H__\r
-\r
-#include <rfb/SFileTransfer.h>\r
-#include <rfb/SFileTransferManager.h>\r
-#include <rfb_win32/SFileTransferWin32.h>\r
-\r
-namespace rfb {\r
-  namespace win32 {\r
-    class SFileTransferManagerWin32 : public rfb::SFileTransferManager\r
-    {\r
-    public:\r
-      SFileTransferManagerWin32();\r
-      ~SFileTransferManagerWin32();  \r
-      \r
-      void processDownloadMsg(MSG msg);\r
-\r
-      virtual SFileTransfer *createObject(network::Socket *sock);\r
-    };\r
-  };\r
-}\r
-\r
-#endif // __RFB_WIN32_SFILETRANSFERMANAGERWIN32_H__\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransferManagerWin32.h
+
+#ifndef __RFB_WIN32_SFILETRANSFERMANAGERWIN32_H__
+#define __RFB_WIN32_SFILETRANSFERMANAGERWIN32_H__
+
+#include <rfb/SFileTransfer.h>
+#include <rfb/SFileTransferManager.h>
+#include <rfb_win32/SFileTransferWin32.h>
+
+namespace rfb {
+  namespace win32 {
+    class SFileTransferManagerWin32 : public rfb::SFileTransferManager
+    {
+    public:
+      SFileTransferManagerWin32();
+      ~SFileTransferManagerWin32();  
+      
+      void processDownloadMsg(MSG msg);
+
+      virtual SFileTransfer *createObject(network::Socket *sock);
+    };
+  };
+}
+
+#endif // __RFB_WIN32_SFILETRANSFERMANAGERWIN32_H__
index 5a33a43c1913cc7db7be8711f1b6ed9e683fb347..5aea41266b74fda576e282b036dd0deefcb2cac4 100644 (file)
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransferWin32.cxx\r
-\r
-#include <rfb/msgTypes.h>\r
-#include <rfb_win32/FolderManager.h>\r
-#include <rfb_win32/SFileTransferWin32.h>\r
-\r
-using namespace rfb;\r
-using namespace rfb::win32;\r
-\r
-SFileTransferWin32::SFileTransferWin32(network::Socket *sock) : SFileTransfer(sock)\r
-{\r
-}\r
-\r
-SFileTransferWin32::~SFileTransferWin32()\r
-{\r
-}\r
-\r
-bool \r
-SFileTransferWin32::initDownloadCallback()\r
-{\r
-  PostThreadMessage(GetCurrentThreadId(), VNCM_FT_DOWNLOAD, (WPARAM) 0, (LPARAM) this);\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransferWin32::processDownloadCallback()\r
-{\r
-  return sendFileDownloadPortion();\r
-}\r
-\r
-bool \r
-SFileTransferWin32::convertPathFromNet(char *pszPath)\r
-{\r
-  int len = strlen(pszPath);\r
-  if (pszPath[0] == '/') {\r
-    if (len == 1) { \r
-      pszPath[0] = '\0'; \r
-      return true; \r
-    }\r
-  } else {\r
-    return false;\r
-  }\r
-\r
-  for(int i = 0; i < (len - 1); i++) {\r
-    if(pszPath[i+1] == '/') pszPath[i+1] = '\\';\r
-    pszPath[i] = pszPath[i+1];\r
-  }\r
-\r
-  pszPath[len-1] = '\0';\r
-  return true;\r
-}\r
-\r
-bool \r
-SFileTransferWin32::makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly)\r
-{\r
-  FolderManager fm;\r
-  if (fm.getDirInfo(pszPath, pFI, bDirOnly)) \r
-    return true; \r
-  else \r
-    return false;\r
-}\r
-\r
-bool \r
-SFileTransferWin32::deleteIt(char *pszPath)\r
-{\r
-  FolderManager fm;\r
-\r
-  return fm.deleteIt(pszPath);\r
-}\r
-\r
-bool \r
-SFileTransferWin32::renameIt(char *pszOldPath, char *pszNewPath)\r
-{\r
-  FolderManager fm;\r
-\r
-  return fm.renameIt(pszOldPath, pszNewPath);\r
-}\r
-\r
-bool \r
-SFileTransferWin32::createDir(char *pszPath)\r
-{\r
-  FolderManager fm;\r
-\r
-  return fm.createDir(pszPath);\r
-}\r
-\r
-bool \r
-SFileTransferWin32::getDirSize(char *pszName, unsigned short *pHighSize16, \r
-                               unsigned int *pLowSize32)\r
-{\r
-  FolderManager fm;\r
-  DWORD64 dw64DirSize = 0;\r
-\r
-  if (!fm.getDirSize(pszName, &dw64DirSize)) return false;\r
-\r
-  if (dw64DirSize & 0xFFFF000000000000) return false;\r
-\r
-  *pHighSize16 = ((dw64DirSize & 0x0000FFFF00000000) >> 32);\r
-  *pLowSize32 = (dw64DirSize & 0x00000000FFFFFFFF);\r
-\r
-  return true;\r
-}\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransferWin32.cxx
+
+#include <rfb/msgTypes.h>
+#include <rfb_win32/FolderManager.h>
+#include <rfb_win32/SFileTransferWin32.h>
+
+using namespace rfb;
+using namespace rfb::win32;
+
+SFileTransferWin32::SFileTransferWin32(network::Socket *sock) : SFileTransfer(sock)
+{
+}
+
+SFileTransferWin32::~SFileTransferWin32()
+{
+}
+
+bool 
+SFileTransferWin32::initDownloadCallback()
+{
+  PostThreadMessage(GetCurrentThreadId(), VNCM_FT_DOWNLOAD, (WPARAM) 0, (LPARAM) this);
+  return true;
+}
+
+bool 
+SFileTransferWin32::processDownloadCallback()
+{
+  return sendFileDownloadPortion();
+}
+
+bool 
+SFileTransferWin32::convertPathFromNet(char *pszPath)
+{
+  int len = strlen(pszPath);
+  if (pszPath[0] == '/') {
+    if (len == 1) { 
+      pszPath[0] = '\0'; 
+      return true; 
+    }
+  } else {
+    return false;
+  }
+
+  for(int i = 0; i < (len - 1); i++) {
+    if(pszPath[i+1] == '/') pszPath[i+1] = '\\';
+    pszPath[i] = pszPath[i+1];
+  }
+
+  pszPath[len-1] = '\0';
+  return true;
+}
+
+bool 
+SFileTransferWin32::makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly)
+{
+  FolderManager fm;
+  if (fm.getDirInfo(pszPath, pFI, bDirOnly)) 
+    return true; 
+  else 
+    return false;
+}
+
+bool 
+SFileTransferWin32::deleteIt(char *pszPath)
+{
+  FolderManager fm;
+
+  return fm.deleteIt(pszPath);
+}
+
+bool 
+SFileTransferWin32::renameIt(char *pszOldPath, char *pszNewPath)
+{
+  FolderManager fm;
+
+  return fm.renameIt(pszOldPath, pszNewPath);
+}
+
+bool 
+SFileTransferWin32::createDir(char *pszPath)
+{
+  FolderManager fm;
+
+  return fm.createDir(pszPath);
+}
+
+bool 
+SFileTransferWin32::getDirSize(char *pszName, unsigned short *pHighSize16, 
+                               unsigned int *pLowSize32)
+{
+  FolderManager fm;
+  DWORD64 dw64DirSize = 0;
+
+  if (!fm.getDirSize(pszName, &dw64DirSize)) return false;
+
+  if (dw64DirSize & 0xFFFF000000000000) return false;
+
+  *pHighSize16 = ((dw64DirSize & 0x0000FFFF00000000) >> 32);
+  *pLowSize32 = (dw64DirSize & 0x00000000FFFFFFFF);
+
+  return true;
+}
index b2a5c5793d069a7e1ea987ceff45d5cf44ee0c2c..f4c87ea8958f921254cf757c0460280414e15f5a 100644 (file)
@@ -1,59 +1,59 @@
-/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.\r
- *\r
- * Developed by Dennis Syrovatsky.\r
- *    \r
- * This is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- * \r
- * This software is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License\r
- * along with this software; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,\r
- * USA.\r
- *\r
- * TightVNC distribution homepage on the Web: http://www.tightvnc.com/\r
- *\r
- */\r
-\r
-// -=- SFileTransferWin32.h\r
-\r
-#ifndef __RFB_SFILETRANSFERWIN32_H__\r
-#define __RFB_SFILETRANSFERWIN32_H__\r
-\r
-#include <windows.h>\r
-\r
-#include <rfb/SFileTransfer.h>\r
-\r
-const UINT VNCM_FT_DOWNLOAD = WM_USER + 2;\r
-\r
-namespace rfb {\r
-  namespace win32 {\r
-    class SFileTransferWin32 : public rfb::SFileTransfer\r
-    {\r
-    public:\r
-      SFileTransferWin32(network::Socket *sock);\r
-      ~SFileTransferWin32();\r
-\r
-      bool processDownloadCallback();\r
-      virtual bool initDownloadCallback();\r
-\r
-      virtual bool convertPathFromNet(char *pszPath);\r
-      virtual bool makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly);\r
-  \r
-      virtual bool deleteIt(char *pszPath);\r
-      virtual bool renameIt(char *pszOldPath, char *pszNewPath);\r
-      virtual bool createDir(char *pszPath);\r
-\r
-      virtual bool getDirSize(char *pszName, unsigned short *pHighSize16, unsigned int *pLowSize32);\r
-\r
-    };\r
-  };\r
-}\r
-\r
-#endif // __RFB_SFILETRANSFERWIN32_H__\r
+/* Copyright (C) 2006 TightVNC Team.  All Rights Reserved.
+ *
+ * Developed by Dennis Syrovatsky.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ *
+ * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
+ *
+ */
+
+// -=- SFileTransferWin32.h
+
+#ifndef __RFB_SFILETRANSFERWIN32_H__
+#define __RFB_SFILETRANSFERWIN32_H__
+
+#include <windows.h>
+
+#include <rfb/SFileTransfer.h>
+
+const UINT VNCM_FT_DOWNLOAD = WM_USER + 2;
+
+namespace rfb {
+  namespace win32 {
+    class SFileTransferWin32 : public rfb::SFileTransfer
+    {
+    public:
+      SFileTransferWin32(network::Socket *sock);
+      ~SFileTransferWin32();
+
+      bool processDownloadCallback();
+      virtual bool initDownloadCallback();
+
+      virtual bool convertPathFromNet(char *pszPath);
+      virtual bool makeFileList(char *pszPath, FileInfo *pFI, bool bDirOnly);
+  
+      virtual bool deleteIt(char *pszPath);
+      virtual bool renameIt(char *pszOldPath, char *pszNewPath);
+      virtual bool createDir(char *pszPath);
+
+      virtual bool getDirSize(char *pszName, unsigned short *pHighSize16, unsigned int *pLowSize32);
+
+    };
+  };
+}
+
+#endif // __RFB_SFILETRANSFERWIN32_H__