diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-09-26 22:02:48 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-09-26 22:02:48 +0900 |
| commit | c13dc166dec73d93dbc05d5cbb53e51dac5d4dc8 (patch) | |
| tree | 9934c2d6c6693315c4f62f13b3525da62cf7de0e /src/DefaultExtensionMessageFactory.cc | |
| parent | f0000a87544fde9beb3d38fa979f02ce001c7efe (diff) | |
Rewritten ExtensionMessageRegistry
Diffstat (limited to 'src/DefaultExtensionMessageFactory.cc')
| -rw-r--r-- | src/DefaultExtensionMessageFactory.cc | 13 |
1 files changed, 8 insertions, 5 deletions
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 <cstring> + #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)); } } } |
