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()
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()
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)
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)
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()
def connectionMade(self): get_file_identity_msg = bake(GET_HASH_IDENTITY, checksum=self.factory.checksum) self.sendLine(get_file_identity_msg)
def connectionMade(self): initiate_file_transfer_req_msg = bake( INTERESTED, filehash=self.factory.file_checksum) self.sendLine(initiate_file_transfer_req_msg)