diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-09-19 02:53:39 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-09-19 22:52:13 +0300 |
commit | e76a4ba3be73a740f5a903a7b905811252843cb4 (patch) | |
tree | aa0d2e4347afdd0f9c1fa5f0dd232bb30b2c8a54 /servergreps/hercules/src/idathena.py | |
parent | eff5b9c1a25beda55bfb2e142745d9ce2c9d69ac (diff) | |
download | evol-tools-e76a4ba3be73a740f5a903a7b905811252843cb4.tar.gz evol-tools-e76a4ba3be73a740f5a903a7b905811252843cb4.tar.bz2 evol-tools-e76a4ba3be73a740f5a903a7b905811252843cb4.tar.xz evol-tools-e76a4ba3be73a740f5a903a7b905811252843cb4.zip |
servergreps: add to all servers for detect getting packet sizes.
And into hercules forks also parsing actual packet sizes in packets.h
Diffstat (limited to 'servergreps/hercules/src/idathena.py')
-rwxr-xr-x | servergreps/hercules/src/idathena.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/servergreps/hercules/src/idathena.py b/servergreps/hercules/src/idathena.py index a52b1d2..4b51b52 100755 --- a/servergreps/hercules/src/idathena.py +++ b/servergreps/hercules/src/idathena.py @@ -20,6 +20,7 @@ class Idathena: inPackets = dict() functionToId = dict() loginPacketNameToId = dict() + getLenPackets = set() namedPacketre = re.compile( "((\t|[ ])*)(?P<name>[\w0-9_]+)([ ]*)=" + @@ -46,6 +47,8 @@ class Idathena: lclifPacketre = re.compile( "([ ]*)[{][ ]PACKET_ID_CA_(?P<name>[A-Z0-9_]+),([^,]+)," + "([ ]*)[&](?P<function>[0-9a-zA-Z_>-]+)([ ]*)[}],") + packetLenre = re.compile( + "packet_db[\\[]0[\\]][\\[]0x(?P<packet>[0-9a-fA-F]+)[\\]].len") def collectNamedPackets(self, fileName): with open(fileName, "r") as f: @@ -136,7 +139,6 @@ class Idathena: while len(data) < 4: data = "0" + data self.addServerPacket(data) - m = self.ourPacketre2.findall(line) if len(m) > 0: for str in m: @@ -155,6 +157,15 @@ class Idathena: data = str[2] data = self.loginPacketNameToId[data] self.addServerPacket(data) + m = self.packetLenre.findall(line) + if len(m) > 0: + for str in m: + data = str.lower() + if len(data) > 2 and data[0:2] == "0x": + data = data[2:] + while len(data) < 4: + data = "0" + data + self.getLenPackets.add(data) def sortOutPackets(self): |