}
}
-int
-FTMsgReader::readFileUploadCancel(void *pReason)
+char *
+FTMsgReader::readFileUploadCancel(unsigned int *pReasonSize)
{
m_pInStream->skip(1);
- return readReasonMsg(pReason);
+ return readReasonMsg(pReasonSize);
}
-int
-FTMsgReader::readFileDownloadFailed(void *pReason)
+char *
+FTMsgReader::readFileDownloadFailed(unsigned int *pReasonSize)
{
m_pInStream->skip(1);
- return readReasonMsg(pReason);
+ return readReasonMsg(pReasonSize);
}
int
return 1;
}
-int
-FTMsgReader::readFileLastRqstFailed(int *pTypeOfRequest, void *pReason)
+char *
+FTMsgReader::readFileLastRqstFailed(int *pTypeOfRequest, unsigned int *pReasonSize)
{
*pTypeOfRequest = m_pInStream->readU8();
- return readReasonMsg(pReason);
+ return readReasonMsg(pReasonSize);
}
bool
return true;
}
-int
-FTMsgReader::readReasonMsg(void *pReason)
+char *
+FTMsgReader::readReasonMsg(unsigned int *pReasonSize)
{
int reasonLen = m_pInStream->readU16();
int _reasonLen = reasonLen + 1;
+ char *pReason;
if (reasonLen == 0) {
- return 0;
+ *pReasonSize = 0;
+ return NULL;
} else {
- pReason = malloc(_reasonLen);
+ pReason = new char [_reasonLen];
if (pReason == NULL) {
m_pInStream->skip(reasonLen);
- return -1;
+ *pReasonSize = 0;
+ return NULL;
}
m_pInStream->readBytes(pReason, reasonLen);
memset(((char *)pReason+reasonLen), '\0', 1);
- return _reasonLen;
+ return pReason;
}
}
+
~FTMsgReader();
int readFileListData(FileInfo *pFileInfo);
- int readFileUploadCancel(void *pReason);
- int readFileDownloadFailed(void *pReason);
int readFileDirSizeData(DWORD64 *pdw64DirSize);
- int readFileLastRqstFailed(int *pTypeOfRequest, void *pReason);
+
+ 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:
bool createFileInfo(unsigned int numFiles, FileInfo *fi,
SIZEDATAINFO *pSDInfo, char *pFilenames);
- int readReasonMsg(void *pReason);
+ char *readReasonMsg(unsigned int *pReasonSize);
};
}
}
if ((!m_fileWriter.isCreated()) || (!isTransferEnable())) {
m_bTransferSuccess = false;
- if (pFile != NULL) delete pFile;
+ if (pFile != NULL) delete [] pFile;
return false;
}
if (bufSize > 0) {
unsigned int bytesWritten = 0;
m_fileWriter.write(pFile, bufSize, &bytesWritten);
- delete pFile;
+ delete [] pFile;
if (bytesWritten != bufSize) {
m_bTransferSuccess = false;
char reason[] = "Error File Writting to File";
bool
FileTransfer::procFileUploadCancelMsg()
{
- return false;
+ unsigned int reasonSize = 0;
+ char *pReason = m_pReader->readFileUploadCancel(&reasonSize);
+
+ if (m_bFTDlgShown) {
+ m_pFTDialog->setStatusText("Upload Canceled by Remote Computer : %s", pReason);
+ }
+ endUndoneOperation();
+ m_pFTDialog->postCheckTransferQueueMsg();
+
+ delete [] pReason;
+ return true;
}
bool
FileTransfer::procFileDownloadFailedMsg()
{
- return false;
+ unsigned int reasonSize = 0;
+ char *pReason = m_pReader->readFileDownloadFailed(&reasonSize);
+
+ if (m_bFTDlgShown) {
+ m_pFTDialog->setStatusText("Download Failed by Remote Computer : %s", pReason);
+ }
+ endUndoneOperation();
+ m_pFTDialog->postCheckTransferQueueMsg();
+
+ delete [] pReason;
+ return true;
}
bool
bool
FileTransfer::procFileLastRqstFailedMsg()
{
- return false;
+ unsigned int reasonSize = 0;
+ int requestType;
+ char *pReason = m_pReader->readFileLastRqstFailed(&requestType, &reasonSize);
+ delete [] pReason;
+ return true;
}
bool
if (m_bFTDlgShown) m_pFTDialog->processDlgMsgs();
if (m_bCancel) {
endUndoneOperation();
- m_bTransferSuccess = false;
if (m_bFTDlgShown) {
m_pFTDialog->setStatusText("All Operations Canceled");
}
FileTransfer::endUndoneOperation()
{
m_bCancel = false;
+ m_bTransferSuccess = false;
m_fileReader.close();
m_fileWriter.close();
freeQueues();