summaryrefslogtreecommitdiff
path: root/src/UTMetadataRequestExtensionMessage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/UTMetadataRequestExtensionMessage.cc')
-rw-r--r--src/UTMetadataRequestExtensionMessage.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/UTMetadataRequestExtensionMessage.cc b/src/UTMetadataRequestExtensionMessage.cc
index e9e2e1f8..3bbaf4ac 100644
--- a/src/UTMetadataRequestExtensionMessage.cc
+++ b/src/UTMetadataRequestExtensionMessage.cc
@@ -70,27 +70,25 @@ std::string UTMetadataRequestExtensionMessage::toString() const
void UTMetadataRequestExtensionMessage::doReceivedAction()
{
- const BDE& attrs = _dctx->getAttribute(bittorrent::BITTORRENT);
+ SharedHandle<TorrentAttribute> attrs = bittorrent::getTorrentAttrs(_dctx);
uint8_t id = _peer->getExtensionMessageID("ut_metadata");
- if(!attrs.containsKey(bittorrent::METADATA)) {
+ if(attrs->metadata.empty()) {
SharedHandle<UTMetadataRejectExtensionMessage> m
(new UTMetadataRejectExtensionMessage(id));
m->setIndex(getIndex());
SharedHandle<BtMessage> msg = _messageFactory->createBtExtendedMessage(m);
_dispatcher->addMessageToQueue(msg);
- }else if(getIndex()*METADATA_PIECE_SIZE <
- (size_t)attrs[bittorrent::METADATA_SIZE].i()){
+ }else if(getIndex()*METADATA_PIECE_SIZE < attrs->metadataSize) {
SharedHandle<UTMetadataDataExtensionMessage> m
(new UTMetadataDataExtensionMessage(id));
m->setIndex(getIndex());
- m->setTotalSize(attrs[bittorrent::METADATA_SIZE].i());
- const BDE& metadata = attrs[bittorrent::METADATA];
+ m->setTotalSize(attrs->metadataSize);
std::string::const_iterator begin =
- metadata.s().begin()+getIndex()*METADATA_PIECE_SIZE;
+ attrs->metadata.begin()+getIndex()*METADATA_PIECE_SIZE;
std::string::const_iterator end =
- (getIndex()+1)*METADATA_PIECE_SIZE <= metadata.s().size()?
- metadata.s().begin()+(getIndex()+1)*METADATA_PIECE_SIZE:
- metadata.s().end();
+ (getIndex()+1)*METADATA_PIECE_SIZE <= attrs->metadata.size()?
+ attrs->metadata.begin()+(getIndex()+1)*METADATA_PIECE_SIZE:
+ attrs->metadata.end();
m->setData(std::string(begin, end));
SharedHandle<BtMessage> msg = _messageFactory->createBtExtendedMessage(m);
_dispatcher->addMessageToQueue(msg);