public bool Execute(JHSNetworkMessage netmsg) { Login packet = netmsg.ReadMessage <Login>(); if (packet != null) { if (userManager == null) { userManager = UserManager.Instance; } if (PasswordUtils.ValidLogin(packet.UserName) && PasswordUtils.ValidPassword(packet.Password)) { User user = userManager.GetUserByName(packet.UserName); if (user != null) { if (PasswordUtils.ComparePasswords(user.Password, packet.Password)) { uint connectionId = netmsg.conn.connectionId; lock (user) { user._data.loginTime = DateTime.UtcNow; user._data.lastKnownIp = user._data.ip; user._data.ip = netmsg.conn.IP; user.SetSites(userManager.GetUserSites(user.UserId)); } DbService.SubmitUpdate2Queue(user.UserId, user._data); userManager.AddOnline(connectionId, user); LoginResponse response = new LoginResponse { Code = SUCCESS, MemberType = user.MemberType, SurfedSites = (uint)user.ViewsToday, Credits = user.Credits }; response.sites = user.Sites; netmsg.conn.Send(NetworkConstants.LOGIN, response); return(true); } } } else { netmsg.conn.Send(NetworkConstants.LOGIN, new LoginResponse() { Code = WRONG_PASSWORD }); return(true); } netmsg.conn.Send(NetworkConstants.LOGIN, new LoginResponse() { Code = WRONG_PASSWORD }); } return(true); }