Skip to content

Commit 4b93c4e

Browse files
committed
SV_GetServerinfo(): use std::string
1 parent 2e5e399 commit 4b93c4e

File tree

4 files changed

+9
-17
lines changed

4 files changed

+9
-17
lines changed

src/engine/server/sg_msgdef.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ using GetUserinfoMsg = IPC::SyncMessage<
7575
IPC::Reply<std::string>
7676
>;
7777
using GetServerinfoMsg = IPC::SyncMessage<
78-
IPC::Message<IPC::Id<VM::QVM, G_GET_SERVERINFO>, int>,
78+
IPC::Message<IPC::Id<VM::QVM, G_GET_SERVERINFO>>,
7979
IPC::Reply<std::string>
8080
>;
8181
using GetUsercmdMsg = IPC::SyncMessage<

src/engine/server/sv_sgame.cpp

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,9 @@ SV_GetServerinfo
167167
168168
===============
169169
*/
170-
void SV_GetServerinfo( char *buffer, int bufferSize )
170+
std::string SV_GetServerinfo()
171171
{
172-
if ( bufferSize < 1 )
173-
{
174-
Sys::Drop( "SV_GetServerinfo: bufferSize == %i", bufferSize );
175-
}
176-
177-
Q_strncpyz( buffer, Cvar_InfoString( CVAR_SERVERINFO ).c_str(), bufferSize );
172+
return Cvar_InfoString( CVAR_SERVERINFO );
178173
}
179174

180175
/*
@@ -498,11 +493,8 @@ void GameVM::QVMSyscall(int syscallNum, Util::Reader& reader, IPC::Channel& chan
498493
break;
499494

500495
case G_GET_SERVERINFO:
501-
IPC::HandleMsg<GetServerinfoMsg>(channel, std::move(reader), [this](int len, std::string& res) {
502-
std::unique_ptr<char[]> buffer(new char[len]);
503-
buffer[0] = '\0';
504-
SV_GetServerinfo(buffer.get(), len);
505-
res.assign(buffer.get());
496+
IPC::HandleMsg<GetServerinfoMsg>(channel, std::move(reader), [this](std::string& res) {
497+
res = SV_GetServerinfo();
506498
});
507499
break;
508500

src/shared/server/sg_api.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,11 @@ std::string trap_GetUserinfo( int num )
9191
return res;
9292
}
9393

94-
void trap_GetServerinfo(char *buffer, int bufferSize)
94+
std::string trap_GetServerinfo()
9595
{
9696
std::string res;
97-
VM::SendMsg<GetServerinfoMsg>(bufferSize, res);
98-
Q_strncpyz(buffer, res.c_str(), bufferSize);
97+
VM::SendMsg<GetServerinfoMsg>(res);
98+
return res;
9999
}
100100

101101
void trap_GetUsercmd(int clientNum, usercmd_t *cmd)

src/shared/server/sg_api.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ void trap_SetConfigstringRestrictions( int num, const clientList_t *
4343
void trap_GetConfigstring( int num, char *buffer, int bufferSize );
4444
void trap_SetUserinfo( int num, const std::string& userinfo );
4545
std::string trap_GetUserinfo( int num );
46-
void trap_GetServerinfo( char *buffer, int bufferSize );
46+
std::string trap_GetServerinfo();
4747
int trap_BotAllocateClient();
4848
void trap_BotFreeClient( int clientNum );
4949
void trap_GetUsercmd( int clientNum, usercmd_t *cmd );

0 commit comments

Comments
 (0)