Jump to content

Login protocol -- switch of servers?


Guest SeySayux

Recommended Posts

Hello,

As I'm planning to write my own MMO (just as a challenge, nothing big), I'm very intrested in how the internal handling of the distinction between login and game server works for MaNGOS.

As the login and game servers are two separate servers, there has to be a way for them to communicate.

This is how I visualize the login process:

1) Enter nick/pass

2) realmd authentificates nick/pass

3) get realm list + character list from realmd

4) Select realm and character

5) Drop connection to realmd

6) Connect to correct mangosd with selected character.

Now, my question is about the transition between steps 5 and 6. Obviously, the server has to know that you are authentificated to log in with a certain character. How does that happen? I can think of a few solutions...

1) Make some kind of hash key with player name and IP. Realmd has to send that to the client and to mangosd. Mangosd will need this hash to log in.

2) Tell mangosd that a client from IP XYZ is going to log in with character ABC.

Because the source code is quite complicated to read, and the protocol isn't well documented, I'd like to ask here if someone has some expertise with the login protocol.

Thank you for your attention,

- SeySayux

Link to comment
Share on other sites

This is the process

1) Enter nick/pass

2) Realmd authentificates username/pass, a session key is associated for the account using SRP6 protocol

3) Get realm list

4) Connect to mangosd and authenticate with username and sessionkey

4) Select character and press the enter world, a loading screen starts

5) Drop connection to realmd

6) World loaded and you play

s and v are used for SRP6 authentication

session_key is the key produced from SRP6 autentication, and you use it to login to mangosd (you use it also to reconnect to realmd, when you want to change realm)

SRP protocol is explained in http://srp.standford.edu

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use