diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-03-18 15:42:34 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-03-18 15:42:34 +0000 |
| commit | 7ff627079f6ed776dea1ce6fede1c1a07ef7f288 (patch) | |
| tree | 8f7b7e5b763dc3841df03928fe2aa50abd35a810 /src/AuthConfig.h | |
| parent | 58d4dde223e815b75a3bf6bfbd4169818faca3bd (diff) | |
2007-03-19 Tatsuhiro Tsujikawa <tujikawa at valkyrie dot rednoah com>
To integrate Netrc into exsiting classes:
* src/Request.h
(_userDefinedAuthConfig): New variable.
(findNetrcAuthenticator): New function.
(segment): Removed.
(setUserDefinedAuthConfig): New function.
(resolveHttpAuthConfigItem): New function.
(resolveFtpAuthConfigItem): New function.
(resolveHttpProxyAuthConfigItem): New function.
* src/HttpRequest.h
(authConfig): Removed.
(proxyAuthConfig): Removed.
(setAuthConfig): Removed.
(setProxyAuthConfig): Removed.
* src/UrlRequest.h
(getHeadResult): Added a parameter: authConfigHandle
* src/common.h
(SingletonHolder.h): New include.
* src/main.cc
(Netrc.h): New include.
(main): Removed initial values of PREF_FTP_USER,
PREF_FTP_PASSWD.
Added initial value of PREF_NETRC_PATH.
Added the initialization of netrc.
* src/AuthConfig.h: New class.
* src/prefs.h
(PREF_NETRC_PATH): New definition.
* src/HttpAuthConfig.h: Removed.
* src/Netrc.cc
(getRequiredNextToken): New function.
(skipMacdef): New function.
(parse): Rewritten.
* src/Netrc.h
(getRequiredNextToken): New function.
(skipMacdef): New function.
* src/Util.h, src/Util.cc
(getHomeDir): New function.
* src/TrackerWatcherComand.cc
(createRequestCommand): Use AuthConfig.
* src/FtpConnection.cc
(sendUser): Use Request::resolveFtpAuthConfigItem().
(sendPass): Use Request::resolveFtpAuthConfigItem().
* src/Request.cc
(findNetrcAuthenticator): New function.
(resolveHttpAuthConfigItem): New function.
(resolveFtpAuthConfigItem): New function.
(resolveHttpProxyAuthConfigItem): New function.
* src/UrlRequestInfo.cc: Use AuthConfig.
* src/HttpRequest.cc
(createRequest): Use authConfig.
(getProxyAuthString): Use authConfig.
(configure): Removed PREF_HTTP_USER, PREF_HTTP_PASSWD,
PREF_HTTP_PROXY_USER, PREF_HTTP_PROXY_PASSWD.
Diffstat (limited to 'src/AuthConfig.h')
| -rw-r--r-- | src/AuthConfig.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/AuthConfig.h b/src/AuthConfig.h new file mode 100644 index 00000000..580c4853 --- /dev/null +++ b/src/AuthConfig.h @@ -0,0 +1,106 @@ +/* <!-- copyright */ +/* + * aria2 - The high speed download utility + * + * Copyright (C) 2006 Tatsuhiro Tsujikawa + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * In addition, as a special exception, the copyright holders give + * permission to link the code of portions of this program with the + * OpenSSL library under certain conditions as described in each + * individual source file, and distribute linked combinations + * including the two. + * You must obey the GNU General Public License in all respects + * for all of the code used other than OpenSSL. If you modify + * file(s) with this exception, you may extend this exception to your + * version of the file(s), but you are not obligated to do so. If you + * do not wish to do so, delete this exception statement from your + * version. If you delete this exception statement from all source + * files in the program, then also delete it here. + */ +/* copyright --> */ +#ifndef _D_AUTH_CONFIG_H_ +#define _D_AUTH_CONFIG_H_ + +#include "common.h" +#include "AuthConfigItem.h" +#include "prefs.h" +#include "Option.h" + +class AuthConfig { +private: + AuthConfigItemHandle httpAuthConfigItem; + AuthConfigItemHandle ftpAuthConfigItem; + AuthConfigItemHandle httpProxyAuthConfigItem; + + AuthConfigItemHandle createAuthConfigItem(const string& user, const string& password) + { + if(user.length() > 0) { + return new AuthConfigItem(user, password); + } else { + return 0; + } + } +public: + + AuthConfig():httpAuthConfigItem(0), + ftpAuthConfigItem(0), + httpProxyAuthConfigItem(0) {} + + AuthConfigItemHandle getHttpAuthConfigItem() const + { + return httpAuthConfigItem; + } + + void setHttpAuthConfigItem(const string& user, const string& password) + { + httpAuthConfigItem = createAuthConfigItem(user, password); + } + + AuthConfigItemHandle getFtpAuthConfigItem() const + { + return ftpAuthConfigItem; + } + + void setFtpAuthConfigItem(const string& user, const string& password) + { + ftpAuthConfigItem = createAuthConfigItem(user, password); + } + + AuthConfigItemHandle getHttpProxyAuthConfigItem() const + { + return httpProxyAuthConfigItem; + } + + void setHttpProxyAuthConfigItem(const string& user, const string& password) + { + httpProxyAuthConfigItem = createAuthConfigItem(user, password); + } + + void configure(const Option* op) + { + setHttpAuthConfigItem(op->get(PREF_HTTP_USER), + op->get(PREF_HTTP_PASSWD)); + setFtpAuthConfigItem(op->get(PREF_FTP_USER), + op->get(PREF_FTP_PASSWD)); + setHttpProxyAuthConfigItem(op->get(PREF_HTTP_PROXY_USER), + op->get(PREF_HTTP_PROXY_PASSWD)); + } +}; + +typedef SharedHandle<AuthConfig> AuthConfigHandle; + +#endif // _D_AUTH_CONFIG_H_ |
