From a6b7ef5f0764e07b54bd638ba0ee73dc7ff83e6f Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 22 Jul 2011 00:41:45 +0900 Subject: Eliminated static variable from LpdReceiveMessageCommand. BtRegistry now holds LpdMessageReceiver. --- src/BtSetup.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/BtSetup.cc') diff --git a/src/BtSetup.cc b/src/BtSetup.cc index 65ede7e4..7c696670 100644 --- a/src/BtSetup.cc +++ b/src/BtSetup.cc @@ -217,7 +217,7 @@ void BtSetup::setup(std::vector& commands, if(option->getAsBool(PREF_BT_ENABLE_LPD) && btReg->getTcpPort() && (metadataGetMode || !torrentAttrs->privateTorrent)) { - if(LpdReceiveMessageCommand::getNumInstance() == 0) { + if(!btReg->getLpdMessageReceiver()) { A2_LOG_INFO("Initializing LpdMessageReceiver."); SharedHandle receiver (new LpdMessageReceiver(LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT)); @@ -242,30 +242,30 @@ void BtSetup::setup(std::vector& commands, } } if(initialized) { + btReg->setLpdMessageReceiver(receiver); A2_LOG_INFO(fmt("LpdMessageReceiver initialized. multicastAddr=%s:%u," " localAddr=%s", LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT, receiver->getLocalAddress().c_str())); LpdReceiveMessageCommand* cmd = - LpdReceiveMessageCommand::getInstance(e, receiver); + new LpdReceiveMessageCommand(e->newCUID(), receiver, e); e->addCommand(cmd); } else { A2_LOG_INFO("LpdMessageReceiver not initialized."); } } - if(LpdReceiveMessageCommand::getNumInstance()) { + if(btReg->getLpdMessageReceiver()) { const unsigned char* infoHash = bittorrent::getInfoHash(requestGroup->getDownloadContext()); - SharedHandle receiver = - LpdReceiveMessageCommand::getInstance()->getLpdMessageReceiver(); A2_LOG_INFO("Initializing LpdMessageDispatcher."); SharedHandle dispatcher (new LpdMessageDispatcher (std::string(&infoHash[0], &infoHash[INFO_HASH_LENGTH]), btReg->getTcpPort(), LPD_MULTICAST_ADDR, LPD_MULTICAST_PORT)); - if(dispatcher->init(receiver->getLocalAddress(), /*ttl*/1, /*loop*/0)) { - A2_LOG_INFO("LpdMessageDispatcher initialized."); + if(dispatcher->init(btReg->getLpdMessageReceiver()->getLocalAddress(), + /*ttl*/1, /*loop*/0)) { + A2_LOG_INFO("LpdMessageDispatcher initialized."); LpdDispatchMessageCommand* cmd = new LpdDispatchMessageCommand(e->newCUID(), dispatcher, e); cmd->setBtRuntime(btRuntime); -- cgit