summaryrefslogtreecommitdiff
path: root/src/FtpConnection.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-13 16:32:47 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-13 16:32:47 +0000
commit495f02ebbceaf72c125d809f6ce38004b6dd580a (patch)
treeeb0fb6ddc1121aded8c92a49359c7f231ca0b90e /src/FtpConnection.h
parent281319e8cd3ca184dc3868c3d4740c24ab2607a4 (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.h24
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);