Migrating to new directory structure adopted from the RealVNC's source tree. More changes will follow.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@591 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/win/rfb_win32/SFileTransferWin32.cxx b/win/rfb_win32/SFileTransferWin32.cxx
new file mode 100644
index 0000000..5aea412
--- /dev/null
+++ b/win/rfb_win32/SFileTransferWin32.cxx
@@ -0,0 +1,125 @@
+/* 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;
+}