Esempio n. 1
0
 def create_ohlist_wrong_no_hashes(self,chunkid):
     index,begin,length = chunkid
     ohlist = [ (0,'#' * 20),(1,'$' * 20)]  # should contain 3 for file2.wmv: own, sibling and root
     bohlist = bencode(ohlist)
     chunk = '*' * (2 ** 14)
     payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
     return EXTEND+HASHPIECE+payload
Esempio n. 2
0
 def create_bad_chunk(self,chunkid):
     index,begin,length = chunkid
     ohlist = self.tree.get_hashes_for_piece(index)
     bohlist = bencode(ohlist)
     chunk = '*' * length
     payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
     return EXTEND+HASHPIECE+payload
Esempio n. 3
0
 def create_not_hashpiece(self,chunkid):
     index,begin,length = chunkid
     ohlist = []
     bohlist = bencode(ohlist)
     chunk = self.read_chunk(index,begin,length)
     payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
     return EXTEND+chr(231)+payload
Esempio n. 4
0
 def create_ohlist_wrong_bad_hash(self,chunkid):
     index,begin,length = chunkid
     ohlist = self.tree.get_hashes_for_piece(index)
     ohlist[1][1] = '$' * 20
     bohlist = bencode(ohlist)
     chunk = self.read_chunk(index,begin,length)
     payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
     return EXTEND+HASHPIECE+payload
Esempio n. 5
0
 def create_ohlist_wrong_no_root_hash(self,chunkid):
     index,begin,length = chunkid
     ohlist = self.tree.get_hashes_for_piece(index)
     newohlist = []
     # Remove root hash
     for oh in ohlist:
         if oh[0] != 0:
             newohlist.append(oh)
     ohlist = newohlist
     bohlist = bencode(ohlist)
     chunk = self.read_chunk(index,begin,length)
     payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
     return EXTEND+HASHPIECE+payload
Esempio n. 6
0
 def write_extend_message(self, metadata_message_id, payload):
     assert isinstance(payload, dict), "PAYLOAD has invalid type: %s" % type(payload)
     assert isinstance(metadata_message_id, str), "METADATA_MESSAGE_ID has invalid type: %s" % type(metadata_message_id)
     assert len(metadata_message_id) == 1, "METADATA_MESSAGE_ID has invalid length: %d" % len(metadata_message_id)
     if DEBUG: print >> sys.stderr, time.asctime(),'-', self._address, "MiniBitTorrent.write_extend_message()"
     payload = bencode(payload)
     self._socket.write("".join((tobinary(2 + len(payload)), # msg len
                                 EXTEND,                     # msg id
                                 metadata_message_id,        # extend msg id
                                 payload)))                  # bencoded msg
Esempio n. 7
0
    def create_good_hashpiece(self,oldstyle,chunkid):
        index, begin, length = chunkid
        if begin == 0:
            ohlist = self.tree.get_hashes_for_piece(index)
        else:
            ohlist = []

        chunk = self.read_chunk(index,begin,length)
        bohlist = bencode(ohlist)
        
        print >>sys.stderr,"test: create_good_hashpiece:",index,begin,length,"==len",len(chunk)

        payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
        if oldstyle:
            msg = HASHPIECE+payload
        else:
            # Offical: use the msg ID he defined in his handshake
            msg = EXTEND+HASHPIECE+payload
        return msg
Esempio n. 8
0
 def send_message(self,message):
     self.last_use = time()
     s = tobinary(len(message))+message
     if DEBUG:
         print >> sys.stderr,"dlbconn: Sending message",len(message)
     self.write(s)
Esempio n. 9
0
 def send_message(self, message):
     self.last_use = time()
     s = tobinary(len(message)) + message
     if DEBUG:
         print >> sys.stderr, "dlbconn: Sending message", len(message)
     self.write(s)
Esempio n. 10
0
 def create_ohlist_not_bdecodable(self,chunkid):
     index,begin,length = chunkid
     bohlist = 'bla'
     chunk = '*' * (2 ** 14)
     payload = tobinary(index)+tobinary(begin)+tobinary(len(bohlist))+bohlist+chunk
     return EXTEND+HASHPIECE+payload
Esempio n. 11
0
 def create_not_len_bohlist(self,chunkid):
     index,begin,length = chunkid
     payload = tobinary(index)+tobinary(begin)+'bla'
     return EXTEND+HASHPIECE+payload
Esempio n. 12
0
 def create_request(self,chunkid):
     index,begin,length = chunkid
     return REQUEST+tobinary(index)+tobinary(begin)+tobinary(length)