Fixed some bugs
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include <log/LogUtils.h>
|
||||
#include "VirtualServerManager.h"
|
||||
#include "src/server/VoiceServer.h"
|
||||
#include "src/client/query/QueryClient.h"
|
||||
#include "InstanceHandler.h"
|
||||
#include "src/server/file/FileServer.h"
|
||||
#include "src/client/ConnectedClient.h"
|
||||
@@ -361,7 +362,21 @@ bool VirtualServerManager::deleteServer(shared_ptr<VirtualServer> server) {
|
||||
this->adjust_executor_threads();
|
||||
|
||||
if(server->getState() != ServerState::OFFLINE)
|
||||
server->stop("server deleted");
|
||||
server->stop("server deleted", true);
|
||||
for(const auto& cl : server->getClients()) { //start disconnecting
|
||||
if(cl->getType() == CLIENT_TEAMSPEAK || cl->getType() == CLIENT_TEASPEAK || cl->getType() == CLIENT_WEB) {
|
||||
cl->close_connection(chrono::system_clock::now());
|
||||
} else if(cl->getType() == CLIENT_QUERY){
|
||||
auto qc = dynamic_pointer_cast<QueryClient>(cl);
|
||||
qc->disconnect_from_virtual_server();
|
||||
} else if(cl->getType() == CLIENT_MUSIC) {
|
||||
cl->disconnect("");
|
||||
cl->currentChannel = nullptr;
|
||||
} else if(cl->getType() == CLIENT_INTERNAL) {
|
||||
|
||||
} else {
|
||||
}
|
||||
}
|
||||
{
|
||||
for(const shared_ptr<ConnectedClient>& client : server->getClients()) {
|
||||
if(client && client->getType() == ClientType::CLIENT_QUERY) {
|
||||
@@ -419,7 +434,7 @@ void VirtualServerManager::shutdownAll(const std::string& msg) {
|
||||
for(const auto &server : this->serverInstances())
|
||||
server->preStop(msg);
|
||||
for(const auto &server : this->serverInstances()){
|
||||
if(server->running()) server->stop(msg);
|
||||
if(server->running()) server->stop(msg, true);
|
||||
}
|
||||
|
||||
this->execute_loop->shutdown();
|
||||
|
||||
Reference in New Issue
Block a user