mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-23 19:25:35 +08:00
Try to fix the flat api get public ip function.
This commit is contained in:
parent
60b627163a
commit
a2f8fec816
@ -134,6 +134,12 @@ Steam_Client *get_steam_clientserver_old()
|
|||||||
return get_steam_client();
|
return get_steam_client();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool steamclient_has_ipv6_functions_flag;
|
||||||
|
bool steamclient_has_ipv6_functions()
|
||||||
|
{
|
||||||
|
return steamclient_has_ipv6_functions_flag;
|
||||||
|
}
|
||||||
|
|
||||||
static void *create_client_interface(const char *ver)
|
static void *create_client_interface(const char *ver)
|
||||||
{
|
{
|
||||||
if (strstr(ver, "SteamClient") == ver) {
|
if (strstr(ver, "SteamClient") == ver) {
|
||||||
@ -167,8 +173,10 @@ static void *create_client_interface(const char *ver)
|
|||||||
steam_client = (ISteamClient019 *)get_steam_client();
|
steam_client = (ISteamClient019 *)get_steam_client();
|
||||||
} else if (strcmp(ver, STEAMCLIENT_INTERFACE_VERSION) == 0) {
|
} else if (strcmp(ver, STEAMCLIENT_INTERFACE_VERSION) == 0) {
|
||||||
steam_client = (ISteamClient *)get_steam_client();
|
steam_client = (ISteamClient *)get_steam_client();
|
||||||
|
steamclient_has_ipv6_functions_flag = true;
|
||||||
} else {
|
} else {
|
||||||
steam_client = (ISteamClient *)get_steam_client();
|
steam_client = (ISteamClient *)get_steam_client();
|
||||||
|
steamclient_has_ipv6_functions_flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return steam_client;
|
return steam_client;
|
||||||
|
@ -26,3 +26,4 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
Steam_Client *get_steam_client();
|
Steam_Client *get_steam_client();
|
||||||
|
bool steamclient_has_ipv6_functions();
|
@ -4909,10 +4909,14 @@ STEAMAPI_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation(intptr
|
|||||||
return ((ISteamGameServer *)instancePtr)->GetServerReputation();
|
return ((ISteamGameServer *)instancePtr)->GetServerReputation();
|
||||||
}
|
}
|
||||||
|
|
||||||
STEAMAPI_API struct SteamIPAddress_t SteamAPI_ISteamGameServer_GetPublicIP(intptr_t instancePtr)
|
STEAMAPI_API uint32 SteamAPI_ISteamGameServer_GetPublicIP(intptr_t instancePtr, void *instancePtr_possible)
|
||||||
{
|
{
|
||||||
//TODO: check if this actually works (ret value changed from uint32 to struct)
|
//TODO: check if this actually works (ret value changed from uint32 to struct)
|
||||||
return ((ISteamGameServer *)instancePtr)->GetPublicIP();
|
if (steamclient_has_ipv6_functions()) {
|
||||||
|
return ((ISteamGameServer012 *)instancePtr_possible)->GetPublicIP_old();
|
||||||
|
} else {
|
||||||
|
return ((ISteamGameServer012 *)instancePtr)->GetPublicIP_old();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
STEAMAPI_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket(intptr_t instancePtr, const void * pData, int cbData, uint32 srcIP, uint16 srcPort)
|
STEAMAPI_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket(intptr_t instancePtr, const void * pData, int cbData, uint32 srcIP, uint16 srcPort)
|
||||||
|
Loading…
Reference in New Issue
Block a user