예제 #1
0
    public static void SetConnectionQualityEmulation(ConnectionQuality connectionParams)
    {
        int minLatency = connectionParams.MinLatency_ms < 0 ? 0 : connectionParams.MinLatency_ms;
        int maxLatency = connectionParams.MaxLatency_ms < minLatency ? minLatency : connectionParams.MaxLatency_ms;

        uLink.Network.emulation.chanceOfLoss = 0.01f * connectionParams.PacketLoss_percent;
        uLink.Network.emulation.minLatency   = minLatency / 1000.0f;
        uLink.Network.emulation.maxLatency   = maxLatency / 1000.0f;
    }
예제 #2
0
        public override int GetHashCode()
        {
            int hash = Name.GetHashCode();

            hash = 31 * hash + MAC.GetHashCode();
            hash = 31 * hash + ConnectionQuality.GetHashCode();
            hash = 31 * hash + AuthenticationType.GetHashCode();
            return(hash);
        }
예제 #3
0
        public override void Render()
        {
            // Get all defined servers.
            ServerCollection servers = new ServerCollection(Path.Combine(
                                                                HttpContext.Current.Request.PhysicalApplicationPath,
                                                                "App_Data",
                                                                "Servers.xml"
                                                                ));

            // Create a new string builder that
            // holds the result html string.
            StringBuilder result = new StringBuilder();

            result.Append("<table class=\"TableContent\" cellspacing=\"0\" cellpadding=\"0\">");

            result.Append("<tr class=\"TableHeadline\">");

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerDescription")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerIP")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerRole")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerCountries")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerSessions")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerConnectionQuality")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerSynchEnabled")
                              ));

            result.Append(string.Format(
                              "<td>{0}</td>",
                              Global.LanguageManager.GetText("ServerState")
                              ));

            result.Append("</tr>");

            Random test = new Random();

            // Run through all defined servers.
            foreach (string ip in servers.Items.Keys)
            {
                Server server = servers.Items[ip];

                result.Append("<tr>");

                result.Append(string.Format(
                                  "<td>{0}</td>",
                                  server.Description
                                  ));

                result.Append(string.Format(
                                  "<td>{0}</td>",
                                  server.IP
                                  ));

                result.Append(string.Format(
                                  "<td>{0}</td>",
                                  Global.LanguageManager.GetText("ServerRole" + server.Role)
                                  ));

                result.Append(string.Format(
                                  "<td>{0}</td>",
                                  string.Join(",", server.Countries)
                                  ));

                result.Append(string.Format(
                                  "<td>{0}</td>",
                                  server.State == ServerState.Online ? test.Next(0, 20) : 0
                                  ));

                if (server.State == ServerState.Online)
                {
                    ConnectionQuality connectionQuality = server.GetConnectionQuality();
                    result.Append(string.Format(
                                      "<td>{0}</td>",
                                      server.State == ServerState.Online ?
                                      string.Format(Global.LanguageManager.GetText("ServerConnectionQuality" +
                                                                                   connectionQuality.Rank), connectionQuality.Ping) : " - "
                                      ));
                }
                else
                {
                    result.Append("<td>-</td>");
                }

                result.Append(string.Format(
                                  "<td onclick=\"GetLatestSynchAction('{1}')\" style=\"cursor:pointer;\">{0}</td>",
                                  Global.LanguageManager.GetText("ServerSynchEnabled" + server.SynchEnabled()),
                                  server.IP
                                  ));

                result.Append(string.Format(
                                  "<td onclick=\"{1}(this, '{2}');\" style=\"cursor:pointer;\">{0}</td>",
                                  Global.LanguageManager.GetText("ServerState" + server.State),
                                  server.State == ServerState.Online ? "TakeOffline" : "BringOnline",
                                  server.IP
                                  ));

                result.Append("</tr>");
            }

            result.Append("</table>");

            this.Controls.Add(new LiteralControl(result.ToString()));
        }