Exemple #1
0
        protected virtual void DoParse(ParsablePacketInfo info, LogHandler handler)
        {
            var rawPacket = info.Packet;

            if (rawPacket.PacketId.IsUpdatePacket)
            {
                var len   = rawPacket.Length - rawPacket.HeaderSize;
                var bytes = rawPacket.ReadBytes(len);
                if (bytes.Length != len)
                {
                    log.Warn("BinaryReader.ReadBytes failed: {0} / {1}", bytes.Length, len);
                    return;
                }
                var updatePacket = ParsedUpdatePacket.Create(info.Timestamp,
                                                             bytes,
                                                             false,
                                                             rawPacket.PacketId == RealmServerOpCode.SMSG_COMPRESSED_UPDATE_OBJECT);

                if (handler.UpdatePacketHandler != null)
                {
                    handler.UpdatePacketHandler(updatePacket);
                }
            }
            else
            {
                var parser = new PacketParser(info);
                parser.Parse();

                if (handler.NormalPacketHandler != null)
                {
                    handler.NormalPacketHandler(parser);
                }
            }
        }
Exemple #2
0
        public static void ParsePacket(ParsablePacketInfo info, IndentTextWriter writer)
        {
            PacketAnalyzer.Dump(info, writer);
            writer.WriteLine();

            ((IDisposable)info.Packet).Dispose();
        }
Exemple #3
0
		public static void ParsePacket(ParsablePacketInfo info, IndentTextWriter writer)
		{
			PacketAnalyzer.Dump(info, writer);
			writer.WriteLine();

			((IDisposable)info.Packet).Dispose();
		}
Exemple #4
0
        /// <summary>
        /// Renders a single WoW - Packet
        /// </summary>
        public static void Dump(ParsablePacketInfo info, IndentTextWriter writer)
        {
            var packet = info.Packet;
            if (packet.PacketId.IsUpdatePacket)
            {
                ParsedUpdatePacket.Dump(info.Timestamp, packet.ReadBytes(packet.Length - packet.HeaderSize), false, writer,
                    packet.PacketId.RawId == (uint)RealmServerOpCode.SMSG_COMPRESSED_UPDATE_OBJECT);
            }
            else
            {
                var parser = new PacketParser(info);
                parser.Parse();
                parser.Dump(writer);
            }

            writer.WriteLine();
        }
        protected virtual void DoParse(ParsablePacketInfo info, LogHandler handler)
        {
            var rawPacket = info.Packet;
            if (rawPacket.PacketId.IsUpdatePacket)
            {
                var len = rawPacket.Length - rawPacket.HeaderSize;
                var bytes = rawPacket.ReadBytes(len);
                if (bytes.Length != len)
                {
                    log.Warn("BinaryReader.ReadBytes failed: {0} / {1}", bytes.Length, len);
                    return;
                }
                var updatePacket = ParsedUpdatePacket.Create(info.Timestamp,
                    bytes,
                    false,
                    rawPacket.PacketId == RealmServerOpCode.SMSG_COMPRESSED_UPDATE_OBJECT);

                if (handler.UpdatePacketHandler != null)
                {
                    handler.UpdatePacketHandler(updatePacket);
                }
            }
            else
            {
                var parser = new PacketParser(info);
                parser.Parse();

                if (handler.NormalPacketHandler != null)
                {
                    handler.NormalPacketHandler(parser);
                }
            }
        }
 public ParsedUpdatePacket(ParsablePacketInfo info)
     : this(GetBytes(info.Packet), false)
 {
     TimeStamp = info.Timestamp;
 }
Exemple #7
0
		public PacketParser(ParsablePacketInfo info)
			: this(info.Packet, info.Sender, PacketAnalyzer.GetDefinition(info.Packet.PacketId, info.Sender))
		{
			Timestamp = info.Timestamp;
		}