mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-27 10:10:57 +00:00
(Netplay) Disable netplay on init failure (#13479)
* (Netplay) Disable netplay on init failure Make sure netplay is disabled and properly deinitialized after an initialization failure. * missing comma
This commit is contained in:
parent
0a1ffcd4d5
commit
4dda10b86d
@ -8330,17 +8330,11 @@ bool init_netplay(const char *server, unsigned port, const char *mitm_session)
|
|||||||
const char *mitm = NULL;
|
const char *mitm = NULL;
|
||||||
|
|
||||||
if (!net_st->netplay_enabled)
|
if (!net_st->netplay_enabled)
|
||||||
{
|
goto failure;
|
||||||
net_st->netplay_client_deferred = false;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
core_set_default_callbacks(&cbs);
|
core_set_default_callbacks(&cbs);
|
||||||
if (!core_set_netplay_callbacks())
|
if (!core_set_netplay_callbacks())
|
||||||
{
|
goto failure;
|
||||||
net_st->netplay_client_deferred = false;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Map the core's quirks to our quirks */
|
/* Map the core's quirks to our quirks */
|
||||||
serialization_quirks = core_serialization_quirks();
|
serialization_quirks = core_serialization_quirks();
|
||||||
@ -8348,7 +8342,6 @@ bool init_netplay(const char *server, unsigned port, const char *mitm_session)
|
|||||||
/* Quirks we don't support! Just disable everything. */
|
/* Quirks we don't support! Just disable everything. */
|
||||||
if (serialization_quirks & ~((uint64_t) NETPLAY_QUIRK_MAP_UNDERSTOOD))
|
if (serialization_quirks & ~((uint64_t) NETPLAY_QUIRK_MAP_UNDERSTOOD))
|
||||||
quirks |= NETPLAY_QUIRK_NO_SAVESTATES;
|
quirks |= NETPLAY_QUIRK_NO_SAVESTATES;
|
||||||
|
|
||||||
if (serialization_quirks & NETPLAY_QUIRK_MAP_NO_SAVESTATES)
|
if (serialization_quirks & NETPLAY_QUIRK_MAP_NO_SAVESTATES)
|
||||||
quirks |= NETPLAY_QUIRK_NO_SAVESTATES;
|
quirks |= NETPLAY_QUIRK_NO_SAVESTATES;
|
||||||
if (serialization_quirks & NETPLAY_QUIRK_MAP_NO_TRANSMISSION)
|
if (serialization_quirks & NETPLAY_QUIRK_MAP_NO_TRANSMISSION)
|
||||||
@ -8372,6 +8365,7 @@ bool init_netplay(const char *server, unsigned port, const char *mitm_session)
|
|||||||
if (settings->bools.netplay_use_mitm_server)
|
if (settings->bools.netplay_use_mitm_server)
|
||||||
{
|
{
|
||||||
const char *mitm_handle = settings->arrays.netplay_mitm_server;
|
const char *mitm_handle = settings->arrays.netplay_mitm_server;
|
||||||
|
|
||||||
if (netplay_mitm_query(mitm_handle))
|
if (netplay_mitm_query(mitm_handle))
|
||||||
{
|
{
|
||||||
/* We want to cache the MITM server handle in order to
|
/* We want to cache the MITM server handle in order to
|
||||||
@ -8402,11 +8396,16 @@ bool init_netplay(const char *server, unsigned port, const char *mitm_session)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
net_st->netplay_client_deferred = false;
|
||||||
|
|
||||||
#ifdef HAVE_NETPLAYDISCOVERY
|
#ifdef HAVE_NETPLAYDISCOVERY
|
||||||
net_st->lan_ad_server_fd = -1;
|
net_st->lan_ad_server_fd = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
net_st->netplay_client_deferred = false;
|
net_st->chat = calloc(1, sizeof(*net_st->chat));
|
||||||
|
if (!net_st->chat)
|
||||||
|
goto failure;
|
||||||
|
net_st->chat->message_slots = ARRAY_SIZE(net_st->chat->messages);
|
||||||
|
|
||||||
net_st->data = netplay_new(
|
net_st->data = netplay_new(
|
||||||
server, mitm, port, mitm_session,
|
server, mitm, port, mitm_session,
|
||||||
@ -8421,21 +8420,8 @@ bool init_netplay(const char *server, unsigned port, const char *mitm_session)
|
|||||||
#endif
|
#endif
|
||||||
settings->paths.username,
|
settings->paths.username,
|
||||||
quirks);
|
quirks);
|
||||||
|
|
||||||
if (!net_st->data)
|
if (!net_st->data)
|
||||||
{
|
goto failure;
|
||||||
RARCH_ERR("[Netplay] %s\n", msg_hash_to_str(MSG_NETPLAY_FAILED));
|
|
||||||
runloop_msg_queue_push(
|
|
||||||
msg_hash_to_str(MSG_NETPLAY_FAILED),
|
|
||||||
0, 180, false,
|
|
||||||
NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
net_st->chat = calloc(1, sizeof(*net_st->chat));
|
|
||||||
if (!net_st->chat)
|
|
||||||
return false;
|
|
||||||
net_st->chat->message_slots = ARRAY_SIZE(net_st->chat->messages);
|
|
||||||
|
|
||||||
net_st->reannounce = 900;
|
net_st->reannounce = 900;
|
||||||
net_st->reping = -1;
|
net_st->reping = -1;
|
||||||
@ -8452,6 +8438,20 @@ bool init_netplay(const char *server, unsigned port, const char *mitm_session)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
failure:
|
||||||
|
net_st->netplay_enabled = false;
|
||||||
|
net_st->netplay_is_client = false;
|
||||||
|
net_st->netplay_client_deferred = false;
|
||||||
|
|
||||||
|
deinit_netplay();
|
||||||
|
|
||||||
|
RARCH_ERR("[Netplay] %s\n", msg_hash_to_str(MSG_NETPLAY_FAILED));
|
||||||
|
runloop_msg_queue_push(
|
||||||
|
msg_hash_to_str(MSG_NETPLAY_FAILED), 0, 180, false, NULL,
|
||||||
|
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user