From 829d85131700122e80f514a11c64ff73d74f003c Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 4 Jul 2018 22:13:06 +1000 Subject: [PATCH] add packet injection back --- src/common/Network/GamePacketNew.h | 9 +++++++++ src/servers/sapphire_zone/Network/GameConnection.cpp | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/common/Network/GamePacketNew.h b/src/common/Network/GamePacketNew.h index 19227cd5..f45835dc 100644 --- a/src/common/Network/GamePacketNew.h +++ b/src/common/Network/GamePacketNew.h @@ -246,6 +246,15 @@ public: m_segHdr.size = size; }; + FFXIVRawPacket( char* data, uint16_t size ) : + m_data( std::vector< uint8_t >( size ) ) + { + auto segmentHdrSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ); + + memcpy( &m_data[0], data + segmentHdrSize, size - segmentHdrSize ); + memcpy( &m_segHdr, data, segmentHdrSize ); + } + uint32_t getContentSize() override { return m_data.size(); diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index 264f00a6..d29022e5 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -362,8 +362,8 @@ void Core::Network::GameConnection::injectPacket( const std::string& packetpath, if( pSize == 0 ) return; - // TODO: fix injection for new packets - //queueOutPacket( GamePacketPtr( new GamePacket( packet + k, pSize, false ) ) ); + queueOutPacket( FFXIVPacketBasePtr( new FFXIVRawPacket( packet + k, pSize ) ) ); + k += ( pSize ); } }