| 187 | } |
| 188 | |
| 189 | std::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 | |
| 226 | void CNetworkClient::OnWritePost(bool bCompleted, const std::string & szRequestId) |
| 227 | { |
nothing calls this directly
no test coverage detected