Browse Source

Merge pull request #105 from dpogue/netbase

pnNetBase refactor

--HG--
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h
Adam Johnson 13 years ago
parent
commit
61da0883d8
  1. 2
      Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt
  2. 3
      Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp
  3. 177
      Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp
  4. 42
      Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h
  5. 26
      Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt
  6. 54
      Sources/Plasma/NucleusLib/pnNetBase/Intern.h
  7. 57
      Sources/Plasma/NucleusLib/pnNetBase/Pch.h
  8. 41
      Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp
  9. 51
      Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h
  10. 169
      Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h
  11. 14
      Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h
  12. 114
      Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp
  13. 15
      Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h
  14. 8
      Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp
  15. 16
      Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h
  16. 40
      Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp
  17. 15
      Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h
  18. 26
      Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp
  19. 15
      Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h
  20. 25
      Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h

2
Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt

@ -8,12 +8,14 @@ set(pfConsoleCore_SOURCES
pfConsoleCommandsCore.cpp pfConsoleCommandsCore.cpp
pfConsoleContext.cpp pfConsoleContext.cpp
pfConsoleEngine.cpp pfConsoleEngine.cpp
pfUtilBase64.cpp
) )
set(pfConsoleCore_HEADERS set(pfConsoleCore_HEADERS
pfConsoleCmd.h pfConsoleCmd.h
pfConsoleContext.h pfConsoleContext.h
pfConsoleEngine.h pfConsoleEngine.h
pfUtilBase64.h
) )
add_library(pfConsoleCore STATIC ${pfConsoleCore_SOURCES} ${pfConsoleCore_HEADERS}) add_library(pfConsoleCore STATIC ${pfConsoleCore_SOURCES} ${pfConsoleCore_HEADERS})

3
Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp

@ -46,7 +46,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
#include "pfConsoleCmd.h" #include "pfConsoleCmd.h"
#include "pnNetBase/Pch.h" #include "pnNetBase/pnNetBase.h"
#include "pfUtilBase64.h"
#include <algorithm> #include <algorithm>

177
Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp

@ -0,0 +1,177 @@
/*==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/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
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==*/
#include "pfUtilBase64.h"
/*****************************************************************************
*
* Private
*
***/
static const char kEncode64[] = {
// 0000000000111111111122222222223333333333444444444455555555556666
// 0123456789012345678901234567890123456789012345678901234567890123
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
};
// Note that the decode table contains one special entry:
// The '-' character (0x2d) maps to 63 just like '/' (0x2f)
// so that URLs will work with Base64Decode when we implement them.
#define kTerminator 127
#define xx kTerminator
static const char kDecode64[] = {
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,62,xx,63,xx,63,
52,53,54,55,56,57,58,59,60,61,xx,xx,xx,xx,xx,xx,
xx, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,25,xx,xx,xx,xx,xx,
xx,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,51,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
};
#undef xx
static const char kFillchar = '=';
/*****************************************************************************
*
* Exports
*
***/
//============================================================================
unsigned Base64Encode (
unsigned srcChars,
const byte srcData[],
unsigned dstChars,
char * dstData
) {
ASSERT(srcData);
ASSERT(dstChars >= Base64EncodeSize(srcChars));
ASSERT(dstData);
const char * dstBase = dstData;
const byte * srcTerm = srcData + srcChars;
for (;;) switch (srcTerm - srcData) {
case 0:
*dstData++ = 0;
return dstData - dstBase;
case 1:
*dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ];
*dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) ];
*dstData++ = kFillchar;
*dstData++ = kFillchar;
*dstData++ = 0;
return dstData - dstBase;
case 2:
*dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ];
*dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) + ((srcData[1] >> 4) & 0x0f) ];
*dstData++ = kEncode64[ ((srcData[1] << 2) & 0x3c) ];
*dstData++ = kFillchar;
*dstData++ = 0;
return dstData - dstBase;
default:
*dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ];
*dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) + ((srcData[1] >> 4) & 0x0f) ];
*dstData++ = kEncode64[ ((srcData[1] << 2) & 0x3c) + ((srcData[2] >> 6) & 0x03) ];
*dstData++ = kEncode64[ (srcData[2] & 0x3f) ];
srcData += 3;
break;
}
}
//============================================================================
unsigned Base64Decode (
unsigned srcChars,
const char srcData[],
unsigned dstChars,
byte * dstData
) {
ASSERT(srcData);
ASSERT(dstChars >= Base64DecodeSize(srcChars, srcData));
ASSERT(dstData);
const byte * dstBase = dstData;
const char * srcTerm = srcData + srcChars;
while (srcTerm - srcData >= 4) {
*dstData++ = (byte) (
(kDecode64[srcData[0]] << 2 & 0xfc)
+(kDecode64[srcData[1]] >> 4 & 0x03)
);
if (kDecode64[srcData[2]] == kTerminator)
break;
*dstData++ = (byte) (
(kDecode64[srcData[1]] << 4 & 0xf0)
+(kDecode64[srcData[2]] >> 2 & 0x0f)
);
if (kDecode64[srcData[3]] == kTerminator)
break;
*dstData++ = (byte) (
(kDecode64[srcData[2]] << 6 & 0xc0)
+(kDecode64[srcData[3]])
);
srcData += 4;
}
return dstData - dstBase;
}

42
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h → Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h

@ -39,22 +39,42 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
#ifndef pfUtilBase64_inc
#define pfUtilBase64_inc
#include "hsTypes.h"
/***************************************************************************** /*****************************************************************************
* *
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h * Base64 Codec API
* *
***/ ***/
#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H const unsigned kBase64EncodeBlock = 4;
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H const unsigned kBase64EncodeMultiple = 3;
#include "pnProduct/pnProduct.h" inline unsigned Base64EncodeSize (unsigned srcChars) {
return (srcChars + kBase64EncodeMultiple - 1) / kBase64EncodeMultiple
* kBase64EncodeBlock;
}
unsigned Base64Encode (
unsigned srcChars,
const byte srcData[],
unsigned dstChars,
char * dstData
);
#include "../pnNbConst.h" inline unsigned Base64DecodeSize (unsigned srcChars, const char srcData[]) {
#include "pnNbError.h" return srcChars * kBase64EncodeMultiple / kBase64EncodeBlock
#include "pnNbKeys.h" - ((srcChars >= 1 && srcData[srcChars - 1] == '=') ? 1 : 0)
#include "pnNbProtocol.h" - ((srcChars >= 2 && srcData[srcChars - 2] == '=') ? 1 : 0);
#include "pnNbSrvs.h" }
unsigned Base64Decode (
unsigned srcChars,
const char srcData[],
unsigned dstChars,
byte * dstData
);
#endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H #endif //pnUtilBase64_inc

26
Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt

@ -2,26 +2,22 @@ include_directories("../../CoreLib")
include_directories("../../NucleusLib") include_directories("../../NucleusLib")
set(pnNetBase_HEADERS set(pnNetBase_HEADERS
Intern.h
Pch.h
pnNbConst.h pnNbConst.h
pnNbError.h
pnNbKeys.h
pnNbProtocol.h
pnNbSrvs.h
pnNetBase.h pnNetBase.h
) )
set(pnNetBase_PRIVATE set(pnNetBase_SOURCES
Private/pnNbAllIncludes.h pnNbError.cpp
Private/pnNbEchoMsgs.h pnNbKeys.cpp
Private/pnNbError.h pnNbProtocol.cpp
Private/pnNbError.cpp pnNbSrvs.cpp
Private/pnNbProtocol.h
Private/pnNbProtocol.cpp
Private/pnNbSrvs.h
Private/pnNbSrvs.cpp
Private/pnNbKeys.h
Private/pnNbKeys.cpp
) )
add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_PRIVATE}) add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_SOURCES})
source_group("Header Files" FILES ${pnNetBase_HEADERS}) source_group("Header Files" FILES ${pnNetBase_HEADERS})
source_group("Private" FILES ${pnNetBase_PRIVATE}) source_group("Source Files" FILES ${pnNetBase_SOURCES})

54
Sources/Plasma/NucleusLib/pnNetBase/Intern.h

@ -1,54 +0,0 @@
/*==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/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
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/Intern.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_INTERN_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Intern.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_INTERN_H
#include "Private/pnNbAllIncludes.h"

57
Sources/Plasma/NucleusLib/pnNetBase/Pch.h

@ -1,57 +0,0 @@
/*==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/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
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/Pch.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PCH_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Pch.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PCH_H
#include "pnUtils/pnUtils.h"
#include "pnProduct/pnProduct.h"
#include "Private/pnNbAllIncludes.h"

41
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp

@ -1,41 +0,0 @@
/*==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/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
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==*/

51
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h

@ -1,51 +0,0 @@
/*==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/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
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/pnNbAges.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBAGES_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBAGES_H

169
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h

@ -1,169 +0,0 @@
/*==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/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
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/pnNbEchoMsgs.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBECHOMSGS_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBECHOMSGS_H
//============================================================================
// Begin Echo server data types
//============================================================================
namespace Echo {
/*****************************************************************************
*
* @@@: Shared data types for echo server/client demo
*
***/
const unsigned kEchoMsgFlagBroadcast = 1<<0;
const unsigned kEchoMsgFlagEchoBack = 1<<1;
enum EEchoNetBufferType {
kEchoNetBufferInvalidType,
kEchoNetBufferMsg,
kNumEchoNetBufferTypes
};
enum EEchoMsgType {
kEchoInvalidMsgType,
kEchoJoinRequestMsg,
kEchoJoinReplyMsg,
kEchoPlayerJoinedMsg,
kEchoPlayerLeftMsg,
kEchoChatMsg,
kEchoGameDataBufferMsg,
kNumEchoMsgTypes
};
COMPILER_ASSERT(kNumEchoMsgTypes < (byte)-1);
//============================================================================
// Begin packed data structures
//============================================================================
#include <pshpack1.h>
struct EchoMsg {
EchoMsg (const EEchoMsgType & type, unsigned flags = 0)
: type((byte)type)
, flags(flags)
{ }
byte type;
dword flags;
};
struct EchoJoinRequestMsg : EchoMsg {
EchoJoinRequestMsg ()
: EchoMsg(kEchoJoinRequestMsg)
{ }
wchar playerName[64];
};
struct EchoJoinReplyMsg : EchoMsg {
EchoJoinReplyMsg ()
: EchoMsg(kEchoJoinReplyMsg)
{ }
dword playerId;
};
struct EchoPlayerJoinedMsg : EchoMsg {
EchoPlayerJoinedMsg ()
: EchoMsg(kEchoPlayerJoinedMsg, kEchoMsgFlagBroadcast)
{ }
dword playerId;
wchar playerName[64];
};
struct EchoPlayerLeftMsg : EchoMsg {
EchoPlayerLeftMsg ()
: EchoMsg(kEchoPlayerLeftMsg, kEchoMsgFlagBroadcast)
{ }
dword playerId;
};
struct EchoChatMsg : EchoMsg {
EchoChatMsg ()
: EchoMsg(kEchoChatMsg, kEchoMsgFlagBroadcast|kEchoMsgFlagEchoBack)
{ }
dword fromPlayerId;
dword msgChars;
wchar msgBuffer[1]; // [msgChars], actually
// no more fields after variable length allocation
};
struct EchoGameDataBufferMsg : EchoMsg {
EchoGameDataBufferMsg ()
: EchoMsg(kEchoGameDataBufferMsg, kEchoMsgFlagBroadcast|kEchoMsgFlagEchoBack)
{ }
dword fromPlayerId;
dword bufferBytes;
byte bufferData[1]; // [bufferBytes], actually
// no more fields after variable length allocation
};
//============================================================================
// End packed data structures
//============================================================================
#include <poppack.h>
//============================================================================
// End Echo server data types
//============================================================================
} using namespace Echo;

14
Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h

@ -39,17 +39,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNBCONST_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNBCONST_H
#ifndef pnNbConst_inc
#define pnNbConst_inc
/***************************************************************************** /*****************************************************************************
* *
@ -166,3 +158,5 @@ enum EScoreTimePeriods {
kScoreTimePeriodMonth, kScoreTimePeriodMonth,
kScoreTimePeriodDay kScoreTimePeriodDay
}; };
#endif //pnNbConst_inc

114
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp

@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp
*
***/
#include "../Pch.h" #include "pnNbError.h"
#pragma hdrstop
/***************************************************************************** /*****************************************************************************
@ -60,7 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// in release clients because they are not localized // in release clients because they are not localized
const wchar * NetErrorToString (ENetError code) { const wchar * NetErrorToString (ENetError code) {
static wchar * s_errors[] = { static const wchar* s_errors[] = {
L"Success", // kNetSuccess L"Success", // kNetSuccess
L"Internal Error", // kNetErrInternalError L"Internal Error", // kNetErrInternalError
L"No Response From Server", // kNetErrTimeout L"No Response From Server", // kNetErrTimeout
@ -127,66 +121,64 @@ const wchar * NetErrorToString (ENetError code) {
// in release clients because they are not localized // in release clients because they are not localized
const wchar * NetErrorAsString (ENetError code) { const wchar * NetErrorAsString (ENetError code) {
#define ERROR_STRING(e) L#e static const wchar* s_errors[] = {
static wchar * s_errors[] = { L"kNetSuccess",
ERROR_STRING(kNetSuccess), L"kNetErrInternalError",
ERROR_STRING(kNetErrInternalError), L"kNetErrTimeout",
ERROR_STRING(kNetErrTimeout), L"kNetErrBadServerData",
ERROR_STRING(kNetErrBadServerData), L"kNetErrAgeNotFound",
ERROR_STRING(kNetErrAgeNotFound), L"kNetErrConnectFailed",
ERROR_STRING(kNetErrConnectFailed), L"kNetErrDisconnected",
ERROR_STRING(kNetErrDisconnected), L"kNetErrFileNotFound",
ERROR_STRING(kNetErrFileNotFound), L"kNetErrOldBuildId",
ERROR_STRING(kNetErrOldBuildId), L"kNetErrRemoteShutdown",
ERROR_STRING(kNetErrRemoteShutdown), L"kNetErrTimeoutOdbc",
ERROR_STRING(kNetErrTimeoutOdbc), L"kNetErrAccountAlreadyExists",
ERROR_STRING(kNetErrAccountAlreadyExists), L"kNetErrPlayerAlreadyExists",
ERROR_STRING(kNetErrPlayerAlreadyExists), L"kNetErrAccountNotFound",
ERROR_STRING(kNetErrAccountNotFound), L"kNetErrPlayerNotFound",
ERROR_STRING(kNetErrPlayerNotFound), L"kNetErrInvalidParameter",
ERROR_STRING(kNetErrInvalidParameter), L"kNetErrNameLookupFailed",
ERROR_STRING(kNetErrNameLookupFailed), L"kNetErrLoggedInElsewhere",
ERROR_STRING(kNetErrLoggedInElsewhere), L"kNetErrVaultNodeNotFound",
ERROR_STRING(kNetErrVaultNodeNotFound), L"kNetErrMaxPlayersOnAcct",
ERROR_STRING(kNetErrMaxPlayersOnAcct), L"kNetErrAuthenticationFailed",
ERROR_STRING(kNetErrAuthenticationFailed), L"kNetErrStateObjectNotFound",
ERROR_STRING(kNetErrStateObjectNotFound), L"kNetErrLoginDenied",
ERROR_STRING(kNetErrLoginDenied), L"kNetErrCircularReference",
ERROR_STRING(kNetErrCircularReference), L"kNetErrAccountNotActivated",
ERROR_STRING(kNetErrAccountNotActivated), L"kNetErrKeyAlreadyUsed",
ERROR_STRING(kNetErrKeyAlreadyUsed), L"kNetErrKeyNotFound",
ERROR_STRING(kNetErrKeyNotFound), L"kNetErrActivationCodeNotFound",
ERROR_STRING(kNetErrActivationCodeNotFound), L"kNetErrPlayerNameInvalid",
ERROR_STRING(kNetErrPlayerNameInvalid), L"kNetErrNotSupported",
ERROR_STRING(kNetErrNotSupported), L"kNetErrServiceForbidden",
ERROR_STRING(kNetErrServiceForbidden), L"kNetErrAuthTokenTooOld",
ERROR_STRING(kNetErrAuthTokenTooOld), L"kNetErrMustUseGameTapClient",
ERROR_STRING(kNetErrMustUseGameTapClient), L"kNetErrTooManyFailedLogins",
ERROR_STRING(kNetErrTooManyFailedLogins), L"kNetErrGameTapConnectionFailed",
ERROR_STRING(kNetErrGameTapConnectionFailed), L"kNetErrGTTooManyAuthOptions",
ERROR_STRING(kNetErrGTTooManyAuthOptions), L"kNetErrGTMissingParameter",
ERROR_STRING(kNetErrGTMissingParameter), L"kNetErrGTServerError",
ERROR_STRING(kNetErrGTServerError), L"kNetErrAccountBanned",
ERROR_STRING(kNetErrAccountBanned), L"kNetErrKickedByCCR",
ERROR_STRING(kNetErrKickedByCCR), L"kNetErrScoreWrongType",
ERROR_STRING(kNetErrScoreWrongType), L"kNetErrScoreNotEnoughPoints",
ERROR_STRING(kNetErrScoreNotEnoughPoints), L"kNetErrScoreAlreadyExists",
ERROR_STRING(kNetErrScoreAlreadyExists), L"kNetErrScoreNoDataFound",
ERROR_STRING(kNetErrScoreNoDataFound), L"kNetErrInviteNoMatchingPlayer",
ERROR_STRING(kNetErrInviteNoMatchingPlayer), L"kNetErrInviteTooManyHoods",
ERROR_STRING(kNetErrInviteTooManyHoods), L"kNetErrNeedToPay",
ERROR_STRING(kNetErrNeedToPay), L"kNetErrServerBusy",
ERROR_STRING(kNetErrServerBusy), L"kNetErrVaultNodeAccessViolation",
ERROR_STRING(kNetErrVaultNodeAccessViolation),
}; };
COMPILER_ASSERT(arrsize(s_errors) == kNumNetErrors); COMPILER_ASSERT(arrsize(s_errors) == kNumNetErrors);
if ((unsigned)code >= arrsize(s_errors)) { if ((unsigned)code >= arrsize(s_errors)) {
if (code == kNetPending) if (code == kNetPending)
return ERROR_STRING(kNetPending); return L"kNetPending";
return L"ErrUnknown"; return L"ErrUnknown";
} }
#undef ERROR_STRING
return s_errors[code]; return s_errors[code];
} }

15
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h

@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBERROR_H #ifndef pnNbError_inc
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h included more than once" #define pnNbError_inc
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBERROR_H
#include "hsTypes.h"
#include "pnNbConst.h"
/***************************************************************************** /*****************************************************************************
* *
@ -130,3 +125,5 @@ enum ENetError {
const wchar * NetErrorToString (ENetError code); // user-friendly string const wchar * NetErrorToString (ENetError code); // user-friendly string
const wchar * NetErrorAsString (ENetError code); // string version of enum identifier const wchar * NetErrorAsString (ENetError code); // string version of enum identifier
#endif // pnNbError_inc

8
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp

@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
*
***/
#include "../Pch.h" #include "pnNbKeys.h"
#pragma hdrstop
// Auth Server // Auth Server
byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8] = {0}; byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8] = {0};

16
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h

@ -39,16 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H #ifndef pnNbKeys_inc
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h included more than once" #define pnNbKeys_inc
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H #include "hsTypes.h"
#include "pnNbConst.h"
// Auth Server // Auth Server
static const unsigned kAuthDhGValue = 41; static const unsigned kAuthDhGValue = 41;
@ -69,3 +65,5 @@ extern byte kGameDhXData[kNetDiffieHellmanKeyBits / 8];
static const unsigned kGateKeeperDhGValue = 4; static const unsigned kGateKeeperDhGValue = 4;
extern byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8]; extern byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8];
extern byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8]; extern byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8];
#endif // pnNbKeys_inc

40
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp

@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp
*
***/
#include "../Pch.h" #include "pnNbProtocol.h"
#pragma hdrstop
/***************************************************************************** /*****************************************************************************
@ -58,31 +52,29 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
//============================================================================ //============================================================================
const wchar * NetProtocolToString (ENetProtocol protocol) { const wchar * NetProtocolToString (ENetProtocol protocol) {
#define PROTOCOL_STRING(p) { p, L#p }
static struct { ENetProtocol protocol; const wchar *name; } s_protocols[] = { static struct { ENetProtocol protocol; const wchar *name; } s_protocols[] = {
PROTOCOL_STRING(kNetProtocolNil), { kNetProtocolNil, L"kNetProtocolNil" },
// For test applications // For test applications
PROTOCOL_STRING(kNetProtocolDebug), { kNetProtocolDebug, L"kNetProtocolDebug" },
// Client connections // Client connections
{ kNetProtocolCli2Csr, L"GateKeeper Server" }, { kNetProtocolCli2Csr, L"GateKeeper Server" },
{ kNetProtocolCli2Csr, L"Csr Server" }, { kNetProtocolCli2Csr, L"Csr Server" },
{ kNetProtocolCli2Auth, L"Auth Server" }, { kNetProtocolCli2Auth, L"Auth Server" },
{ kNetProtocolCli2Game, L"Game Server" }, { kNetProtocolCli2Game, L"Game Server" },
{ kNetProtocolCli2File, L"File Server" }, { kNetProtocolCli2File, L"File Server" },
PROTOCOL_STRING(kNetProtocolCli2Unused_01), { kNetProtocolCli2Unused_01, L"kNetProtocolCli2Unused_01" },
// Server connections // Server connections
PROTOCOL_STRING(kNetProtocolSrvConn), { kNetProtocolSrvConn, L"kNetProtocolSrvConn" },
PROTOCOL_STRING(kNetProtocolSrv2Mcp), { kNetProtocolSrv2Mcp, L"kNetProtocolSrv2Mcp" },
PROTOCOL_STRING(kNetProtocolSrv2Vault), { kNetProtocolSrv2Vault, L"kNetProtocolSrv2Vault" },
PROTOCOL_STRING(kNetProtocolSrv2Db), { kNetProtocolSrv2Db, L"kNetProtocolSrv2Db" },
PROTOCOL_STRING(kNetProtocolSrv2State), { kNetProtocolSrv2State, L"kNetProtocolSrv2State" },
PROTOCOL_STRING(kNetProtocolSrv2Log), { kNetProtocolSrv2Log, L"kNetProtocolSrv2Log" },
PROTOCOL_STRING(kNetProtocolSrv2Score), { kNetProtocolSrv2Score, L"kNetProtocolSrv2Score" },
}; };
#undef PROTOCOL_STRING
for (unsigned i = 0; i < arrsize(s_protocols); ++i) for (unsigned i = 0; i < arrsize(s_protocols); ++i)
if (s_protocols[i].protocol == protocol) if (s_protocols[i].protocol == protocol)

15
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h

@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBPROTOCOL_H #ifndef pnNbProtocol_inc
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h included more than once" #define pnNbProtocol_inc
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBPROTOCOL_H
#include "hsTypes.h"
#include "pnNbConst.h"
/***************************************************************************** /*****************************************************************************
* *
@ -90,3 +85,5 @@ enum ENetProtocol {
// cannot enforce this since the protocol values are not // cannot enforce this since the protocol values are not
// numerically sequential. // numerically sequential.
const wchar * NetProtocolToString (ENetProtocol protocol); const wchar * NetProtocolToString (ENetProtocol protocol);
#endif // pnNbProtocol_inc

26
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp

@ -39,14 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp
*
***/
#include "../Pch.h" #include "pnNbSrvs.h"
#pragma hdrstop
#if !HS_BUILD_FOR_WIN32
# include <wchar.h>
#endif
/***************************************************************************** /*****************************************************************************
@ -97,7 +95,7 @@ unsigned GetAuthSrvHostnames (const wchar *** addrs) {
//============================================================================ //============================================================================
void SetAuthSrvHostname (const wchar addr[]) { void SetAuthSrvHostname (const wchar addr[]) {
StrCopy(s_authAddrConsole, addr, arrsize(s_authAddrConsole)); wcsncpy(s_authAddrConsole, addr, arrsize(s_authAddrConsole));
} }
//============================================================================ //============================================================================
@ -112,7 +110,7 @@ unsigned GetFileSrvHostnames (const wchar *** addrs) {
//============================================================================ //============================================================================
void SetFileSrvHostname (const wchar addr[]) { void SetFileSrvHostname (const wchar addr[]) {
StrCopy(s_fileAddrConsole, addr, arrsize(s_fileAddrConsole)); wcsncpy(s_fileAddrConsole, addr, arrsize(s_fileAddrConsole));
} }
//============================================================================ //============================================================================
@ -127,7 +125,7 @@ unsigned GetCsrSrvHostnames (const wchar *** addrs) {
//============================================================================ //============================================================================
void SetCsrSrvHostname (const wchar addr[]) { void SetCsrSrvHostname (const wchar addr[]) {
StrCopy(s_csrAddrConsole, addr, arrsize(s_csrAddrConsole)); wcsncpy(s_csrAddrConsole, addr, arrsize(s_csrAddrConsole));
} }
@ -142,7 +140,7 @@ unsigned GetGateKeeperSrvHostnames (const wchar *** addrs) {
//============================================================================ //============================================================================
void SetGateKeeperSrvHostname (const wchar addr[]) { void SetGateKeeperSrvHostname (const wchar addr[]) {
StrCopy(s_gateKeeperAddrConsole, addr, arrsize(s_gateKeeperAddrConsole)); wcsncpy(s_gateKeeperAddrConsole, addr, arrsize(s_gateKeeperAddrConsole));
} }
@ -160,7 +158,7 @@ const wchar *GetServerStatusUrl () {
//============================================================================ //============================================================================
void SetServerStatusUrl (const wchar url[]) { void SetServerStatusUrl (const wchar url[]) {
StrCopy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl)); wcsncpy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl));
} }
//============================================================================ //============================================================================
@ -170,7 +168,7 @@ const wchar *GetServerSignupUrl () {
//============================================================================ //============================================================================
void SetServerSignupUrl (const wchar url[]) { void SetServerSignupUrl (const wchar url[]) {
StrCopy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl)); wcsncpy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl));
} }
//============================================================================ //============================================================================
@ -180,5 +178,5 @@ const wchar *GetServerDisplayName () {
//============================================================================ //============================================================================
void SetServerDisplayName (const wchar name[]) { void SetServerDisplayName (const wchar name[]) {
StrCopy(s_serverName, name, arrsize(s_serverName)); wcsncpy(s_serverName, name, arrsize(s_serverName));
} }

15
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h

@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBSRVS_H #ifndef pnNbSrvs_inc
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h included more than once" #define pnNbSrvs_inc
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBSRVS_H
#include "hsTypes.h"
#include "pnNbConst.h"
/***************************************************************************** /*****************************************************************************
* *
@ -109,3 +104,5 @@ void SetServerSignupUrl (const wchar url[]);
const wchar *GetServerDisplayName (); const wchar *GetServerDisplayName ();
void SetServerDisplayName (const wchar name[]); void SetServerDisplayName (const wchar name[]);
#endif // pnNbSrvs_inc

25
Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h

@ -39,23 +39,14 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021 Mead, WA 99021
*==LICENSE==*/ *==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h
*
***/
#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H #ifndef pnNetBase_inc
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H #define pnNetBase_inc
#include "pnNbConst.h"
#include "pnNbError.h"
#include "pnNbKeys.h"
#include "pnNbProtocol.h"
#include "pnNbSrvs.h"
/***************************************************************************** #endif // pnNetBase_inc
*
* Module includes
*
***/
#include "Private/pnNbAllIncludes.h"
#endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H

Loading…
Cancel
Save