def _remote_handler_eb(self, failure, ms_id, trans_id): if log.isEnabledFor(logging.DEBUG): log.info('remote call failure: %s', failure.value, exc_info=(failure.type, failure.value, failure.getTracebackObject())) else: log.info('remote call failure: %s', failure.value) fatal = False if failure.check(CallResultError): body = self.encode_amf('_error', trans_id, *failure.value.get_error_args()) fatal = failure.value.is_fatal else: err = amf0.Object(code='NetStream.Failed', level='error', description=repr(failure.value)) body = self.encode_amf('_error', trans_id, None, err) ts = ms_time_wrapped(self.session_time()) self.muxer.sendMessage(ts, chunks.MSG_COMMAND, ms_id, body) if fatal: self.transport.loseConnection()
def _catchExceptions(self, result, failure): exc = (failure.type, failure.value, failure.getTracebackObject()) if isinstance(failure.value, self.failureException): result.addFailure(self, exc) elif isinstance(failure.value, KeyboardInterrupt): raise else: result.addError(self, exc) self._done()
def eb(failure): logger.warning( "%s signal observer %s failed: %r", self.name, observer, failure, exc_info=( failure.type, failure.value, failure.getTracebackObject(), ), )