Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Private Sub HandleLogin(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
- Dim Buffer As clsBuffer
- Dim Username As String, Password As String, Version As String
- Dim loginToken As String
- On Error GoTo HandleLogin_Error
- If isArrayEmpty(Data) Then
- HackingAttempt Index, "Packet Manipulation: Empty packet data. (HandleLogin)"
- Exit Sub
- End If
- Set Buffer = New clsBuffer
- Buffer.WriteBytes Data()
- Username = Buffer.ReadString
- Password = Buffer.ReadString
- Version = Buffer.ReadString
- If Not IsAlphaNumeric(Username) Or Not IsAlphaNumeric(Password) Then
- SendClientMsg Index, AUTH_ERR_ILLEGAL_CHARS, MenuStates.Login
- Exit Sub
- End If
- If Len(Username) < 3 Or Len(Password) < 3 Then
- SendClientMsg Index, AUTH_ERR_LENGTH, MenuStates.Login
- Exit Sub
- End If
- 'Dim userInfo As Recordset
- 'Dim rsPassword As String, rsPasswordSalt As String, rsUserID As Long
- 'Set userInfo = GetUser(Username, Password)
- ' Check if we can authenicate
- 'If userInfo Is Nothing Then
- ' SendClientMsg Index, AUTH_ERR_GENERAL, MenuStates.Login
- ' Exit Sub
- 'End If
- 'If Not userInfo.EOF Then
- ' USERNAME Found
- ' rsUserID = userInfo.Fields(UserTableFields.UserID).value
- ' rsPassword = userInfo.Fields(UserTableFields.Password).value
- ' rsPasswordSalt = userInfo.Fields(UserTableFields.PasswordSalt).value
- ' ' Check Password againest record
- ' If rsPassword <> MD5.DigestStrToHexStr(Password & rsPasswordSalt) Then
- ' SendClientMsg Index, AUTH_ERR, MenuStates.Login
- ' Exit Sub
- ' End If
- ' Check if user is activated
- ' If LenB(userInfo.Fields(UserTableFields.ActivationCode)) Then
- ' SendClientMsg Index, AUTH_ERR_ACTIVATION, MenuStates.Login
- ' Exit Sub
- ' End If
- 'Else
- ' SendClientMsg Index, AUTH_ERR, MenuStates.Login
- ' Exit Sub
- 'End If
- 'If Not IsBetaTester(rsUserID) Then
- ' SendClientMsg Index, AUTH_ERR_BETA_TESTER, MenuStates.Login
- ' Exit Sub
- 'End If
- ' If Not AuthenicateUser(Username, Password) Then
- ' SendClientMsg Index, AUTH_ERR, MenuStates.Login
- ' Exit Sub
- ' End If
- ' Everything passed, create the token and send it off
- loginToken = RandomString("AN-##AA-ANHHAN-H")
- SendLoginTokenToGameServer Username, loginToken
- SendLoginTokenToPlayer Index, loginToken
- 'AddText frmServer.txtText, "LoginToken created for " & Username
- DoEvents
- CloseSocket Index
- 'Dim Name As String, Password As String, Version As String
- '
- '' If Not IsPlaying(Index) Then
- '' If Not IsLoggedIn(Index) Then
- '
- ' Set Buffer = New clsBuffer
- ' Buffer.WriteBytes Data()
- '
- ' Name = Buffer.ReadString
- ' Password = Buffer.ReadString
- ' Version = Buffer.ReadString
- '
- '' If IsMultiIPOnline(Current_IP(Index)) Then
- '' SendAlertMsg Index, "Only one account per computer can be logged in."
- '' Exit Sub
- '' End If
- '
- ' If InStr(Name, "/") Then
- ' SendClientMsg Index, "Name contains illegal characters.", Login
- ' Exit Sub
- ' End If
- '
- ' If InStr(Name, "\") Then
- ' SendClientMsg Index, "Name contains illegal characters.", Login
- ' Exit Sub
- ' End If
- '
- ' If IsMultiAccounts(Name) Then
- ' SendClientMsg Index, "Account is already online. (Err: #11)", Login
- ' Exit Sub
- ' End If
- '
- ' If Len(Name) < 3 Or Len(Password) < 3 Then
- ' SendClientMsg Index, "Account / Password is too short. (Err: #8)", Login
- ' Exit Sub
- ' End If
- '
- ' If Not AccountExist(Name) Then
- ' SendClientMsg Index, "Account name does not exist. (Err: #9)", Login
- ' Exit Sub
- ' End If
- '
- ' If Not PasswordOK(Name, Password) Then
- ' SendClientMsg Index, "Incorrect Password. (Err: #10)", Login
- ' Exit Sub
- ' End If
- '
- ' 'version
- ' If Version <> ClientVersion Then
- ' SendClientMsg Index, "Version " & Version & " is out of date. (Err: #12)", Login
- ' Exit Sub
- ' End If
- '
- ' ' Everything went ok
- '
- ' ' Load the player
- ' Update_Login Index, Name
- ' Update_Password Index, Password
- ' SendChars Index
- '
- ' ' Show the player up on the socket status
- ' AddLog Current_Login(Index) & " has logged in from " & Current_IP(Index) & ".", PLAYER_LOG
- ' AddText frmServer.txtText, Current_Login(Index) & " has logged in from " & Current_IP(Index) & "."
- ' End If
- ' End If
- Exit Sub
- HandleLogin_Error:
- AddLog "Error " & Err.Number & " (" & Err.Description & ") in procedure HandleLogin of Module modHandleData", AUTH_LOG
- End Sub
Add Comment
Please, Sign In to add comment