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(); }
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); }
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(); }
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"); }
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(); } }
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); }