1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-17 10:52:46 +00:00

Closes #182 -- dpogue/kill_utils

Conflicts:
	Sources/Plasma/Apps/plClient/winmain.cpp
This commit is contained in:
2012-04-14 19:34:07 -04:00
96 changed files with 890 additions and 5687 deletions

View File

@ -44,6 +44,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plNetCliAgeJoiner.h"
#include "plNetCliAgeLeaver.h"
#include <list>
#include "plNetTransport/plNetTransportMember.h" // OfferLinkToPlayer()
#include "plgDispatch.h"
@ -70,8 +72,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
*
***/
struct NlmOpNode;
enum ENlmOp {
kNlmOpNoOp,
kNlmOpWaitOp,
@ -82,7 +82,6 @@ enum ENlmOp {
struct NlmOp {
ENlmOp opcode;
NlmOpNode * node;
NlmOp (const ENlmOp & op)
: opcode(op)
{ }
@ -114,12 +113,6 @@ struct NlmLeaveAgeOp : NlmOp {
{ }
};
struct NlmOpNode {
LINK(NlmOpNode) link;
NlmOp * op;
~NlmOpNode () { delete op; }
};
/*****************************************************************************
*
@ -129,7 +122,7 @@ struct NlmOpNode {
static plNCAgeJoiner * s_ageJoiner;
static plNCAgeLeaver * s_ageLeaver;
static LISTDECL(NlmOpNode, link) s_oplist;
static std::list<NlmOp*> s_opqueue;
/*****************************************************************************
@ -140,10 +133,11 @@ static LISTDECL(NlmOpNode, link) s_oplist;
//============================================================================
static void QueueOp (NlmOp * op, bool front = false) {
NlmOpNode * node = NEWZERO(NlmOpNode);
node->op = op;
op->node = node;
s_oplist.Link(node, front ? kListHead : kListTail);
if (front) {
s_opqueue.push_front(op);
} else {
s_opqueue.push_back(op);
}
}
@ -184,8 +178,10 @@ void plNetLinkingMgr::NCAgeJoinerCallback (
lm->SetEnabled(true);
// Pull our wait op off exec queue
if (NlmOpWaitOp * waitOp = (NlmOpWaitOp *) userState)
delete waitOp->node;
if (NlmOpWaitOp * waitOp = (NlmOpWaitOp *) userState) {
s_opqueue.remove(waitOp);
delete waitOp;
}
}
break;
@ -206,8 +202,10 @@ void plNetLinkingMgr::NCAgeLeaverCallback (
s_ageLeaver = nil;
// Pull our wait op off exec queue
if (NlmOpWaitOp * waitOp = (NlmOpWaitOp *) userState)
delete waitOp->node;
if (NlmOpWaitOp * waitOp = (NlmOpWaitOp *) userState) {
s_opqueue.remove(waitOp);
delete waitOp;
}
}
break;
@ -219,28 +217,27 @@ void plNetLinkingMgr::NCAgeLeaverCallback (
void plNetLinkingMgr::ExecNextOp () {
plNetLinkingMgr * lm = plNetLinkingMgr::GetInstance();
NlmOpNode * opNode = s_oplist.Head();
if (!opNode)
if (!s_opqueue.size())
return;
switch (opNode->op->opcode) {
case kNlmOpNoOp: {
}
break;
case kNlmOpWaitOp: {
}
return; // don't allow wait op to be unlinked/deleted from list
NlmOp* op = s_opqueue.front();
switch (op->opcode) {
case kNlmOpNoOp:
break;
case kNlmOpWaitOp:
return; // don't allow wait op to be unlinked/deleted from list
case kNlmOpJoinAgeOp: {
ASSERT(!s_ageJoiner);
ASSERT(!s_ageLeaver);
// Insert a wait operation into the exec queue
NlmOpWaitOp * waitOp = NEWZERO(NlmOpWaitOp);
QueueOp(waitOp, true);
NlmJoinAgeOp * joinAgeOp = (NlmJoinAgeOp *) opNode->op;
NlmJoinAgeOp * joinAgeOp = (NlmJoinAgeOp *)op;
NCAgeJoinerCreate(
&s_ageJoiner,
joinAgeOp->age,
@ -249,7 +246,7 @@ void plNetLinkingMgr::ExecNextOp () {
);
}
break;
case kNlmOpLeaveAgeOp: {
ASSERT(!s_ageJoiner);
ASSERT(!s_ageLeaver);
@ -261,7 +258,7 @@ void plNetLinkingMgr::ExecNextOp () {
lm->SetEnabled(false);
lm->fLinkedIn = false;
NlmLeaveAgeOp * leaveAgeOp = (NlmLeaveAgeOp *) opNode->op;
NlmLeaveAgeOp * leaveAgeOp = (NlmLeaveAgeOp *)op;
NCAgeLeaverCreate(
&s_ageLeaver,
leaveAgeOp->quitting,
@ -271,8 +268,9 @@ void plNetLinkingMgr::ExecNextOp () {
}
break;
}
delete opNode;
s_opqueue.remove(op);
delete op;
}

View File

@ -110,11 +110,11 @@ static bool s_loginComplete = false;
static bool s_hasAuthSrvIpAddress = false;
static bool s_hasFileSrvIpAddress = false;
static ENetError s_authResult = kNetErrAuthenticationFailed;
static wchar_t s_authSrvAddr[256];
static wchar_t s_fileSrvAddr[256];
static char s_authSrvAddr[256];
static char s_fileSrvAddr[256];
static wchar_t s_iniServerAddr[256];
static wchar_t s_iniFileServerAddr[256];
static char s_iniServerAddr[256];
static char s_iniFileServerAddr[256];
static wchar_t s_iniAccountUsername[kMaxAccountNameLength];
static ShaDigest s_namePassHash;
static wchar_t s_iniAuthToken[kMaxPublisherAuthKeyLength];
@ -591,23 +591,22 @@ static void INetCliAuthAgeRequestCallback (
unsigned ageMcpId,
unsigned ageVaultId,
const Uuid & ageInstId,
NetAddressNode gameAddr
plNetAddress gameAddr
) {
if (!IS_NET_ERROR(result) || result == kNetErrVaultNodeNotFound) {
s_age.ageInstId = ageInstId;
s_age.ageVaultId = ageVaultId;
wchar_t gameAddrStr[64];
wchar_t ageInstIdStr[64];
NetAddressNodeToString(gameAddr, gameAddrStr, arrsize(gameAddrStr));
plString gameAddrStr = gameAddr.GetHostString();
LogMsg(
kLogPerf,
L"Connecting to game server %s, ageInstId %s",
gameAddrStr,
gameAddrStr.c_str(),
GuidToString(ageInstId, ageInstIdStr, arrsize(ageInstIdStr))
);
NetCliGameDisconnect();
NetCliGameStartConnect(gameAddr);
NetCliGameStartConnect(gameAddr.GetHost());
NetCliGameJoinAgeRequest(
ageMcpId,
s_account.accountUuid,
@ -668,7 +667,7 @@ static void AuthSrvIpAddressCallback (
void * param,
const wchar_t addr[]
) {
StrCopy(s_authSrvAddr, addr, arrsize(s_authSrvAddr));
StrToAnsi(s_authSrvAddr, addr, arrsize(s_authSrvAddr));
s_hasAuthSrvIpAddress = true;
}
@ -678,7 +677,7 @@ static void FileSrvIpAddressCallback (
void * param,
const wchar_t addr[]
) {
StrCopy(s_fileSrvAddr, addr, arrsize(s_fileSrvAddr));
StrToAnsi(s_fileSrvAddr, addr, arrsize(s_fileSrvAddr));
s_hasFileSrvIpAddress = true;
}
@ -823,12 +822,12 @@ void NetCommUpdate () {
//============================================================================
void NetCommConnect () {
const wchar_t ** addrs;
const char** addrs;
unsigned count;
hsBool connectedToKeeper = false;
// if a console override was specified for a authserv, connect directly to the authserver rather than going through the gatekeeper
if((count = GetAuthSrvHostnames(&addrs)) && wcslen(addrs[0]))
if((count = GetAuthSrvHostnames(&addrs)) && strlen(addrs[0]))
{
NetCliAuthStartConnect(addrs, count);
}
@ -846,7 +845,7 @@ void NetCommConnect () {
AsyncSleep(10);
}
const wchar_t * authSrv[] = {
const char* authSrv[] = {
s_authSrvAddr
};
NetCliAuthStartConnect(authSrv, 1);
@ -855,7 +854,7 @@ void NetCommConnect () {
if (!gDataServerLocal) {
// if a console override was specified for a filesrv, connect directly to the fileserver rather than going through the gatekeeper
if((count = GetFileSrvHostnames(&addrs)) && wcslen(addrs[0]))
if((count = GetFileSrvHostnames(&addrs)) && strlen(addrs[0]))
{
NetCliFileStartConnect(addrs, count);
}
@ -875,7 +874,7 @@ void NetCommConnect () {
AsyncSleep(10);
}
const wchar_t * fileSrv[] = {
const char* fileSrv[] = {
s_fileSrvAddr
};
NetCliFileStartConnect(fileSrv, 1);

View File

@ -51,6 +51,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#define PLASMA20_SOURCES_PLASMA_PUBUTILLIB_PLNETGAMELIB_PCH_H
#include "pnUtils/pnUtils.h"
#include "pnEncryption/plBigNum.h"
#include "pnNetBase/pnNetBase.h"
#include "pnAsyncCore/pnAsyncCore.h"
#include "pnNetCli/pnNetCli.h"

View File

@ -90,8 +90,8 @@ struct CliAuConn : AtomicRef {
LINK(CliAuConn) link;
AsyncSocket sock;
NetCli * cli;
wchar_t name[MAX_PATH];
NetAddress addr;
char name[MAX_PATH];
plNetAddress addr;
Uuid token;
unsigned seq;
unsigned serverChallenge;
@ -197,7 +197,7 @@ struct AgeRequestTrans : NetAuthTrans {
unsigned m_ageMcpId;
Uuid m_ageInstId;
unsigned m_ageVaultId;
NetAddressNode m_gameSrvNode;
uint32_t m_gameSrvNode;
AgeRequestTrans (
const wchar_t ageName[],
@ -1527,8 +1527,8 @@ static void Connect (
//============================================================================
static void Connect (
const wchar_t name[],
const NetAddress & addr
const char name[],
const plNetAddress& addr
) {
ASSERT(s_running);
@ -1536,7 +1536,7 @@ static void Connect (
conn->addr = addr;
conn->seq = ConnNextSequence();
conn->lastHeardTimeMs = GetNonZeroTimeMs(); // used in connect timeout, and ping timeout
StrCopy(conn->name, name, arrsize(conn->name));
strncpy(conn->name, name, arrsize(conn->name));
conn->IncRef("Lifetime");
conn->AutoReconnect();
@ -1545,9 +1545,9 @@ static void Connect (
//============================================================================
static void AsyncLookupCallback (
void * param,
const wchar_t name[],
const char name[],
unsigned addrCount,
const NetAddress addrs[]
const plNetAddress addrs[]
) {
if (!addrCount) {
ReportNetError(kNetProtocolCli2Auth, kNetErrNameLookupFailed);
@ -2194,18 +2194,11 @@ static bool Recv_ServerAddr (
{
if (s_active) {
s_active->token = msg.token;
NetAddressFromNode(
msg.srvAddr,
NetAddressGetPort(s_active->addr),
&s_active->addr
);
wchar_t addrStr[64];
NetAddressNodeToString(
msg.srvAddr,
addrStr,
arrsize(addrStr)
);
LogMsg(kLogPerf, L"SrvAuth addr: %s", addrStr);
s_active->addr.SetHost(msg.srvAddr);
plString logmsg = _TEMP_CONVERT_FROM_LITERAL("SrvAuth addr: ");
logmsg += s_active->addr.GetHostString();
LogMsg(kLogPerf, L"SrvAuth addr: %s", logmsg.c_str());
}
}
s_critsect.Leave();
@ -2760,13 +2753,16 @@ bool AgeRequestTrans::Send () {
//============================================================================
void AgeRequestTrans::Post () {
plNetAddress addr;
addr.SetHost(htonl(m_gameSrvNode));
m_callback(
m_result,
m_param,
m_ageMcpId,
m_ageVaultId,
m_ageInstId,
m_gameSrvNode
addr
);
}
@ -5032,8 +5028,8 @@ void AuthInitialize () {
s_send, arrsize(s_send),
s_recv, arrsize(s_recv),
kAuthDhGValue,
BigNum(sizeof(kAuthDhXData), kAuthDhXData),
BigNum(sizeof(kAuthDhNData), kAuthDhNData)
plBigNum(sizeof(kAuthDhXData), kAuthDhXData),
plBigNum(sizeof(kAuthDhNData), kAuthDhNData)
);
}
@ -5125,8 +5121,8 @@ void AuthPingEnable (bool enable) {
//============================================================================
void NetCliAuthStartConnect (
const wchar_t * authAddrList[],
unsigned authAddrCount
const char* authAddrList[],
uint32_t authAddrCount
) {
// TEMP: Only connect to one auth server until we fill out this module
// to choose the "best" auth connection.
@ -5134,7 +5130,7 @@ void NetCliAuthStartConnect (
for (unsigned i = 0; i < authAddrCount; ++i) {
// Do we need to lookup the address?
const wchar_t * name = authAddrList[i];
const char* name = authAddrList[i];
while (unsigned ch = *name) {
++name;
if (!(isdigit(ch) || ch == L'.' || ch == L':')) {
@ -5150,8 +5146,7 @@ void NetCliAuthStartConnect (
}
}
if (!name[0]) {
NetAddress addr;
NetAddressFromString(&addr, authAddrList[i], kNetDefaultClientPort);
plNetAddress addr(authAddrList[i], kNetDefaultClientPort);
Connect(authAddrList[i], addr);
}
}

View File

@ -50,6 +50,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#endif
#define PLASMA20_SOURCES_PLASMA_PUBUTILLIB_PLNETGAMELIB_PRIVATE_PLNGLAUTH_H
#include "pnNetCommon/plNetAddress.h"
/*****************************************************************************
*
@ -61,8 +62,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// Connect
//============================================================================
void NetCliAuthStartConnect (
const wchar_t * authAddrList[],
unsigned authAddrCount
const char* authAddrList[],
uint32_t authAddrCount
);
bool NetCliAuthQueryConnected ();
void NetCliAuthAutoReconnectEnable (bool enable); // is enabled by default
@ -326,7 +327,7 @@ typedef void (*FNetCliAuthAgeRequestCallback)(
unsigned ageMcpId,
unsigned ageVaultId,
const Uuid & ageInstId,
NetAddressNode gameAddr
plNetAddress gameAddr
);
void NetCliAuthAgeRequest (
const wchar_t ageName[], // L"Teledahn"

View File

@ -73,7 +73,7 @@ struct CliCsConn : AtomicRef {
AsyncSocket sock;
AsyncCancelId cancelId;
NetCli * cli;
NetAddress addr;
plNetAddress addr;
unsigned seq;
bool abandoned;
unsigned serverChallenge;
@ -369,7 +369,7 @@ static bool SocketNotifyCallback (
//============================================================================
static void Connect (
const NetAddress & addr,
const plNetAddress& addr,
ConnectParam * cp
) {
CliCsConn * conn = NEWZERO(CliCsConn);
@ -413,9 +413,9 @@ static void Connect (
//============================================================================
static void AsyncLookupCallback (
void * param,
const wchar_t name[],
const char name[],
unsigned addrCount,
const NetAddress addrs[]
const plNetAddress addrs[]
) {
if (!addrCount) {
ReportNetError(kNetProtocolCli2Auth, kNetErrNameLookupFailed);
@ -758,8 +758,8 @@ void CsrInitialize () {
s_send, arrsize(s_send),
s_recv, arrsize(s_recv),
kCsrDhGValue,
BigNum(sizeof(kCsrDhXData), kCsrDhXData),
BigNum(sizeof(kCsrDhNData), kCsrDhNData)
plBigNum(sizeof(kCsrDhXData), kCsrDhXData),
plBigNum(sizeof(kCsrDhNData), kCsrDhNData)
);
}
@ -830,8 +830,8 @@ unsigned CsrGetConnId () {
//============================================================================
void NetCliCsrStartConnect (
const wchar_t * addrList[],
unsigned addrCount,
const char* addrList[],
uint32_t addrCount,
FNetCliCsrConnectedCallback callback,
void * param
) {
@ -840,7 +840,7 @@ void NetCliCsrStartConnect (
for (unsigned i = 0; i < addrCount; ++i) {
// Do we need to lookup the address?
const wchar_t * name = addrList[i];
const char* name = addrList[i];
while (unsigned ch = *name) {
++name;
if (!(isdigit(ch) || ch == L'.' || ch == L':')) {
@ -860,9 +860,8 @@ void NetCliCsrStartConnect (
}
}
if (!name[0]) {
NetAddress addr;
NetAddressFromString(&addr, addrList[i], kNetDefaultClientPort);
plNetAddress addr(addrList[i], kNetDefaultClientPort);
ConnectParam * cp = new ConnectParam;
cp->callback = callback;
cp->param = param;

View File

@ -62,8 +62,8 @@ typedef void (*FNetCliCsrConnectedCallback) (
unsigned latestBuildId
);
void NetCliCsrStartConnect (
const wchar_t * addrList[],
unsigned addrCount,
const char* addrList[],
uint32_t addrCount,
FNetCliCsrConnectedCallback callback = nil,
void * param = nil
);

View File

@ -64,8 +64,8 @@ struct CliFileConn : AtomicRef {
LINK(CliFileConn) link;
CLock sockLock; // to protect the socket pointer so we don't nuke it while using it
AsyncSocket sock;
wchar_t name[MAX_PATH];
NetAddress addr;
char name[MAX_PATH];
plNetAddress addr;
unsigned seq;
ARRAY(uint8_t) recvBuffer;
AsyncCancelId cancelId;
@ -539,13 +539,13 @@ static void Connect (CliFileConn * conn) {
//============================================================================
static void Connect (
const wchar_t name[],
const NetAddress & addr
const char name[],
const plNetAddress& addr
) {
ASSERT(s_running);
CliFileConn * conn = NEWZERO(CliFileConn);
StrCopy(conn->name, name, arrsize(conn->name));
strncpy(conn->name, name, arrsize(conn->name));
conn->addr = addr;
conn->buildId = s_connectBuildId;
conn->serverType = s_serverType;
@ -559,9 +559,9 @@ static void Connect (
//============================================================================
static void AsyncLookupCallback (
void * param,
const wchar_t name[],
const char name[],
unsigned addrCount,
const NetAddress addrs[]
const plNetAddress addrs[]
) {
if (!addrCount) {
ReportNetError(kNetProtocolCli2File, kNetErrNameLookupFailed);
@ -1334,8 +1334,8 @@ unsigned FileGetConnId () {
//============================================================================
void NetCliFileStartConnect (
const wchar_t * fileAddrList[],
unsigned fileAddrCount,
const char* fileAddrList[],
uint32_t fileAddrCount,
bool isPatcher /* = false */
) {
// TEMP: Only connect to one file server until we fill out this module
@ -1346,7 +1346,7 @@ void NetCliFileStartConnect (
for (unsigned i = 0; i < fileAddrCount; ++i) {
// Do we need to lookup the address?
const wchar_t * name = fileAddrList[i];
const char* name = fileAddrList[i];
while (unsigned ch = *name) {
++name;
if (!(isdigit(ch) || ch == L'.' || ch == L':')) {
@ -1362,8 +1362,7 @@ void NetCliFileStartConnect (
}
}
if (!name[0]) {
NetAddress addr;
NetAddressFromString(&addr, fileAddrList[i], kNetDefaultClientPort);
plNetAddress addr(fileAddrList[i], kNetDefaultClientPort);
Connect(fileAddrList[i], addr);
}
}
@ -1371,8 +1370,8 @@ void NetCliFileStartConnect (
//============================================================================
void NetCliFileStartConnectAsServer (
const wchar_t * fileAddrList[],
unsigned fileAddrCount,
const char* fileAddrList[],
uint32_t fileAddrCount,
unsigned serverType,
unsigned serverBuildId
) {
@ -1384,7 +1383,7 @@ void NetCliFileStartConnectAsServer (
for (unsigned i = 0; i < fileAddrCount; ++i) {
// Do we need to lookup the address?
const wchar_t * name = fileAddrList[i];
const char* name = fileAddrList[i];
while (unsigned ch = *name) {
++name;
if (!(isdigit(ch) || ch == L'.' || ch == L':')) {
@ -1400,8 +1399,7 @@ void NetCliFileStartConnectAsServer (
}
}
if (!name[0]) {
NetAddress addr;
NetAddressFromString(&addr, fileAddrList[i], kNetDefaultServerPort);
plNetAddress addr(fileAddrList[i], kNetDefaultServerPort);
Connect(fileAddrList[i], addr);
}
}

View File

@ -62,12 +62,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// Connect
//============================================================================
void NetCliFileStartConnect (
const wchar_t * fileAddrList[],
const char* fileAddrList[],
unsigned fileAddrCount,
bool isPatcher = false
);
void NetCliFileStartConnectAsServer (
const wchar_t * fileAddrList[],
const char* fileAddrList[],
unsigned fileAddrCount,
unsigned serverType,
unsigned serverBuildId

View File

@ -62,7 +62,7 @@ struct CliGmConn : AtomicRef {
AsyncSocket sock;
AsyncCancelId cancelId;
NetCli * cli;
NetAddress addr;
plNetAddress addr;
unsigned seq;
bool abandoned;
@ -354,7 +354,7 @@ static bool SocketNotifyCallback (
//============================================================================
static void Connect (
const NetAddress & addr
const plNetAddress& addr
) {
CliGmConn * conn = NEWZERO(CliGmConn);
conn->addr = addr;
@ -711,8 +711,8 @@ void GameInitialize () {
s_send, arrsize(s_send),
s_recv, arrsize(s_recv),
kGameDhGValue,
BigNum(sizeof(kGameDhXData), kGameDhXData),
BigNum(sizeof(kGameDhNData), kGameDhNData)
plBigNum(sizeof(kGameDhXData), kGameDhXData),
plBigNum(sizeof(kGameDhNData), kGameDhNData)
);
}
@ -796,10 +796,9 @@ void GamePingEnable (bool enable) {
//============================================================================
void NetCliGameStartConnect (
const NetAddressNode & node
const uint32_t node
) {
NetAddress addr;
NetAddressFromNode(node, kNetDefaultClientPort, &addr);
plNetAddress addr(node, kNetDefaultClientPort);
Connect(addr);
}

View File

@ -61,7 +61,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// Connect
//============================================================================
void NetCliGameStartConnect (
const NetAddressNode & node
const uint32_t node
);
//============================================================================

View File

@ -89,8 +89,8 @@ struct CliGkConn : AtomicRef {
LINK(CliGkConn) link;
AsyncSocket sock;
NetCli * cli;
wchar_t name[MAX_PATH];
NetAddress addr;
char name[MAX_PATH];
plNetAddress addr;
Uuid token;
unsigned seq;
unsigned serverChallenge;
@ -463,8 +463,8 @@ static void Connect (
//============================================================================
static void Connect (
const wchar_t name[],
const NetAddress & addr
const char name[],
const plNetAddress& addr
) {
ASSERT(s_running);
@ -472,7 +472,7 @@ static void Connect (
conn->addr = addr;
conn->seq = ConnNextSequence();
conn->lastHeardTimeMs = GetNonZeroTimeMs(); // used in connect timeout, and ping timeout
StrCopy(conn->name, name, arrsize(conn->name));
strncpy(conn->name, name, arrsize(conn->name));
conn->IncRef("Lifetime");
conn->AutoReconnect();
@ -481,9 +481,9 @@ static void Connect (
//============================================================================
static void AsyncLookupCallback (
void * param,
const wchar_t name[],
const char name[],
unsigned addrCount,
const NetAddress addrs[]
const plNetAddress addrs[]
) {
if (!addrCount) {
ReportNetError(kNetProtocolCli2GateKeeper, kNetErrNameLookupFailed);
@ -984,8 +984,8 @@ void GateKeeperInitialize () {
s_send, arrsize(s_send),
s_recv, arrsize(s_recv),
kGateKeeperDhGValue,
BigNum(sizeof(kGateKeeperDhXData), kGateKeeperDhXData),
BigNum(sizeof(kGateKeeperDhNData), kGateKeeperDhNData)
plBigNum(sizeof(kGateKeeperDhXData), kGateKeeperDhXData),
plBigNum(sizeof(kGateKeeperDhNData), kGateKeeperDhNData)
);
}
@ -1053,14 +1053,14 @@ unsigned GateKeeperGetConnId () {
//============================================================================
void NetCliGateKeeperStartConnect (
const wchar_t * gateKeeperAddrList[],
unsigned gateKeeperAddrCount
const char* gateKeeperAddrList[],
uint32_t gateKeeperAddrCount
) {
gateKeeperAddrCount = min(gateKeeperAddrCount, 1);
for (unsigned i = 0; i < gateKeeperAddrCount; ++i) {
// Do we need to lookup the address?
const wchar_t * name = gateKeeperAddrList[i];
const char* name = gateKeeperAddrList[i];
while (unsigned ch = *name) {
++name;
if (!(isdigit(ch) || ch == L'.' || ch == L':')) {
@ -1076,8 +1076,7 @@ void NetCliGateKeeperStartConnect (
}
}
if (!name[0]) {
NetAddress addr;
NetAddressFromString(&addr, gateKeeperAddrList[i], kNetDefaultClientPort);
plNetAddress addr(gateKeeperAddrList[i], kNetDefaultClientPort);
Connect(gateKeeperAddrList[i], addr);
}
}

View File

@ -62,8 +62,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// Connect
//============================================================================
void NetCliGateKeeperStartConnect (
const wchar_t * gateKeeperAddrList[],
unsigned gateKeeperAddrCount
const char* gateKeeperAddrList[],
uint32_t gateKeeperAddrCount
);
bool NetCliGateKeeperQueryConnected ();