mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-14 20:12:26 +00:00
Fix UCS connection bug
This commit is contained in:
parent
6bdc1ffffb
commit
30067f9b6d
@ -481,14 +481,19 @@ int main(int argc, char** argv) {
|
|||||||
zoneserver_list.UpdateUCSServerAvailable();
|
zoneserver_list.UpdateUCSServerAvailable();
|
||||||
});
|
});
|
||||||
|
|
||||||
server_connection->OnConnectionRemoved("UCS", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
server_connection->OnConnectionRemoved(
|
||||||
LogInfo("Removed UCS Server connection from [{0}]",
|
"UCS", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||||
connection->GetUUID());
|
LogInfo("Connection lost from UCS Server [{0}]", connection->GetUUID());
|
||||||
|
|
||||||
UCSLink.SetConnection(nullptr);
|
auto ucs_connection = UCSLink.GetConnection();
|
||||||
|
|
||||||
zoneserver_list.UpdateUCSServerAvailable(false);
|
if (ucs_connection->GetUUID() == connection->GetUUID()) {
|
||||||
});
|
LogInfo("Removing currently active UCS connection");
|
||||||
|
UCSLink.SetConnection(nullptr);
|
||||||
|
zoneserver_list.UpdateUCSServerAvailable(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
server_connection->OnConnectionIdentified("WebInterface", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
server_connection->OnConnectionIdentified("WebInterface", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||||
LogInfo("New WebInterface Server connection from [{2}] at [{0}:{1}]",
|
LogInfo("New WebInterface Server connection from [{2}] at [{0}:{1}]",
|
||||||
|
|||||||
@ -32,7 +32,12 @@ void UCSConnection::SetConnection(std::shared_ptr<EQ::Net::ServertalkServerConne
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_keepalive.reset(new EQ::Timer(5000, true, std::bind(&UCSConnection::OnKeepAlive, this, std::placeholders::_1)));
|
m_keepalive.reset(new EQ::Timer(1000, true, std::bind(&UCSConnection::OnKeepAlive, this, std::placeholders::_1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::shared_ptr<EQ::Net::ServertalkServerConnection> &UCSConnection::GetConnection() const
|
||||||
|
{
|
||||||
|
return connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UCSConnection::ProcessPacket(uint16 opcode, EQ::Net::Packet &p)
|
void UCSConnection::ProcessPacket(uint16 opcode, EQ::Net::Packet &p)
|
||||||
|
|||||||
@ -16,6 +16,8 @@ public:
|
|||||||
void SendPacket(ServerPacket* pack);
|
void SendPacket(ServerPacket* pack);
|
||||||
void Disconnect() { if(connection && connection->Handle()) connection->Handle()->Disconnect(); }
|
void Disconnect() { if(connection && connection->Handle()) connection->Handle()->Disconnect(); }
|
||||||
void SendMessage(const char *From, const char *Message);
|
void SendMessage(const char *From, const char *Message);
|
||||||
|
const std::shared_ptr<EQ::Net::ServertalkServerConnection> &GetConnection() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline std::string GetIP() const { return (connection && connection->Handle()) ? connection->Handle()->RemoteIP() : 0; }
|
inline std::string GetIP() const { return (connection && connection->Handle()) ? connection->Handle()->RemoteIP() : 0; }
|
||||||
std::shared_ptr<EQ::Net::ServertalkServerConnection> connection;
|
std::shared_ptr<EQ::Net::ServertalkServerConnection> connection;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user