Esempio n. 1
0
        public static NetworkLog GetNetworkLog(string filename)
        {
            if (!s_initialized)
                Initialize();

            var ext = Path.GetExtension(filename);

            var extFittingDumps = new List<NetworkLogWrapper>();
            foreach (var info in s_logs)
            {
                if (info.FileExtension == ext)
                    extFittingDumps.Add(info);
            }

            if (extFittingDumps.Count == 0)
                extFittingDumps = s_logs;
            else if (extFittingDumps.Count == 1)
                return extFittingDumps[0].Activate(NetworkLogMode.Reading);

            byte[] header;
            using (var sh = new StreamHandler(filename, FileMode.Open))
                header = sh.ReadBytes(Math.Min((int)sh.Length, s_maxHeaderLength));

            foreach (var wrapper in extFittingDumps)
            {
                if (wrapper.Fits(header))
                    return wrapper.Activate(NetworkLogMode.Reading);
            }

            return null;
        }
Esempio n. 2
0
        internal RemoteConnection(Stream pipeIn, Stream pipeOut, bool isClient)
        {
            this.pipeIn = pipeIn;
            this.pipeOut = pipeOut;
            this.isClient = isClient;

            localProcessId = Process.GetCurrentProcess().Id;
            callStack = new RemoteCallStack();

            streamHandler = new StreamHandler(pipeIn, pipeOut);

            if(!isClient) {
                CfxRuntime.OnCfxShutdown += new Action(CfxRuntime_OnCfxShutdown);
            }

            writer = new Thread(WriteLoopEntry);
            reader = new Thread(ReadLoopEntry);

            writer.Name = "cfx_rpc_writer";
            reader.Name = "cfx_rpc_reader";

            writer.IsBackground = true;
            reader.IsBackground = true;

            writer.Start();
            reader.Start();
        }
Esempio n. 3
0
        public void Write(StreamHandler Writer)
        {
            Writer.WriteUInt32((uint)Flags);

            if ((Flags & (
                SpellCastTargetFlags.Unit | SpellCastTargetFlags.Unk2 |
                SpellCastTargetFlags.Object |
                SpellCastTargetFlags.Corpse | SpellCastTargetFlags.PvPCorpse
                )) != 0)
                Writer.WritePackedGuid(TargetUnit);

            if ((Flags & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem)) != 0)
                Writer.WritePackedGuid(TargetItem);

            if ((Flags & SpellCastTargetFlags.SourceLocation) != 0)
            {
                Writer.WritePackedGuid(SourceTransportGuid);
                Writer.WriteStruct<Vector3>(SourceLocation);
            }

            if ((Flags & SpellCastTargetFlags.DestLocation) != 0)
            {
                Writer.WritePackedGuid(DestTransportGuid);
                Writer.WriteStruct<Vector3>(DestLocation);
            }

            if ((Flags & SpellCastTargetFlags.String) != 0)
                Writer.WriteCString(StringTarget);
        }
 protected override void ElementWrite(StreamHandler writer, int index)
 {
     if (index == -3)
         writer.UnalignedWriteInt(this.UnkByte, 2);
     else
         base.ElementWrite(writer, index);
 }
 protected override void ElementRead(StreamHandler reader, int index)
 {
     if (index == -3)
         this.UnkByte = reader.UnalignedReadTinyInt(2);
     else
         base.ElementRead(reader, index);
 }
Esempio n. 6
0
 public override void Read(StreamHandler reader)
 {
     Entity = reader.ReadGuid();
     Model = reader.ReadUInt32();
     Race = (Races)reader.ReadByte();
     Gender = (Genders)reader.ReadByte();
     Class = (Classes)reader.ReadByte();
     Skin = reader.ReadByte();
     Face = reader.ReadByte();
     Hair = reader.ReadByte();
     HairColor = reader.ReadByte();
     FaceFeatures = reader.ReadByte();
     Guild = reader.ReadGuid();
     Head = reader.ReadUInt32();
     Shoulders = reader.ReadUInt32();
     Body = reader.ReadUInt32();
     Chest = reader.ReadUInt32();
     Waist = reader.ReadUInt32();
     Legs = reader.ReadUInt32();
     Feet = reader.ReadUInt32();
     Wrists = reader.ReadUInt32();
     Hands = reader.ReadUInt32();
     Back = reader.ReadUInt32();
     Tabard = reader.ReadUInt32();
 }
 protected override void ReadElement(StreamHandler reader, MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid)
 {
     if (element == MovementStatusElements.GenericDword2)
         this.NewValue = reader.ReadSingle();
     else
         base.ReadElement(reader, element, status, guid, tguid);
 }
Esempio n. 8
0
 protected override void ElementRead(StreamHandler reader, int index)
 {
     if (index == -2)
         this.NewValue = reader.ReadUInt32();
     else
         base.ElementRead(reader, index);
 }
Esempio n. 9
0
 public override void Read(StreamHandler Reader)
 {
     this.Count = Reader.ReadByte();
     this.Seed = Reader.ReadUInt32();
     this.ClientSeed = Reader.ReadBytes(16);
     this.ServerSeed = Reader.ReadBytes(16);
 }
Esempio n. 10
0
 protected override void ElementRead(StreamHandler reader, int index)
 {
     if (index == -1)
         this.ChangeCounter = reader.ReadUInt32();
     else
         throw new InvalidOperationException("Unknown read element: " + index);
 }
Esempio n. 11
0
 protected override void ReadElement(StreamHandler reader, MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid)
 {
     if (element == MovementStatusElements.GenericDword0)
         this.ChangeCounter = reader.ReadUInt32();
     else
         base.ReadElement(reader, element, status, guid, tguid);
 }
Esempio n. 12
0
        public void Read(StreamHandler Reader)
        {
            Flags = (SpellCastTargetFlags)Reader.ReadUInt32();

            if ((Flags & (
                SpellCastTargetFlags.Unit   | SpellCastTargetFlags.Unk2 |
                SpellCastTargetFlags.Object |
                SpellCastTargetFlags.Corpse | SpellCastTargetFlags.PvPCorpse
                )) != 0)
                TargetUnit = Reader.ReadPackedGuid();

            if ((Flags & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem)) != 0)
                TargetItem = Reader.ReadPackedGuid();

            if ((Flags & SpellCastTargetFlags.SourceLocation) != 0)
            {
                SourceTransportGuid = Reader.ReadPackedGuid();
                SourceLocation = Reader.ReadVector3();
            }

            if ((Flags & SpellCastTargetFlags.DestLocation) != 0)
            {
                DestTransportGuid = Reader.ReadPackedGuid();
                DestLocation = Reader.ReadVector3();
            }

            if ((Flags & SpellCastTargetFlags.String) != 0)
                StringTarget = Reader.ReadCString();
        }
Esempio n. 13
0
        public override void Save(StreamHandler writer)
        {
            writer.WritePackedGuid(this.Unit);

            foreach (var update in this.Auras)
                update.Save(writer);
        }
Esempio n. 14
0
 protected override void ElementRead(StreamHandler reader, int index)
 {
     if (index == -5)
         this.Unk = reader.ReadUInt32();
     else
         this.Data[-index - 1] = reader.ReadBytes(reader.ReadInt32());
 }
Esempio n. 15
0
 public ObjectBus(StreamHandler streamHandler)
 {
     if (streamHandler == null)
         throw new ArgumentNullException ("streamHandler");
     this.streamHandler = streamHandler;
     streamHandler.RegisterCallback (streamHandlerCallback);
 }
Esempio n. 16
0
        public override void Read(StreamHandler reader)
        {
            if (this.Reader != reader)
                throw new ArgumentException("The provided reader in argument must be the same "
                    + "instance of StreamHandler as the provided reader in the constructor.", "reader");

            EnsureRead();
        }
Esempio n. 17
0
        public override void Read(StreamHandler reader)
        {
            this.Unit = reader.ReadPackedGuid();

            var count = reader.ReadInt32();
            this.ThreatList = new ThreatUpdatePair[count];
            for (int i = 0; i < count; ++i)
                this.ThreatList[i] = new ThreatUpdatePair { Unit = reader.ReadPackedGuid(), Threat = reader.ReadUInt32() };
        }
Esempio n. 18
0
 private void ReadObjectValuesUpdate(StreamHandler Reader)
 {
     var guid = Reader.ReadPackedGuid();
     var values = ReadValues(Reader);
     if (!m_valuesUpdates.ContainsKey(guid))
         m_valuesUpdates.Add(guid, values);
     else
         Console.WriteLine("Error: Updated object duplicate guid {0}", guid);
 }
Esempio n. 19
0
 protected override void WriteElement(StreamHandler writer, RegularMovementPacket.MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid)
 {
     if (element == MovementStatusElements.GenericDword0)
     {
         writer.FlushUnalignedBits();
         writer.WriteUInt32(this.ChangeCounter);
     }
     else
         base.WriteElement(writer, element, status, guid, tguid);
 }
        /// <summary>
        /// Overrides <see cref="XmlPacketSegment.Parse"/>,
        /// parsing the current FinalListPacketSegment.
        /// </summary>
        /// <param name="Reader">The packet data reader.</param>
        /// <param name="Container">The parent packet segment container.</param>
        /// <param name="parser">The Xml packet parser.</param>
        /// <returns>The parsed string.</returns>
        public override string Parse(XmlParser parser, StreamHandler Reader, IXmlPacketSegmentContainer Container)
        {
            string content = "List of " + this.SegmentName + ":" + Environment.NewLine;

            ulong i = 0;
            while (Reader.BaseStream.Position < Reader.BaseStream.Length)
                content += ParseList(i++, parser, Reader, this);

            return content;
        }
Esempio n. 21
0
 protected override void ElementWrite(StreamHandler writer, int index)
 {
     if (index == -1)
     {
         writer.FlushUnalignedBits();
         writer.WriteUInt32(this.ChangeCounter);
     }
     else
         throw new InvalidOperationException("Unknown write element: " + index);
 }
Esempio n. 22
0
 protected override void ElementWrite(StreamHandler writer, int index)
 {
     if (index == -2)
     {
         writer.FlushUnalignedBits();
         writer.WriteUInt32(this.NewValue);
     }
     else
         base.ElementWrite(writer, index);
 }
Esempio n. 23
0
 public override void Save(StreamHandler writer)
 {
     writer.WritePackedGuid(this.Unit);
     writer.WriteInt32(ThreatList.Length);
     for (int i = 0; i < ThreatList.Length; ++i)
     {
         writer.WritePackedGuid(ThreatList[i].Unit);
         writer.WriteUInt32(ThreatList[i].Threat);
     }
 }
Esempio n. 24
0
 protected override void WriteElement(StreamHandler writer, RegularMovementPacket.MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid)
 {
     if (element == MovementStatusElements.GenericDword2)
     {
         writer.FlushUnalignedBits();
         writer.WriteSingle(this.NewValue);
     }
     else
         base.WriteElement(writer, element, status, guid, tguid);
 }
Esempio n. 25
0
        public override void Save(StreamHandler writer)
        {
            writer.WriteInt32(Items.Length);

            foreach (var item in Items)
                writer.WriteStruct(item);

            writer.WriteUInt32(TotalItemCount);
            writer.WriteUInt32(NextSearchDelayMs);
        }
Esempio n. 26
0
        public override void Read(StreamHandler reader)
        {
            uint DisplayedItemCount = reader.ReadUInt32();

            Items = new AuctionListItem[DisplayedItemCount];
            for (uint i = 0; i < DisplayedItemCount; ++i)
                Items[i] = reader.ReadStruct<AuctionListItem>();

            TotalItemCount = reader.ReadUInt32();
            NextSearchDelayMs = reader.ReadUInt32();
        }
Esempio n. 27
0
        public override void Save(StreamHandler writer)
        {
            writer.WriteByte((byte)ContainerSlot);
            writer.WriteByte((byte)Slot);
            writer.WriteByte(CastId);
            writer.WriteUInt32(SpellId);
            writer.WriteGuid(ItemGuid);
            writer.WriteUInt32(GlyphSlot);
            writer.WriteByte(UnkFlags);

            TargetData.Write(writer);
        }
Esempio n. 28
0
        public override void Read(StreamHandler reader)
        {
            ContainerSlot = (InventorySlot)reader.ReadByte();
            Slot = (InventorySlot)reader.ReadByte();
            CastId = reader.ReadByte();
            SpellId = reader.ReadUInt32();
            ItemGuid = reader.ReadGuid();
            GlyphSlot = reader.ReadUInt32();
            UnkFlags = reader.ReadByte();

            TargetData.Read(reader);
        }
Esempio n. 29
0
 public ObjectBus(StreamHandler streamHandler)
 {
     #if TRACE
     Console.WriteLine (new System.Diagnostics.StackTrace (true).GetFrame (0));
     #endif
     if (streamHandler == null)
         throw new ArgumentNullException ("streamHandler");
     this.streamHandler = streamHandler;
     streamHandler.RegisterCallback (StreamHandlerCallback);
     streamHandler.RegisterDisconnectHandler (streamHandlerDisconnected);
     systemSession = CreateSession (Guid.Empty, SystemSessionDisconnected);
     RegisterType (typeof(BusReadyMessage), busReadyMessageReceived);
 }
Esempio n. 30
0
 protected override void ElementWrite(StreamHandler writer, int index)
 {
     if (index == -5)
     {
         writer.WriteUInt32(this.Unk);
     }
     else
     {
         index = -index - 1;
         writer.WriteInt32(this.Data[index].Length);
         writer.WriteBytes(this.Data[index]);
     }
 }
 public void GetFileFailtest()
 {
     Assert.Throws <IOException>(() => StreamHandler.GetFileAsMemoryStream(_testFilename));
 }
Esempio n. 32
0
 protected override void ElementWrite(StreamHandler writer, int index)
 {
     writer.WriteSingle(this.NewValue);
 }
Esempio n. 33
0
 protected override void PackedRead(StreamHandler reader)
 {
     this.Unit = reader.ReadGuid();
 }
Esempio n. 34
0
 protected override void PackedSave(StreamHandler writer)
 {
     writer.WriteGuid(this.Unit);
 }
Esempio n. 35
0
 public override void Read(StreamHandler reader)
 {
     this.Unit = reader.ReadPackedGuid();
 }
Esempio n. 36
0
 public override void Save(StreamHandler writer)
 {
     writer.WriteGuid(this.Unit);
 }
Esempio n. 37
0
 protected override void ElementRead(StreamHandler reader, int index)
 {
     this.NewValue = reader.ReadSingle();
 }