Fixing 69836. Increasing data buffer sizes which improves perf on Mac. r=sfraser, sr=mscott

This commit is contained in:
dougt%netscape.com 2001-02-28 23:37:03 +00:00
Родитель f288dee6ae
Коммит 0ff09eae40
3 изменённых файлов: 25 добавлений и 9 удалений

Просмотреть файл

@ -45,6 +45,9 @@
#define FTP_COMMAND_CHANNEL_SEG_SIZE 64
#define FTP_COMMAND_CHANNEL_MAX_SIZE 512
#define FTP_DATA_CHANNEL_SEG_SIZE (32*1024)
#define FTP_DATA_CHANNEL_MAX_SIZE (256*1024)
#define NS_FTP_BUFFER_READ_SIZE (8*1024)
#define NS_FTP_BUFFER_WRITE_SIZE (8*1024)

Просмотреть файл

@ -353,7 +353,11 @@ nsFtpState::EstablishControlConnection()
nsCOMPtr<nsITransport> transport;
// build our own
rv = CreateTransport(host, mPort, getter_AddRefs(transport)); // the command transport
rv = CreateTransport(host,
mPort,
FTP_COMMAND_CHANNEL_SEG_SIZE,
FTP_COMMAND_CHANNEL_MAX_SIZE,
getter_AddRefs(transport)); // the command transport
if (NS_FAILED(rv)) return rv;
mState = FTP_READ_BUF;
@ -1543,7 +1547,11 @@ nsFtpState::R_pasv() {
const char* hostStr = mIPv6ServerAddress ? mIPv6ServerAddress : host.GetBuffer();
// now we know where to connect our data channel
rv = CreateTransport(hostStr, port, getter_AddRefs(mDPipe)); // the data channel
rv = CreateTransport(hostStr,
port,
FTP_DATA_CHANNEL_SEG_SIZE,
FTP_DATA_CHANNEL_MAX_SIZE,
getter_AddRefs(mDPipe)); // the data channel
if (NS_FAILED(rv)) return FTP_ERROR;
PR_LOG(gFTPLog, PR_LOG_DEBUG, ("(%x) Created Data Transport (%s:%d)\n", this, hostStr, port));
@ -1993,7 +2001,7 @@ nsFtpState::SetDirMIMEType(nsString& aString) {
}
nsresult
nsFtpState::CreateTransport(const char * host, PRInt32 port, nsITransport** o_pTrans)
nsFtpState::CreateTransport(const char * host, PRInt32 port, PRUint32 bufferSegmentSize, PRUint32 bufferMaxSize, nsITransport** o_pTrans)
{
nsresult rv;
@ -2025,21 +2033,24 @@ nsFtpState::CreateTransport(const char * host, PRInt32 port, nsITransport** o_pT
if (NS_SUCCEEDED(rv) && nsCRT::strcasecmp(proxyType, "socks") == 0) {
return sts->CreateTransportOfType("socks", host, port, proxyHost, proxyPort,
FTP_COMMAND_CHANNEL_SEG_SIZE,
FTP_COMMAND_CHANNEL_MAX_SIZE, o_pTrans);
bufferSegmentSize,
bufferMaxSize,
o_pTrans);
}
return sts->CreateTransport(host, port, proxyHost, proxyPort,
FTP_COMMAND_CHANNEL_SEG_SIZE,
FTP_COMMAND_CHANNEL_MAX_SIZE, o_pTrans);
bufferSegmentSize,
bufferMaxSize,
o_pTrans);
}
}
return sts->CreateTransport(host, port, nsnull, -1,
FTP_COMMAND_CHANNEL_SEG_SIZE,
FTP_COMMAND_CHANNEL_MAX_SIZE, o_pTrans);
bufferSegmentSize,
bufferMaxSize,
o_pTrans);
}
nsresult

Просмотреть файл

@ -140,7 +140,9 @@ private:
void SetDirMIMEType(nsString& aString);
nsresult Process();
virtual nsresult CreateTransport(const char * host, PRInt32 port,
PRUint32 bufferSegmentSize, PRUint32 bufferMaxSize,
nsITransport** o_pTrans);
void KillControlConnnection();