A couple of people on the SVO forum reported that they get a "account in use" message when trying to log in, even when they've never logged in before (and same thing when they made another account).
I've seen a couple of those log messages appear on the server log but it didn't really look the accounts were in use (no character playing).
Maybe change the way the server handles these kind of things like this:
If an account is in use, remove the account from the server and log in the one that's trying to log in.
Haven't changed anything. Then again, DF might not have caught up to the revision you changed that. Can you point me to the code where it is defined?
Afaik most games use this method though. I know in Final Fantasy XI it is like this:
If you incorrectly log out:
1. Login attempt 1: Boot "stalling" character and tell the user to try again in a few minutes
2. Login attempt 2: Login OK (immediately after, don't have to really wait a few minutes
The problem is, those people haven't logged in yet, ever. And yet it says their account is in use..
Forgot about this value in ServerSettings: AccountDropExistingConnectionWhenInUse
Not logged in ever, eh? If that is the case, then my only guess is that the client sent the login request more than once. In which case, the latest commit should still fix it (but still give assertions).
Can you try to recreate it by bashing on the connect button multiple times? That might do it. It advances the screen once the connection is made, which is pretty much instant for localhost. The button "should" disable after one click, but maybe its not doing that, or not doing it fast enough. In any case, this is definitely something the server must be able to handle properly since its a very easy thing to spoof abusively.
Something like the multiple char select bashing (which I made an issue for).
When I was bashing the client jumped to the char selection but also gave me some "already attempting to connect" message. No problem on the server though, then again I'm on LAN so probably need someone who is in the US to really test.
The AccountDrop thing is set to True by the way.
Can you tell me what revision this is where you fixed it? Because I'd like to fix this since it seems to affect people who have just signed up and I don't want to leave a bad first impression >_>
EDIT:
Yet another "just signed up" user trying to log on, he's also getting the account in use error. (I'm checking the server log). This seems like a legitimate bug?
EDIT2:
To clarify, it's probably something to do with SVO and not Netgore in general since in Netgore you make your account in the client? While for SVO you make an account on the forum.
This sounds reasonable, because the DemoClient from NetGore is creating accounts and logging in fine on the DemoGame server while the SVO client gives me an invalid user account name error. I've tried three user names; "Jas", "jshep" and "echopan".
Rebooting the server fixes it. Is there a cache of some sort in the server that only gets updated when it receives a new registration directly from a client?
If so, where can I change this so it updates every 30 seconds or so.
Make sure account.current_ip is null after the account is created.
Thanks Spodi, apparently the default value had to be "null" instead of a "0"
Just want to clarify - is all of this resolved? It looks like it was, but it was still in my TODO list for some reason.
Yep, doesn't look there are any problems with this anymore. Just got another user is already in collection assertion pop up but then again SVO is still a whole lot of revisions behind at the moment.
You can easily change it to be that way. I personally wouldn't want someone booting me off if I am sharing an account with them.
Unless you changed something, dead connections should be dropped after about 15 seconds.