Пример #1
0
		public Configuration( string configuration_path )
		{
			serviceController = new System.ServiceProcess.ServiceController("SMTPSVC");

			XmlTextReader reader = new XmlTextReader( configuration_path );
			XmlDocument doc = new XmlDocument();
			doc.Load( reader );

			// --

			XmlNode settings_node = doc.SelectSingleNode( "/configuration/settings" );
			Settings = new Settings( settings_node );

			// --

			XmlNodeList server_nodes = doc.SelectNodes( "/configuration/servers/server" );
			ArrayList servers = new ArrayList( server_nodes.Count );

			foreach( XmlNode server_node in server_nodes )
			{
				Server server = new Server( this, server_node );
				servers.Add( server );
				ServerNames.Add(server.Address);
				ServerTable.Add(server.Address,server);
			}

			Servers = (Server[])servers.ToArray( typeof(Server) );

			// --

			doc = null;
			reader = null;
		}
 static void RedirectServer(KcpUser linker, DataBuffer data)
 {
     try
     {
         byte[] dat = data.fakeStruct.GetData <byte[]>(Req.Args);
         var    rs  = KcpPack.UnPackMsg <RServer>(dat);
         if (rs != null)
         {
             if (rs.key == key)
             {
                 ServerTable.AddServer(linker.ip, linker.port, rs.name);
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.StackTrace);
     }
 }
Пример #3
0
        static void Main(string[] args)
        {
            Console.Title = "Konquer - World";

            Base.Attributes.Load();

            // Database
            Console.WriteLine("Loading servers table.");
            ServerTable.LoadInfo();// From the auth DB
            foreach (var svr in ServerTable.ServersTable.Values)
            {
                CreateServer(svr);
            }
            Console.WriteLine($"Total {GameServersPool.Count} GameServers are online!");
            Console.WriteLine();
            while (true)
            {
                HandleCommands();
            }
        }
    static void GetAllServerIp(KcpUser linker, DataBuffer data)
    {
        int index = data.fakeStruct[Req.Args];
        var info  = ServerTable.GetAllServer();
        int c     = info.Count;

        if (c > 0)
        {
            DataBuffer db   = new DataBuffer();
            FakeStruct fake = new FakeStruct(db, Req.Length);
            fake[Req.Cmd]  = ProCmd.AllServer;
            fake[Req.Type] = MessageType.Pro;
            FakeStructArray array = new FakeStructArray(db, 3, c);
            for (int i = 0; i < c; i++)
            {
                array[i, 0] = info[i].ip;
                array[i, 1] = info[i].port;
                array.SetData(i, 2, info[i].name);
            }
            fake.SetData(Req.Args, array);
            db.fakeStruct = fake;
            linker.Send(AES.Instance.Encrypt(db.ToBytes()), EnvelopeType.AesDataBuffer);
        }
    }
 static void GetServerIp(KcpUser linker, DataBuffer data)
 {
     linker.SendObject <ServerInfo>(ProCmd.ServerIp, MessageType.Pro, ServerTable.GetServer(0));
 }
Пример #6
0
        static void Main(string[] args)
        {
            var    correctLogin = false;
            string token        = null;
            var    db           = new ServerTable();

            while (correctLogin == false) //checks login and token
            {
                Console.WriteLine("Input Username");
                string username = Console.ReadLine();
                Console.WriteLine("Input Password");
                string password = Console.ReadLine();

                using (var Connection =
                           new Connection <TokenRequest, TokenResponse>(new TokenRequest(username, password), BaseAddress))
                {
                    var response = Connection.Execute();
                    if (response != null)
                    {
                        token = response.token;
                    }
                    else
                    {
                        Console.WriteLine("Incorrect Credidentials");
                        Console.ReadLine();
                        continue;
                    }
                }

                List <Server> result = null;
                using (var Connection =
                           new Connection <ServerRequest, List <Server> >(new ServerRequest(token), BaseAddress))
                {
                    result = Connection.Execute(); //TODO
                }
                if (result != null)
                {
                    db.WriteServers(result);
                    correctLogin = true;
                }
                else
                {
                    Console.WriteLine("Received incorrect token");
                    Console.ReadLine();
                    continue;
                }
            }
            Console.Clear();

            var servers = db.ReadServers().OrderByDescending(x => x.distance);

            //Write out servers
            Console.WriteLine("Name:                   Distance:");
            foreach (var server in servers)
            {
                var space = "                        ";
                if (space.Length > server.name.Length)
                {
                    space = space.Remove(0, server.name.Length);
                }
                else
                {
                    space = " ";
                }
                Console.WriteLine(server.name + space + server.distance);
            }
            Console.ReadLine();
        }