Example #1
0
 public DeltaManagerServer(DeltaConfigManagerServer cfg)
 {
     this.label       = cfg.label;
     this.address     = IPAddress.Parse(cfg.ip_addr);
     this.id          = cfg.id;
     this.key         = Convert.FromBase64String(cfg.key);
     this.configEntry = cfg;
 }
        public static DeltaManagerServer CreateManagerServer(string label, IPAddress address)
        {
            //Prepare
            DeltaConfigManagerServer configEntry;

            lock (cfg.registered_servers)
            {
                //Create key
                byte[] key = SecureStringTool.GenerateSecureRandomBytes(16);

                //Create ID
                short  id;
                Random rand = new Random();
                do
                {
                    id = (short)rand.Next(257, short.MaxValue - 1);
                } while (cfg.registered_servers.Where(x => x.id == id).Count() != 0);

                //Create config entry
                configEntry = new DeltaConfigManagerServer
                {
                    label   = label,
                    ip_addr = address.ToString(),
                    id      = id,
                    key     = Convert.ToBase64String(key)
                };

                //Add
                cfg.registered_servers.Add(configEntry);
                cfg.Save();
            }

            //Create instance and add it
            DeltaManagerServer server = new DeltaManagerServer(configEntry);

            lock (servers)
                servers.Add(server);

            return(server);
        }