コード例 #1
0
        public ServerGroup AddServerGroup()
        {
            PruneServerGroups();
            ServerGroup servergroup = new ServerGroup();

            servergroup.ServerManager    = this;
            servergroup.OnFailedSegment += OnFailedSegmentHandler;
            m_ServerGroups.Add(servergroup);
            return(servergroup);
        }
コード例 #2
0
 public ServerGroup RemoveServerGroup(ServerGroup servergroup)
 {
     if (m_ServerGroups.Contains(servergroup))
     {
         m_ServerGroups.Remove(servergroup);
     }
     if (servergroup != null)
     {
         servergroup.ServerManager    = null;
         servergroup.OnFailedSegment -= OnFailedSegmentHandler;
     }
     return(servergroup);
 }
コード例 #3
0
 public ServerGroup RemoveServerGroup(ServerGroup servergroup)
 {
     if(m_ServerGroups.Contains(servergroup))
         m_ServerGroups.Remove(servergroup);
     if(servergroup != null)
     {
         servergroup.ServerManager = null;
         servergroup.OnFailedSegment -= OnFailedSegmentHandler;
     }
     return servergroup;
 }
コード例 #4
0
        public bool LoadServers(string file)
        {
            XmlDocument XmlDoc = new XmlDocument();

            try
            {
                XmlDoc.Load(System.IO.Path.GetFullPath(file));
            }
            catch
            {
                return(false);
            }

            if (XmlDoc.DocumentElement == null)
            {
                return(false);
            }

            if (XmlDoc.DocumentElement.Name == "servergroups")
            {
                foreach (XmlNode XmlGroup in XmlDoc.SelectNodes("servergroups/servergroup"))
                {
                    ServerGroup servergroup = AddServerGroup();

                    foreach (XmlNode XmlServer in XmlGroup.SelectNodes("servers/server"))
                    {
                        string Address       = XmlServer.SelectSingleNode("address").InnerText;
                        int    Port          = int.Parse(XmlServer.SelectSingleNode("port").InnerText);
                        int    Connections   = int.Parse(XmlServer.SelectSingleNode("connections").InnerText);
                        bool   RequiresLogin = XmlServer.SelectSingleNode("login").HasChildNodes;
                        string Username      = "";
                        string Password      = "";
                        if (RequiresLogin)
                        {
                            Username = XmlServer.SelectSingleNode("login/username").InnerText;
                            Password = XmlServer.SelectSingleNode("login/password").InnerText;
                        }

                        bool NeedsGroup = true;
                        if (XmlServer.SelectSingleNode("needsgroup") != null)
                        {
                            NeedsGroup = (XmlServer.SelectSingleNode("needsgroup").InnerText.ToLower() == "true");
                        }

                        bool UseSSL = false;
                        if (XmlServer.SelectSingleNode("ssl") != null)
                        {
                            UseSSL = (XmlServer.SelectSingleNode("ssl").InnerText.ToLower() == "true");
                        }

                        Server server = servergroup.AddServer(new Server(Address, Port, Connections, RequiresLogin, Username, Password, NeedsGroup, UseSSL));
                        if (XmlServer.Attributes.GetNamedItem("enabled") != null)
                        {
                            if (!bool.Parse(XmlServer.Attributes.GetNamedItem("enabled").InnerText))
                            {
                                DisableServer(server);
                            }
                        }
                    }
                }
            }
            return(true);
        }
コード例 #5
0
 public ServerGroup AddServerGroup()
 {
     PruneServerGroups();
     ServerGroup servergroup = new ServerGroup();
     servergroup.ServerManager = this;
     servergroup.OnFailedSegment += OnFailedSegmentHandler;
     m_ServerGroups.Add(servergroup);
     return servergroup;
 }