diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-04-22 08:52:47 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-04-22 08:52:47 +0000 |
| commit | 5f55bc197ff9aa8b8bbcd030f2c32995661aac07 (patch) | |
| tree | 5cf208048aa83658798fd7658ac67c1ec7551d60 /src/DownloadEngine.h | |
| parent | 1c7c6f989800b10d3820614123dcfc7d90677c85 (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.h | 10 |
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; |
