示例#1
0
 private void CheckFileProperties(string[] filePathList, BencodedInteger fileLength)
 {
     if (filePathList == null || fileLength == null)
     {
         throw new TorrentException("Invalid metadata, \'path\'/\'length\' not of expected type.");
     }
 }
示例#2
0
 private void CheckFileLength(BencodedInteger fileLength)
 {
     if (fileLength == null)
     {
         throw new TorrentException("Invalid metadata, \'length\' not of expected type.");
     }
 }
示例#3
0
        private List <byte[]> GetRawChecksums(BencodedDictionary info, BencodedInteger pieceLength)
        {
            var rawChecksums = (info["pieces"] as BencodedString).Select(c => (byte)c).ToArray();

            if (pieceLength == null || rawChecksums == null || rawChecksums.Length % ChecksumSize != 0)
            {
                throw new TorrentException(
                          "Invalid metadata, \'piece length\'/\'pieces\' not of expected type, or invalid length of \'pieces\'.");
            }
            var slicedChecksums = rawChecksums.Batch(ChecksumSize).Select(e => e.ToArray());

            return(slicedChecksums.ToList());
        }