bool EQLConfig::SetDynamicCount(int count) { char errbuf[MYSQL_ERRMSG_SIZE]; char *query = 0; char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; if (!database.RunQuery(query, MakeAnyLenString(&query, "UPDATE launcher SET dynamics=%d WHERE name='%s'", count, namebuf), errbuf)) { LogFile->write(EQEMuLog::Error, "Error in SetDynamicCount query: %s", errbuf); safe_delete_array(query); return false; } safe_delete_array(query); //update in-memory version. m_dynamics = count; //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->BootDynamics(count); } return(false); }
bool EQLConfig::DeleteStaticZone(Const_char *short_name) { //check internal state std::map<std::string, LauncherZone>::iterator res; res = m_zones.find(short_name); if(res == m_zones.end()) { //not found. Log.Out(Logs::General, Logs::Error, "Update for unknown zone %s", short_name); return false; } char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; char zonebuf[32]; database.DoEscapeString(zonebuf, short_name, strlen(short_name)&0xF); //limit len to 16 zonebuf[31] = '\0'; std::string query = StringFormat("DELETE FROM launcher_zones WHERE " "launcher = '%s' AND zone = '%s'", namebuf, zonebuf); auto results = database.QueryDatabase(query); if (!results.Success()) { return false; } //internal update. m_zones.erase(res); //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->StopZone(short_name); } return true; }
bool EQLConfig::BootStaticZone(Const_char *short_name, uint16 port) { //make sure the short name is valid. if(database.GetZoneID(short_name) == 0) return false; //database update char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; char zonebuf[32]; database.DoEscapeString(zonebuf, short_name, strlen(short_name)&0xF); //limit len to 16 zonebuf[31] = '\0'; std::string query = StringFormat("INSERT INTO launcher_zones (launcher, zone, port) " "VALUES('%s', '%s', %d)", namebuf, zonebuf, port); auto results = database.QueryDatabase(query); if (!results.Success()) { return false; } //update our internal state. LauncherZone lz; lz.name = short_name; lz.port = port; m_zones[lz.name] = lz; //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->BootZone(short_name, port); } return true; }
std::map<std::string,std::string> EQLConfig::GetZoneDetails(Const_char *zone_ref) { std::map<std::string,std::string> res; LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll == nullptr) { res["name"] = zone_ref; res["up"] = "0"; res["starts"] = "0"; res["port"] = "0"; } else { ll->GetZoneDetails(zone_ref, res); } return(res); }
bool EQLConfig::ChangeStaticZone(Const_char *short_name, uint16 port) { //make sure the short name is valid. if(database.GetZoneID(short_name) == 0) return(false); //check internal state std::map<std::string, LauncherZone>::iterator res; res = m_zones.find(short_name); if(res == m_zones.end()) { //not found. LogFile->write(EQEMuLog::Error, "Update for unknown zone %s", short_name); return(false); } //database update char errbuf[MYSQL_ERRMSG_SIZE]; char *query = 0; char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; char zonebuf[32]; database.DoEscapeString(zonebuf, short_name, strlen(short_name)&0xF); //limit len to 16 zonebuf[31] = '\0'; if (!database.RunQuery(query, MakeAnyLenString(&query, "UPDATE launcher_zones SET port=%d WHERE launcher='%s' AND zone='%s'", port, namebuf, zonebuf), errbuf)) { LogFile->write(EQEMuLog::Error, "Error in ChangeStaticZone query: %s", errbuf); safe_delete_array(query); return false; } safe_delete_array(query); //update internal state res->second.port = port; //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->RestartZone(short_name); } return(true); }
std::vector<std::string> EQLConfig::ListZones() { LauncherLink *ll = launcher_list.Get(m_name.c_str()); std::vector<std::string> res; if(ll == nullptr) { //if the launcher isnt connected, use the list from the database. std::map<std::string, LauncherZone>::iterator cur, end; cur = m_zones.begin(); end = m_zones.end(); for(; cur != end; cur++) { res.push_back(cur->first); } } else { //otherwise, use the zone list from the launcher link. ll->GetZoneList(res); } return(res); }
bool EQLConfig::DeleteStaticZone(Const_char *short_name) { //check internal state std::map<std::string, LauncherZone>::iterator res; res = m_zones.find(short_name); if(res == m_zones.end()) { //not found. LogFile->write(EQEMuLog::Error, "Update for unknown zone %s", short_name); return(false); } //database update char errbuf[MYSQL_ERRMSG_SIZE]; char *query = 0; char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; char zonebuf[32]; database.DoEscapeString(zonebuf, short_name, strlen(short_name)&0xF); //limit len to 16 zonebuf[31] = '\0'; if (!database.RunQuery(query, MakeAnyLenString(&query, "DELETE FROM launcher_zones WHERE launcher='%s' AND zone='%s'", namebuf, zonebuf), errbuf)) { LogFile->write(EQEMuLog::Error, "Error in DeleteStaticZone query: %s", errbuf); safe_delete_array(query); return false; } safe_delete_array(query); //internal update. m_zones.erase(res); //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->StopZone(short_name); } return true; }
bool EQLConfig::BootStaticZone(Const_char *short_name, uint16 port) { //make sure the short name is valid. if(database.GetZoneID(short_name) == 0) return(false); //database update char errbuf[MYSQL_ERRMSG_SIZE]; char *query = 0; char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; char zonebuf[32]; database.DoEscapeString(zonebuf, short_name, strlen(short_name)&0xF); //limit len to 16 zonebuf[31] = '\0'; if (!database.RunQuery(query, MakeAnyLenString(&query, "INSERT INTO launcher_zones (launcher,zone,port) VALUES('%s', '%s', %d)", namebuf, zonebuf, port), errbuf)) { LogFile->write(EQEMuLog::Error, "Error in BootStaticZone query: %s", errbuf); safe_delete_array(query); return false; } safe_delete_array(query); //update our internal state. LauncherZone lz; lz.name = short_name; lz.port = port; m_zones[lz.name] = lz; //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->BootZone(short_name, port); } return(true); }
bool EQLConfig::ChangeStaticZone(Const_char *short_name, uint16 port) { //make sure the short name is valid. if(database.GetZoneID(short_name) == 0) return false; //check internal state std::map<std::string, LauncherZone>::iterator res; res = m_zones.find(short_name); if(res == m_zones.end()) { //not found. Log.Out(Logs::General, Logs::Error, "Update for unknown zone %s", short_name); return false; } char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; char zonebuf[32]; database.DoEscapeString(zonebuf, short_name, strlen(short_name)&0xF); //limit len to 16 zonebuf[31] = '\0'; std::string query = StringFormat("UPDATE launcher_zones SET port=%d WHERE " "launcher = '%s' AND zone = '%s'",port, namebuf, zonebuf); auto results = database.QueryDatabase(query); if (!results.Success()) { return false; } //update internal state res->second.port = port; //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->RestartZone(short_name); } return true; }
bool EQLConfig::SetDynamicCount(int count) { char namebuf[128]; database.DoEscapeString(namebuf, m_name.c_str(), m_name.length()&0x3F); //limit len to 64 namebuf[127] = '\0'; std::string query = StringFormat("UPDATE launcher SET dynamics=%d WHERE name='%s'", count, namebuf); auto results = database.QueryDatabase(query); if (!results.Success()) { return false; } //update in-memory version. m_dynamics = count; //if the launcher is connected, update it. LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll != nullptr) { ll->BootDynamics(count); } return false; }
void EQLConfig::StartZone(Const_char *zone_ref) { LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll == nullptr) return; ll->StartZone(zone_ref); }
bool EQLConfig::IsConnected() const { LauncherLink *ll = launcher_list.Get(m_name.c_str()); return(ll != nullptr); }
void EQLConfig::RestartZone(Const_char *zone_ref) { LauncherLink *ll = launcher_list.Get(m_name.c_str()); if(ll == NULL) return; ll->RestartZone(zone_ref); }