mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-12-02 23:35:37 +08:00
Implement networking sockets connection status/info functions.
This commit is contained in:
parent
7ea90b03c4
commit
37b329c9c5
@ -833,7 +833,25 @@ int ReceiveMessagesOnListenSocket( HSteamListenSocket hSocket, SteamNetworkingMe
|
|||||||
bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo_t *pInfo )
|
bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo_t *pInfo )
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("Steam_Networking_Sockets::GetConnectionInfo\n");
|
PRINT_DEBUG("Steam_Networking_Sockets::GetConnectionInfo\n");
|
||||||
|
if (!pInfo)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||||
|
auto connect_socket = connect_sockets.find(hConn);
|
||||||
|
if (connect_socket == connect_sockets.end()) return false;
|
||||||
|
|
||||||
|
memset(pInfo, 0, sizeof(SteamNetConnectionInfo_t));
|
||||||
|
pInfo->m_identityRemote = connect_socket->second.remote_identity;
|
||||||
|
pInfo->m_nUserData = connect_socket->second.user_data;
|
||||||
|
pInfo->m_hListenSocket = connect_socket->second.listen_socket_id;
|
||||||
|
//pInfo->m_addrRemote; //TODO
|
||||||
|
pInfo->m_idPOPRemote = 0;
|
||||||
|
pInfo->m_idPOPRelay = 0;
|
||||||
|
pInfo->m_eState = convert_status(connect_socket->second.status);
|
||||||
|
pInfo->m_eEndReason = 0; //TODO
|
||||||
|
pInfo->m_szEndDebug[0] = 0;
|
||||||
|
sprintf(pInfo->m_szConnectionDescription, "%u", hConn);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -878,7 +896,7 @@ int ReceiveMessagesOnListenSocket( HSteamListenSocket hSocket, SteamNetworkingMe
|
|||||||
/// Returns information about the specified connection.
|
/// Returns information about the specified connection.
|
||||||
bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo001_t *pInfo )
|
bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo001_t *pInfo )
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("Steam_Networking_Sockets::GetConnectionInfo\n");
|
PRINT_DEBUG("Steam_Networking_Sockets::GetConnectionInfo001\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -888,7 +906,21 @@ bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo001_t *
|
|||||||
bool GetQuickConnectionStatus( HSteamNetConnection hConn, SteamNetworkingQuickConnectionStatus *pStats )
|
bool GetQuickConnectionStatus( HSteamNetConnection hConn, SteamNetworkingQuickConnectionStatus *pStats )
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("Steam_Networking_Sockets::GetQuickConnectionStatus\n");
|
PRINT_DEBUG("Steam_Networking_Sockets::GetQuickConnectionStatus\n");
|
||||||
|
if (!pStats)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||||
|
auto connect_socket = connect_sockets.find(hConn);
|
||||||
|
if (connect_socket == connect_sockets.end()) return false;
|
||||||
|
memset(pStats, 0, sizeof(SteamNetworkingQuickConnectionStatus));
|
||||||
|
|
||||||
|
pStats->m_eState = convert_status(connect_socket->second.status);
|
||||||
|
pStats->m_nPing = 10; //TODO: calculate real numbers?
|
||||||
|
pStats->m_flConnectionQualityLocal = 1.0;
|
||||||
|
pStats->m_flConnectionQualityRemote = 1.0;
|
||||||
|
//TODO: rest
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user