1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-05 02:07:46 +00:00

raw packet data contains an ipc header, not segment

This commit is contained in:
NotAdam 2018-07-06 20:32:54 +10:00
parent 24615759ce
commit 57c1f66310

View file

@ -180,13 +180,13 @@ public:
FFXIVIpcPacket< T, T1 >( const FFXIVARR_PACKET_RAW& rawPacket ) FFXIVIpcPacket< T, T1 >( const FFXIVARR_PACKET_RAW& rawPacket )
{ {
auto segHdrSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ); auto ipcHdrSize = sizeof( FFXIVARR_IPC_HEADER );
auto copySize = std::min< uint32_t >( sizeof( T ), rawPacket.segHdr.size - segHdrSize ); auto copySize = std::min< uint32_t >( sizeof( T ), rawPacket.segHdr.size - ipcHdrSize );
memcpy( &m_segHdr, &rawPacket.segHdr, segHdrSize ); memcpy( &m_segHdr, &rawPacket.segHdr, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
memcpy( &m_data, &rawPacket.data[0] + segHdrSize, copySize ); memcpy( &m_data, &rawPacket.data[0] + ipcHdrSize, copySize );
memset( &m_ipcHdr, 0, sizeof( FFXIVARR_IPC_HEADER ) ); memset( &m_ipcHdr, 0, ipcHdrSize );
m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType ); m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType );
} }