Fix potential race condition

This commit is contained in:
Calvin Montgomery 2014-07-01 21:09:20 -07:00
parent 03ba657783
commit 256a951531
1 changed files with 4 additions and 2 deletions

View File

@ -252,7 +252,6 @@ User.prototype.login = function (name, pw) {
self.setFlag(Flags.U_LOGGING_IN); self.setFlag(Flags.U_LOGGING_IN);
db.users.verifyLogin(name, pw, function (err, user) { db.users.verifyLogin(name, pw, function (err, user) {
self.clearFlag(Flags.U_LOGGING_IN);
if (err) { if (err) {
if (err === "Invalid username/password combination") { if (err === "Invalid username/password combination") {
Logger.eventlog.log("[loginfail] Login failed (bad password): " + name Logger.eventlog.log("[loginfail] Login failed (bad password): " + name
@ -263,6 +262,7 @@ User.prototype.login = function (name, pw) {
success: false, success: false,
error: err error: err
}); });
self.clearFlag(Flags.U_LOGGING_IN);
return; return;
} }
@ -275,7 +275,8 @@ User.prototype.login = function (name, pw) {
if (err) { if (err) {
Logger.errlog.log("[SEVERE] getAccount failed for user " + user.name); Logger.errlog.log("[SEVERE] getAccount failed for user " + user.name);
Logger.errlog.log(err); Logger.errlog.log(err);
user.clearFlag(Flags.U_REGISTERED); self.clearFlag(Flags.U_REGISTERED);
self.clearFlag(Flags.U_LOGGING_IN);
return; return;
} }
self.socket.emit("login", { self.socket.emit("login", {
@ -289,6 +290,7 @@ User.prototype.login = function (name, pw) {
self.channel.logger.log(self.longip + " logged in as " + user.name); self.channel.logger.log(self.longip + " logged in as " + user.name);
} }
self.setFlag(Flags.U_LOGGED_IN); self.setFlag(Flags.U_LOGGED_IN);
self.clearFlag(Flags.U_LOGGING_IN);
self.emit("login", self.account); self.emit("login", self.account);
}); });
}); });