Пример #1
0
 def connectionMade(self):
     if self.factory.dead_peer is None:
         update_msg = bake(key=LEADER,
                           leader=(self.factory.leader_host,
                                   self.factory.leader_port))
     else:
         update_msg = bake(PEER_DEAD, dead_uuid=self.factory.dead_peer)
     self.transport.write(str(update_msg))
     self.transport.loseConnection()
Пример #2
0
 def connectionMade(self):
     # print '@filemonitor protocol'
     # print 'event {0}'.format(self.factory.event)
     updated_msg = bake(self.factory.event,
                        shared_folder=self.factory.updates['shared_folder'],
                        ADD=self.factory.updates['ADD'],
                        DEL=self.factory.updates['DEL'])
     self.transport.write(updated_msg)
     self.transport.loseConnection()
Пример #3
0
 def request_for_pieces(self, bootstrap=None):
     piece_range_data = [
         self.factory.start_piece, self.factory.blocks_per_piece,
         self.factory.last_piece, self.factory.blocks_per_last_piece
     ]
     request_chunk_msg = bake(
         REQ_CHUNK,
         piece_data=piece_range_data)  # have to request for a chunk range
     self.sendLine(request_chunk_msg)
Пример #4
0
 def verify_pieces(self, data):
     self.piece_hashes = data['piecehashes']
     hasher = hashlib.md5()
     hasher.update(self.piece_hashes)
     if hasher.hexdigest() == self.factory.file_root_hash:
         new_file_in_resume_table = yield fileHashUtils.check_hash_present_in_resume(
             self.factory.file_handler.name, self.factory.dbpool)
         if not new_file_in_resume_table:
             # add the file properties to the resume table
             file_entry = (self.factory.file_handler.name, 0,
                           self.factory.file_size,
                           self.factory.file_checksum, self.piece_hashes,
                           self.factory.file_root_hash, False)
             yield fileHashUtils.add_new_file_entry_resume(
                 file_entry, self.factory.dbpool)
         load_file_msg = bake(INIT_FILE_REQ,
                              filehash=self.factory.file_checksum)
         self.sendLine(load_file_msg)
Пример #5
0
 def bake_client_message(self, msg):
     msg_to_client = bake(FILE_TO_BE_DOWNLOADED, message=msg)
     self.factory.client_connection.sendLine(msg_to_client)
     self.factory.client_connection.transport.loseConnection()
Пример #6
0
 def connectionMade(self):
     get_file_identity_msg = bake(GET_HASH_IDENTITY,
                                  checksum=self.factory.checksum)
     self.sendLine(get_file_identity_msg)
Пример #7
0
 def connectionMade(self):
     initiate_file_transfer_req_msg = bake(
         INTERESTED, filehash=self.factory.file_checksum)
     self.sendLine(initiate_file_transfer_req_msg)