summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2023-03-30 16:56:04 +0200
committerAdmiral H. Curtiss <pikachu025@gmail.com>2023-03-30 16:57:39 +0200
commit0ccf24b0c51150eaddc99af2c31a9bb0c42937e6 (patch)
treea1f2d83e5f812ae42a4c95605d9df57087b77aaf /Source/Core
parentbfe0940bbd2720bbf8b0446d106ce096285ae0e7 (diff)
Netplay: More logging for server and client thread main loops.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/NetPlayClient.cpp22
-rw-r--r--Source/Core/Core/NetPlayServer.cpp30
2 files changed, 51 insertions, 1 deletions
diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp
index acd21bc90e..404ae5eef4 100644
--- a/Source/Core/Core/NetPlayClient.cpp
+++ b/Source/Core/Core/NetPlayClient.cpp
@@ -1581,6 +1581,8 @@ void NetPlayClient::SendAsync(sf::Packet&& packet, const u8 channel_id)
// called from ---NETPLAY--- thread
void NetPlayClient::ThreadFunc()
{
+ INFO_LOG_FMT(NETPLAY, "NetPlayClient starting.");
+
Common::QoSSession qos_session;
if (Config::Get(Config::NETPLAY_ENABLE_QOS))
{
@@ -1606,10 +1608,12 @@ void NetPlayClient::ThreadFunc()
net = enet_host_service(m_client, &netEvent, 250);
while (!m_async_queue.Empty())
{
+ INFO_LOG_FMT(NETPLAY, "Processing async queue event.");
{
auto& e = m_async_queue.Front();
Send(e.packet, e.channel_id);
}
+ INFO_LOG_FMT(NETPLAY, "Processing async queue event done.");
m_async_queue.Pop();
}
if (net > 0)
@@ -1617,13 +1621,20 @@ void NetPlayClient::ThreadFunc()
sf::Packet rpac;
switch (netEvent.type)
{
+ case ENET_EVENT_TYPE_CONNECT:
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: connect event");
+ break;
case ENET_EVENT_TYPE_RECEIVE:
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: receive event");
+
rpac.append(netEvent.packet->data, netEvent.packet->dataLength);
OnData(rpac);
enet_packet_destroy(netEvent.packet);
break;
case ENET_EVENT_TYPE_DISCONNECT:
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: disconnect event");
+
m_dialog->OnConnectionLost();
if (m_is_running.IsSet())
@@ -1631,11 +1642,22 @@ void NetPlayClient::ThreadFunc()
break;
default:
+ ERROR_LOG_FMT(NETPLAY, "enet_host_service: unknown event type: {}", int(netEvent.type));
break;
}
}
+ else if (net == 0)
+ {
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: no event occurred");
+ }
+ else
+ {
+ ERROR_LOG_FMT(NETPLAY, "enet_host_service error: {}", net);
+ }
}
+ INFO_LOG_FMT(NETPLAY, "NetPlayClient shutting down.");
+
Disconnect();
return;
}
diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp
index 0c3b50746c..5d93906e2b 100644
--- a/Source/Core/Core/NetPlayServer.cpp
+++ b/Source/Core/Core/NetPlayServer.cpp
@@ -270,8 +270,10 @@ void NetPlayServer::ThreadFunc()
net = enet_host_service(m_server, &netEvent, 1000);
while (!m_async_queue.Empty())
{
+ INFO_LOG_FMT(NETPLAY, "Processing async queue event.");
{
std::lock_guard lkp(m_crit.players);
+ INFO_LOG_FMT(NETPLAY, "Locked player mutex.");
auto& e = m_async_queue.Front();
if (e.target_mode == TargetMode::Only)
{
@@ -283,6 +285,7 @@ void NetPlayServer::ThreadFunc()
SendToClients(e.packet, e.target_pid, e.channel_id);
}
}
+ INFO_LOG_FMT(NETPLAY, "Processing async queue event done.");
m_async_queue.Pop();
}
if (net > 0)
@@ -299,6 +302,8 @@ void NetPlayServer::ThreadFunc()
break;
case ENET_EVENT_TYPE_RECEIVE:
{
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: receive event");
+
sf::Packet rpac;
rpac.append(netEvent.packet->data, netEvent.packet->dataLength);
@@ -341,16 +346,26 @@ void NetPlayServer::ThreadFunc()
ClearPeerPlayerId(netEvent.peer);
}
+ else
+ {
+ INFO_LOG_FMT(NETPLAY, "successfully handled packet from client {}", client.pid);
+ }
}
enet_packet_destroy(netEvent.packet);
}
break;
case ENET_EVENT_TYPE_DISCONNECT:
{
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: disconnect event");
+
std::lock_guard lkg(m_crit.game);
if (!netEvent.peer->data)
+ {
+ ERROR_LOG_FMT(NETPLAY, "enet_host_service: no peer data");
break;
- auto it = m_players.find(*PeerPlayerId(netEvent.peer));
+ }
+ const auto player_id = *PeerPlayerId(netEvent.peer);
+ auto it = m_players.find(player_id);
if (it != m_players.end())
{
Client& client = it->second;
@@ -359,12 +374,25 @@ void NetPlayServer::ThreadFunc()
ClearPeerPlayerId(netEvent.peer);
}
+ else
+ {
+ ERROR_LOG_FMT(NETPLAY, "Invalid player {} to disconnect.", player_id);
+ }
}
break;
default:
+ ERROR_LOG_FMT(NETPLAY, "enet_host_service: unknown event type: {}", int(netEvent.type));
break;
}
}
+ else if (net == 0)
+ {
+ INFO_LOG_FMT(NETPLAY, "enet_host_service: no event occurred");
+ }
+ else
+ {
+ ERROR_LOG_FMT(NETPLAY, "enet_host_service error: {}", net);
+ }
}
INFO_LOG_FMT(NETPLAY, "NetPlayServer shutting down.");