Don't even attempt to advertise a non-netgame server.

This appears to be a long-time bug that exists upstream too, but nobody even knew about it before the MS rules alert made it clear this was actually happening!
This commit is contained in:
toaster 2022-08-24 15:04:09 +01:00
parent b81805b9c7
commit 77164096dd
3 changed files with 4 additions and 4 deletions

View file

@ -3986,7 +3986,7 @@ void D_QuitNetGame(void)
if (nodeingame[i]) if (nodeingame[i])
HSendPacket(i, true, 0, 0); HSendPacket(i, true, 0, 0);
#ifdef MASTERSERVER #ifdef MASTERSERVER
if (serverrunning && cv_advertise.value) if (serverrunning && netgame && cv_advertise.value) // see mserv.c Online()
UnregisterServer(); UnregisterServer();
#endif #endif
} }

View file

@ -6356,7 +6356,7 @@ boolean firstDismissedRulesThisBoot = true;
void M_PopupMasterServerRules(void) void M_PopupMasterServerRules(void)
{ {
#ifdef MASTERSERVER #ifdef MASTERSERVER
if (cv_advertise.value && (serverrunning || currentMenu == &MP_ServerDef) && firstDismissedRulesThisBoot) if (cv_advertise.value && ((serverrunning && netgame) || currentMenu == &MP_ServerDef) && firstDismissedRulesThisBoot)
{ {
char *rules = GetMasterServerRules(); char *rules = GetMasterServerRules();

View file

@ -470,7 +470,7 @@ char *GetMasterServerRules(void)
static boolean static boolean
Online (void) Online (void)
{ {
return ( serverrunning && cv_advertise.value ); return ( serverrunning && netgame && cv_advertise.value );
} }
static inline void SendPingToMasterServer(void) static inline void SendPingToMasterServer(void)
@ -568,7 +568,7 @@ Advertise_OnChange(void)
if (cv_advertise.value) if (cv_advertise.value)
{ {
if (serverrunning) if (serverrunning && netgame)
{ {
Lock_state(); Lock_state();
{ {