Listen socket ids should be different from connection socket ids.

This commit is contained in:
Mr_Goldberg 2021-01-31 21:50:31 -05:00
parent 37b329c9c5
commit 9a63cf868d
No known key found for this signature in database
GPG key ID: 8597D87419DEF278

View file

@ -107,11 +107,16 @@ Steam_Networking_Sockets(class Settings *settings, class Networking *network, cl
this->run_every_runcb->remove(&Steam_Networking_Sockets::steam_run_every_runcb, this); this->run_every_runcb->remove(&Steam_Networking_Sockets::steam_run_every_runcb, this);
} }
static unsigned long get_socket_id()
{
static unsigned long socket_id;
socket_id++;
return socket_id;
}
HSteamListenSocket new_listen_socket(int nSteamConnectVirtualPort) HSteamListenSocket new_listen_socket(int nSteamConnectVirtualPort)
{ {
static HSteamListenSocket socket_id; HSteamListenSocket socket_id = get_socket_id();
++socket_id;
if (socket_id == k_HSteamListenSocket_Invalid) ++socket_id; if (socket_id == k_HSteamListenSocket_Invalid) ++socket_id;
auto conn = std::find_if(listen_sockets.begin(), listen_sockets.end(), [&nSteamConnectVirtualPort](struct Listen_Socket const& conn) { return conn.virtual_port == nSteamConnectVirtualPort;}); auto conn = std::find_if(listen_sockets.begin(), listen_sockets.end(), [&nSteamConnectVirtualPort](struct Listen_Socket const& conn) { return conn.virtual_port == nSteamConnectVirtualPort;});
@ -165,8 +170,7 @@ HSteamNetConnection new_connect_socket(SteamNetworkingIdentity remote_identity,
socket.user_data = -1; socket.user_data = -1;
socket.poll_group = k_HSteamNetPollGroup_Invalid; socket.poll_group = k_HSteamNetPollGroup_Invalid;
static HSteamNetConnection socket_id; HSteamNetConnection socket_id = get_socket_id();
++socket_id;
if (socket_id == k_HSteamNetConnection_Invalid) ++socket_id; if (socket_id == k_HSteamNetConnection_Invalid) ++socket_id;
if (connect_sockets.insert(std::make_pair(socket_id, socket)).second == false) { if (connect_sockets.insert(std::make_pair(socket_id, socket)).second == false) {