int PROCCALL OnCSCConnect2Svr(CProcessLayer *pProcessLayer,
PROCESSDATACONTEXT *pProcessDataCtx)
{
ALIAS_PTR(USERCONTEXT, pUserCtx, pProcessDataCtx->pUserCtx);
ALIAS_PTR(USERDATACONTEXT, pUserDataCtx, pUserCtx->pData);
ALIAS_PTR(C2S_CONNECT2SVR, pC2SConnect2Svr, pProcessDataCtx->cpPacket);
UNUSED_ARG(pProcessLayer);
if( sizeof( C2S_CONNECT2SVR ) != pProcessDataCtx->iLen )
return P_ERROR;
pUserDataCtx->dwAuthKey = GetTickCount();
S2C_CONNECT2SVR sS2CConnect2Svr;
sS2CConnect2Svr.wMagicCode = MAGIC_CODE;
sS2CConnect2Svr.wPayLoadLen = sizeof( S2C_CONNECT2SVR );
sS2CConnect2Svr.wMainCmd = CSC_CONNECT2SVR;
sS2CConnect2Svr.dwAuthKey = pUserDataCtx->dwAuthKey;
sS2CConnect2Svr.wIndex = pUserDataCtx->wUserIdx;
sS2CConnect2Svr.wRecvXorKeyIdx
= static_cast<WORD>(pUserCtx->recvXorKeyIdx);
#if (_PROTODEF_VERSION_ > 0x0008)
sS2CConnect2Svr.dwRecv2ndXorSeed = USERCONTEXT::XorKeyTable.XorSeed2nd;
#endif
pUserCtx->UniCastE((char *)&sS2CConnect2Svr, sizeof( S2C_CONNECT2SVR ) );
return P_OK;
}