diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-13 16:32:47 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-13 16:32:47 +0000 |
| commit | 495f02ebbceaf72c125d809f6ce38004b6dd580a (patch) | |
| tree | eb0fb6ddc1121aded8c92a49359c7f231ca0b90e /src/FtpConnection.h | |
| parent | 281319e8cd3ca184dc3868c3d4740c24ab2607a4 (diff) | |
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use non-blocking socket for TCP communication to avoid possible
blocking due to buffer full.
* src/AbstractProxyRequestCommand.cc
* src/FtpConnection.cc
* src/FtpConnection.h
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/HttpConnection.cc
* src/HttpConnection.h
* src/HttpRequestCommand.cc
* src/InitiatorMSEHandshakeCommand.cc
* src/InitiatorMSEHandshakeCommand.h
* src/MSEHandshake.cc
* src/MSEHandshake.h
* src/Makefile.am
* src/PeerConnection.cc
* src/PeerConnection.h
* src/PeerInteractionCommand.cc
* src/PeerListenCommand.cc
* src/ReceiverMSEHandshakeCommand.cc
* src/ReceiverMSEHandshakeCommand.h
* src/SocketBuffer.cc
* src/SocketBuffer.h
* src/SocketCore.cc
* src/SocketCore.h
Diffstat (limited to 'src/FtpConnection.h')
| -rw-r--r-- | src/FtpConnection.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/FtpConnection.h b/src/FtpConnection.h index 299489a7..78a586d1 100644 --- a/src/FtpConnection.h +++ b/src/FtpConnection.h @@ -38,6 +38,7 @@ #include "common.h" #include "SharedHandle.h" #include "TimeA2.h" +#include "SocketBuffer.h" #include <utility> #include <string> @@ -59,6 +60,8 @@ private: std::string strbuf; + SocketBuffer _socketBuffer; + unsigned int getStatus(const std::string& response) const; std::string::size_type findEndOfResponse(unsigned int status, const std::string& buf) const; @@ -72,16 +75,17 @@ public: FtpConnection(int32_t cuid, const SharedHandle<SocketCore>& socket, const SharedHandle<Request>& req, const Option* op); ~FtpConnection(); - void sendUser() const; - void sendPass() const; - void sendType() const; - void sendCwd() const; - void sendMdtm() const; - void sendSize() const; - void sendPasv() const; - SharedHandle<SocketCore> sendPort() const; - void sendRest(const SharedHandle<Segment>& segment) const; - void sendRetr() const; + bool sendUser(); + bool sendPass(); + bool sendType(); + bool sendCwd(); + bool sendMdtm(); + bool sendSize(); + bool sendPasv(); + SharedHandle<SocketCore> createServerSocket(); + bool sendPort(const SharedHandle<SocketCore>& serverSocket); + bool sendRest(const SharedHandle<Segment>& segment); + bool sendRetr(); unsigned int receiveResponse(); unsigned int receiveSizeResponse(uint64_t& size); |
