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

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 12-29-2009, 11:25 PM
Rogean's Avatar
Rogean
Administrator
 
Join Date: Jul 2003
Location: Massachusetts
Posts: 708
Default

Wouldn't work in combination with the public loginserver due to usernames/passwords. Would be an easier way to have a backup loginserver (A second public eqemulator central loginserver) for redundancy though.
__________________
EQEmulator Developer / Administrator
Reply With Quote
  #2  
Old 12-30-2009, 07:43 AM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,449
Default

Quote:
Originally Posted by Rogean View Post
Wouldn't work in combination with the public loginserver due to usernames/passwords. Would be an easier way to have a backup loginserver (A second public eqemulator central loginserver) for redundancy though.
Very true; I didn't think of that. I guess having a secondary loginserver run from eqemulator.net like you stated would work. I'd need to re-do some of the code anyway to make it work like that.
Reply With Quote
  #3  
Old 12-31-2009, 10:11 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I have always thought it would be great to have both a public LS connection as well as a private one up at all times in case the public one goes down.

The way I would do it would be to simply use the accounts table that already exists and force players to register on the public LS first and log into the server at least once via the public connection. Then, once their account name is in your DB, they can then issue a #password command to set a password for that account while in-game. The new password that they entered from in-game would then be hashed into the accounts table into the already existing password field. Once they have done that, they would have the option to login to your server via the private LS connection using the same account name and whatever password they set (preferably something different than their normal public LS password for security reasons). This should allow for both public and private LS's to use the same table for dealing with accounts, so you could play your same chars from either.

If you wanted to be able to register accounts for playing on your server directly from your Private LS and without having to register on the Public one, you could then just set a prefix to the usernames that get registered to help prevent (or at least heavily limit) the possibility of overlapping account names that might be registered publicly. So, for my server, it might prefix each username with sh_, so my login might be sh_trevius and so on.

Maybe I am missing something, but it doesn't seem like it would be too complex to allow a dual connection to both public and private LS without risking the possibility of too many conflicts.

Luckily, the current public LS is very stable and should be for a long time, hopefully. So, this isn't a huge concern. But, I do agree that it would be cool to have the option to be both public and private at the same time.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 12-31-2009, 10:58 PM
Xecuter
Fire Beetle
 
Join Date: Apr 2009
Location: washington
Posts: 13
Default

I'm in full agreement with trevius. Its unfortunate that in our community there are individuals who are so spitefull that they would do things such as the dos attacks and bring our community to its knees for days at a time. I don't see that stoping any time soon however.

I think dual login servers would be great for the community, there is power in redundancy. If everyone was running a dual log in server one idiots attack on the main login wouldn't hinder all of us.

Keep up the good ideas secrets / trevius. This is a great idea and i would love to see it come to completion.
__________________
Reply With Quote
  #5  
Old 12-31-2009, 11:02 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,449
Default

Quote:
Originally Posted by trevius View Post
The way I would do it would be to simply use the accounts table that already exists and force players to register on the public LS first and log into the server at least once via the public connection. Then, once their account name is in your DB, they can then issue a #password command to set a password for that account while in-game. The new password that they entered from in-game would then be hashed into the accounts table into the already existing password field. Once they have done that, they would have the option to login to your server via the private LS connection using the same account name and whatever password they set (preferably something different than their normal public LS password for security reasons). This should allow for both public and private LS's to use the same table for dealing with accounts, so you could play your same chars from either.
The issue with this is the EQEmuLoginServer on SVN is 1) Windows Only, and 2) horribadly broken. I kept getting heap corruption when I logged in. KLS can't reproduce it, I can't figure it out, so unless anyone else wants to take a look at it, go for it.

But the issue is, you'd need to code the LS to take the sha1 passwords from the accounts table as opposed to the login_accounts table. It's a great idea but if the LS is not even working... well, what do we do?
Reply With Quote
  #6  
Old 03-30-2010, 01:59 PM
loglos
Sarnak
 
Join Date: Feb 2008
Posts: 51
Default

Quote:
Originally Posted by Secrets View Post
I kept getting heap corruption when I logged in. KLS can't reproduce it, I can't figure it out, so unless anyone else wants to take a look at it, go for it.
Are you running win7 64bit? I am and was getting the heap issue also. Everytime I logged in. I just grabbed the source and recompiled and now it works fine.

I have other problems, but the login server is no longer having issues.
Reply With Quote
  #7  
Old 03-30-2010, 09:29 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,449
Default

Quote:
Originally Posted by loglos View Post
Are you running win7 64bit? I am and was getting the heap issue also. Everytime I logged in. I just grabbed the source and recompiled and now it works fine.

I have other problems, but the login server is no longer having issues.
I was using winxp 32-bit at the time of the post, KLS redid the LS recently and it had been fixed way before even that.
Reply With Quote
  #8  
Old 04-16-2010, 01:16 AM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

I redid the multiple login server code from the ground up. It now can support unlimited login server connections. I also made changes to the open source login server and the game server so login server accounts can be updated from within the game. This requires that the world server connects to the login server with a world account/password that has the ServerTrusted flag set to 1 in tblWorldServerRegistration on the login server end.

To use multiple login servers, edit your eqemu_config.xml and replace the <loginserver> and </loginserver> lines with <loginserver1> and </loginserver1>. Then you can copy those lines and everything between them and change to <loginserver2> and </loginserver2>. Repeat for as many login servers as you want.

For example:
Code:
                <loginserver1>
                        <host>eqemulator.org</host>
                        <port>5998</port>
                        <account>worldaccount</account>
                        <password>worldpass</password>
                </loginserver1>
                <loginserver2>
                        <host>anotherls.org</host>
                        <port>5998</port>
                        <account>worldaccount</account>
                        <password>worldpass</password>
                </loginserver2>
                <loginserver3>
                        <host>mylocalhost</host>
                        <port>5998</port>
                        <account>worldaccount</account>
                        <password>worldpass</password>
                </loginserver3>
To allow a game server to update account information, you must create a world server account on the login server and then set ServerTrusted to 1 in the tblWorldServerRegistration table for that world account. Then when logged into the game, you can use #setlsinfo <email address> <password> and it will update all connected login servers with the new information (assuming the login server trusts the game server you are logged in to).

The above features have been committed to the SVN.

NOTES:
* multiple login servers does not work with minilogin.
* this is set to expect the same login server ID for the same account, regardless of which login server one logs in from. this won't be a problem if you are setting up a new secondary login server with an empty db because the users can simply go in game and update the information on the additional login server. if you already have used the prior hack for dual login servers, you will need to clear the db for one of the login servers (or painstakingly update it by hand) so the account IDs match.

Last edited by gaeorn; 04-16-2010 at 01:29 AM.. Reason: added notes
Reply With Quote
Reply

Thread Tools
Display Modes

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 05:32 AM.


 

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