EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Archive::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=621)
-   -   EQLive Network Protocol (https://www.eqemulator.org/forums/showthread.php?t=7998)

Merth 06-14-2003 05:28 AM

EQLive Network Protocol
 
I was hoping to get some feedback from the devs who have looked at the current network protocol between the current EQLive servers and client.

(1) Is the session key (opcode=0x4700) of any significance to the client? Does it have to be in a particular format? Will any sequence of random chars work for a session key?

(2) Any comments on the opcode being reversed? I've just been reversing the problem ones manually in code just so the packet trace would show the correct opcode. It doesn't appear to be a problem, as the packets end up the same as what I see in EQLive.

(3) Anyone have any idea about the structure of ApproveWorld_Struct? From packet collecting EQLive, I notice the values in the packet are the same each time I connect to a given server, but are different for different servers. I noticed someone tried to send an actual copy of the memory footprint received for some server, but the memory footprints I saw were different.

(4) The client crashes right after world.exe (NewSource) sends the OP_SendCharInfo packet. For testing, I connected to various EQLive servers where I had zero characters, and the cs_colors and cs_unknown fields of CharacterSelect_Struct had data. The data changed each time I went to a server, regardless of whether it was the same server or not. Any ideas why data was there, or what it represents?

(5) Some people were saying that zlib was not correctly decompressing some packets. I put debug code in InflatePacket(), but never saw it triggered... ? Could someone explain what the problem is here?

I added in a few packets to get the traces to be identical to what I see with EQLive, but for the packets whose meaning we don't yet know, I am stuck. I am considering attaching windbg to the client and putting breakpoints on the winsock functions, but I doubt this will lead anywhere... That's gonna be a beast to sift through without symbols to the client.

Comments on any work the devs have done here or observations made as a result would be appreciated.

DeletedUser 06-14-2003 07:38 AM

1) Session keys dont exist anymore, now they build flags into the opcodes, if you look in EQNetwork.cpp you will see the flags, EQ_CRYPT, EQ_COMP, etc.

2) We originally had them the opposite way and Quagmire just switched it in the server source, he gave me an updated packetcollector but is already outdated because EQLive updated. I doubt he uploaded the new source.

3) I have never seen a structure but I think I know what you are talking about. Last two patches the packet has been required or the client would not go to the world server, so I took an eqlive packet and I just made it memcpy and send.

4) They have changed the character info struct a lot, its most likely outdated again. Plus the EQLive team does not memset their packet structures so you will see random jibberish because of that.

5) The errors for InflatePacket were using packetcollector going from world->zone.


All times are GMT -4. The time now is 11:01 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.