def read_packet(self): type = struct.unpack("i", self._readn(4))[0] if type == CONTENT_TYPES["packet_data"]: packet_len = struct.unpack("i", self._readn(4))[0] packet = Packet.read_from_socket(self, packet_len, decrypt_func=self.crypto.decrypt) print "read from net %s" % packet return packet elif type == CONTENT_TYPES["update_session"]: self.update_session_key() return self.read_packet()
def serve_once(self, poll_interval=0): processed = False #logging.debug('listening on socket fileno: %s' %(self.listen_sockets)) try: r, w, e = select.select(self.listen_sockets, [], [], poll_interval) #logging.debug('readable socket fileno: %s' %(r)) except IOError as e: print "I/O error({0}): {1}".format(e.errno, e.strerror) logging.debug("I/O error({0}): {1}".format(e.errno, e.strerror)) raise except (OSError, select.error) as e: if e.args[0] != errno.EINTR: raise for sock in r: #read socket into Packet #pop Packet onto Queue logging.debug('reading in socket') processed = True p = Packet() p.read_from_socket(sock) p.recv_time = time.time() self.raw_in_queue.put(p) return processed
def serve_once(self, poll_interval = 0): processed = False #logging.debug('listening on socket fileno: %s' %(self.listen_sockets)) try: r, w, e = select.select(self.listen_sockets, [], [], poll_interval) #logging.debug('readable socket fileno: %s' %(r)) except IOError as e: print "I/O error({0}): {1}".format(e.errno, e.strerror) logging.debug("I/O error({0}): {1}".format(e.errno, e.strerror)) raise except (OSError, select.error) as e: if e.args[0] != errno.EINTR: raise for sock in r: #read socket into Packet #pop Packet onto Queue logging.debug('reading in socket') processed = True p = Packet() p.read_from_socket(sock) p.recv_time = time.time() self.raw_in_queue.put(p) return processed