summaryrefslogtreecommitdiff
path: root/src/DownloadEngine.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-22 08:52:47 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-22 08:52:47 +0000
commit5f55bc197ff9aa8b8bbcd030f2c32995661aac07 (patch)
tree5cf208048aa83658798fd7658ac67c1ec7551d60 /src/DownloadEngine.h
parent1c7c6f989800b10d3820614123dcfc7d90677c85 (diff)
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reuse socket if the origin server supports HTTP keep-alive and --enable-http-keep-alive or --enable-http-pipelining is given. The current implementation doesn't reuse the connections established against proxy server. * src/AbstractCommand.cc * src/DownloadEngine.cc * src/DownloadEngine.h * src/HttpDownloadCommand.cc * src/HttpInitiateConnectionCommand.cc * src/HttpResponseCommand.cc
Diffstat (limited to 'src/DownloadEngine.h')
-rw-r--r--src/DownloadEngine.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/DownloadEngine.h b/src/DownloadEngine.h
index f134299a..039a1246 100644
--- a/src/DownloadEngine.h
+++ b/src/DownloadEngine.h
@@ -39,6 +39,7 @@
#include "SharedHandle.h"
#include "Command.h"
#include <deque>
+#include <map>
#include "a2netcompat.h"
namespace aria2 {
@@ -104,6 +105,9 @@ private:
bool _haltRequested;
+ // key = IP address:port, value = Socket
+ std::multimap<std::string, SharedHandle<SocketCore> > _socketPool;
+
void shortSleep() const;
bool addSocket(const SocketEntry& socketEntry);
bool deleteSocket(const SocketEntry& socketEntry);
@@ -170,6 +174,12 @@ public:
void setNoWait(bool b);
void addRoutineCommand(Command* command);
+
+ void poolSocket(const std::string& ipaddr, uint16_t port,
+ const SharedHandle<SocketCore>& sock);
+
+ SharedHandle<SocketCore> popPooledSocket(const std::string& ipaddr,
+ uint16_t port);
};
typedef SharedHandle<DownloadEngine> DownloadEngineHandle;