Networking messages improvements.

This commit is contained in:
Mr_Goldberg 2021-02-21 11:13:43 -05:00
parent 990a0eb71f
commit 8e1be658e9
No known key found for this signature in database
GPG key ID: 8597D87419DEF278

View file

@ -236,7 +236,7 @@ int ReceiveMessagesOnChannel( int nLocalChannel, SteamNetworkingMessage_t **ppOu
for (auto & conn : connections) { for (auto & conn : connections) {
auto chan = conn.second.data.find(nLocalChannel); auto chan = conn.second.data.find(nLocalChannel);
if (chan != conn.second.data.end()) { if (chan != conn.second.data.end()) {
while (!chan->second.empty() && message_counter <= nMaxMessages) { while (!chan->second.empty() && message_counter < nMaxMessages) {
SteamNetworkingMessage_t *pMsg = new SteamNetworkingMessage_t(); //TODO size is wrong SteamNetworkingMessage_t *pMsg = new SteamNetworkingMessage_t(); //TODO size is wrong
unsigned long size = chan->second.front().size(); unsigned long size = chan->second.front().size();
pMsg->m_pData = malloc(size); pMsg->m_pData = malloc(size);
@ -323,6 +323,7 @@ bool CloseChannelWithUser( const SteamNetworkingIdentity &identityRemote, int nL
{ {
PRINT_DEBUG("Steam_Networking_Messages::CloseChannelWithUser\n"); PRINT_DEBUG("Steam_Networking_Messages::CloseChannelWithUser\n");
std::lock_guard<std::recursive_mutex> lock(global_mutex); std::lock_guard<std::recursive_mutex> lock(global_mutex);
//TODO
return false; return false;
} }
@ -344,22 +345,29 @@ ESteamNetworkingConnectionState GetSessionConnectionInfo( const SteamNetworkingI
return k_ESteamNetworkingConnectionState_None; return k_ESteamNetworkingConnectionState_None;
} }
ESteamNetworkingConnectionState state = k_ESteamNetworkingConnectionState_Connected;
if (conn->second.remote_id == 0 || !conn->second.accepted) {
state = k_ESteamNetworkingConnectionState_Connecting;
} else if (conn->second.dead) {
state = k_ESteamNetworkingConnectionState_ClosedByPeer;
}
if (pConnectionInfo) { if (pConnectionInfo) {
memset(pConnectionInfo, 0, sizeof(SteamNetConnectionInfo_t));
pConnectionInfo->m_eState = state;
pConnectionInfo->m_identityRemote = conn->second.remote_identity;
//TODO //TODO
} }
if (pQuickStatus) { if (pQuickStatus) {
memset(pQuickStatus, 0, sizeof(SteamNetworkingQuickConnectionStatus));
pQuickStatus->m_eState = state;
pQuickStatus->m_nPing = 10; //TODO: calculate real numbers?
pQuickStatus->m_flConnectionQualityLocal = 1.0;
pQuickStatus->m_flConnectionQualityRemote = 1.0;
//TODO //TODO
} }
if (conn->second.remote_id == 0 || !conn->second.accepted) {
return k_ESteamNetworkingConnectionState_Connecting;
}
if (conn->second.dead) {
return k_ESteamNetworkingConnectionState_ClosedByPeer;
}
return k_ESteamNetworkingConnectionState_Connected; return k_ESteamNetworkingConnectionState_Connected;
} }