def _on_chunk_received(self, transport, chunk): self.emit("chunk-transferred", chunk) session_id = chunk.header.session_id blob_id = chunk.header.blob_id if session_id == 0: # signaling blob if blob_id in self._signaling_blobs: blob = self._signaling_blobs[blob_id] else: # create an in-memory blob blob = MessageBlob(chunk.application_id, "", chunk.header.blob_size, session_id, chunk.header.blob_id) self._signaling_blobs[blob_id] = blob else: # data blob if session_id in self._data_blobs: blob = self._data_blobs[session_id] if blob.transferred == 0: blob.id = chunk.header.blob_id else: # create an in-memory blob blob = MessageBlob(chunk.application_id, "", chunk.header.blob_size, session_id, chunk.header.blob_id) self._data_blobs[session_id] = blob blob.append_chunk(chunk) if blob.is_complete(): blob.data.seek(0, 0) self.emit("blob-received", blob) if session_id == 0: del self._signaling_blobs[blob_id] else: del self._data_blobs[session_id]
def _on_chunk_received(self, transport, peer, peer_guid, chunk): session_id = chunk.session_id blob_id = chunk.blob_id key = (peer, peer_guid, session_id) if key in self._blacklist: return if chunk.size == 0 or (chunk.version == 1 and chunk.blob_size == 0): return if key in self._data_blobs: blob = self._data_blobs[key] if blob.transferred == 0: blob.id = chunk.blob_id else: # create an in-memory blob blob = MessageBlob(chunk.application_id, "", chunk.blob_size, session_id, chunk.blob_id) self._data_blobs[key] = blob try: blob.append_chunk(chunk) except AssertionError, err: logger.warning( "Couldn't append chunk to blob, ignoring it. Reason: %s" % err) return
def _on_chunk_received(self, transport, chunk): self.emit("chunk-transferred", chunk) session_id = chunk.header.session_id blob_id = chunk.header.blob_id if session_id == 0: # signaling blob if blob_id in self._signaling_blobs: blob = self._signaling_blobs[blob_id] else: # create an in-memory blob blob = MessageBlob(chunk.application_id, "", chunk.header.blob_size, session_id, chunk.header.blob_id) self._signaling_blobs[blob_id] = blob else: # data blob if session_id in self._data_blobs: blob = self._data_blobs[session_id] if blob.transferred == 0: blob.id = chunk.header.blob_id else: # create an in-memory blob blob = MessageBlob(chunk.application_id, "", chunk.header.blob_size, session_id, chunk.header.blob_id) self._data_blobs[session_id] = blob blob.append_chunk(chunk) if blob.is_complete(): blob.data.seek(0, 0) self.emit("blob-received", blob) if session_id == 0: del self._signaling_blobs[blob_id] else: del self._data_blobs[session_id]
def _on_chunk_received(self, transport, peer, peer_guid, chunk): session_id = chunk.session_id blob_id = chunk.blob_id key = (peer, peer_guid, session_id) if key in self._blacklist: return if chunk.size == 0 or (chunk.version == 1 and chunk.blob_size == 0): return if key in self._data_blobs: blob = self._data_blobs[key] if blob.transferred == 0: blob.id = chunk.blob_id else: # create an in-memory blob blob = MessageBlob(chunk.application_id, "", chunk.blob_size, session_id, chunk.blob_id) self._data_blobs[key] = blob try: blob.append_chunk(chunk) except AssertionError, err: logger.warning("Couldn't append chunk to blob, ignoring it. Reason: %s" % err ) return