Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Development

Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days.

Reply
 
Thread Tools Display Modes
  #1  
Old 06-14-2003, 05:28 AM
Merth
Dragon
 
Join Date: May 2003
Location: Seattle, WA
Posts: 609
Default 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.
Reply With Quote
  #2  
Old 06-14-2003, 07:38 AM
DeletedUser
Fire Beetle
 
Join Date: Sep 2002
Posts: 0
Default

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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:09 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3