def handle_read(self): data = self.recv(4096) self.recvbuffer += data while len(self.recvbuffer) >= 4: if not self.header: if self.encrypted: self.header = SERVER_HEADER_STRUCT.parse(self.crypt.decrypt(self.recvbuffer[:4])) else: self.header = SERVER_HEADER_STRUCT.parse(self.recvbuffer[:4]) # +2 for the size of the size itself if self.header.size+2 <= len(self.recvbuffer): # We have a packet pkt = self.recvbuffer[4:self.header.size+2] self.recvbuffer = self.recvbuffer[self.header.size+2:] logging.info('OPCODE : %d\nSIZE : %d' % (self.header.opcode, self.header.size)) logging.debug('RECEIVED:\n' + convertool.strToProperHex(pkt)) if self.header.opcode in self.handler: self.handler[self.header.opcode](pkt, self.env) self.env['world']['server'].write((self.header, pkt)) self.header = None else: # packet is not yet complete break
def handle_read(self): data = self.recv(4096) self.recvbuffer += data while len(self.recvbuffer) >= 6: if not self.header: if self.encrypted: pass #self.header = Header_struct.parse(RC4.stuff(self.recvbuffer[:6])) else: self.header = CLIENT_HEADER_STRUCT.parse(self.recvbuffer[:6]) # +2 for the size of the size itself if self.header.size+2 <= len(self.recvbuffer): # We have a packet pkt = self.recvbuffer[6:self.header.size+2] self.recvbuffer = self.recvbuffer[self.header.size+2:] print('OPCODE : %d' % (self.header.opcode)) print('SIZE : %d' % (self.header.size)) print(convertool.strToProperHex(pkt)) if self.header.opcode in self.handler: self.handler[opcode](pkt) else: print('packet not handled %d' % self.header.opcode) self.header = None else: # packet is not yet complete break
def handle_read(self): data = self.recv(4096) self.recvbuffer += data while len(self.recvbuffer) >= 6: if not self.header: if self.encrypted: self.header = CLIENT_HEADER_STRUCT.parse(self.crypt.decrypt(self.recvbuffer[:6])) else: self.header = CLIENT_HEADER_STRUCT.parse(self.recvbuffer[:6]) # +2 for the size of the size itself if self.header.size+2 <= len(self.recvbuffer): # We have a packet pkt = self.recvbuffer[6:self.header.size+2] self.recvbuffer = self.recvbuffer[self.header.size+2:] logging.info('OPCODE : %d\nSIZE : %d' % (self.header.opcode, self.header.size)) logging.debug('SENT:\n' + convertool.strToProperHex(pkt)) if self.header.opcode in self.handler: self.handler[self.header.opcode](pkt, self.env) self.env['world']['client'].write((self.header, pkt)) if self.header.opcode == 493: self.encrypted = True self.crypt = WorldCrypto(self.env['key'], 'server') self.env['world']['client'].encrypted = True self.env['world']['client'].crypt = WorldCrypto(self.env['key'], 'client') self.header = None else: # packet is not yet complete break
def handle_read(self): data = self.recv(4096) self.recvbuffer += data while len(self.recvbuffer) >= 6: if not self.header: if self.encrypted: pass #self.header = Header_struct.parse(RC4.stuff(self.recvbuffer[:6])) else: self.header = CLIENT_HEADER_STRUCT.parse( self.recvbuffer[:6]) # +2 for the size of the size itself if self.header.size + 2 <= len(self.recvbuffer): # We have a packet pkt = self.recvbuffer[6:self.header.size + 2] self.recvbuffer = self.recvbuffer[self.header.size + 2:] print('OPCODE : %d' % (self.header.opcode)) print('SIZE : %d' % (self.header.size)) print(convertool.strToProperHex(pkt)) if self.header.opcode in self.handler: self.handler[opcode](pkt) else: print('packet not handled %d' % self.header.opcode) self.header = None else: # packet is not yet complete break
def handle_read(self): data = self.recv(4096) if data: print('C>P RECEIVED %d bytes:' % (len(data))) print(convertool.strToProperHex(data)) opcode = ord(data[0]) if opcode in self.handler: self.handler[opcode](data)
def handle_read(self): data = self.recv(1024) if data: print('RECEIVED %d bytes:' % (len(data))) print(convertool.strToProperHex(data)) opcode = ord(data[0]) if opcode in self.handler: self.handler[opcode](data)
def handle_read(self): data = self.recv(4096) if data: opcode = ord(data[0]) if opcode in onRecvFilters: for f in onRecvFilters[opcode]: data = f(data, self.env) self.env['server'].write(data) print(strToProperHex(data))
def handle_write(self): if self.writebuffer: data = self.writebuffer.pop(0) self.send(data) print('P>C SENT %d bytes:' % (len(data))) print(convertool.strToProperHex(data))