mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-26 20:31:30 +00:00
Kill the old mserv, long live HMS!
This commit is contained in:
parent
7255d360e1
commit
1201e89132
5 changed files with 86 additions and 968 deletions
|
@ -1764,10 +1764,6 @@ static void SendAskInfo(INT32 node, boolean viams)
|
|||
// now allowed traffic from the host to us in, so once the MS relays
|
||||
// our address to the host, it'll be able to speak to us.
|
||||
HSendPacket(node, false, 0, sizeof (askinfo_pak));
|
||||
|
||||
// Also speak to the MS.
|
||||
if (viams && node != 0 && node != BROADCASTADDR)
|
||||
SendAskInfoViaMS(node, asktime);
|
||||
}
|
||||
|
||||
serverelem_t serverlist[MAXSERVERLIST];
|
||||
|
@ -1830,7 +1826,6 @@ void CL_UpdateServerList(boolean internetsearch, INT32 room)
|
|||
|
||||
if (!netgame && I_NetOpenSocket)
|
||||
{
|
||||
MSCloseUDPSocket(); // Tidy up before wiping the slate.
|
||||
if (I_NetOpenSocket())
|
||||
{
|
||||
netgame = true;
|
||||
|
@ -2567,7 +2562,6 @@ static void Command_connect(void)
|
|||
}
|
||||
else if (I_NetOpenSocket)
|
||||
{
|
||||
MSCloseUDPSocket(); // Tidy up before wiping the slate.
|
||||
I_NetOpenSocket();
|
||||
netgame = true;
|
||||
multiplayer = true;
|
||||
|
@ -3637,7 +3631,6 @@ boolean SV_SpawnServer(void)
|
|||
SV_GenContext();
|
||||
if (netgame && I_NetOpenSocket)
|
||||
{
|
||||
MSCloseUDPSocket(); // Tidy up before wiping the slate.
|
||||
I_NetOpenSocket();
|
||||
if (ms_RoomId > 0)
|
||||
RegisterServer();
|
||||
|
|
|
@ -27,14 +27,6 @@ Documentation available here.
|
|||
#define Blame( ... ) \
|
||||
CONS_Printf("\x85" __VA_ARGS__)
|
||||
|
||||
consvar_t cv_http_masterserver = {
|
||||
"http_masterserver",
|
||||
"https://mb.srb2.org/MS/0",
|
||||
CV_SAVE,
|
||||
|
||||
NULL, NULL, 0, NULL, NULL, 0, 0, NULL/* C90 moment */
|
||||
};
|
||||
|
||||
consvar_t cv_masterserver_debug = {
|
||||
"masterserver_debug", "Off", CV_SAVE, CV_OnOff,
|
||||
NULL, 0, NULL, NULL, 0, 0, NULL/* C90 moment */
|
||||
|
@ -108,13 +100,13 @@ HMS_connect (const char *format, ...)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
seek = strlen(cv_http_masterserver.string) + 1;/* + '/' */
|
||||
seek = strlen(ms_API) + 1;/* + '/' */
|
||||
|
||||
va_start (ap, format);
|
||||
url = ZZ_Alloc(seek + vsnprintf(0, 0, format, ap) + 1);
|
||||
va_end (ap);
|
||||
|
||||
sprintf(url, "%s/", cv_http_masterserver.string);
|
||||
sprintf(url, "%s/", ms_API);
|
||||
|
||||
va_start (ap, format);
|
||||
vsprintf(&url[seek], format, ap);
|
||||
|
@ -200,15 +192,10 @@ HMS_end (struct HMS_buffer *buffer)
|
|||
}
|
||||
|
||||
int
|
||||
HMS_in_use (void)
|
||||
{
|
||||
return cv_http_masterserver.string[0];
|
||||
}
|
||||
|
||||
void
|
||||
HMS_fetch_rooms (int joining)
|
||||
{
|
||||
struct HMS_buffer *hms;
|
||||
int ok;
|
||||
|
||||
char *id;
|
||||
char *title;
|
||||
|
@ -248,9 +235,15 @@ HMS_fetch_rooms (int joining)
|
|||
}
|
||||
|
||||
room_list[i].header.buffer[0] = 0;
|
||||
|
||||
ok = 1;
|
||||
}
|
||||
else
|
||||
ok = 0;
|
||||
|
||||
HMS_end(hms);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -312,10 +305,11 @@ HMS_unlist (void)
|
|||
Z_Free(hms_server_token);
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
HMS_update (void)
|
||||
{
|
||||
struct HMS_buffer *hms;
|
||||
int ok;
|
||||
|
||||
char post[256];
|
||||
|
||||
|
@ -334,8 +328,10 @@ HMS_update (void)
|
|||
|
||||
curl_easy_setopt(hms->curl, CURLOPT_POSTFIELDS, post);
|
||||
|
||||
HMS_do(hms);
|
||||
ok = HMS_do(hms);
|
||||
HMS_end(hms);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -359,7 +355,7 @@ HMS_list_servers (void)
|
|||
HMS_end(hms);
|
||||
}
|
||||
|
||||
void
|
||||
msg_server_t *
|
||||
HMS_fetch_servers (msg_server_t *list, int room_number)
|
||||
{
|
||||
struct HMS_buffer *hms;
|
||||
|
@ -452,22 +448,27 @@ HMS_fetch_servers (msg_server_t *list, int room_number)
|
|||
|
||||
list[i].header.buffer[0] = 0;
|
||||
}
|
||||
else
|
||||
list = NULL;
|
||||
|
||||
HMS_end(hms);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
const char *
|
||||
HMS_compare_mod_version (void)
|
||||
int
|
||||
HMS_compare_mod_version (char *buffer, size_t buffer_size)
|
||||
{
|
||||
static char buffer[16];
|
||||
|
||||
struct HMS_buffer *hms;
|
||||
int ok;
|
||||
|
||||
char *version;
|
||||
char *version_name;
|
||||
|
||||
hms = HMS_connect("versions/%d", MODID);
|
||||
|
||||
ok = 0;
|
||||
|
||||
if (HMS_do(hms))
|
||||
{
|
||||
version = strtok(hms->buffer, " ");
|
||||
|
@ -477,17 +478,15 @@ HMS_compare_mod_version (void)
|
|||
{
|
||||
if (atoi(version) != MODVERSION)
|
||||
{
|
||||
strlcpy(buffer, version_name, sizeof buffer);
|
||||
version_name = buffer;
|
||||
strlcpy(buffer, version_name, buffer_size);
|
||||
ok = 1;
|
||||
}
|
||||
else
|
||||
version_name = NULL;
|
||||
ok = -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
version_name = NULL;
|
||||
|
||||
HMS_end(hms);
|
||||
|
||||
return version_name;
|
||||
return ok;
|
||||
}
|
||||
|
|
|
@ -2892,7 +2892,6 @@ boolean M_Responder(event_t *ev)
|
|||
//make sure the game doesn't still think we're in a netgame.
|
||||
if (!Playing() && netgame && multiplayer)
|
||||
{
|
||||
MSCloseUDPSocket(); // Clean up so we can re-open the connection later.
|
||||
netgame = false;
|
||||
multiplayer = false;
|
||||
}
|
||||
|
|
973
src/mserv.c
973
src/mserv.c
File diff suppressed because it is too large
Load diff
16
src/mserv.h
16
src/mserv.h
|
@ -2,6 +2,7 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||
// Copyright (C) 1999-2018 by Sonic Team Junior.
|
||||
// Copyright (C) 2020 by James R.
|
||||
//
|
||||
// This program is free software distributed under the
|
||||
// terms of the GNU General Public License, version 2.
|
||||
|
@ -13,7 +14,7 @@
|
|||
#ifndef _MSERV_H_
|
||||
#define _MSERV_H_
|
||||
|
||||
#define MASTERSERVERS21 // MasterServer v2.1
|
||||
#define HMS123311 // don't mess with nights, man
|
||||
|
||||
// lowered from 32 due to menu changes
|
||||
#define NUM_LIST_ROOMS 16
|
||||
|
@ -64,21 +65,14 @@ typedef struct
|
|||
// ================================ GLOBALS ===============================
|
||||
|
||||
extern consvar_t cv_masterserver, cv_servername;
|
||||
extern consvar_t cv_http_masterserver;
|
||||
extern consvar_t cv_masterserver_debug;
|
||||
|
||||
extern char *ms_API;
|
||||
|
||||
// < 0 to not connect (usually -1) (offline mode)
|
||||
// == 0 to show all rooms, not a valid hosting room
|
||||
// anything else is whatever room the MS assigns to that number (online mode)
|
||||
INT16 ms_RoomId;
|
||||
|
||||
const char *GetMasterServerPort(void);
|
||||
const char *GetMasterServerIP(void);
|
||||
|
||||
void MSOpenUDPSocket(void);
|
||||
void MSCloseUDPSocket(void);
|
||||
|
||||
void SendAskInfoViaMS(INT32 node, tic_t asktime);
|
||||
extern INT16 ms_RoomId;
|
||||
|
||||
void RegisterServer(void);
|
||||
void UnregisterServer(void);
|
||||
|
|
Loading…
Reference in a new issue