protected override IPduReader CreatePduReader() { var pduDataStream = new PduDataStream(this.CurrentL7Conversation, PduDataProviderType.Breaked); var pduStreamReader = new PduStreamReader(pduDataStream); return(pduStreamReader); }
public void HttpReadLine_Breaked() { var l7Conversation = this.ReassembleSingleL7Conversation <TcpConversationTracker>(TestPcapFile.HttpTest0); var stream = new PduDataStream(l7Conversation, PduDataProviderType.Breaked); var pduStreamReader = new PduStreamReader(stream, Encoding.ASCII); Assert.False(pduStreamReader.EndOfStream); Assert.Equal("GET / HTTP/1.1", pduStreamReader.ReadLine()); Assert.Equal("Host: icanhazip.com", pduStreamReader.ReadLine()); Assert.Equal("User-Agent: curl/7.54.0", pduStreamReader.ReadLine()); Assert.Equal("Accept: */*", pduStreamReader.ReadLine()); Assert.Equal("", pduStreamReader.ReadLine()); Assert.True(pduStreamReader.EndOfStream); Assert.True(pduStreamReader.NewMessage()); Assert.False(pduStreamReader.EndOfStream); var s = pduStreamReader.ReadToEnd(); Assert.Equal(597, s.Length); Assert.StartsWith("HTTP/1.1 200 OK", s); Assert.EndsWith("147.229.14.29\n", s); Assert.True(pduStreamReader.EndOfStream); }
public void SeekBegin() { var l7Conversation = this.ReassembleSingleL7Conversation <UdpConversationTracker>(TestPcapFile.Dns1); var stream = new PduDataStream(l7Conversation, PduDataProviderType.Mixed); Int32 readBytes; Byte[] buff; Assert.Equal(635203591241204270, stream.CurrentPdu.FirstSeenTicks); buff = new Byte[46]; readBytes = stream.Read(buff, 0, buff.Length); Assert.Equal(635203591241204270, stream.CurrentPdu.FirstSeenTicks); Assert.Equal(buff.Length, readBytes); Assert.Equal(644053552, buff.GetContentHashCode()); Assert.Equal(46, stream.Position); stream.Seek(0, SeekOrigin.Begin); Assert.Equal(635203591241204270, stream.CurrentPdu.FirstSeenTicks); buff = new Byte[46]; readBytes = stream.Read(buff, 0, buff.Length); Assert.Equal(635203591241204270, stream.CurrentPdu.FirstSeenTicks); Assert.Equal(buff.Length, readBytes); Assert.Equal(644053552, buff.GetContentHashCode()); Assert.Equal(46, stream.Position); }
public void Read_Breaked() { var l7Conversation = this.ReassembleSingleL7Conversation <UdpConversationTracker>(TestPcapFile.Dns1); var stream = new PduDataStream(l7Conversation, PduDataProviderType.Breaked); Int32 readBytes; Byte[] buff; buff = new Byte[46]; readBytes = stream.Read(buff, 0, buff.Length); Assert.Equal(buff.Length, readBytes); Assert.Equal(644053552, buff.GetContentHashCode()); Assert.Equal(46, stream.Position); buff = new Byte[146]; readBytes = stream.Read(buff, 0, buff.Length); Assert.Equal(0, readBytes); Assert.True(stream.EndOfStream); Assert.True(stream.NewMessage()); readBytes = stream.Read(buff, 0, buff.Length); Assert.Equal(buff.Length, readBytes); Assert.Equal(935504716, buff.GetContentHashCode()); Assert.Equal(192, stream.Position); }
public void NewMessage() { var l7Conversation = this.ReassembleSingleL7Conversation <UdpConversationTracker>(TestPcapFile.Dns1); var stream = new PduDataStream(l7Conversation, PduDataProviderType.Mixed); Assert.False(stream.EndOfStream); Assert.Equal(0, stream.Position); Assert.Equal(635203591241204270, stream.CurrentPdu.FirstSeenTicks); Assert.True(stream.NewMessage()); Assert.False(stream.EndOfStream); Assert.Equal(46, stream.Position); Assert.Equal(635203591242516580, stream.CurrentPdu.FirstSeenTicks); Assert.False(stream.NewMessage()); Assert.True(stream.EndOfStream); }
public void ReadDns() { var l7Conversation = this.ReassembleSingleL7Conversation <UdpConversationTracker>(TestPcapFile.Dns1); var stream = new PduDataStream(l7Conversation, PduDataProviderType.Mixed); var pduKaitaiReader = new PduKaitaiReader(stream); DnsPacket p; Assert.False(pduKaitaiReader.EndOfStream); p = pduKaitaiReader.ReadKaitaiStruct <DnsPacket>(); Assert.Equal(0x09be, p.TransactionId); Assert.Single(p.Queries); Assert.True(pduKaitaiReader.NewMessage()); p = pduKaitaiReader.ReadKaitaiStruct <DnsPacket>(); Assert.Equal(0x09be, p.TransactionId); Assert.Single(p.Answers); Assert.False(pduKaitaiReader.NewMessage()); Assert.True(pduKaitaiReader.EndOfStream); }
public void SeekForward() { var l7Conversation = this.ReassembleSingleL7Conversation <UdpConversationTracker>(TestPcapFile.Dns1); var stream = new PduDataStream(l7Conversation, PduDataProviderType.Mixed); Int32 readBytes; Byte[] buff; Int64 p; p = stream.Seek(46, SeekOrigin.Begin); Assert.Equal(46, p); buff = new Byte[146]; readBytes = stream.Read(buff, 0, buff.Length); Assert.Equal(buff.Length, readBytes); Assert.Equal(935504716, buff.GetContentHashCode()); Assert.Equal(192, stream.Position); }