def handle(self, listener, client, addr): if self.app.cfg.thrift_client_timeout is not None: client.settimeout(self.app.cfg.thrift_client_timeout) result = TSocket() result.set_handle(client) try: itrans = self.app.tfactory.get_transport(result) otrans = self.app.tfactory.get_transport(result) iprot = self.app.pfactory.get_protocol(itrans) oprot = self.app.pfactory.get_protocol(otrans) processor = self.get_thrift_processor() try: while True: processor.process(iprot, oprot) self.notify() except TTransportException: pass except socket.error as e: if e.args[0] == errno.ECONNRESET: self.log.debug(e) else: self.log.exception(e) except Exception as e: self.log.exception(e) finally: itrans.close() otrans.close()
def handle(self, listener, client, addr): self.cfg.on_connected(self, addr) if self.app.cfg.thrift_client_timeout is not None: client.settimeout(self.app.cfg.thrift_client_timeout) result = TSocket() result.set_handle(client) try: itrans = self.app.tfactory.get_transport(result) otrans = self.app.tfactory.get_transport(result) iprot = self.app.pfactory.get_protocol(itrans) oprot = self.app.pfactory.get_protocol(otrans) processor = self.get_thrift_processor() try: while True: processor.process(iprot, oprot) self.notify() except TTransportException: pass except socket.error as e: if e.args[0] == errno.ECONNRESET: self.log.debug(e) else: self.log.exception(e) except Exception as e: self.log.exception(e) finally: itrans.close() otrans.close()
def test_transport_handle(): from thriftpy._compat import CYTHON if not CYTHON: return from thriftpy.transport import TSocket from thriftpy.transport.memory import TCyMemoryBuffer s = TSocket() s.set_handle('the sock') assert TCyBufferedTransport(s).sock == 'the sock' assert TCyFramedTransport(s).sock == 'the sock' assert TCyMemoryBuffer().sock is None assert TCyBufferedTransport(TCyFramedTransport(s)).sock == 'the sock' assert TCyBufferedTransport(TCyMemoryBuffer()).sock is None
def handle(self, listener, client, addr): self.cfg.on_connected(self, addr) if self.app.cfg.thrift_client_timeout is not None: client.settimeout(self.app.cfg.thrift_client_timeout) result = TSocket() result.set_handle(client) try: itrans = self.app.tfactory.get_transport(result) otrans = self.app.tfactory.get_transport(result) iprot = self.app.pfactory.get_protocol(itrans) oprot = self.app.pfactory.get_protocol(otrans) processor = self.get_thrift_processor() try: while True: processor.process(iprot, oprot) except TTransportException: pass except (TProtocolException, ProtocolError) as err: self.log.warning("Protocol error, is client(%s) correct? %s", addr, err) except TDecodeException as err: self.log.exception('%r: %r', addr, err) self.cfg.on_tdecode_exception(err) except socket.timeout: self.log.warning('Client timeout: %r', addr) except socket.error as e: if e.args[0] == errno.ECONNRESET: self.log.debug('%r: %r', addr, e) elif e.args[0] == errno.EPIPE: self.log.warning('%r: %r', addr, e) else: self.log.exception('%r: %r', addr, e) except Exception as e: self.log.exception('%r: %r', addr, e) finally: itrans.close() otrans.close() self.cfg.post_connect_closed(self)
def handle(self, listener, client, addr): self.cfg.on_connected(self, addr) if self.app.cfg.thrift_client_timeout is not None: client.settimeout(self.app.cfg.thrift_client_timeout) result = TSocket() result.set_handle(client) try: itrans = self.app.tfactory.get_transport(result) otrans = self.app.tfactory.get_transport(result) iprot = self.app.pfactory.get_protocol(itrans) oprot = self.app.pfactory.get_protocol(otrans) processor = self.get_thrift_processor() try: while True: processor.process(iprot, oprot) except TTransportException: pass except (TProtocolException, ProtocolError) as err: self.log.warning( "Protocol error, is client(%s) correct? %s", addr, err ) except socket.error as e: if e.args[0] == errno.ECONNRESET: self.log.debug('%r: %r', addr, e) elif e.args[0] == errno.EPIPE: self.log.warning('%r: %r', addr, e) else: self.log.exception('%r: %r', addr, e) except Exception as e: self.log.exception('%r: %r', addr, e) finally: itrans.close() otrans.close() self.cfg.post_connect_closed(self)
def handle(self, listener, client, addr): if self.app.cfg.thrift_client_timeout is not None: client.settimeout(self.app.cfg.thrift_client_timeout) result = TSocket() result.set_handle(client) try: itrans = self.app.tfactory.get_transport(result) otrans = self.app.tfactory.get_transport(result) iprot = self.app.pfactory.get_protocol(itrans) oprot = self.app.pfactory.get_protocol(otrans) try: while True: self.app.thrift_app.process(iprot, oprot) except TTransportException: pass except Exception as e: logger.exception(e) finally: itrans.close() otrans.close()
def handle(self, listener, client, addr): self.cfg.on_connected(self, addr) if self.app.cfg.thrift_client_timeout is not None: client.settimeout(self.app.cfg.thrift_client_timeout) result = TSocket() result.set_handle(client) try: itrans = self.app.transport_factory.get_transport(result) otrans = self.app.transport_factory.get_transport(result) iprot = self.app.protocol_factory.get_protocol(itrans) oprot = self.app.protocol_factory.get_protocol(otrans) processor = self.get_thrift_processor() try: while True: self.handle_processor_receive(listener, client, addr) processor.process(iprot, oprot) self.notify() except TTransportException: pass # except thrift.Thrift.TException as e: # self.log.error(e.message) except socket.error as e: if e.args[0] == errno.ECONNRESET: self.log.debug(e) else: self.log.exception(e) except Exception as e: self.log.exception(e) finally: itrans.close() otrans.close() self.cfg.post_connect_closed(self)