summaryrefslogtreecommitdiff
path: root/servergreps/hercules/packets.py
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-05-24 20:00:39 +0300
committerAndrei Karas <akaras@inbox.ru>2016-05-24 20:00:39 +0300
commit9f8ebd2ccf85f0a92ceb3770f1e1c109c443f75a (patch)
tree61e400faf621c2a2fa63b695e6305d86fc9a5749 /servergreps/hercules/packets.py
parentd1681a3f1ef71e5fe08293846ca7d93bcf0a3d30 (diff)
downloadtools-9f8ebd2ccf85f0a92ceb3770f1e1c109c443f75a.tar.gz
tools-9f8ebd2ccf85f0a92ceb3770f1e1c109c443f75a.tar.bz2
tools-9f8ebd2ccf85f0a92ceb3770f1e1c109c443f75a.tar.xz
tools-9f8ebd2ccf85f0a92ceb3770f1e1c109c443f75a.zip
servergreps: fix false positives with preffered packet versions.
Add simple checks for hidden/shadow packets in hercules.
Diffstat (limited to 'servergreps/hercules/packets.py')
-rwxr-xr-xservergreps/hercules/packets.py41
1 files changed, 34 insertions, 7 deletions
diff --git a/servergreps/hercules/packets.py b/servergreps/hercules/packets.py
index 7ec8752..d5944fe 100755
--- a/servergreps/hercules/packets.py
+++ b/servergreps/hercules/packets.py
@@ -349,12 +349,17 @@ def printPackets(packetDir):
packet2 = clientPackets[packet]
if packet1[2] in serverFunctionToId:
data = serverFunctionToId[packet1[2]]
- if packet1[2] != packet2[1]:
- rev.append("{0:4} {1:33} client: {2:35} server: {3:35} Change id to {4}".format(packet,
- packet1[0],
- packet1[2],
- packet2[1],
- data))
+ data2 = serverFunctionToId[packet2[1]]
+ if data2 == packet:
+ if packet1[2] != packet2[1]:
+ rev.append("{0:4} {1:33} client: {2:35} server: {3:35} Change id to {4}".format(packet,
+ packet1[0],
+ packet1[2],
+ packet2[1],
+ data))
+ else:
+ # here hidden or previous packet
+ pass
else:
data = "unknown"
if packet1[2] != packet2[1]:
@@ -399,12 +404,34 @@ def printPackets(packetDir):
data,
packet1[0],
packet1[2]))
-
rev.sort()
for data in rev:
w.write(data)
w.write("\n")
+ with open(packetDir + "/herculesissues.txt", "w") as w:
+ for name in serverFunctionToId:
+ packet = serverFunctionToId[name]
+ if name != clientPackets[packet][1]:
+ found = False
+ oldId = ""
+ for packet in clientPackets:
+ if name == clientPackets[packet][1]:
+ found = True
+ if oldId == "":
+ oldId = str(packet)
+ else:
+ oldId = oldId + "," + str(packet)
+
+ if found == False:
+ w.write("Server code error: function {0} hidden in server code\n".format(
+ name))
+ else:
+ w.write("Server code warning: function {0} hidden in server code but can be used older packets definition {1}\n".format(
+ name,
+ oldId))
+
+
def showHelp():
print("Usage: packets.py version");
exit(1)