MCPcopy Create free account
hub / github.com/NoMercy-ac/NoMercy / OnWritePre

Method OnWritePre

Source/Client/NM_Engine/ClientSocketWorker.cpp:189–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

187}
188
189std::size_t CNetworkClient::OnWritePre(const void* pData, std::size_t ulSize)
190{
191 if (!pData || !ulSize)
192 {
193 NETWORK_LOG(LL_CRI, "Null data writed!");
194 return ulSize;
195 }
196
197 NETWORK_LOG(LL_SYS, "OnWrite triggered! Data: %p(%u)", pData, ulSize);
198
199 if (ulSize >= sizeof(TPacketSingleton))
200 {
201 auto pPsuedoPacket = reinterpret_cast<const TPacketSingleton*>(pData);
202 NETWORK_LOG(LL_SYS, "Packet: %u(%s) Data: %p(%u)", pPsuedoPacket->uiPacketID, GetPacketString(pPsuedoPacket->uiPacketID).c_str(), pData, ulSize);
203
204 if (ulSize == GetPacketCapacity(pPsuedoPacket->uiPacketID))
205 {
206 auto pPacketMagic = (*(uint32_t*)gs_pNetworkMagicValue);
207 (*(uint32_t*)((uint32_t)pData)) = pPacketMagic;
208
209 NETWORK_LOG(LL_SYS, "Magic: %p", pPacketMagic);
210
211 auto pPacketSum = g_nmApp->NetworkMgrInstance()->CreateChecksum(pData, ulSize - (NET_CHECKSUM_LENGTH /* hash */ + NET_CHECKSUM_LENGTH /* sum */));
212 (*(uint32_t*)((uint32_t)pData + ulSize - (NET_CHECKSUM_LENGTH /* hash */ + NET_CHECKSUM_LENGTH /* sum */))) = pPacketSum;
213
214 NETWORK_LOG(LL_SYS, "Sum: %p", pPacketSum);
215
216 auto pPacketHash = XXH32(pData, ulSize - NET_CHECKSUM_LENGTH, NET_PACKET_HASH_MAGIC);
217 (*(uint32_t*)((uint32_t)pData + ulSize - NET_CHECKSUM_LENGTH)) = pPacketHash;
218
219 NETWORK_LOG(LL_SYS, "Hash: %p", pPacketHash);
220 }
221 }
222
223 return ulSize;
224}
225
226void CNetworkClient::OnWritePost(bool bCompleted, const std::string & szRequestId)
227{

Callers

nothing calls this directly

Calls 4

GetPacketStringFunction · 0.85
GetPacketCapacityFunction · 0.85
CreateChecksumMethod · 0.80
NetworkMgrInstanceMethod · 0.80

Tested by

no test coverage detected