public override byte[] Serialize(Pointer p) { base.Serialize(p); BitPacker.AddSerializableWispObject(ref m_SerializeBuffer, p, Profile); BitPacker.AddString(ref m_SerializeBuffer, p, TargetResource.ToString()); BitPacker.AddString(ref m_SerializeBuffer, p, Player.ToString()); BitPacker.AddString(ref m_SerializeBuffer, p, AuthTicket.ToString()); BitPacker.AddString(ref m_SerializeBuffer, p, AccountName); return(m_SerializeBuffer); }
public override byte[] Serialize(Pointer p) { base.Serialize(p); BitPacker.AddString(ref m_SerializeBuffer, p, AuthTicket.ToString()); BitPacker.AddString(ref m_SerializeBuffer, p, ServerName); BitPacker.AddString(ref m_SerializeBuffer, p, ServerIP); BitPacker.AddInt(ref m_SerializeBuffer, p, ServerPort); BitPacker.AddString(ref m_SerializeBuffer, p, TargetResource.ToString()); BitPacker.AddBool(ref m_SerializeBuffer, p, IsAssistedTransfer); return(m_SerializeBuffer); }
/// <summary> /// Returns the auth ticket for the character, which includes the server they were last seen on. /// </summary> /// <param name="toonID"></param> /// <returns></returns> public static AuthTicket GetAuthorizationTicketForAccount(Guid accountID) { AuthTicket at = new AuthTicket(); Guid ticket = Guid.Empty; string authServer = ""; DateTime whenAuthd = DateTime.MinValue; string targetServerID = ""; int toonID = -1; string account = ""; if (!DB.Instance.User_GetAuthorizationTicketForAccount(out account, out authServer, out ticket, out whenAuthd, out toonID, out targetServerID, accountID) || ticket == Guid.Empty) { return(null); } at.AccountName = account; at.AccountID = accountID; at.AuthorizedOn = whenAuthd; at.AuthorizingServer = authServer; at.TargetServer = targetServerID; at.CharacterID = toonID; return(at); }
/// <summary> /// Returns the auth ticket for the character, which includes the server they were last seen on. /// </summary> /// <param name="toonID"></param> /// <returns></returns> public static AuthTicket GetAuthorizationTicketForCharacter(int toonID) { AuthTicket at = new AuthTicket(); Guid ticket = Guid.Empty; string authServer = ""; DateTime whenAuthd = DateTime.MinValue; string account = ""; string targetServerID = ""; Guid accountID = Guid.Empty; if (!DB.Instance.User_GetAuthorizationTicketForCharacter(out account, out authServer, out ticket, out whenAuthd, toonID, out targetServerID, out accountID) || ticket == Guid.Empty) { return null; } at.AccountName = account; at.AccountID = accountID; at.AuthorizedOn = whenAuthd; at.AuthorizingServer = authServer; at.TargetServer = targetServerID; at.CharacterID = toonID; return at; }
public void RelayPacketToRemoteUser(AuthTicket target, Packet msg, ServerUser from) { // Sure it's not local? INetworkConnection local = ConnectionManager.GetUserConnection(target.AccountID); if (local != null) { local.Send(msg); return; } // Forward to server INetworkConnection remote = GetServerConnection(target.TargetServer); if (remote == null) { // sorry it didn't work out. return; } RelayPacketToRemoteUser(target, msg, from, remote); }
private void RelayPacketToRemoteUser(AuthTicket target, Packet msg, ServerUser from, INetworkConnection con) { PacketRelay relay = MakeRelayPacket(target.TargetServer, target.AccountID, from, msg); con.Send(relay); }