Example #1
0
        public void deserialise(String filename)
        {
            masterServers = new Dictionary<string, Server>();

            if (File.Exists(filename) == false)
                return;

            var FS = new FileStream(filename, FileMode.Open);
            var SR = new StreamReader(FS);

            String file = SR.ReadToEnd();

            var sep = new string[1];
            sep[0] = "block";

            String[] args = file.Split(sep, StringSplitOptions.RemoveEmptyEntries);

            foreach (String s in args)
            {
                var serv = new Server();
                serv.deserialise(s);
                string ip = serv.getVariable(Protocol.ipAddressSTR);
                string port = serv.getVariable(Protocol.portSTR);

                if (ip!= null && port != null)
                {
                    String ipaddr = ip+Server.separator+port;
                    if (masterServers.ContainsKey(ipaddr) == false)
                        masterServers.Add(ipaddr, serv);
                }
            }

            SR.Close();
            FS.Close();
        }
Example #2
0
        public static void AddServerToServerView(Server s, ListView serverView)
        {
            string port = s.getVariable(Protocol.Protocol.portSTR);
            string ip = s.getVariable(Protocol.Protocol.ipAddressSTR);

            var lvi = new ListViewItem();
            String ipport = ip + Server.separator + port;
            lvi.Name = ipport;
            lvi.Text = s.getVariable(Protocol.Protocol.ipAddressSTR);

            for (int a = 1; a < serverView.Columns.Count; a++)
            {
                lvi.SubItems.Add(serverView.Columns[a].Name == Protocol.Protocol.portSTR ? port : "");
            }
            serverView.Items.Add(lvi);
            UpdateServerInServerView(s, serverView);
        }
Example #3
0
        //send a packet, and for each received key/var update the server with that variable
        public string[] updateServerInfo(Server serv, byte[] protocolBytes)
        {
            try
            {
                string[] split = sendGamePacket(IPAddress.Parse(serv.serverVariables[ipAddressSTR]),
                                                int.Parse(serv.serverVariables[portSTR]), protocolBytes);
                if (split == null)
                {
                    serv.init(ipAddressSTR, portSTR);
                    return null;
                }

                for (int a = 0; a < split.Length; a += 2)
                {
                    String key = split[a];
                    String val = split[a + 1];

                    if (protocolList.ContainsKey(key))
                    {
                        key = protocolList[key];
                        if (key == hostNameSTR)
                            val = sanatiseName(val);
                        serv.setVariable(key, val);
                    }
                    else
                        continue;
                }
                return split;
            }
            catch (Exception e)
            {
                return null;
            }
        }
Example #4
0
 public static void UpdateServerInServerView(Server s, ListView serverView)
 {
     String ipport = s.getServerIdentifier(Protocol.Protocol.ipAddressSTR, Protocol.Protocol.portSTR);
     int count = 0;
     foreach (ColumnHeader ch in serverView.Columns)
     {
         String val = s.getVariable(ch.Name);
         serverView.Items[ipport].SubItems[count].Text = string.IsNullOrEmpty(val) == false ? val : "";
         count++;
     }
 }
Example #5
0
        public Server addServerThread(String ip, int port, Servers serversInstance)
        {
            var s = new Server();

            IPAddress address = NetExtras.HostnameToIP(ip);
            changeCurrThread(-1, true);
            if (address == null)
                return null;

            s.setVariable(Protocol.Protocol.ipAddressSTR, ip);
            s.setVariable(Protocol.Protocol.portSTR, port.ToString());
            string ipport = ip + Server.separator + port;

            if (port > 0 && serversInstance.masterServers.ContainsKey(ipport) == false)
            {
                try
                {
                    serversInstance.masterServers.Add(ipport, s);
                    return s;
                }
                catch
                {
                }
            }
            return null;
        }