From c13dc166dec73d93dbc05d5cbb53e51dac5d4dc8 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 26 Sep 2012 22:02:48 +0900 Subject: Rewritten ExtensionMessageRegistry --- src/DefaultExtensionMessageFactory.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/DefaultExtensionMessageFactory.cc') diff --git a/src/DefaultExtensionMessageFactory.cc b/src/DefaultExtensionMessageFactory.cc index a86765c0..c84c6789 100644 --- a/src/DefaultExtensionMessageFactory.cc +++ b/src/DefaultExtensionMessageFactory.cc @@ -33,6 +33,9 @@ */ /* copyright --> */ #include "DefaultExtensionMessageFactory.h" + +#include + #include "Peer.h" #include "DlAbortEx.h" #include "HandshakeExtensionMessage.h" @@ -81,19 +84,19 @@ DefaultExtensionMessageFactory::createMessage(const unsigned char* data, size_t m->setDownloadContext(dctx_); return m; } else { - std::string extensionName = registry_->getExtensionName(extensionMessageID); - if(extensionName.empty()) { + const char* extensionName = registry_->getExtensionName(extensionMessageID); + if(!extensionName) { throw DL_ABORT_EX (fmt("No extension registered for extended message ID %u", extensionMessageID)); } - if(extensionName == "ut_pex") { + if(strcmp(extensionName, "ut_pex") == 0) { // uTorrent compatible Peer-Exchange UTPexExtensionMessageHandle m = UTPexExtensionMessage::create(data, length); m->setPeerStorage(peerStorage_); return m; - } else if(extensionName == "ut_metadata") { + } else if(strcmp(extensionName, "ut_metadata") == 0) { if(length == 0) { throw DL_ABORT_EX (fmt(MSG_TOO_SMALL_PAYLOAD_SIZE, @@ -160,7 +163,7 @@ DefaultExtensionMessageFactory::createMessage(const unsigned char* data, size_t throw DL_ABORT_EX (fmt("Unsupported extension message received." " extensionMessageID=%u, extensionName=%s", - extensionMessageID, extensionName.c_str())); + extensionMessageID, extensionName)); } } } -- cgit