diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-25 14:37:28 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-25 14:37:28 +0000 |
| commit | 92d702fa5349c722c6b59256bafe552c8b5cd8a1 (patch) | |
| tree | 43dd76d729ceaf937351f15a428680f3a290f5a5 /src/NetrcAuthResolver.cc | |
| parent | 6bc233f414b74bf3acf4abf5d5655c236e78ae41 (diff) | |
2008-09-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use netrc for HTTP.
Now FTP user/password is sent in Authorization header when
--ftp-via-http-proxy=get is given.
* src/AuthConfigFactory.cc
* src/HttpRequest.cc
* src/HttpRequest.h
* src/NetrcAuthResolver.cc
* src/NetrcAuthResolver.h
* src/OptionHandlerFactory.cc
* src/option_processing.cc
* src/prefs.cc
* src/prefs.h
* test/AuthConfigFactoryTest.cc
* test/HttpRequestTest.cc
* test/NetrcAuthResolverTest.cc
Diffstat (limited to 'src/NetrcAuthResolver.cc')
| -rw-r--r-- | src/NetrcAuthResolver.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/NetrcAuthResolver.cc b/src/NetrcAuthResolver.cc index 647af81a..6a77d16d 100644 --- a/src/NetrcAuthResolver.cc +++ b/src/NetrcAuthResolver.cc @@ -38,6 +38,8 @@ namespace aria2 { +NetrcAuthResolver::NetrcAuthResolver():_ignoreDefault(false) {} + AuthConfigHandle NetrcAuthResolver::resolveAuthConfig(const std::string& hostname) { if(_userDefinedAuthConfig.isNull()) { @@ -56,7 +58,12 @@ AuthConfigHandle NetrcAuthResolver::findNetrcAuthenticator(const std::string& ho if(auth.isNull()) { return _defaultAuthConfig; } else { - return SharedHandle<AuthConfig>(new AuthConfig(auth->getLogin(), auth->getPassword())); + if(_ignoreDefault && auth->getMachine() == "") { + return _defaultAuthConfig; + } else { + return SharedHandle<AuthConfig> + (new AuthConfig(auth->getLogin(), auth->getPassword())); + } } } } @@ -71,4 +78,14 @@ NetrcHandle NetrcAuthResolver::getNetrc() const return _netrc; } +void NetrcAuthResolver::ignoreDefault() +{ + _ignoreDefault = true; +} + +void NetrcAuthResolver::useDefault() +{ + _ignoreDefault = false; +} + } // namespace aria2 |
