Skip to content

Commit 2889c50

Browse files
committed
protocol module:support setting protocol parament is null
1 parent d7892b7 commit 2889c50

File tree

1 file changed

+61
-27
lines changed

1 file changed

+61
-27
lines changed

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/P2XPProtocol_Packet/P2XPProtocol_Packet.cpp

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,18 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Common(XENGINE_PROTOCOLHDR* pSt_P
6767
{
6868
st_JsonRoot["lpszMsgBuffer"] = lpszMsgBuffer;
6969
}
70-
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
71-
72-
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + st_JsonRoot.toStyledString().length();
73-
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
74-
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
70+
if (NULL == pSt_ProtocolHdr)
71+
{
72+
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
73+
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);
74+
}
75+
else
76+
{
77+
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
78+
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + pSt_ProtocolHdr->unPacketSize;
79+
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
80+
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
81+
}
7582
return TRUE;
7683
}
7784
/********************************************************************
@@ -131,11 +138,18 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Lan(XENGINE_PROTOCOLHDR* pSt_Prot
131138
st_JsonRoot["ClientArray"] = st_JsonArray;
132139
st_JsonRoot["ClientCount"] = nListCount;
133140

134-
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
135-
136-
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + st_JsonRoot.toStyledString().length();
137-
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
138-
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
141+
if (NULL == pSt_ProtocolHdr)
142+
{
143+
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
144+
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);
145+
}
146+
else
147+
{
148+
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
149+
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + pSt_ProtocolHdr->unPacketSize;
150+
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
151+
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
152+
}
139153
return TRUE;
140154
}
141155
/********************************************************************
@@ -232,11 +246,18 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_WLan(XENGINE_PROTOCOLHDR* pSt_Pro
232246
st_JsonRoot["ClientArray"] = st_JsonArray;
233247
st_JsonRoot["ClientCount"] = nCount;
234248

235-
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
236-
237-
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + st_JsonRoot.toStyledString().length();
238-
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
239-
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
249+
if (NULL == pSt_ProtocolHdr)
250+
{
251+
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
252+
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);
253+
}
254+
else
255+
{
256+
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
257+
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + pSt_ProtocolHdr->unPacketSize;
258+
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
259+
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
260+
}
240261
return TRUE;
241262
}
242263
/********************************************************************
@@ -292,12 +313,18 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_User(XENGINE_PROTOCOLHDR* pSt_Pro
292313
st_JsonRoot["tszUserName"] = pSt_PeerInfo->tszUserName;
293314

294315
st_JsonBuilder["emitUTF8"] = true;
295-
296-
pSt_ProtocolHdr->unPacketSize = Json::writeString(st_JsonBuilder, st_JsonRoot).length();
297-
298-
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + st_JsonRoot.toStyledString().length();
299-
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
300-
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), pSt_ProtocolHdr->unPacketSize);
316+
if (NULL == pSt_ProtocolHdr)
317+
{
318+
*pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length();
319+
memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen);
320+
}
321+
else
322+
{
323+
pSt_ProtocolHdr->unPacketSize = Json::writeString(st_JsonBuilder, st_JsonRoot).length();
324+
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + pSt_ProtocolHdr->unPacketSize;
325+
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
326+
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), pSt_ProtocolHdr->unPacketSize);
327+
}
301328
return TRUE;
302329
}
303330
/********************************************************************
@@ -332,7 +359,7 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Connect(XENGINE_PROTOCOLHDR* pSt_
332359
{
333360
P2XPProtocol_IsErrorOccur = FALSE;
334361

335-
if ((NULL == pSt_ProtocolHdr) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
362+
if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
336363
{
337364
P2XPProtocol_IsErrorOccur = FALSE;
338365
P2XPProtocol_dwErrorCode = ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT;
@@ -346,10 +373,17 @@ BOOL CP2XPProtocol_Packet::P2XPProtocol_Packet_Connect(XENGINE_PROTOCOLHDR* pSt_
346373
st_JsonRoot["nDestPort"] = pSt_IOProtocol->nDestPort;
347374
st_JsonRoot["bIsTcp"] = pSt_IOProtocol->bIsTcp;
348375

349-
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
350-
351-
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + st_JsonRoot.toStyledString().length();
352-
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
353-
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
376+
if (NULL == pSt_ProtocolHdr)
377+
{
378+
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
379+
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);
380+
}
381+
else
382+
{
383+
pSt_ProtocolHdr->unPacketSize = st_JsonRoot.toStyledString().length();
384+
*pInt_MsgLen = sizeof(XENGINE_PROTOCOLHDR) + pSt_ProtocolHdr->unPacketSize;
385+
memcpy(ptszMsgBuffer, pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
386+
memcpy(ptszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), st_JsonRoot.toStyledString().c_str(), pSt_ProtocolHdr->unPacketSize);
387+
}
354388
return TRUE;
355389
}

0 commit comments

Comments
 (0)