protected override void CheckRequest(GPSPSession session) { base.CheckRequest(session); if (!_recv.ContainsKey("nick")) { _errorCode = GPErrorCode.Parse; return; } if (!_recv.ContainsKey("email") || !GameSpyUtils.IsEmailFormatCorrect(_recv["email"])) { _errorCode = GPErrorCode.Parse; return; } if (!_recv.ContainsKey("passenc")) { _errorCode = GPErrorCode.Parse; return; } if (_recv.ContainsKey("uniquenick")) { _CreateUserWithUniquenick = true; _uniquenick = _recv["uniquenick"]; } }
protected override void DataBaseOperation(GPSPSession session) { if (!CheckQuery.FindEmail(_recv["email"])) { _errorCode = GPErrorCode.CheckBadMail; return; } if (!CheckQuery.CheckPassword(_recv["email"], _recv["passenc"])) { _errorCode = GPErrorCode.CheckBadPassword; return; } if (!CheckQuery.FindNick(_recv["nick"])) { _errorCode = GPErrorCode.CheckBadNick; return; } _result = CheckQuery.GetProfileidFromNickEmailPassword(_recv["email"], _recv["passenc"], _recv["nick"]); if (_result == null) { _errorCode = GPErrorCode.CheckBadNick; } }
protected override void DataBaseOperation(GPSPSession session) { if (ValidQuery.IsEmailValid(_recv["email"])) { EmailValid = true; } }
protected override void DataBaseOperation(GPSPSession session) { //TODO verify the search condition whether needed namespaceid!!!!! //we only need uniquenick to search a profile if (_recv.ContainsKey("uniquenick")) { _result = SearchQuery.GetProfileFromUniquenick(_recv["uniquenick"], _namespaceid); } else if (_recv.ContainsKey("nick") && _recv.ContainsKey("email")) { _result = SearchQuery.GetProfileFromNickEmail(_recv["nick"], _recv["email"], _namespaceid); } else if (_recv.ContainsKey("nick")) { _result = SearchQuery.GetProfileFromNick(_recv["nick"], _namespaceid); } else if (_recv.ContainsKey("email")) { _result = SearchQuery.GetProfileFromEmail(_recv); } else { session.ToLog("Unknow search request received!"); return; } }
protected override void ConstructResponse(GPSPSession session) { int index; if (_result.Count == 1) { index = 0; } //We received request which needs more results. else { if (_recv.ContainsKey("skip")) { index = Convert.ToInt16(_recv["skip"]); } else { index = 0; } } if (index < _result.Count) { _sendingBuffer = @"\bsr\" + Convert.ToUInt16(_result[index]["profileid"]); _sendingBuffer += @"\nick\" + _result[index]["nick"]; _sendingBuffer += @"\uniquenick\" + _result[index]["uniquenick"]; _sendingBuffer += @"\namespaceid\" + Convert.ToUInt16(_result[index]["namespaceid"]); _sendingBuffer += @"\firstname\" + _result[index]["firstname"]; _sendingBuffer += @"\lastname\" + _result[index]["lastname"]; _sendingBuffer += @"\email\" + _result[index]["email"]; _sendingBuffer += @"\bsrdone\\more\" + (_result.Count - 1) + @"\final\"; } }
public override void Handle(GPSPSession session) { CheckRequest(session); if (_errorCode != GPErrorCode.NoError) { ErrorMsg.SendGPSPError(session, _errorCode, _operationID); return; } DataBaseOperation(session); if (_errorCode == GPErrorCode.DatabaseError) { ErrorMsg.SendGPSPError(session, _errorCode, _operationID); return; } ConstructResponse(session); if (_errorCode == GPErrorCode.ConstructResponseError) { ErrorMsg.SendGPSPError(session, _errorCode, _operationID); return; } Response(session); }
protected virtual void Response(GPSPSession session) { if (_sendingBuffer != null) { session.SendAsync(_sendingBuffer); } }
protected override void DataBaseOperation(GPSPSession session) { if (NewUserQuery.IsAccountExist(_recv["email"])) { if (!NewUserQuery.IsAccountCorrect(_recv["email"], _recv["passenc"], out _userid)) { _errorCode = GPErrorCode.NewUserBadPasswords; return; } } else // Account not exist { NewUserQuery.CreateAccountOnUsersTable(_recv["email"], _recv["passenc"], out _userid); } if (_userid == 0)//error happend { _errorCode = GPErrorCode.DatabaseError; return; } NewUserQuery.FindOrCreateProfileOnProfileTable(_recv["nick"], _userid, out _profileid); if (_CreateUserWithUniquenick) { if (!NewUserQuery.FindOrCreateSubProfileOnNamespaceTable(_uniquenick, _namespaceid, _profileid)) { _errorCode = GPErrorCode.NewUserUniquenickInUse; return; } } NewUserQuery.UpdateOtherInfo(_uniquenick, _namespaceid, _recv); }
/// <summary> /// Send a presence error /// </summary> /// <param name="session">The stream that will receive the error</param> /// <param name="errorCode">The error code</param> /// <param name="operationID">The operation id</param> public static void SendGPSPError(GPSPSession session, GPErrorCode errorCode, uint operationID) { string errorMsg = ErrorMsg.GetErrorMsg(errorCode); string sendingBuffer = string.Format(@"\error\\err\{0}\fatal\\errmsg\{1}\id\{2}\final\", (uint)errorCode, errorMsg, operationID); session.SendAsync(sendingBuffer); }
protected override void CheckRequest(GPSPSession session) { if (!_recv.ContainsKey("profileid") || !_recv.ContainsKey("namespaceid")) { _errorCode = GPErrorCode.Parse; } base.CheckRequest(session); }
//pmath\\sesskey\\profileid\\productid\\ protected override void CheckRequest(GPSPSession session) { base.CheckRequest(session); if (!_recv.ContainsKey("sesskey") || !_recv.ContainsKey("profileid") || !_recv.ContainsKey("productid")) { _errorCode = GPErrorCode.Parse; } }
protected override void CheckRequest(GPSPSession session) { base.CheckRequest(session); if (!_recv.ContainsKey("sesskey") && !_recv.ContainsKey("email") && !_recv.ContainsKey("uniquenick")) { _errorCode = GPErrorCode.Parse; } }
protected override void CheckRequest(GPSPSession session) { base.CheckRequest(session); if (!_recv.ContainsKey("uniquenick") || !_recv.ContainsKey("namespace")) { _errorCode = GPErrorCode.Parse; } }
protected override void ConstructResponse(GPSPSession session) { _sendingBuffer = @"\otherslist\"; foreach (Dictionary <string, object> player in _result) { _sendingBuffer += @"\o\" + player["profileid"]; _sendingBuffer += @"\uniquenick\" + player["uniquenick"]; } _sendingBuffer += @"oldone\final\"; }
protected override void ConstructResponse(GPSPSession session) { _sendingBuffer = @"\bsr\" + Convert.ToUInt32(_result[0]["profileid"]); _sendingBuffer += @"\nick\" + _result[0]["nick"]; _sendingBuffer += @"\uniquenick\" + _result[0]["uniquenick"]; _sendingBuffer += @"\namespaceid\" + Convert.ToUInt16(_result[0]["namespaceid"]); _sendingBuffer += @"\firstname\" + _result[0]["firstname"]; _sendingBuffer += @"\lastname\" + _result[0]["lastname"]; _sendingBuffer += @"\email\" + _result[0]["email"]; _sendingBuffer += @"\bsrdone\\more\0" + @"\final\"; }
protected override void CheckRequest(GPSPSession session) { if (!_recv.ContainsKey("email")) { _errorCode = GPErrorCode.Parse; } if (!GameSpyUtils.IsEmailFormatCorrect(_recv["email"])) { _errorCode = GPErrorCode.Parse; } }
protected override void ConstructResponse(GPSPSession session) { if (!IsUniquenickExist) { _sendingBuffer = @"us\0\usdone\final"; } else { _sendingBuffer = @"\us\1\nick\" + _recv["preferrednick"] + @"\usdone\final\"; } }
protected override void ConstructResponse(GPSPSession session) { if (_errorCode != GPErrorCode.NoError) { _sendingBuffer = @"\cur\" + (uint)_errorCode + @"\final\"; } else { _sendingBuffer = @"\cur\0\pid\" + _result[0]["profileid"] + @"\final\"; } }
protected override void ConstructResponse(GPSPSession session) { if (EmailValid) { session.Send(@"\vr\1\final\"); } else { session.Send(@"\vr\0\final\"); } }
protected override void ConstructResponse(GPSPSession session) { if (_errorCode != GPErrorCode.NoError) { _sendingBuffer = string.Format(@"\nur\{0}\final\", (uint)_errorCode); } else { _sendingBuffer = string.Format(@"\nur\0\pid\{0}\final\", _profileid); } }
protected override void ConstructResponse(GPSPSession session) { if (_result.Count == 0) { _sendingBuffer = @"\psrdone\final\"; return; } foreach (Dictionary <string, object> player in _result) { _sendingBuffer += @"\psr\" + player["profileid"]; _sendingBuffer += @"\status\" + player["statstring"]; _sendingBuffer += @"\nick\" + player["nick"]; _sendingBuffer += @"\statuscode\" + player["status"]; } _sendingBuffer += @"\psrdone\final\"; }
protected override void CheckRequest(GPSPSession session) { base.CheckRequest(session); if (!_recv.ContainsKey("preferrednick")) { _errorCode = GPErrorCode.Parse; } if (_recv.ContainsKey("namespaceid")) { if (!uint.TryParse(_recv["namespaceid"], out namespaceid)) { _errorCode = GPErrorCode.Parse; } } }
protected override void ConstructResponse(GPSPSession session) { if (_result.Count == 0) { _sendingBuffer = @"\others\\odone\final\"; return; } _sendingBuffer = @"\others\"; foreach (Dictionary <string, object> player in _result) { _sendingBuffer += @"\o\" + _recv["profileid"]; _sendingBuffer += @"\nick\" + player["nick"]; _sendingBuffer += @"\uniquenick\" + player["uniquenick"]; _sendingBuffer += @"\first\" + player["firstname"]; _sendingBuffer += @"\last\" + player["lastname"]; _sendingBuffer += @"\email\" + player["email"]; } _sendingBuffer += @"\odone\final\"; }
protected override void ConstructResponse(GPSPSession session) { if (_result == null) { _sendingBuffer = @"\nr\\ndone\final\"; } else { _sendingBuffer = @"\nr\"; foreach (Dictionary <string, object> player in _result) { _sendingBuffer += @"\nick\"; _sendingBuffer += player["nick"]; _sendingBuffer += @"\uniquenick\"; _sendingBuffer += player["uniquenick"]; } _sendingBuffer += @"\ndone\final\"; } }
protected virtual void CheckRequest(GPSPSession session) { if (_recv.ContainsKey("id")) { if (!ushort.TryParse(_recv["id"], out _operationID)) { //default operationID _operationID = 1; session.OperationID = 1; } } if (_recv.ContainsKey("namespaceid")) { if (!ushort.TryParse(_recv["namespaceid"], out _namespaceid)) { _errorCode = GPErrorCode.Parse; } } }
protected override void CheckRequest(GPSPSession session) { if (!_recv.ContainsKey("email")) { _errorCode = GPErrorCode.Parse; } // First, we try to receive an encoded password if (!_recv.ContainsKey("passenc")) { // If the encoded password is not sended, we try receiving the password in plain text if (!_recv.ContainsKey("pass")) { // No password is specified, we cannot continue _errorCode = GPErrorCode.Parse; } if (!_recv.ContainsKey("namespaceid")) { _recv.Add("namespaceid", "0"); } } base.CheckRequest(session); }
protected override void DataBaseOperation(GPSPSession session) { _result = NickQuery.RetriveNicknames(_recv["email"], _recv["passenc"], Convert.ToUInt16(_recv["namespaceid"])); }
public void Switch(GPSPSession session, string message) { try { if (message[0] != '\\') { GameSpyUtils.SendGPError(session, GPErrorCode.Parse, "An invalid request was sended."); return; } string[] commands = message.Split("\\final\\", System.StringSplitOptions.RemoveEmptyEntries); foreach (string command in commands) { if (command.Length < 1) { continue; } // Read client message, and parse it into key value pairs string[] recieved = command.TrimStart('\\').Split('\\'); Dictionary <string, string> recv = GameSpyUtils.ConvertRequestToKeyValue(recieved); switch (recv.Keys.First()) { case "search": new SearchHandler(session, recv).Handle(); break; case "valid": //is email format valid new ValidHandler(session, recv).Handle(); break; case "nicks": // search an user with nick name new NickHandler(session, recv).Handle(); break; //case "pmatch": // PmatchHandler pmatch = new PmatchHandler(recv); // pmatch.Handle(session); // break; case "check": new CheckHandler(session, recv).Handle(); break; case "newuser": //create an new user new NewUserHandler(session, recv).Handle(); break; case "searchunique": //search an user with uniquenick new SearchUniqueHandler(session, recv).Handle(); break; case "others": //search new OthersHandler(session, recv).Handle(); break; case "otherslist": //search other players friend list to see who is in his list? new OthersListHandler(session, recv).Handle(); break; case "uniquesearch": //search a user with uniquenick and namespaceid new UniqueSearchHandler(session, recv).Handle(); break; default: LogWriter.UnknownDataRecieved(message); break; } } } catch (Exception e) { LogWriter.ToLog(e); } }
protected override void DataBaseOperation(GPSPSession session) { _result[0] = SearchUniqueQuery.GetProfileWithUniquenickAndNamespace(_recv["uniquenick"], Convert.ToUInt16(_recv["namespaceid"])); }
protected virtual void ConstructResponse(GPSPSession session) { }