public static void ReceiveLog(SOEClient sender, byte[] command)
        {
            // Setup a reader
            SOEReader reader = new SOEReader(command);

            reader.ReadHostUInt16();

            // Get the manager and message
            string manager = reader.ReadASCIIString().Replace(".log", "");
            string message = reader.ReadASCIIString();

            // Get the logger for the manager
            ILog   log      = Server.Logger.GetLogger(manager);
            int    clientId = sender.GetClientID();
            string username = AccountManager.GetAccount(sender).Username;

            // Is this a critical error?
            if (manager == "ClientCriticalError")
            {
                log.ErrorFormat("[{0}, {1}] {2}", clientId, username, message);
            }
            else
            {
                log.InfoFormat("[{0}, {1}] {2}", clientId, username, message);
            }
        }
Example #2
0
        public static void HandleLoginRequest(SOEClient sender, SOEMessage message)
        {
            // Setup a reader
            SOEReader reader = new SOEReader(message);

            // Get the login details
            string clientToken = reader.ReadASCIIString();

            reader.ReadUInt64();
            string clientVersion = reader.ReadASCIIString();

            // Correct client version?
            Log.DebugFormat("Received login request from client {0}, token: {1}, version: {2}", sender.GetClientID(), clientToken, clientVersion);
            string expectedClientVersion = Server.ApplicationConfiguration["ClientVersion"];

            if (clientVersion != expectedClientVersion)
            {
                // Error!
                Log.ErrorFormat("Received login request from outdated client: {0}", clientVersion);

                SendLoginResponse(sender, false);
                sender.Disconnect((ushort)SOEDisconnectReasons.Application);
                return;
            }

            // Create a login request and enqueue it
            LoginRequest request = new LoginRequest(sender, clientToken, clientVersion);

            LoginQueue.Enqueue(request);
        }