diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-08-30 15:05:30 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-08-30 15:05:30 +0000 |
| commit | ce25b54cfe3ba23408da19fcd87539bec879b943 (patch) | |
| tree | b60b7edf6f808aee791b72ecdc64131d3d36665d /src/Request.h | |
| parent | 19ae8f9d07ba6a8f1d3b6f501a01f9285b6875e9 (diff) | |
2009-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added support for IPv6 literal address in URI. Now aria2 can
handle URI such as http://[::1]/
* src/HttpRequest.cc
* src/HttpRequest.h
* src/Request.cc
* src/Request.h
* test/HttpRequestTest.cc
* test/OptionHandlerTest.cc
* test/RequestTest.cc
Diffstat (limited to 'src/Request.h')
| -rw-r--r-- | src/Request.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Request.h b/src/Request.h index cab16999..5c88cf62 100644 --- a/src/Request.h +++ b/src/Request.h @@ -41,6 +41,7 @@ #include "SharedHandle.h" #include "PeerStat.h" +#include "a2functional.h" namespace aria2 { @@ -82,6 +83,8 @@ private: std::string _password; + bool _ipv6LiteralAddress; + SharedHandle<PeerStat> _peerStat; bool parseUrl(const std::string& url); @@ -116,10 +119,21 @@ public: void setReferer(const std::string& url); const std::string& getProtocol() const { return protocol; } const std::string& getHost() const { return host; } + // Same as getHost(), but for IPv6 literal addresses, enclose them + // with square brackets and return. + std::string getURIHost() const + { + if(isIPv6LiteralAddress()) { + return strconcat("[", getHost(), "]"); + } else { + return getHost(); + } + } uint16_t getPort() const { return port; } const std::string& getDir() const { return dir; } const std::string& getFile() const { return file;} const std::string& getQuery() const { return _query; } + bool isIPv6LiteralAddress() const { return _ipv6LiteralAddress; } void supportsPersistentConnection(bool f) { |
