S32 LLXfer_VFile::startSend (U64 xfer_id, const LLHost &remote_host) { S32 retval = LL_ERR_NOERR; // presume success mRemoteHost = remote_host; mID = xfer_id; mPacketNum = -1; // cout << "Sending file: " << mLocalFilename << endl; delete [] mBuffer; mBuffer = new char[LL_MAX_XFER_FILE_BUFFER]; mBufferLength = 0; mBufferStartOffset = 0; delete mVFile; mVFile = NULL; if(mVFS->getExists(mLocalID, mType)) { mVFile = new LLVFile(mVFS, mLocalID, mType, LLVFile::READ); if (mVFile->getSize() <= 0) { delete mVFile; mVFile = NULL; return LL_ERR_FILE_EMPTY; } } if(mVFile) { setXferSize(mVFile->getSize()); mStatus = e_LL_XFER_PENDING; } else { retval = LL_ERR_FILE_NOT_FOUND; } return (retval); }
U64 LLXfer_Mem::registerXfer(U64 xfer_id, const void *datap, const S32 length) { mID = xfer_id; if (datap) { setXferSize(length); if (mBuffer) { memcpy(mBuffer,datap,length); /* Flawfinder : ignore */ mBufferLength = length; } else { xfer_id = 0; } } mStatus = e_LL_XFER_REGISTERED; return (xfer_id); }
S32 LLXfer_File::startSend (U64 xfer_id, const LLHost &remote_host) { S32 retval = LL_ERR_NOERR; // presume success mRemoteHost = remote_host; mID = xfer_id; mPacketNum = -1; // cout << "Sending file: " << mLocalFilename << endl; delete [] mBuffer; mBuffer = new char[LL_MAX_XFER_FILE_BUFFER]; mBufferLength = 0; mBufferStartOffset = 0; mFp = LLFile::fopen(mLocalFilename,"rb"); /* Flawfinder : ignore */ if (mFp) { fseek(mFp,0,SEEK_END); S32 file_size = ftell(mFp); if (file_size <= 0) { return LL_ERR_FILE_EMPTY; } setXferSize(file_size); fseek(mFp,0,SEEK_SET); } else { LL_INFOS() << "Warning: " << mLocalFilename << " not found." << LL_ENDL; return (LL_ERR_FILE_NOT_FOUND); } mStatus = e_LL_XFER_PENDING; return (retval); }