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 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); } } }
private void HandleLog(int mode) { SQLiteClass sql = new SQLiteClass(ProgramFilesx86() + "\\DuckClient\\Information.dat"); switch (mode) { case IM_GetIdentity: bw.Write(sql.GetGUID()); break; case IM_GetVersion: bw.Write(sql.GetVersion()); break; case IM_GetMAC: var s = MACFinder.getMacByIp(GetIPAddress()); bw.Write(s); break; case IM_GetHostname: bw.Write(Dns.GetHostName()); break; case IM_RegistrationDone: if (br.ReadString().Equals(sql.GetGUID())) { sql.SetRegistered(true); } break; case IM_NewVersionsCheck: DateTimeVersions dtv = DeserializeXMLFileToObject <DateTimeVersions>(br.ReadString()); if (DateTime.Compare(dtv.ServiceDateTime, sql.GetLastUpdated(SQLiteClass.GET_SERVICE_LIST)) > 0 || DateTime.Compare(dtv.WhitelistDateTime, sql.GetLastUpdated(SQLiteClass.GET_WHITELIST_LIST)) > 0) { IMClient imc = new IMClient(); imc.setConnParams(GetOriginIP(), 25568); imc.SetupConn(); imc.SendSignal(IM_NewVersions, "2"); imc.Disconnect(); } break; case IM_NewVersions: DateTimeVersions dtv1 = DeserializeXMLFileToObject <DateTimeVersions>(br.ReadString()); UpdateStuff(dtv1); break; case IM_NewServiceList: List <ServicesObject> sros = DeserializeXMLFileToObject <List <ServicesObject> >(br.ReadString()); sql.NewServices(sros); break; case IM_NewWhitelists: List <Whitelists> wls = DeserializeXMLFileToObject <List <Whitelists> >(br.ReadString()); sql.NewWhitelists(wls); break; case IM_AddWhiteList: break; case IM_RemoveWhitelist: break; case IM_Debug: Console.WriteLine(br.ReadString()); bw.Write(IM_OK); break; default: break; } bw.Write(IM_OK); }