def __init__(self, torrent_hash, num_pieces, coordinator_permid, coordinator = None): self.torrent_hash = torrent_hash self.coordinator = coordinator self.coordinator_permid = {} if coordinator_permid is not None and coordinator_permid == '': self.coordinator_permid[None] = [None, -1] else: peerdb = PeerDBHandler.getInstance() peer = peerdb.getPeer(coordinator_permid) if peer is not None: ip = peer['ip'] port = peer['port'] self.coordinator_permid[coordinator_permid] = [ip, port] else: self.coordinator_permid[None] = [None, -1] self.coordinator_ip = None self.coordinator_port = None self.overlay_bridge = OverlayThreadingBridge.getInstance() self.reserved_pieces = [False] * num_pieces self.ignored_pieces = [False] * num_pieces self.distr_reserved_pieces = [False] * num_pieces self.requested_pieces = deque() self.requested_pieces_lock = Lock() self.counter = 0 self.completed = False self.marker = [True] * num_pieces self.round = 0 self.encoder = None self.continuations = [] self.outstanding = None self.last_req_time = 0 self.received_challenges = {} self.downloader = None
def got_ask_for_help(self, permid, infohash, challenge): if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: will answer to the help request from', show_permid_short(permid) if self.can_help(infohash): if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: received a help request, going to send join_helpers' self.send_join_helpers(permid) self.received_challenges[permid] = challenge peerdb = PeerDBHandler.getInstance() peer = peerdb.getPeer(permid) if peer is not None: ip = peer['ip'] port = peer['port'] if permid not in self.coordinator_permid.keys(): self.coordinator_permid[permid] = [ip, port] if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: sending haves to all coordinators' self.start_data_connection() if self.downloader is not None: self.downloader.aggregate_and_send_haves() else: if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: received a help request, going to send resign_as_helper' self.send_resign_as_helper(permid) return False return True
def __init__(self, torrent_hash, num_pieces, coordinator_permid, coordinator=None): self.torrent_hash = torrent_hash self.coordinator = coordinator if coordinator_permid is not None and coordinator_permid == '': self.coordinator_permid = None else: self.coordinator_permid = coordinator_permid self.coordinator_ip = None self.coordinator_port = -1 if self.coordinator_permid is not None: peerdb = PeerDBHandler.getInstance() peer = peerdb.getPeer(coordinator_permid) if peer is not None: self.coordinator_ip = peer['ip'] self.coordinator_port = peer['port'] self.overlay_bridge = OverlayThreadingBridge.getInstance() self.reserved_pieces = [False] * num_pieces self.ignored_pieces = [False] * num_pieces self.distr_reserved_pieces = [False] * num_pieces self.requested_pieces = deque() self.requested_pieces_lock = Lock() self.counter = 0 self.completed = False self.marker = [True] * num_pieces self.round = 0 self.encoder = None self.continuations = [] self.outstanding = None self.last_req_time = 0 self.challenge = None
def got_ask_for_help(self, permid, infohash, challenge): if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: will answer to the help request from', show_permid_short( permid) if self.can_help(infohash): if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: received a help request, going to send join_helpers' self.send_join_helpers(permid) self.received_challenges[permid] = challenge peerdb = PeerDBHandler.getInstance() peer = peerdb.getPeer(permid) if peer is not None: ip = peer['ip'] port = peer['port'] if permid not in self.coordinator_permid.keys(): self.coordinator_permid[permid] = [ip, port] if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: sending haves to all coordinators' self.start_data_connection() if self.downloader is not None: self.downloader.aggregate_and_send_haves() else: if DEBUG: print >> sys.stderr, 'helper: got_ask_for_help: received a help request, going to send resign_as_helper' self.send_resign_as_helper(permid) return False return True
def __init__(self): if FriendshipMsgHandler.__singleton: raise RuntimeError, 'FriendshipMsgHandler is singleton' self.overlay_bridge = None self.currmsgs = {} self.online_fsext_peers = Set() self.peerdb = PeerDBHandler.getInstance() self.frienddb = FriendDBHandler.getInstance() self.friendshipStatistics_db = FriendshipStatisticsDBHandler.getInstance() self.list_no_of_conn_attempts_per_target = {} self.usercallback = None
def __init__(self): if FriendshipMsgHandler.__singleton: raise RuntimeError, 'FriendshipMsgHandler is singleton' self.overlay_bridge = None self.currmsgs = {} self.online_fsext_peers = Set() self.peerdb = PeerDBHandler.getInstance() self.frienddb = FriendDBHandler.getInstance() self.friendshipStatistics_db = FriendshipStatisticsDBHandler.getInstance( ) self.list_no_of_conn_attempts_per_target = {} self.usercallback = None