/* */ #include "RequestFactory.h" #include "prefs.h" #include "AbstractAuthResolver.h" #include "NetrcAuthResolver.h" #include "DefaultAuthResolver.h" RequestHandle RequestFactory::createRequest() { RequestHandle request = new Request(); request->setMethod(_method); request->setReferer(_referer); request->setHttpAuthResolver(createHttpAuthResolver()); request->setHttpProxyAuthResolver(createHttpProxyAuthResolver()); request->setFtpAuthResolver(createFtpAuthResolver()); return request; } AuthConfigHandle RequestFactory::createAuthConfig(const string& user, const string& password) const { if(user.length() > 0) { return new AuthConfig(user, password); } else { return 0; } } AuthResolverHandle RequestFactory::createHttpAuthResolver() { AbstractAuthResolverHandle resolver = 0; if(true || _option->getAsBool(PREF_NO_NETRC)) { resolver = new DefaultAuthResolver(); } else { NetrcAuthResolverHandle authResolver = new NetrcAuthResolver(); authResolver->setNetrc(_netrc); resolver = authResolver; } resolver->setUserDefinedAuthConfig(createAuthConfig(_option->get(PREF_HTTP_USER), _option->get(PREF_HTTP_PASSWD))); return resolver; } AuthResolverHandle RequestFactory::createFtpAuthResolver() { AbstractAuthResolverHandle resolver = 0; if(_option->getAsBool(PREF_NO_NETRC)) { resolver = new DefaultAuthResolver(); } else { NetrcAuthResolverHandle authResolver = new NetrcAuthResolver(); authResolver->setNetrc(_netrc); resolver = authResolver; } resolver->setUserDefinedAuthConfig(createAuthConfig(_option->get(PREF_FTP_USER), _option->get(PREF_FTP_PASSWD))); resolver->setDefaultAuthConfig(new AuthConfig("anonymous", "ARIA2USER@")); return resolver; } AuthResolverHandle RequestFactory::createHttpProxyAuthResolver() { AbstractAuthResolverHandle resolver = 0; if(true || _option->getAsBool(PREF_NO_NETRC)) { resolver = new DefaultAuthResolver(); } else { NetrcAuthResolverHandle authResolver = new NetrcAuthResolver(); authResolver->setNetrc(_netrc); resolver = authResolver; } resolver->setUserDefinedAuthConfig(createAuthConfig(_option->get(PREF_HTTP_PROXY_USER), _option->get(PREF_HTTP_PROXY_PASSWD))); return resolver; }