diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-06-26 21:45:29 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-06-26 21:45:29 +0900 |
| commit | d485c8e76758c68ce55e9554d339eaf715ae7bca (patch) | |
| tree | 51ecc085110b4598159f980105f51eb87eaeceb0 /src/NetrcAuthResolver.cc | |
| parent | a4cf50914dc5c5ca1a363b9f63a34eeb3c17cee4 (diff) | |
Rewrite AuthConfig objects using std::unique_ptr
Diffstat (limited to 'src/NetrcAuthResolver.cc')
| -rw-r--r-- | src/NetrcAuthResolver.cc | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/NetrcAuthResolver.cc b/src/NetrcAuthResolver.cc index 04fcc9c1..593fd81e 100644 --- a/src/NetrcAuthResolver.cc +++ b/src/NetrcAuthResolver.cc @@ -35,42 +35,44 @@ #include "NetrcAuthResolver.h" #include "AuthConfig.h" #include "Netrc.h" +#include "a2functional.h" namespace aria2 { -NetrcAuthResolver::NetrcAuthResolver():ignoreDefault_(false) {} +NetrcAuthResolver::NetrcAuthResolver() + : netrc_(nullptr), ignoreDefault_(false) {} -std::shared_ptr<AuthConfig> +std::unique_ptr<AuthConfig> NetrcAuthResolver::resolveAuthConfig(const std::string& hostname) { - if(!getUserDefinedAuthConfig()) { - return findNetrcAuthenticator(hostname); + auto authConfig = getUserDefinedAuthConfig(); + if(authConfig) { + return authConfig; } else { - return getUserDefinedAuthConfig(); + return findNetrcAuthenticator(hostname); } } -std::shared_ptr<AuthConfig> +std::unique_ptr<AuthConfig> NetrcAuthResolver::findNetrcAuthenticator(const std::string& hostname) const { if(!netrc_) { return getDefaultAuthConfig(); } else { - std::shared_ptr<Authenticator> auth = netrc_->findAuthenticator(hostname); + auto auth = netrc_->findAuthenticator(hostname); if(!auth) { return getDefaultAuthConfig(); } else { if(ignoreDefault_ && auth->getMachine().empty()) { return getDefaultAuthConfig(); } else { - return std::shared_ptr<AuthConfig> - (new AuthConfig(auth->getLogin(), auth->getPassword())); + return make_unique<AuthConfig>(auth->getLogin(), auth->getPassword()); } } } } -void NetrcAuthResolver::setNetrc(const std::shared_ptr<Netrc>& netrc) +void NetrcAuthResolver::setNetrc(Netrc* netrc) { netrc_ = netrc; } |
