Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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);
}