mirror of https://github.com/aria2/aria2
				
				
				
			2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use global option for DHTSetup. * src/DHTSetup.cc * src/DHTSetup.h * src/RequestGroup.ccpull/1/head
							parent
							
								
									dc059bfc29
								
							
						
					
					
						commit
						542a06de6d
					
				| 
						 | 
				
			
			@ -1,3 +1,10 @@
 | 
			
		|||
2010-03-12  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 | 
			
		||||
 | 
			
		||||
	Use global option for DHTSetup.
 | 
			
		||||
	* src/DHTSetup.cc
 | 
			
		||||
	* src/DHTSetup.h
 | 
			
		||||
	* src/RequestGroup.cc
 | 
			
		||||
 | 
			
		||||
2010-03-12  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 | 
			
		||||
 | 
			
		||||
	Added bt-enable-lpt, reuse-uri
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,8 +81,7 @@ DHTSetup::DHTSetup():_logger(LogFactory::getInstance()) {}
 | 
			
		|||
 | 
			
		||||
DHTSetup::~DHTSetup() {}
 | 
			
		||||
 | 
			
		||||
void DHTSetup::setup(std::vector<Command*>& commands,
 | 
			
		||||
                     DownloadEngine* e, const Option* option)
 | 
			
		||||
void DHTSetup::setup(std::vector<Command*>& commands, DownloadEngine* e)
 | 
			
		||||
{
 | 
			
		||||
  if(_initialized) {
 | 
			
		||||
    return;
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +93,7 @@ void DHTSetup::setup(std::vector<Command*>& commands,
 | 
			
		|||
    SharedHandle<DHTNode> localNode;
 | 
			
		||||
 | 
			
		||||
    DHTRoutingTableDeserializer deserializer;
 | 
			
		||||
    std::string dhtFile = option->get(PREF_DHT_FILE_PATH);
 | 
			
		||||
    std::string dhtFile = e->option->get(PREF_DHT_FILE_PATH);
 | 
			
		||||
    try {
 | 
			
		||||
      std::ifstream in(dhtFile.c_str(), std::ios::binary);
 | 
			
		||||
      if(!in) {
 | 
			
		||||
| 
						 | 
				
			
			@ -112,7 +111,8 @@ void DHTSetup::setup(std::vector<Command*>& commands,
 | 
			
		|||
 | 
			
		||||
    SharedHandle<DHTConnectionImpl> connection(new DHTConnectionImpl());
 | 
			
		||||
    {
 | 
			
		||||
      IntSequence seq = util::parseIntRange(option->get(PREF_DHT_LISTEN_PORT));
 | 
			
		||||
      IntSequence seq =
 | 
			
		||||
        util::parseIntRange(e->option->get(PREF_DHT_LISTEN_PORT));
 | 
			
		||||
      uint16_t port;
 | 
			
		||||
      if(!connection->bind(port, seq)) {
 | 
			
		||||
        throw DL_ABORT_EX("Error occurred while binding port for DHT");
 | 
			
		||||
| 
						 | 
				
			
			@ -195,10 +195,11 @@ void DHTSetup::setup(std::vector<Command*>& commands,
 | 
			
		|||
      taskQueue->addPeriodicTask1(task);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(!option->get(PREF_DHT_ENTRY_POINT_HOST).empty()) {
 | 
			
		||||
    if(!e->option->get(PREF_DHT_ENTRY_POINT_HOST).empty()) {
 | 
			
		||||
      {
 | 
			
		||||
        std::pair<std::string, uint16_t> addr(option->get(PREF_DHT_ENTRY_POINT_HOST),
 | 
			
		||||
                                              option->getAsInt(PREF_DHT_ENTRY_POINT_PORT));
 | 
			
		||||
        std::pair<std::string, uint16_t> addr
 | 
			
		||||
          (e->option->get(PREF_DHT_ENTRY_POINT_HOST),
 | 
			
		||||
           e->option->getAsInt(PREF_DHT_ENTRY_POINT_PORT));
 | 
			
		||||
        std::vector<std::pair<std::string, uint16_t> > entryPoints;
 | 
			
		||||
        entryPoints.push_back(addr);
 | 
			
		||||
        DHTEntryPointNameResolveCommand* command =
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,6 @@
 | 
			
		|||
 | 
			
		||||
namespace aria2 {
 | 
			
		||||
class Logger;
 | 
			
		||||
class Option;
 | 
			
		||||
class DownloadEngine;
 | 
			
		||||
class Command;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -55,8 +54,7 @@ public:
 | 
			
		|||
 | 
			
		||||
  ~DHTSetup();
 | 
			
		||||
 | 
			
		||||
  void setup(std::vector<Command*>& commands,
 | 
			
		||||
             DownloadEngine* e, const Option* option);
 | 
			
		||||
  void setup(std::vector<Command*>& commands, DownloadEngine* e);
 | 
			
		||||
 | 
			
		||||
  static bool initialized();
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -274,7 +274,7 @@ void RequestGroup::createInitialCommand
 | 
			
		|||
      if(metadataGetMode) {
 | 
			
		||||
        if(_option->getAsBool(PREF_ENABLE_DHT)) {
 | 
			
		||||
          std::vector<Command*> dhtCommands;
 | 
			
		||||
          DHTSetup().setup(dhtCommands, e, _option.get());
 | 
			
		||||
          DHTSetup().setup(dhtCommands, e);
 | 
			
		||||
          e->addCommand(dhtCommands);
 | 
			
		||||
        } else {
 | 
			
		||||
          _logger->notice("For BitTorrent Magnet URI, enabling DHT is strongly"
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +335,7 @@ void RequestGroup::createInitialCommand
 | 
			
		|||
      if(torrentAttrs[bittorrent::PRIVATE].i() == 0 &&
 | 
			
		||||
         _option->getAsBool(PREF_ENABLE_DHT)) {
 | 
			
		||||
        std::vector<Command*> dhtCommands;
 | 
			
		||||
        DHTSetup().setup(dhtCommands, e, _option.get());
 | 
			
		||||
        DHTSetup().setup(dhtCommands, e);
 | 
			
		||||
        e->addCommand(dhtCommands);
 | 
			
		||||
        if(!torrentAttrs[bittorrent::NODES].empty() && DHTSetup::initialized()) {
 | 
			
		||||
          std::vector<std::pair<std::string, uint16_t> > entryPoints;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue