mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 10:37:41 -04:00
Add console commands to set the server keys and addresses
This commit is contained in:
@ -81,7 +81,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "plAvatar/plAvatarMgr.h"
|
||||
#include "plAvatar/plAvatarTasks.h"
|
||||
#include "plAvatar/plAvBrainGeneric.h"
|
||||
//#include "../plHavok1/plSimulationMgr.h"
|
||||
//#include "plHavok1/plSimulationMgr.h"
|
||||
|
||||
#include "plMessage/plConsoleMsg.h"
|
||||
#include "plMessage/plAnimCmdMsg.h"
|
||||
|
@ -1055,3 +1055,260 @@ PF_CONSOLE_CMD(
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Server
|
||||
*
|
||||
***/
|
||||
|
||||
//============================================================================
|
||||
// Server group
|
||||
PF_CONSOLE_GROUP(Server)
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server,
|
||||
Url,
|
||||
"string url",
|
||||
"Set the displayable server URL"
|
||||
) {
|
||||
wchar_t *wurl = NULL;
|
||||
hsStringToWString(wurl, (const char *)params[0]);
|
||||
SetServerUrl(wurl);
|
||||
delete [] wurl;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server,
|
||||
DispName,
|
||||
"string name",
|
||||
"Set the displayable server name"
|
||||
) {
|
||||
wchar_t *wname = NULL;
|
||||
hsStringToWString(wname, (const char *)params[0]);
|
||||
SetServerDisplayName(wname);
|
||||
delete [] wname;
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.File group
|
||||
PF_CONSOLE_SUBGROUP(Server, File)
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_File,
|
||||
Host,
|
||||
"string address",
|
||||
"Set the File Server address"
|
||||
) {
|
||||
wchar_t *wHost = NULL;
|
||||
hsStringToWString(wHost, (const char *)params[0]);
|
||||
SetFileSrvHostname(wHost);
|
||||
delete [] wHost;
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Auth group
|
||||
PF_CONSOLE_SUBGROUP(Server, Auth)
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Auth,
|
||||
Host,
|
||||
"string address",
|
||||
"Set the Auth Server address"
|
||||
) {
|
||||
wchar_t *wHost = NULL;
|
||||
hsStringToWString(wHost, (const char *)params[0]);
|
||||
SetAuthSrvHostname(wHost);
|
||||
delete [] wHost;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Auth,
|
||||
N,
|
||||
"string base64Key",
|
||||
"Set the Auth Server N key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kAuthDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Auth,
|
||||
X,
|
||||
"string base64Key",
|
||||
"Set the Auth Server X key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kAuthDhXData);
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Csr group
|
||||
PF_CONSOLE_SUBGROUP(Server, Csr)
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Csr,
|
||||
Host,
|
||||
"string address",
|
||||
"Set the Csr Server address"
|
||||
) {
|
||||
wchar_t *wHost = NULL;
|
||||
hsStringToWString(wHost, (const char *)params[0]);
|
||||
SetCsrSrvHostname(wHost);
|
||||
delete [] wHost;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Csr,
|
||||
N,
|
||||
"string base64Key",
|
||||
"Set the Csr Server N key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kCsrDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Csr,
|
||||
X,
|
||||
"string base64Key",
|
||||
"Set the Csr Server X key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kCsrDhXData);
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Game group
|
||||
PF_CONSOLE_SUBGROUP(Server, Game)
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Game,
|
||||
N,
|
||||
"string base64Key",
|
||||
"Set the Game Server N key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGameDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Game,
|
||||
X,
|
||||
"string base64Key",
|
||||
"Set the Game Server X key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGameDhXData);
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Server.Gate group
|
||||
PF_CONSOLE_SUBGROUP(Server, Gate)
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Gate,
|
||||
Host,
|
||||
"string address",
|
||||
"Set the GateKeeper Server address"
|
||||
) {
|
||||
wchar_t *wHost = NULL;
|
||||
hsStringToWString(wHost, (const char *)params[0]);
|
||||
SetGateKeeperSrvHostname(wHost);
|
||||
delete [] wHost;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Gate,
|
||||
N,
|
||||
"string base64Key",
|
||||
"Set the GateKeeper Server N key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhNData);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
PF_CONSOLE_CMD(
|
||||
Server_Gate,
|
||||
X,
|
||||
"string base64Key",
|
||||
"Set the GateKeeper Server X key"
|
||||
) {
|
||||
int baseLength = hsStrlen((const char *)params[0]);
|
||||
if ((kNetDiffieHellmanKeyBits / 8) != Base64DecodeSize(baseLength)) {
|
||||
PrintStringF(PrintString, "Invalid key: should be exactly %u bytes",
|
||||
kNetDiffieHellmanKeyBits / 8);
|
||||
return;
|
||||
}
|
||||
|
||||
Base64Decode(hsStrlen((const char *)params[0]), (const char *)params[0],
|
||||
kNetDiffieHellmanKeyBits / 8, kGateKeeperDhXData);
|
||||
}
|
||||
|
@ -4,11 +4,7 @@ include_directories("../../NucleusLib")
|
||||
set(pnNetBase_HEADERS
|
||||
Intern.h
|
||||
Pch.h
|
||||
pnNbAuthKey.hpp
|
||||
pnNbCsrKey.hpp
|
||||
pnNbConst.h
|
||||
pnNbGameKey.hpp
|
||||
pnNbGateKeeperKey.hpp
|
||||
pnNetBase.h
|
||||
)
|
||||
|
||||
@ -21,6 +17,8 @@ set(pnNetBase_PRIVATE
|
||||
Private/pnNbProtocol.cpp
|
||||
Private/pnNbSrvs.h
|
||||
Private/pnNbSrvs.cpp
|
||||
Private/pnNbKeys.h
|
||||
Private/pnNbKeys.cpp
|
||||
)
|
||||
|
||||
add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_PRIVATE})
|
||||
|
@ -37,6 +37,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
#include "pnNbConst.h"
|
||||
#include "pnNbError.h"
|
||||
#include "pnNbKeys.h"
|
||||
#include "pnNbProtocol.h"
|
||||
#include "pnNbSrvs.h"
|
||||
|
||||
|
49
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
Normal file
49
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
/*==LICENSE==*
|
||||
|
||||
CyanWorlds.com Engine - MMOG client, server and tools
|
||||
Copyright (C) 2011 Cyan Worlds, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
or by snail mail at:
|
||||
Cyan Worlds, Inc.
|
||||
14617 N Newport Hwy
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
/*****************************************************************************
|
||||
*
|
||||
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
|
||||
*
|
||||
***/
|
||||
|
||||
#include "../Pch.h"
|
||||
#pragma hdrstop
|
||||
|
||||
// Auth Server
|
||||
byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
byte kAuthDhXData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
|
||||
// CSR Server
|
||||
byte kCsrDhNData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
byte kCsrDhXData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
|
||||
// Game Server
|
||||
byte kGameDhNData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
byte kGameDhXData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
|
||||
// GateKeeper Server
|
||||
byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8] = {0};
|
||||
byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8] = {0};
|
55
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h
Normal file
55
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*==LICENSE==*
|
||||
|
||||
CyanWorlds.com Engine - MMOG client, server and tools
|
||||
Copyright (C) 2011 Cyan Worlds, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
or by snail mail at:
|
||||
Cyan Worlds, Inc.
|
||||
14617 N Newport Hwy
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
/*****************************************************************************
|
||||
*
|
||||
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h
|
||||
*
|
||||
***/
|
||||
|
||||
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H
|
||||
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h included more than once"
|
||||
#endif
|
||||
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H
|
||||
|
||||
// Auth Server
|
||||
static const unsigned kAuthDhGValue = 41;
|
||||
extern byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||
extern byte kAuthDhXData[kNetDiffieHellmanKeyBits / 8];
|
||||
|
||||
// CSR Server
|
||||
static const unsigned kCsrDhGValue = 97;
|
||||
extern byte kCsrDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||
extern byte kCsrDhXData[kNetDiffieHellmanKeyBits / 8];
|
||||
|
||||
// Game Server
|
||||
static const unsigned kGameDhGValue = 73;
|
||||
extern byte kGameDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||
extern byte kGameDhXData[kNetDiffieHellmanKeyBits / 8];
|
||||
|
||||
// GateKeeper Server
|
||||
static const unsigned kGateKeeperDhGValue = 4;
|
||||
extern byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8];
|
||||
extern byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8];
|
@ -260,3 +260,28 @@ bool GateKeeperSrvHostnameOverride () {
|
||||
return s_gateKeeperAddrCmdLine[0];
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
// User-visible Server
|
||||
//============================================================================
|
||||
static wchar s_serverUrl[256];
|
||||
static wchar s_serverName[256];
|
||||
|
||||
const wchar *GetServerUrl () {
|
||||
return s_serverUrl;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
void SetServerUrl (const wchar url[]) {
|
||||
StrCopy(s_serverUrl, url, arrsize(s_serverUrl));
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
const wchar *GetServerDisplayName () {
|
||||
return s_serverName;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
void SetServerDisplayName (const wchar name[]) {
|
||||
StrCopy(s_serverName, name, arrsize(s_serverName));
|
||||
}
|
||||
|
@ -88,3 +88,9 @@ bool CsrSrvHostnameOverride ();
|
||||
unsigned GetGateKeeperSrvHostnames (const wchar *** addrs); // returns addrCount
|
||||
void SetGateKeeperSrvHostname (const wchar addr[]);
|
||||
bool GateKeeperSrvHostnameOverride ();
|
||||
|
||||
const wchar *GetServerUrl ();
|
||||
void SetServerUrl (const wchar url[]);
|
||||
|
||||
const wchar *GetServerDisplayName ();
|
||||
void SetServerDisplayName (const wchar name[]);
|
||||
|
Reference in New Issue
Block a user