summaryrefslogtreecommitdiff
path: root/src/NetrcAuthResolver.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-25 14:37:28 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-25 14:37:28 +0000
commit92d702fa5349c722c6b59256bafe552c8b5cd8a1 (patch)
tree43dd76d729ceaf937351f15a428680f3a290f5a5 /src/NetrcAuthResolver.cc
parent6bc233f414b74bf3acf4abf5d5655c236e78ae41 (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.cc19
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