Exemple #1
0
        public static void run(ServicesObject so)
        {
            List <int> toRet = new List <int>();

            try
            {
                using (TcpClient client = new TcpClient())
                {
                    var result = client.BeginConnect(so.IPAddress.Trim(), so.port, null, null);

                    var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(4));

                    if (success)
                    {
                        IMClient imc = new IMClient();
                        imc.setConnParams(so.IPAddress.Trim(), so.port);
                        try
                        {
                            imc.SetupConn();
                            imc.SendSignal(ServiceConn.IM_Diagnostic, "yes");
                            imc.Disconnect();
                            ServiceConnectionDelegator.spps.Add(new ServicePlusStatus {
                                service = so, Status = ServicesObject.STATUS_ONLINE
                            });
                        }
                        catch (Exception)
                        {
                            ServiceConnectionDelegator.spps.Add(new ServicePlusStatus {
                                service = so, Status = ServicesObject.STATUS_OFFLINE
                            });
                        }
                    }
                    else
                    {
                        ServiceConnectionDelegator.spps.Add(new ServicePlusStatus {
                            service = so, Status = ServicesObject.STATUS_OFFLINE
                        });
                    }
                }
            }
            catch (SocketException s)
            {
                ServiceConnectionDelegator.spps.Add(new ServicePlusStatus {
                    service = so, Status = ServicesObject.STATUS_OFFLINE
                });
            }
            catch (Exception e)
            {
                ServiceConnectionDelegator.spps.Add(new ServicePlusStatus {
                    service = so, Status = ServicesObject.STATUS_OFFLINE
                });
                Console.WriteLine(e.Message);
                Console.WriteLine(e.Source);
                Console.WriteLine(e.StackTrace);
            }
        }
Exemple #2
0
 public void AddService(ServicesObject sro, SQLiteTransaction sqlt)
 {
     using (SQLiteCommand cmd = new SQLiteCommand("INSERT INTO Services (Ip, Port, Preference) values ($Ip, $Port, $Preference) ", m_dbConnection))
     {
         cmd.Parameters.AddWithValue("$Ip", sro.IPAddress);
         cmd.Parameters.AddWithValue("$Port", sro.port);
         cmd.Parameters.AddWithValue("$Preference", sro.Preference);
         cmd.Transaction = sqlt;
         cmd.ExecuteNonQuery();
     }
 }
Exemple #3
0
        public void AddService(ServicesObject svo)
        {
            using (SQLiteCommand cmd = new SQLiteCommand("INSERT INTO Services " +
                                                         "(IPAddress, Port, Preference) VALUES ($conn, $port, $pref)", m_dbConnection))
            {
                cmd.Parameters.AddWithValue("$conn", svo.IPAddress);
                cmd.Parameters.AddWithValue("$port", svo.port);
                cmd.Parameters.AddWithValue("$pref", svo.Preference);

                cmd.ExecuteNonQuery();
            }
        }
Exemple #4
0
        public void AddService(ServicesObject so, SqlTransaction sqlt)
        {
            if (OpenCon())
            {
                String     q    = "INSERT INTO dbo.Services (IP, Port, Preference) Values (@a, @b, @c)";
                SqlCommand comm = new SqlCommand(q, cnn);
                comm.Transaction = sqlt;
                comm.Parameters.AddWithValue("a", so.IPAddress);
                comm.Parameters.AddWithValue("b", so.port);
                comm.Parameters.AddWithValue("c", so.Preference);

                comm.ExecuteNonQuery();
            }
        }
Exemple #5
0
        public List <ServicesObject> GetServices()
        {
            List <ServicesObject> sros = new List <ServicesObject>();

            using (SQLiteCommand cmd = new SQLiteCommand("SELECT * From Services", m_dbConnection))
            {
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        ServicesObject sro = new ServicesObject(reader["IP"].ToString(), (int)reader["Port"], (int)reader["Preference"]);
                        sros.Add(sro);
                    }

                    return(sros);
                }
            }
        }
Exemple #6
0
        private static void RoutineCheck()
        {
            SQLiteClass sql = new SQLiteClass(SQLiteClass.ProgramFilesx86() + "\\DuckClient\\Information.dat");
            List <SQLiteClass.CachedMessage> cms = sql.GetCachedMessages();

            Console.WriteLine("Loading servers");
            ServiceConnectionDelegator.LoadServices();
            ServicesObject so = ServiceConnectionDelegator.GetService();

            if (so == null)
            {
                Console.WriteLine("Could not find a server");
            }
            else
            {
                Console.WriteLine("Using server: " + so.IPAddress);
            }
            IMClient.SendEvent(new Events("DEBUG000", "Debug message 0", 0, Service.GetIPFromConfig(), sql.GetGUID(), DateTime.Now));

            foreach (SQLiteClass.CachedMessage cm in cms)
            {
                try
                {
                    IMClient imc = new IMClient();
                    imc.setConnParams(so.IPAddress.Trim(), so.port);
                    Console.WriteLine("Sending a cached event to " + so.IPAddress);
                    imc.SetupConn();
                    imc.SendSignal((byte)cm.code, cm.message);
                    imc.Disconnect();
                    sql.RemoveCachedMessage(cm);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.Source);
                    Console.WriteLine(e.StackTrace);
                }
            }
        }
Exemple #7
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");
        }
Exemple #8
0
 public static void SendEvent(Events ev)
 {
     try
     {
         ServicesObject so  = ServiceConnectionDelegator.GetService();
         IMClient       imc = new IMClient();
         imc.setConnParams(so.IPAddress.Trim(), so.port);
         imc.SetupConn();
         imc.SendSignal(IM_Event, Program.DoSerialize(ev));
         imc.Disconnect();
     }
     catch (SocketException e)
     {
         Console.WriteLine(e.Message);
         Console.WriteLine(e.Source);
         Console.WriteLine(e.StackTrace);
         SQLiteClass sql = new SQLiteClass(SQLiteClass.ProgramFilesx86() + "\\DuckClient\\Information.dat");
         sql.CacheMessage(IM_Event, Program.DoSerialize(ev));
     }
     catch
     {
     }
 }