summaryrefslogtreecommitdiffstats
path: root/netwerk/protocol/ftp/nsFtpConnectionThread.h
diff options
context:
space:
mode:
authorathenian200 <athenian200@outlook.com>2020-01-26 01:40:55 -0600
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-01-27 11:02:21 +0100
commit77f2d7f720dfbd4d58b0a48d1d33a74cb3d6f287 (patch)
treeab18f730fea9e817264f8d87b98a4854444dd373 /netwerk/protocol/ftp/nsFtpConnectionThread.h
parent5002c657a20d4e9a9a14b6ec088e9447fbb722d9 (diff)
downloadUXP-77f2d7f720dfbd4d58b0a48d1d33a74cb3d6f287.tar
UXP-77f2d7f720dfbd4d58b0a48d1d33a74cb3d6f287.tar.gz
UXP-77f2d7f720dfbd4d58b0a48d1d33a74cb3d6f287.tar.lz
UXP-77f2d7f720dfbd4d58b0a48d1d33a74cb3d6f287.tar.xz
UXP-77f2d7f720dfbd4d58b0a48d1d33a74cb3d6f287.zip
Issue #1349 - Stop 2xx FTP responses from causing browser to hang.
LIST and RETR still appear to work as intended on ftp:// URLs after my changes. I wasn't able to test STOR because the browser doesn't appear to support FTP uploads at this time (although our FTP implementation appears perfectly capable of doing an FTP upload.) If I understood the issue correctly, though, what we're doing is ensuring that we receive a preliminary 100 response from the FTP server for a given action before jumping to the 200 code describing what we do if the action was completed. Even though it makes no logical sense for a server to say an action was completed before it was initiated, someone could write a really annoying FTP server that takes advantage of this fact to crash the browser if they wanted.
Diffstat (limited to 'netwerk/protocol/ftp/nsFtpConnectionThread.h')
-rw-r--r--netwerk/protocol/ftp/nsFtpConnectionThread.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/netwerk/protocol/ftp/nsFtpConnectionThread.h b/netwerk/protocol/ftp/nsFtpConnectionThread.h
index b4e71bd10..cc8f0df95 100644
--- a/netwerk/protocol/ftp/nsFtpConnectionThread.h
+++ b/netwerk/protocol/ftp/nsFtpConnectionThread.h
@@ -180,6 +180,12 @@ private:
bool mRetryPass; // retrying the password
bool mStorReplyReceived; // FALSE if waiting for STOR
// completion status from server
+ bool mRlist1xxReceived; // TRUE if the server has sent a
+ // LIST 1xx response.
+ bool mRstor1xxReceived; // TRUE if the server has sent a
+ // STOR 1xx response.
+ bool mRretr1xxReceived; // TRUE if the server has sent a
+ // RETR 1xx response.
nsresult mInternalError; // represents internal state errors
bool mReconnectAndLoginAgain;
bool mCacheConnection;