浏览代码

2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Fixed the bug that connection is always dropped if handshake
	message in extension protocol don't have metadata_size.
	src/HandshakeExtensionMessage.cc
	* src/HandshakeExtensionMessage.cc
Tatsuhiro Tsujikawa 16 年之前
父节点
当前提交
c44cf31df7
共有 2 个文件被更改,包括 9 次插入2 次删除
  1. 7 0
      ChangeLog
  2. 2 2
      src/HandshakeExtensionMessage.cc

+ 7 - 0
ChangeLog

@@ -1,3 +1,10 @@
+2009-12-05  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Fixed the bug that connection is always dropped if handshake
+	message in extension protocol don't have metadata_size.
+	src/HandshakeExtensionMessage.cc
+	* src/HandshakeExtensionMessage.cc
+
 2009-12-05  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Updated "URI, MAGNET, TORRENT_FILE, METALINK_FILE" section.  Added

+ 2 - 2
src/HandshakeExtensionMessage.cc

@@ -113,7 +113,7 @@ void HandshakeExtensionMessage::doReceivedAction()
   BDE& attrs = _dctx->getAttribute(bittorrent::BITTORRENT);
   if(!attrs.containsKey(bittorrent::METADATA) &&
      !_peer->getExtensionMessageID("ut_metadata")) {
-    // TODO In metadataGetMode, if peer dont' support metadata
+    // TODO In metadataGetMode, if peer don't support metadata
     // transfer, should we drop connection? There is a possibility
     // that peer can still tell us peers using PEX.
     throw DL_ABORT_EX("Peer doesn't support ut_metadata extension. Goodbye.");
@@ -133,7 +133,7 @@ void HandshakeExtensionMessage::doReceivedAction()
 	_dctx->getOwnerRequestGroup()->getPieceStorage();
       pieceStorage->setEndGamePieceNum(0);
     }
-  } else {
+  } else if(!attrs.containsKey(bittorrent::METADATA)) {
     throw DL_ABORT_EX("Peer didn't provide metadata_size."
 		      " It seems that it doesn't have whole metadata.");
   }