Example #1
0
        public void Commit()
        {
            //Maybe make a receipt?
            SQLiteClass sql = new SQLiteClass();

            sql.NewConnections(clean);
            //Get all services and ports
            List <ServicesObject> svcs = sql.GetServices();

            foreach (ServicesObject so in svcs)
            {
                try
                {
                    IMClient im = new IMClient();
                    im.setConnParams(so.IPAddress, so.port);
                    im.SetupConn();

                    im.SendSignal((byte)IMClient.IM_NewDatabases, DoSerialize(clean));
                    im.Disconnect();
                }
                catch (System.Net.Sockets.SocketException)
                {
                }
            }

            sql.CloseCon();
        }
Example #2
0
        private static bool ServiceConcurrencyCheck()
        {
            SQLiteClass           sql  = new SQLiteClass(SQLiteClass.ProgramFilesx86() + "\\DuckServer\\Information.dat");
            List <ServicesObject> sros = sql.GetServices();
            String ip         = GetIPFromConfig();
            int    myPriority = Int32.MaxValue;
            bool   found      = false;

            foreach (ServicesObject sro in sros)
            {
                if (sro.IPAddress.Trim().Equals(ip.Trim()))
                {
                    myPriority = sro.Preference;
                    if (myPriority - 1 == 0)
                    {
                        return(true);
                    }
                    found = true;
                }
            }

            if (!found)
            {
                Console.WriteLine("Could not find " + ip + " in service list");
            }

            foreach (ServicesObject sro in sros)
            {
                //If not me
                if (!sro.IPAddress.Equals(ip) && sro.Preference == (myPriority - 1))
                {
                    try
                    {
                        IMClient imc = new IMClient();
                        imc.setConnParams(sro.IPAddress.Trim(), sro.port);
                        imc.SetupConn();
                        imc.Disconnect();
                        return(false);
                    }
                    catch
                    {
                        MSSQL ms = new MSSQL();
                        ms.AddEvent(new Events("HOST200", "Server at " + ip + " could not connect to service with preference " + (myPriority - 1) + " ," + sro.IPAddress.Trim(), 3, ip, sql.GetGUID(), DateTime.Now));
                        return(true);
                    }
                }
            }
            Console.WriteLine("No server list available");
            return(false);
        }
Example #3
0
        private void LoadTable()
        {
            SQLiteClass           sql  = new SQLiteClass();
            List <ServicesObject> svos = sql.GetServices();

            svrs = new List <SVTableRow>();

            foreach (ServicesObject svo in svos)
            {
                svrs.Add(new SVTableRow {
                    IPAddress = svo.IPAddress, Port = svo.port, Preference = svo.Preference
                });
            }
            ServicesTable.ItemsSource = svrs;
            ServicesTable.Items.Refresh();
            sql.CloseCon();
        }
Example #4
0
        public static String GetIPFromConfig()
        {
            SQLiteClass           sql  = new SQLiteClass(SQLiteClass.ProgramFilesx86() + "\\DuckClient\\information.dat");
            List <ServicesObject> sros = sql.GetServices();

            using (RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(@"SOFTWARE\DuckClient\Address", true))
            {
                if (key != null)
                {
                    Object o = key.GetValue("PrefIP");
                    if (o != null)
                    {
                        return(o.ToString());
                    }
                    else
                    {
                        Console.WriteLine("Registry entry was null");
                    }
                }
                else
                {
                    WriteKey("127.0.0.1");
                }
            }

            ServicesObject inUse = ServiceConnectionDelegator.GetService();

            Console.WriteLine(inUse);
            try
            {
                return(GetIPAddressLike(inUse.IPAddress));
            }
            catch
            {
            }

            Console.WriteLine("Returning default IP");
            return("127.0.0.1");
        }
Example #5
0
        public static void LoadServices()
        {
            start = true;
            SQLiteClass sql = new SQLiteClass(SQLiteClass.ProgramFilesx86() + "\\DuckClient\\Information.dat");

            rawServices = sql.GetServices();

            spps = new List <ServicePlusStatus>();

            List <Thread> threads = new List <Thread>();

            foreach (ServicesObject so in rawServices)
            {
                Thread th = new Thread(() => HostScan.run(so));
                th.Start();
                threads.Add(th);
            }

            foreach (Thread th in threads)
            {
                th.Join();
            }
        }
Example #6
0
        private void HandleLog(int mode)
        {
            SQLiteClass sql = new SQLiteClass(ProgramFilesx86() + "\\DuckServer\\Information.dat");
            MSSQL       msl;

            if (!Service.shouldIBeRunning)
            {
                Console.WriteLine("This server instance should not be handling requests now.");
            }

            switch (mode)
            {
            case IM_Event:
                if (Service.shouldIBeRunning)
                {
                    String eventString = br.ReadString();
                    Events ev          = DeserializeXMLFileToObject <Events>(eventString);
                    sql.CloseCon();
                    msl = new MSSQL();
                    msl.AddEvent(ev);
                    bw.Write(IM_OK);
                }
                else
                {
                    bw.Write(IM_Bad_Credentials);
                }
                break;

            case IM_NewVersions:
                if (Service.shouldIBeRunning)
                {
                    IMClient imc = new IMClient();
                    imc.setConnParams(GetOriginIP(), 25567);
                    imc.SetupConn();
                    imc.SendSignal(IM_NewVersions, Service.DoSerialize(new DateTimeVersions {
                        ServiceVersion = sql.GetServices(), WhitelistVersion = sql.GetWhitelists(), ServiceDateTime = sql.GetLastUpdated(SQLiteClass.GET_SERVICE_LIST), WhitelistDateTime = sql.GetLastUpdated(SQLiteClass.GET_WHITELIST_LIST)
                    }));
                    bw.Write(IM_OK);
                }
                else
                {
                    bw.Write(IM_Bad_Credentials);
                }
                break;

            case IM_AddDatabases:
                sql.AddDatabase(new DatabaseObject(br.ReadString(), br.ReadInt32()));
                bw.Write(IM_OK);
                break;

            case IM_GetDatabases:
                List <DatabaseObject> dbos = sql.GetConnections();
                foreach (DatabaseObject dbo in dbos)
                {
                    bw.Write(dbo.ConnectionString);
                    bw.Write(dbo.Preference);
                }
                bw.Write(IM_OK);
                sql.CloseCon();
                break;

            case IM_NewDatabases:
                List <DatabaseObject> dbs = DeserializeXMLFileToObject <List <DatabaseObject> >(br.ReadString());
                sql.NewConnections(dbs);
                sql.CloseCon();
                break;

            case IM_NewServiceList:
                List <ServicesObject> sros = DeserializeXMLFileToObject <List <ServicesObject> >(br.ReadString());
                sql.NewServices(sros);
                sql.CloseCon();

                //Port scan
                //Broadcast
                break;

            case IM_NewWhitelists:
                List <Whitelists> wls = DeserializeXMLFileToObject <List <Whitelists> >(br.ReadString());
                sql.NewWhitelists(wls);
                sql.CloseCon();
                break;

            case IM_AddWhiteList:
                break;

            case IM_RemoveWhitelist:
                break;

            case IM_Debug:
                Console.WriteLine(br.ReadString());
                break;

            case IM_Diagnostic:
                if (!Service.shouldIBeRunning)
                {
                    bw.Write(IM_Bad_Credentials);
                }
                else
                {
                    bw.Write(IM_OK);
                }
                break;

            default:
                break;
            }
            bw.Write(IM_OK);
        }