mirror of https://github.com/aria2/aria2
				
				
				
			2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add the command-line option which disables netrc support: * src/OptionHandlerFactory.cc (createOptionHandlers): Added PREF_NO_NETRC. * src/main.cc: Added -n option. * src/prefs.h (PREF_NO_NETRC): New definition. * src/RequestFactory.cc: Do not use netrc in ftp if PREF_NO_NETRC is V_TRUE. Note that netrc is not used in http, http proxy even if PREF_NO_NETRC is V_FALSE. This may get configurable in the future release. To clear peer's error status by time basis: * src/PeerAbstractCommand.cc (onAbort): Call Peer::startBadCondition(). * src/Peer.h, src/Peer.cc (error): Removed. (_badConditionStartTime): New variable. (_badConditionInterval): New variable. Initialized to 10 seconds. (startBadCondition): New function. (isGood): New function. * src/DefaultPeerStorage.cc (addPeer): Use Peer::isGood(). (FindFinePeer): Use Peer::isGood(). Always include port number in http request header: * src/HttpRequest.cc (getHostText): Always include port number in http request header.pull/1/head
							parent
							
								
									9b73454b07
								
							
						
					
					
						commit
						6e6ba30c60
					
				
							
								
								
									
										32
									
								
								ChangeLog
								
								
								
								
							
							
						
						
									
										32
									
								
								ChangeLog
								
								
								
								
							| 
						 | 
				
			
			@ -1,3 +1,32 @@
 | 
			
		|||
2007-03-28  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 | 
			
		||||
 | 
			
		||||
	To add the command-line option which disables netrc support:
 | 
			
		||||
	* src/OptionHandlerFactory.cc
 | 
			
		||||
	(createOptionHandlers): Added PREF_NO_NETRC.
 | 
			
		||||
	* src/main.cc: Added -n option.
 | 
			
		||||
	* src/prefs.h (PREF_NO_NETRC): New definition.
 | 
			
		||||
	* src/RequestFactory.cc: Do not use netrc in ftp if PREF_NO_NETRC is
 | 
			
		||||
	V_TRUE.
 | 
			
		||||
	Note that netrc is not used in http, http proxy even if PREF_NO_NETRC
 | 
			
		||||
	is V_FALSE. This may get configurable in the future release.
 | 
			
		||||
	
 | 
			
		||||
	To clear peer's error status by time basis:
 | 
			
		||||
	* src/PeerAbstractCommand.cc
 | 
			
		||||
	(onAbort): Call Peer::startBadCondition().
 | 
			
		||||
	* src/Peer.h, src/Peer.cc
 | 
			
		||||
	(error): Removed.
 | 
			
		||||
	(_badConditionStartTime): New variable.
 | 
			
		||||
	(_badConditionInterval): New variable. Initialized to 10 seconds.
 | 
			
		||||
	(startBadCondition): New function.
 | 
			
		||||
	(isGood): New function.
 | 
			
		||||
	* src/DefaultPeerStorage.cc
 | 
			
		||||
	(addPeer): Use Peer::isGood().
 | 
			
		||||
	(FindFinePeer): Use Peer::isGood().
 | 
			
		||||
 | 
			
		||||
	Always include port number in http request header:
 | 
			
		||||
	* src/HttpRequest.cc (getHostText): Always include port number in
 | 
			
		||||
	http request header.
 | 
			
		||||
	
 | 
			
		||||
2007-03-26  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 | 
			
		||||
 | 
			
		||||
	To the ability to read options from a config file:
 | 
			
		||||
| 
						 | 
				
			
			@ -30,6 +59,9 @@
 | 
			
		|||
	* src/prefs.h (PREF_USER_AGENT): New definition.
 | 
			
		||||
	* src/HttpRequestCommand.cc (executeInternal): Set user-agent option
 | 
			
		||||
	parameter to HttpRequest object.
 | 
			
		||||
	* src/AbstractProxyRequestCommand.cc
 | 
			
		||||
	(executeInternal): Set user-agent option parameter to HttpRequest
 | 
			
		||||
	object.
 | 
			
		||||
	
 | 
			
		||||
	Marged the patches from Dan Fandrich.
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@
 | 
			
		|||
/* copyright --> */
 | 
			
		||||
#include "AbstractProxyRequestCommand.h"
 | 
			
		||||
#include "HttpConnection.h"
 | 
			
		||||
#include "prefs.h"
 | 
			
		||||
 | 
			
		||||
AbstractProxyRequestCommand::AbstractProxyRequestCommand(int cuid,
 | 
			
		||||
							 const RequestHandle& req,
 | 
			
		||||
| 
						 | 
				
			
			@ -50,6 +51,7 @@ bool AbstractProxyRequestCommand::executeInternal() {
 | 
			
		|||
  socket->setBlockingMode();
 | 
			
		||||
 | 
			
		||||
  HttpRequestHandle httpRequest = new HttpRequest();
 | 
			
		||||
  httpRequest->setUserAgent(e->option->get(PREF_USER_AGENT));
 | 
			
		||||
  httpRequest->setRequest(req);
 | 
			
		||||
  httpRequest->configure(e->option);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,7 +60,7 @@ bool DefaultPeerStorage::addPeer(const PeerHandle& peer) {
 | 
			
		|||
    return true;
 | 
			
		||||
  } else {
 | 
			
		||||
    const PeerHandle& peer = *itr;
 | 
			
		||||
    if(peer->error >= MAX_PEER_ERROR || peer->cuid != 0) {
 | 
			
		||||
    if(!peer->isGood() || peer->cuid != 0) {
 | 
			
		||||
      return false;
 | 
			
		||||
    } else {
 | 
			
		||||
      *itr = peer;
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ const Peers& DefaultPeerStorage::getPeers() {
 | 
			
		|||
class FindFinePeer {
 | 
			
		||||
public:
 | 
			
		||||
  bool operator()(const PeerHandle& peer) const {
 | 
			
		||||
    return peer->cuid == 0 && peer->error < MAX_PEER_ERROR;
 | 
			
		||||
    return peer->cuid == 0 && peer->isGood();
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ bool HttpRequest::isRangeSatisfied(const RangeHandle& range) const
 | 
			
		|||
 | 
			
		||||
string HttpRequest::getHostText(const string& host, in_port_t port) const
 | 
			
		||||
{
 | 
			
		||||
  return host+(port == 80 || port == 443 ? "" : ":"+Util::itos(port));
 | 
			
		||||
  return host+":"+Util::itos(port);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
string HttpRequest::createRequest() const
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,6 +52,12 @@ public:
 | 
			
		|||
  {
 | 
			
		||||
    _netrc = netrc;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  NetrcHandle getNetrc() const
 | 
			
		||||
  {
 | 
			
		||||
    return _netrc;
 | 
			
		||||
  }
 | 
			
		||||
      
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef SharedHandle<NetrcAuthResolver> NetrcAuthResolverHandle;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,6 +89,7 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
 | 
			
		|||
						V_NONE, V_PREALLOC));
 | 
			
		||||
  handlers.push_back(new BooleanOptionHandler(PREF_CONTINUE));
 | 
			
		||||
  handlers.push_back(new DefaultOptionHandler(PREF_USER_AGENT));
 | 
			
		||||
  handlers.push_back(new BooleanOptionHandler(PREF_NO_NETRC));
 | 
			
		||||
 | 
			
		||||
  return handlers;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								src/Peer.cc
								
								
								
								
							
							
						
						
									
										15
									
								
								src/Peer.cc
								
								
								
								
							| 
						 | 
				
			
			@ -39,11 +39,12 @@
 | 
			
		|||
Peer::Peer(string ipaddr, int port, int pieceLength, long long int totalLength):
 | 
			
		||||
  ipaddr(ipaddr),
 | 
			
		||||
  port(port),
 | 
			
		||||
  error(0),
 | 
			
		||||
  sessionUploadLength(0),
 | 
			
		||||
  sessionDownloadLength(0),
 | 
			
		||||
  pieceLength(pieceLength),
 | 
			
		||||
  active(false)
 | 
			
		||||
  active(false),
 | 
			
		||||
  _badConditionStartTime(0),
 | 
			
		||||
  _badConditionInterval(10)
 | 
			
		||||
{
 | 
			
		||||
  resetStatus();
 | 
			
		||||
  this->bitfield = BitfieldManFactory::getFactoryInstance()->
 | 
			
		||||
| 
						 | 
				
			
			@ -143,3 +144,13 @@ void Peer::setAllBitfield() {
 | 
			
		|||
void Peer::updateLatency(int latency) {
 | 
			
		||||
  this->latency = (this->latency*20+latency*80)/200;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Peer::startBadCondition()
 | 
			
		||||
{
 | 
			
		||||
  _badConditionStartTime.reset();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Peer::isGood() const
 | 
			
		||||
{
 | 
			
		||||
  return _badConditionStartTime.elapsed(_badConditionInterval);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,6 +39,7 @@
 | 
			
		|||
#include "BitfieldMan.h"
 | 
			
		||||
#include "SharedHandle.h"
 | 
			
		||||
#include "PeerStat.h"
 | 
			
		||||
#include "TimeA2.h"
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -58,7 +59,6 @@ public:
 | 
			
		|||
  bool peerChoking;
 | 
			
		||||
  bool peerInterested;
 | 
			
		||||
  int tryCount;
 | 
			
		||||
  int error;
 | 
			
		||||
  int cuid;
 | 
			
		||||
  bool chokingRequired;
 | 
			
		||||
  bool optUnchoking;
 | 
			
		||||
| 
						 | 
				
			
			@ -80,6 +80,8 @@ private:
 | 
			
		|||
  int latency;
 | 
			
		||||
  bool active;
 | 
			
		||||
  string id;
 | 
			
		||||
  Time _badConditionStartTime;
 | 
			
		||||
  int _badConditionInterval;
 | 
			
		||||
public:
 | 
			
		||||
  Peer(string ipaddr, int port, int pieceLength, long long int totalLength);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -196,6 +198,10 @@ public:
 | 
			
		|||
  const string& getId() const {
 | 
			
		||||
    return id;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void startBadCondition();
 | 
			
		||||
 | 
			
		||||
  bool isGood() const;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef SharedHandle<Peer> PeerHandle;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,11 +97,7 @@ bool PeerAbstractCommand::prepareForRetry(int wait) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
void PeerAbstractCommand::onAbort(RecoverableException* ex) {
 | 
			
		||||
  if(peer->isSeeder()) {
 | 
			
		||||
    peer->error++;
 | 
			
		||||
  } else {
 | 
			
		||||
    peer->error += MAX_PEER_ERROR;
 | 
			
		||||
  }
 | 
			
		||||
  peer->startBadCondition();
 | 
			
		||||
  peer->resetStatus();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,9 @@
 | 
			
		|||
/* copyright --> */
 | 
			
		||||
#include "RequestFactory.h"
 | 
			
		||||
#include "prefs.h"
 | 
			
		||||
#include "AbstractAuthResolver.h"
 | 
			
		||||
#include "NetrcAuthResolver.h"
 | 
			
		||||
#include "DefaultAuthResolver.h"
 | 
			
		||||
 | 
			
		||||
RequestHandle RequestFactory::createRequest()
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -58,29 +60,43 @@ AuthConfigHandle RequestFactory::createAuthConfig(const string& user, const stri
 | 
			
		|||
 | 
			
		||||
AuthResolverHandle RequestFactory::createHttpAuthResolver()
 | 
			
		||||
{
 | 
			
		||||
  NetrcAuthResolverHandle authResolver = 0;
 | 
			
		||||
  authResolver = new NetrcAuthResolver();
 | 
			
		||||
  authResolver->setNetrc(_netrc);
 | 
			
		||||
  authResolver->setUserDefinedAuthConfig(createAuthConfig(_option->get(PREF_HTTP_USER), _option->get(PREF_HTTP_PASSWD)));
 | 
			
		||||
  return authResolver;		     
 | 
			
		||||
  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()
 | 
			
		||||
{
 | 
			
		||||
  NetrcAuthResolverHandle authResolver = 0;
 | 
			
		||||
  authResolver = new NetrcAuthResolver();
 | 
			
		||||
  authResolver->setNetrc(_netrc);
 | 
			
		||||
  authResolver->setUserDefinedAuthConfig(createAuthConfig(_option->get(PREF_FTP_USER), _option->get(PREF_FTP_PASSWD)));
 | 
			
		||||
  authResolver->setDefaultAuthConfig(new AuthConfig("anonymous",
 | 
			
		||||
							    "ARIA2USER@"));
 | 
			
		||||
  return authResolver;
 | 
			
		||||
  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()
 | 
			
		||||
{
 | 
			
		||||
  NetrcAuthResolverHandle authResolver = 0;
 | 
			
		||||
  authResolver = new NetrcAuthResolver();
 | 
			
		||||
  authResolver->setNetrc(_netrc);
 | 
			
		||||
  authResolver->setUserDefinedAuthConfig(createAuthConfig(_option->get(PREF_HTTP_PROXY_USER), _option->get(PREF_HTTP_PROXY_PASSWD)));
 | 
			
		||||
  return authResolver;
 | 
			
		||||
  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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,10 @@ Time::Time(const Time& time) {
 | 
			
		|||
  tv = time.tv;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Time::Time(int sec) {
 | 
			
		||||
  setTimeInSec(sec);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Time::~Time() {}
 | 
			
		||||
 | 
			
		||||
void Time::reset() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,6 +48,7 @@ public:
 | 
			
		|||
  // this object was created.
 | 
			
		||||
  Time();
 | 
			
		||||
  Time(const Time& time);
 | 
			
		||||
  Time(int sec);
 | 
			
		||||
 | 
			
		||||
  Time& operator=(const Time& time) {
 | 
			
		||||
    if(this != &time) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,9 +189,9 @@ RequestInfos UrlRequestInfo::execute() {
 | 
			
		|||
    
 | 
			
		||||
    SharedHandle<ConsoleDownloadEngine> e(DownloadEngineFactory::newConsoleEngine(op, requests, reserved));
 | 
			
		||||
    
 | 
			
		||||
    e->segmentMan->filename = hr->filename;
 | 
			
		||||
    e->segmentMan->totalSize = hr->totalLength;
 | 
			
		||||
    if(hr->totalLength > 0) {
 | 
			
		||||
      e->segmentMan->filename = hr->filename;
 | 
			
		||||
      e->segmentMan->totalSize = hr->totalLength;
 | 
			
		||||
      e->segmentMan->downloadStarted = true;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -202,6 +202,7 @@ void showUsage() {
 | 
			
		|||
	    "                              Currently this option is applicable to http(s)/\n"
 | 
			
		||||
	    "                              ftp downloads.") << endl;
 | 
			
		||||
  cout << _(" -U, --user-agent=USER_AGENT  Set user agent for http(s) downloads.") << endl;
 | 
			
		||||
  cout << _(" -n, --no-netrc               Disables netrc support.") << endl;
 | 
			
		||||
#ifdef ENABLE_BITTORRENT
 | 
			
		||||
  cout << _(" -T, --torrent-file=TORRENT_FILE  The file path to .torrent file.") << endl;
 | 
			
		||||
  cout << _(" --follow-torrent=true|false  Setting this option to false prevents aria2 to\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -352,6 +353,7 @@ int main(int argc, char* argv[]) {
 | 
			
		|||
  op->put(PREF_NETRC_PATH, Util::getHomeDir()+"/.netrc");
 | 
			
		||||
  op->put(PREF_CONTINUE, V_FALSE);
 | 
			
		||||
  op->put(PREF_USER_AGENT, "aria2");
 | 
			
		||||
  op->put(PREF_NO_NETRC, V_FALSE);
 | 
			
		||||
  while(1) {
 | 
			
		||||
    int optIndex = 0;
 | 
			
		||||
    int lopt;
 | 
			
		||||
| 
						 | 
				
			
			@ -386,6 +388,7 @@ int main(int argc, char* argv[]) {
 | 
			
		|||
      { "realtime-chunk-checksum", required_argument, &lopt, 204 },
 | 
			
		||||
      { "continue", no_argument, 0, 'c' },
 | 
			
		||||
      { "user-agent", required_argument, 0, 'U' },
 | 
			
		||||
      { "no-netrc", no_argument, 0, 'n' },
 | 
			
		||||
#ifdef ENABLE_BITTORRENT
 | 
			
		||||
      { "torrent-file", required_argument, NULL, 'T' },
 | 
			
		||||
      { "listen-port", required_argument, &lopt, 15 },
 | 
			
		||||
| 
						 | 
				
			
			@ -413,7 +416,7 @@ int main(int argc, char* argv[]) {
 | 
			
		|||
      { "help", no_argument, NULL, 'h' },
 | 
			
		||||
      { 0, 0, 0, 0 }
 | 
			
		||||
    };
 | 
			
		||||
    c = getopt_long(argc, argv, "Dd:o:l:s:pt:m:vhST:M:C:a:c", longOpts, &optIndex);
 | 
			
		||||
    c = getopt_long(argc, argv, "Dd:o:l:s:pt:m:vhST:M:C:a:cU:n", longOpts, &optIndex);
 | 
			
		||||
    if(c == -1) {
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -564,6 +567,9 @@ int main(int argc, char* argv[]) {
 | 
			
		|||
    case 'U':
 | 
			
		||||
      cmdstream << PREF_USER_AGENT << "=" << optarg << "\n";
 | 
			
		||||
      break;
 | 
			
		||||
    case 'n':
 | 
			
		||||
      cmdstream << PREF_NO_NETRC << "=" << V_TRUE << "\n";
 | 
			
		||||
      break;
 | 
			
		||||
    case 'v':
 | 
			
		||||
      showVersion();
 | 
			
		||||
      exit(EXIT_SUCCESS);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,6 +94,8 @@
 | 
			
		|||
#define PREF_NETRC_PATH "netrc-path"
 | 
			
		||||
// value:
 | 
			
		||||
#define PREF_CONTINUE "continue"
 | 
			
		||||
// value:
 | 
			
		||||
#define PREF_NO_NETRC "no-netrc"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * FTP related preferences
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
#include "DefaultAuthResolver.h"
 | 
			
		||||
#include "prefs.h"
 | 
			
		||||
#include <cppunit/extensions/HelperMacros.h>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
class DefaultAuthResolverTest : public CppUnit::TestFixture {
 | 
			
		||||
 | 
			
		||||
  CPPUNIT_TEST_SUITE(DefaultAuthResolverTest);
 | 
			
		||||
  CPPUNIT_TEST(testResolveAuthConfig_without_userDefined);
 | 
			
		||||
  CPPUNIT_TEST(testResolveAuthConfig_with_userDefined);
 | 
			
		||||
  CPPUNIT_TEST_SUITE_END();
 | 
			
		||||
private:
 | 
			
		||||
  //NetrcHandle _netrc;
 | 
			
		||||
  //SharedHandle<Option> _option;
 | 
			
		||||
  DefaultAuthResolverHandle _resolver;
 | 
			
		||||
public:
 | 
			
		||||
  void setUp()
 | 
			
		||||
  {
 | 
			
		||||
    //_netrc = new Netrc();
 | 
			
		||||
    //_option = new Option();
 | 
			
		||||
    _resolver = new DefaultAuthResolver();
 | 
			
		||||
    //_factory->setOption(_option.get());
 | 
			
		||||
    _resolver->setDefaultAuthConfig(new AuthConfig("foo", "bar"));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void testResolveAuthConfig_without_userDefined();
 | 
			
		||||
  void testResolveAuthConfig_with_userDefined();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CPPUNIT_TEST_SUITE_REGISTRATION( DefaultAuthResolverTest );
 | 
			
		||||
 | 
			
		||||
void DefaultAuthResolverTest::testResolveAuthConfig_without_userDefined()
 | 
			
		||||
{
 | 
			
		||||
  AuthConfigHandle authConfig = _resolver->resolveAuthConfig("localhost");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"), authConfig->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void DefaultAuthResolverTest::testResolveAuthConfig_with_userDefined()
 | 
			
		||||
{
 | 
			
		||||
  _resolver->setUserDefinedAuthConfig(new AuthConfig("myname", "mypasswd"));
 | 
			
		||||
  AuthConfigHandle authConfig = _resolver->resolveAuthConfig("localhost");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("myname:mypasswd"), authConfig->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +335,7 @@ void HttpRequestTest::testCreateRequest_with_cookie()
 | 
			
		|||
  string expectedText = "GET /archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n"
 | 
			
		||||
    "User-Agent: aria2\r\n"
 | 
			
		||||
    "Accept: */*\r\n"
 | 
			
		||||
    "Host: localhost\r\n"
 | 
			
		||||
    "Host: localhost:80\r\n"
 | 
			
		||||
    "Pragma: no-cache\r\n"
 | 
			
		||||
    "Cache-Control: no-cache\r\n"
 | 
			
		||||
    "Cookie: name1=value1;\r\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -348,7 +348,7 @@ void HttpRequestTest::testCreateRequest_with_cookie()
 | 
			
		|||
  expectedText = "GET /archives/download/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n"
 | 
			
		||||
    "User-Agent: aria2\r\n"
 | 
			
		||||
    "Accept: */*\r\n"
 | 
			
		||||
    "Host: localhost\r\n"
 | 
			
		||||
    "Host: localhost:80\r\n"
 | 
			
		||||
    "Pragma: no-cache\r\n"
 | 
			
		||||
    "Cache-Control: no-cache\r\n"
 | 
			
		||||
    "Cookie: name1=value1;name2=value2;\r\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -361,7 +361,7 @@ void HttpRequestTest::testCreateRequest_with_cookie()
 | 
			
		|||
  expectedText = "GET /archives/download/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n"
 | 
			
		||||
    "User-Agent: aria2\r\n"
 | 
			
		||||
    "Accept: */*\r\n"
 | 
			
		||||
    "Host: tt.localhost\r\n"
 | 
			
		||||
    "Host: tt.localhost:80\r\n"
 | 
			
		||||
    "Pragma: no-cache\r\n"
 | 
			
		||||
    "Cache-Control: no-cache\r\n"
 | 
			
		||||
    "Cookie: name1=value1;name2=value2;name3=value3;\r\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -374,7 +374,7 @@ void HttpRequestTest::testCreateRequest_with_cookie()
 | 
			
		|||
  expectedText = "GET /archives/download/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n"
 | 
			
		||||
    "User-Agent: aria2\r\n"
 | 
			
		||||
    "Accept: */*\r\n"
 | 
			
		||||
    "Host: tt.localhost\r\n"
 | 
			
		||||
    "Host: tt.localhost:443\r\n"
 | 
			
		||||
    "Pragma: no-cache\r\n"
 | 
			
		||||
    "Cache-Control: no-cache\r\n"
 | 
			
		||||
    "Cookie: name1=value1;name2=value2;name3=value3;name4=value4;\r\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -387,7 +387,7 @@ void HttpRequestTest::testCreateRequest_with_cookie()
 | 
			
		|||
void HttpRequestTest::testCreateProxyRequest()
 | 
			
		||||
{
 | 
			
		||||
  RequestHandle request = new Request();
 | 
			
		||||
  request->setUrl("http://localhost:8080/archives/aria2-1.0.0.tar.bz2");
 | 
			
		||||
  request->setUrl("http://localhost/archives/aria2-1.0.0.tar.bz2");
 | 
			
		||||
  SegmentHandle segment = new Segment();
 | 
			
		||||
 | 
			
		||||
  HttpRequest httpRequest;
 | 
			
		||||
| 
						 | 
				
			
			@ -395,10 +395,10 @@ void HttpRequestTest::testCreateProxyRequest()
 | 
			
		|||
  httpRequest.setRequest(request);
 | 
			
		||||
  httpRequest.setSegment(segment);
 | 
			
		||||
 | 
			
		||||
  string expectedText = "CONNECT localhost:8080 HTTP/1.1\r\n"
 | 
			
		||||
  string expectedText = "CONNECT localhost:80 HTTP/1.1\r\n"
 | 
			
		||||
    "User-Agent: aria2\r\n"
 | 
			
		||||
    "Proxy-Connection: close\r\n"
 | 
			
		||||
    "Host: localhost:8080\r\n"
 | 
			
		||||
    "Host: localhost:80\r\n"
 | 
			
		||||
    "\r\n";
 | 
			
		||||
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createProxyRequest());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,16 @@
 | 
			
		|||
TESTS = aria2c
 | 
			
		||||
check_PROGRAMS = $(TESTS)
 | 
			
		||||
aria2c_SOURCES = AllTest.cc\
 | 
			
		||||
	RequestFactoryTest.cc\
 | 
			
		||||
	NetrcAuthResolverTest.cc\
 | 
			
		||||
	DefaultAuthResolverTest.cc\
 | 
			
		||||
	RequestTest.cc\
 | 
			
		||||
	HttpRequestTest.cc
 | 
			
		||||
	UtilTest.cc\
 | 
			
		||||
	OptionHandlerTest.cc\
 | 
			
		||||
	SegmentManTest.cc\
 | 
			
		||||
	BitfieldManTest.cc\
 | 
			
		||||
	GlowFileAllocatorTest.cc\
 | 
			
		||||
	RequestTest.cc\
 | 
			
		||||
	HttpRequestTest.cc\
 | 
			
		||||
	NetrcTest.cc\
 | 
			
		||||
	SingletonHolderTest.cc\
 | 
			
		||||
	HttpHeaderTest.cc\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										244
									
								
								test/Makefile.in
								
								
								
								
							
							
						
						
									
										244
									
								
								test/Makefile.in
								
								
								
								
							| 
						 | 
				
			
			@ -57,45 +57,7 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		|||
CONFIG_HEADER = $(top_builddir)/config.h
 | 
			
		||||
CONFIG_CLEAN_FILES =
 | 
			
		||||
am__EXEEXT_1 = aria2c$(EXEEXT)
 | 
			
		||||
am_aria2c_OBJECTS = AllTest.$(OBJEXT) UtilTest.$(OBJEXT) \
 | 
			
		||||
	OptionHandlerTest.$(OBJEXT) SegmentManTest.$(OBJEXT) \
 | 
			
		||||
	BitfieldManTest.$(OBJEXT) GlowFileAllocatorTest.$(OBJEXT) \
 | 
			
		||||
	RequestTest.$(OBJEXT) HttpRequestTest.$(OBJEXT) \
 | 
			
		||||
	NetrcTest.$(OBJEXT) SingletonHolderTest.$(OBJEXT) \
 | 
			
		||||
	HttpHeaderTest.$(OBJEXT) HttpResponseTest.$(OBJEXT) \
 | 
			
		||||
	SharedHandleTest.$(OBJEXT) ChunkedEncodingTest.$(OBJEXT) \
 | 
			
		||||
	FileTest.$(OBJEXT) OptionTest.$(OBJEXT) Base64Test.$(OBJEXT) \
 | 
			
		||||
	CookieBoxTest.$(OBJEXT) DataTest.$(OBJEXT) \
 | 
			
		||||
	DictionaryTest.$(OBJEXT) ListTest.$(OBJEXT) \
 | 
			
		||||
	MetaFileUtilTest.$(OBJEXT) ShaVisitorTest.$(OBJEXT) \
 | 
			
		||||
	PeerMessageUtilTest.$(OBJEXT) DefaultDiskWriterTest.$(OBJEXT) \
 | 
			
		||||
	MultiDiskAdaptorTest.$(OBJEXT) \
 | 
			
		||||
	Xml2MetalinkProcessorTest.$(OBJEXT) MetalinkerTest.$(OBJEXT) \
 | 
			
		||||
	MetalinkEntryTest.$(OBJEXT) FeatureConfigTest.$(OBJEXT) \
 | 
			
		||||
	ShareRatioSeedCriteriaTest.$(OBJEXT) \
 | 
			
		||||
	TimeSeedCriteriaTest.$(OBJEXT) SpeedCalcTest.$(OBJEXT) \
 | 
			
		||||
	DefaultPeerListProcessorTest.$(OBJEXT) \
 | 
			
		||||
	AnnounceListTest.$(OBJEXT) TrackerWatcherCommandTest.$(OBJEXT) \
 | 
			
		||||
	DefaultBtContextTest.$(OBJEXT) \
 | 
			
		||||
	DefaultPieceStorageTest.$(OBJEXT) \
 | 
			
		||||
	DefaultPeerStorageTest.$(OBJEXT) \
 | 
			
		||||
	DefaultBtAnnounceTest.$(OBJEXT) BtRegistryTest.$(OBJEXT) \
 | 
			
		||||
	DefaultBtMessageDispatcherTest.$(OBJEXT) \
 | 
			
		||||
	DefaultBtRequestFactoryTest.$(OBJEXT) PeerTest.$(OBJEXT) \
 | 
			
		||||
	BtAllowedFastMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtBitfieldMessageTest.$(OBJEXT) BtCancelMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtChokeMessageTest.$(OBJEXT) BtHaveAllMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtHaveMessageTest.$(OBJEXT) BtHaveNoneMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtInterestedMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtKeepAliveMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtNotInterestedMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtPieceMessageTest.$(OBJEXT) BtPortMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtRejectMessageTest.$(OBJEXT) BtRequestMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtSuggestPieceMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtUnchokeMessageTest.$(OBJEXT) \
 | 
			
		||||
	BtHandshakeMessageTest.$(OBJEXT) \
 | 
			
		||||
	ConsoleFileAllocationMonitorTest.$(OBJEXT) \
 | 
			
		||||
	ChunkChecksumValidatorTest.$(OBJEXT)
 | 
			
		||||
am_aria2c_OBJECTS = AllTest.$(OBJEXT) RequestFactoryTest.$(OBJEXT)
 | 
			
		||||
aria2c_OBJECTS = $(am_aria2c_OBJECTS)
 | 
			
		||||
am__DEPENDENCIES_1 =
 | 
			
		||||
aria2c_DEPENDENCIES = ../src/libaria2c.a $(am__DEPENDENCIES_1)
 | 
			
		||||
| 
						 | 
				
			
			@ -107,10 +69,6 @@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 | 
			
		|||
CXXLD = $(CXX)
 | 
			
		||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 | 
			
		||||
	-o $@
 | 
			
		||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 | 
			
		||||
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 | 
			
		||||
CCLD = $(CC)
 | 
			
		||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
SOURCES = $(aria2c_SOURCES)
 | 
			
		||||
DIST_SOURCES = $(aria2c_SOURCES)
 | 
			
		||||
ETAGS = etags
 | 
			
		||||
| 
						 | 
				
			
			@ -260,74 +218,77 @@ sysconfdir = @sysconfdir@
 | 
			
		|||
target_alias = @target_alias@
 | 
			
		||||
TESTS = aria2c
 | 
			
		||||
aria2c_SOURCES = AllTest.cc\
 | 
			
		||||
	UtilTest.cc\
 | 
			
		||||
	OptionHandlerTest.cc\
 | 
			
		||||
	SegmentManTest.cc\
 | 
			
		||||
	BitfieldManTest.cc\
 | 
			
		||||
	GlowFileAllocatorTest.cc\
 | 
			
		||||
	RequestTest.cc\
 | 
			
		||||
	HttpRequestTest.cc\
 | 
			
		||||
	NetrcTest.cc\
 | 
			
		||||
	SingletonHolderTest.cc\
 | 
			
		||||
	HttpHeaderTest.cc\
 | 
			
		||||
	HttpResponseTest.cc\
 | 
			
		||||
	SharedHandleTest.cc\
 | 
			
		||||
	ChunkedEncodingTest.cc\
 | 
			
		||||
	FileTest.cc\
 | 
			
		||||
	OptionTest.cc\
 | 
			
		||||
	Base64Test.cc\
 | 
			
		||||
	CookieBoxTest.cc\
 | 
			
		||||
	DataTest.cc\
 | 
			
		||||
	DictionaryTest.cc\
 | 
			
		||||
	ListTest.cc\
 | 
			
		||||
	MetaFileUtilTest.cc\
 | 
			
		||||
	ShaVisitorTest.cc\
 | 
			
		||||
	PeerMessageUtilTest.cc\
 | 
			
		||||
	DefaultDiskWriterTest.cc\
 | 
			
		||||
	MultiDiskAdaptorTest.cc\
 | 
			
		||||
	Xml2MetalinkProcessorTest.cc\
 | 
			
		||||
	MetalinkerTest.cc\
 | 
			
		||||
	MetalinkEntryTest.cc\
 | 
			
		||||
	FeatureConfigTest.cc\
 | 
			
		||||
	ShareRatioSeedCriteriaTest.cc\
 | 
			
		||||
	TimeSeedCriteriaTest.cc\
 | 
			
		||||
	SpeedCalcTest.cc\
 | 
			
		||||
	DefaultPeerListProcessorTest.cc\
 | 
			
		||||
	AnnounceListTest.cc\
 | 
			
		||||
	TrackerWatcherCommandTest.cc\
 | 
			
		||||
	DefaultBtContextTest.cc\
 | 
			
		||||
	DefaultPieceStorageTest.cc\
 | 
			
		||||
	DefaultPeerStorageTest.cc\
 | 
			
		||||
	DefaultBtAnnounceTest.cc\
 | 
			
		||||
	BtRegistryTest.cc\
 | 
			
		||||
	DefaultBtMessageDispatcherTest.cc\
 | 
			
		||||
	MockPeerStorage.h\
 | 
			
		||||
	DefaultBtRequestFactoryTest.cc\
 | 
			
		||||
	PeerTest.cc\
 | 
			
		||||
	BtAllowedFastMessageTest.cc\
 | 
			
		||||
	BtBitfieldMessageTest.cc\
 | 
			
		||||
	BtCancelMessageTest.cc\
 | 
			
		||||
	BtChokeMessageTest.cc\
 | 
			
		||||
	BtHaveAllMessageTest.cc\
 | 
			
		||||
	BtHaveMessageTest.cc\
 | 
			
		||||
	BtHaveNoneMessageTest.cc\
 | 
			
		||||
	BtInterestedMessageTest.cc\
 | 
			
		||||
	BtKeepAliveMessageTest.cc\
 | 
			
		||||
	BtNotInterestedMessageTest.cc\
 | 
			
		||||
	BtPieceMessageTest.cc\
 | 
			
		||||
	BtPortMessageTest.cc\
 | 
			
		||||
	BtRejectMessageTest.cc\
 | 
			
		||||
	BtRequestMessageTest.cc\
 | 
			
		||||
	BtSuggestPieceMessageTest.cc\
 | 
			
		||||
	BtUnchokeMessageTest.cc\
 | 
			
		||||
	BtHandshakeMessageTest.cc\
 | 
			
		||||
	MockBtMessageDispatcher.h\
 | 
			
		||||
	FixedNumberRandomizer.h\
 | 
			
		||||
	MockBtMessageFactory.h\
 | 
			
		||||
	MockBtMessage.h\
 | 
			
		||||
	ConsoleFileAllocationMonitorTest.cc\
 | 
			
		||||
	ChunkChecksumValidatorTest.cc
 | 
			
		||||
	RequestFactoryTest.cc
 | 
			
		||||
 | 
			
		||||
# 	NetrcAuthResolverTest.cc\
 | 
			
		||||
# 	DefaultAuthResolverTest.cc\
 | 
			
		||||
# 	RequestTest.cc\
 | 
			
		||||
# 	HttpRequestTest.cc
 | 
			
		||||
# 	UtilTest.cc\
 | 
			
		||||
# 	OptionHandlerTest.cc\
 | 
			
		||||
# 	SegmentManTest.cc\
 | 
			
		||||
# 	BitfieldManTest.cc\
 | 
			
		||||
# 	GlowFileAllocatorTest.cc\
 | 
			
		||||
# 	NetrcTest.cc\
 | 
			
		||||
# 	SingletonHolderTest.cc\
 | 
			
		||||
# 	HttpHeaderTest.cc\
 | 
			
		||||
# 	HttpResponseTest.cc\
 | 
			
		||||
# 	SharedHandleTest.cc\
 | 
			
		||||
# 	ChunkedEncodingTest.cc\
 | 
			
		||||
# 	FileTest.cc\
 | 
			
		||||
# 	OptionTest.cc\
 | 
			
		||||
# 	Base64Test.cc\
 | 
			
		||||
# 	CookieBoxTest.cc\
 | 
			
		||||
# 	DataTest.cc\
 | 
			
		||||
# 	DictionaryTest.cc\
 | 
			
		||||
# 	ListTest.cc\
 | 
			
		||||
# 	MetaFileUtilTest.cc\
 | 
			
		||||
# 	ShaVisitorTest.cc\
 | 
			
		||||
# 	PeerMessageUtilTest.cc\
 | 
			
		||||
# 	DefaultDiskWriterTest.cc\
 | 
			
		||||
# 	MultiDiskAdaptorTest.cc\
 | 
			
		||||
# 	Xml2MetalinkProcessorTest.cc\
 | 
			
		||||
# 	MetalinkerTest.cc\
 | 
			
		||||
# 	MetalinkEntryTest.cc\
 | 
			
		||||
# 	FeatureConfigTest.cc\
 | 
			
		||||
# 	ShareRatioSeedCriteriaTest.cc\
 | 
			
		||||
# 	TimeSeedCriteriaTest.cc\
 | 
			
		||||
# 	SpeedCalcTest.cc\
 | 
			
		||||
# 	DefaultPeerListProcessorTest.cc\
 | 
			
		||||
# 	AnnounceListTest.cc\
 | 
			
		||||
# 	TrackerWatcherCommandTest.cc\
 | 
			
		||||
# 	DefaultBtContextTest.cc\
 | 
			
		||||
# 	DefaultPieceStorageTest.cc\
 | 
			
		||||
# 	DefaultPeerStorageTest.cc\
 | 
			
		||||
# 	DefaultBtAnnounceTest.cc\
 | 
			
		||||
# 	BtRegistryTest.cc\
 | 
			
		||||
# 	DefaultBtMessageDispatcherTest.cc\
 | 
			
		||||
# 	MockPeerStorage.h\
 | 
			
		||||
# 	DefaultBtRequestFactoryTest.cc\
 | 
			
		||||
# 	PeerTest.cc\
 | 
			
		||||
# 	BtAllowedFastMessageTest.cc\
 | 
			
		||||
# 	BtBitfieldMessageTest.cc\
 | 
			
		||||
# 	BtCancelMessageTest.cc\
 | 
			
		||||
# 	BtChokeMessageTest.cc\
 | 
			
		||||
# 	BtHaveAllMessageTest.cc\
 | 
			
		||||
# 	BtHaveMessageTest.cc\
 | 
			
		||||
# 	BtHaveNoneMessageTest.cc\
 | 
			
		||||
# 	BtInterestedMessageTest.cc\
 | 
			
		||||
# 	BtKeepAliveMessageTest.cc\
 | 
			
		||||
# 	BtNotInterestedMessageTest.cc\
 | 
			
		||||
# 	BtPieceMessageTest.cc\
 | 
			
		||||
# 	BtPortMessageTest.cc\
 | 
			
		||||
# 	BtRejectMessageTest.cc\
 | 
			
		||||
# 	BtRequestMessageTest.cc\
 | 
			
		||||
# 	BtSuggestPieceMessageTest.cc\
 | 
			
		||||
# 	BtUnchokeMessageTest.cc\
 | 
			
		||||
# 	BtHandshakeMessageTest.cc\
 | 
			
		||||
# 	MockBtMessageDispatcher.h\
 | 
			
		||||
# 	FixedNumberRandomizer.h\
 | 
			
		||||
# 	MockBtMessageFactory.h\
 | 
			
		||||
# 	MockBtMessage.h\
 | 
			
		||||
# 	ConsoleFileAllocationMonitorTest.cc\
 | 
			
		||||
# 	ChunkChecksumValidatorTest.cc
 | 
			
		||||
#aria2c_CXXFLAGS = ${CPPUNIT_CFLAGS} -I../src -I../lib -Wall -D_FILE_OFFSET_BITS=64
 | 
			
		||||
#aria2c_LDFLAGS = ${CPPUNIT_LIBS}
 | 
			
		||||
aria2c_LDADD = ../src/libaria2c.a\
 | 
			
		||||
| 
						 | 
				
			
			@ -390,68 +351,7 @@ distclean-compile:
 | 
			
		|||
	-rm -f *.tab.c
 | 
			
		||||
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AllTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AnnounceListTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Base64Test.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BitfieldManTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtAllowedFastMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtBitfieldMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtCancelMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtChokeMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHandshakeMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHaveAllMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHaveMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHaveNoneMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtInterestedMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtKeepAliveMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtNotInterestedMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtPieceMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtPortMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtRegistryTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtRejectMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtRequestMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtSuggestPieceMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtUnchokeMessageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ChunkChecksumValidatorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ChunkedEncodingTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConsoleFileAllocationMonitorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CookieBoxTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DataTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtAnnounceTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtContextTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtMessageDispatcherTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtRequestFactoryTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultDiskWriterTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultPeerListProcessorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultPeerStorageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultPieceStorageTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DictionaryTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FeatureConfigTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FileTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GlowFileAllocatorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HttpHeaderTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HttpRequestTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HttpResponseTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetaFileUtilTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkEntryTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkerTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiDiskAdaptorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetrcTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OptionHandlerTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OptionTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PeerMessageUtilTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PeerTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RequestTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SegmentManTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ShaVisitorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ShareRatioSeedCriteriaTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SharedHandleTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SingletonHolderTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SpeedCalcTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TimeSeedCriteriaTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TrackerWatcherCommandTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UtilTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Xml2MetalinkProcessorTest.Po@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RequestFactoryTest.Po@am__quote@
 | 
			
		||||
 | 
			
		||||
.cc.o:
 | 
			
		||||
@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
#include "NetrcAuthResolver.h"
 | 
			
		||||
#include "prefs.h"
 | 
			
		||||
#include <cppunit/extensions/HelperMacros.h>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
class NetrcAuthResolverTest : public CppUnit::TestFixture {
 | 
			
		||||
 | 
			
		||||
  CPPUNIT_TEST_SUITE(NetrcAuthResolverTest);
 | 
			
		||||
  CPPUNIT_TEST(testResolveAuthConfig_without_userDefined);
 | 
			
		||||
  CPPUNIT_TEST(testResolveAuthConfig_with_userDefined);
 | 
			
		||||
  CPPUNIT_TEST_SUITE_END();
 | 
			
		||||
private:
 | 
			
		||||
  NetrcHandle _netrc;
 | 
			
		||||
  //SharedHandle<Option> _option;
 | 
			
		||||
  NetrcAuthResolverHandle _resolver;
 | 
			
		||||
public:
 | 
			
		||||
  void setUp()
 | 
			
		||||
  {
 | 
			
		||||
    _netrc = new Netrc();
 | 
			
		||||
    _netrc->addAuthenticator(new Authenticator("localhost", "name", "passwd", "account"));
 | 
			
		||||
    _netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpasswd", "defaultaccount"));
 | 
			
		||||
 | 
			
		||||
    //_option = new Option();
 | 
			
		||||
    _resolver = new NetrcAuthResolver();
 | 
			
		||||
    _resolver->setNetrc(_netrc);
 | 
			
		||||
    _resolver->setDefaultAuthConfig(new AuthConfig("foo", "bar"));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void testResolveAuthConfig_without_userDefined();
 | 
			
		||||
  void testResolveAuthConfig_with_userDefined();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CPPUNIT_TEST_SUITE_REGISTRATION( NetrcAuthResolverTest );
 | 
			
		||||
 | 
			
		||||
void NetrcAuthResolverTest::testResolveAuthConfig_without_userDefined()
 | 
			
		||||
{
 | 
			
		||||
  AuthConfigHandle authConfig = _resolver->resolveAuthConfig("localhost");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("name:passwd"), authConfig->getAuthText());
 | 
			
		||||
 | 
			
		||||
  authConfig = _resolver->resolveAuthConfig("mymachine");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("default:defaultpasswd"), authConfig->getAuthText());
 | 
			
		||||
 | 
			
		||||
  _resolver->setNetrc(0);
 | 
			
		||||
  authConfig = _resolver->resolveAuthConfig("localhost");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"), authConfig->getAuthText());
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NetrcAuthResolverTest::testResolveAuthConfig_with_userDefined()
 | 
			
		||||
{
 | 
			
		||||
  _resolver->setUserDefinedAuthConfig(new AuthConfig("myname", "mypasswd"));
 | 
			
		||||
  AuthConfigHandle authConfig = _resolver->resolveAuthConfig("localhost");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("myname:mypasswd"), authConfig->getAuthText());
 | 
			
		||||
 | 
			
		||||
  authConfig = _resolver->resolveAuthConfig("mymachine");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("myname:mypasswd"), authConfig->getAuthText());
 | 
			
		||||
 | 
			
		||||
  _resolver->setNetrc(0);
 | 
			
		||||
  authConfig = _resolver->resolveAuthConfig("mymachine");
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("myname:mypasswd"), authConfig->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,128 @@
 | 
			
		|||
#include "RequestFactory.h"
 | 
			
		||||
#include "prefs.h"
 | 
			
		||||
#include "NetrcAuthResolver.h"
 | 
			
		||||
#include "DefaultAuthResolver.h"
 | 
			
		||||
#include <cppunit/extensions/HelperMacros.h>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
class RequestFactoryTest : public CppUnit::TestFixture {
 | 
			
		||||
 | 
			
		||||
  CPPUNIT_TEST_SUITE(RequestFactoryTest);
 | 
			
		||||
  CPPUNIT_TEST(testCreateHttpAuthResolver_netrc);
 | 
			
		||||
  CPPUNIT_TEST(testCreateHttpAuthResolver_def);
 | 
			
		||||
  CPPUNIT_TEST(testCreateFtpAuthResolver_netrc);
 | 
			
		||||
  CPPUNIT_TEST(testCreateFtpAuthResolver_def);
 | 
			
		||||
  CPPUNIT_TEST(testCreateHttpProxyAuthResolver_netrc);
 | 
			
		||||
  CPPUNIT_TEST(testCreateHttpProxyAuthResolver_def);
 | 
			
		||||
  CPPUNIT_TEST_SUITE_END();
 | 
			
		||||
private:
 | 
			
		||||
  NetrcHandle _netrc;
 | 
			
		||||
  SharedHandle<Option> _option;
 | 
			
		||||
  RequestFactoryHandle _factory;
 | 
			
		||||
public:
 | 
			
		||||
  void setUp()
 | 
			
		||||
  {
 | 
			
		||||
    _netrc = new Netrc();
 | 
			
		||||
    _option = new Option();
 | 
			
		||||
    _factory = new RequestFactory();
 | 
			
		||||
    _factory->setNetrc(_netrc);
 | 
			
		||||
    _factory->setOption(_option.get());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void testCreateHttpAuthResolver_netrc();
 | 
			
		||||
  void testCreateHttpAuthResolver_def();
 | 
			
		||||
  void testCreateFtpAuthResolver_netrc();
 | 
			
		||||
  void testCreateFtpAuthResolver_def();
 | 
			
		||||
  void testCreateHttpProxyAuthResolver_netrc();
 | 
			
		||||
  void testCreateHttpProxyAuthResolver_def();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CPPUNIT_TEST_SUITE_REGISTRATION( RequestFactoryTest );
 | 
			
		||||
 | 
			
		||||
void RequestFactoryTest::testCreateHttpAuthResolver_netrc()
 | 
			
		||||
{
 | 
			
		||||
  _option->put(PREF_NO_NETRC, V_FALSE);
 | 
			
		||||
  _option->put(PREF_HTTP_USER, "foo");
 | 
			
		||||
  _option->put(PREF_HTTP_PASSWD, "bar");
 | 
			
		||||
  DefaultAuthResolverHandle defResolver = _factory->createHttpAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver.isNull());  
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"),
 | 
			
		||||
		       defResolver->getUserDefinedAuthConfig()->getAuthText());
 | 
			
		||||
  /*
 | 
			
		||||
  NetrcAuthResolverHandle netrcResolver = _factory->createHttpAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!netrcResolver.isNull());
 | 
			
		||||
  CPPUNIT_ASSERT(!netrcResolver->getNetrc().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT(netrcResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RequestFactoryTest::testCreateHttpAuthResolver_def()
 | 
			
		||||
{
 | 
			
		||||
  _option->put(PREF_NO_NETRC, V_TRUE);
 | 
			
		||||
  _option->put(PREF_HTTP_USER, "foo");
 | 
			
		||||
  _option->put(PREF_HTTP_PASSWD, "bar");
 | 
			
		||||
  DefaultAuthResolverHandle defResolver = _factory->createHttpAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver.isNull());  
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"),
 | 
			
		||||
		       defResolver->getUserDefinedAuthConfig()->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RequestFactoryTest::testCreateFtpAuthResolver_netrc()
 | 
			
		||||
{
 | 
			
		||||
  _option->put(PREF_NO_NETRC, V_FALSE);
 | 
			
		||||
  NetrcAuthResolverHandle netrcResolver = _factory->createFtpAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!netrcResolver.isNull());
 | 
			
		||||
  CPPUNIT_ASSERT(!netrcResolver->getNetrc().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT(netrcResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("anonymous:ARIA2USER@"),
 | 
			
		||||
		       netrcResolver->getDefaultAuthConfig()->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RequestFactoryTest::testCreateFtpAuthResolver_def()
 | 
			
		||||
{
 | 
			
		||||
  _option->put(PREF_NO_NETRC, V_TRUE);
 | 
			
		||||
  _option->put(PREF_FTP_USER, "foo");
 | 
			
		||||
  _option->put(PREF_FTP_PASSWD, "bar");
 | 
			
		||||
  DefaultAuthResolverHandle defResolver = _factory->createFtpAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver.isNull());  
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"),
 | 
			
		||||
		       defResolver->getUserDefinedAuthConfig()->getAuthText());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("anonymous:ARIA2USER@"),
 | 
			
		||||
		       defResolver->getDefaultAuthConfig()->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RequestFactoryTest::testCreateHttpProxyAuthResolver_netrc()
 | 
			
		||||
{
 | 
			
		||||
  _option->put(PREF_NO_NETRC, V_FALSE);
 | 
			
		||||
  _option->put(PREF_HTTP_PROXY_USER, "foo");
 | 
			
		||||
  _option->put(PREF_HTTP_PROXY_PASSWD, "bar");
 | 
			
		||||
  DefaultAuthResolverHandle defResolver = _factory->createHttpProxyAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver.isNull());  
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"),
 | 
			
		||||
		       defResolver->getUserDefinedAuthConfig()->getAuthText());
 | 
			
		||||
  /*
 | 
			
		||||
  NetrcAuthResolverHandle netrcResolver = _factory->createHttpProxyAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!netrcResolver.isNull());
 | 
			
		||||
  CPPUNIT_ASSERT(!netrcResolver->getNetrc().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT(netrcResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RequestFactoryTest::testCreateHttpProxyAuthResolver_def()
 | 
			
		||||
{
 | 
			
		||||
  _option->put(PREF_NO_NETRC, V_TRUE);
 | 
			
		||||
  _option->put(PREF_HTTP_PROXY_USER, "foo");
 | 
			
		||||
  _option->put(PREF_HTTP_PROXY_PASSWD, "bar");
 | 
			
		||||
  DefaultAuthResolverHandle defResolver = _factory->createHttpProxyAuthResolver();
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver.isNull());  
 | 
			
		||||
  CPPUNIT_ASSERT(!defResolver->getUserDefinedAuthConfig().isNull());
 | 
			
		||||
  CPPUNIT_ASSERT_EQUAL(string("foo:bar"),
 | 
			
		||||
		       defResolver->getUserDefinedAuthConfig()->getAuthText());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue