Commit 8dbd2073 authored by Brickner_cp's avatar Brickner_cp

Bug fix: IpV4Datagram's Payload is Datagram and not TcpDatagram.

parent 0ef62882
...@@ -559,6 +559,28 @@ namespace PcapDotNet.Packets.Test ...@@ -559,6 +559,28 @@ namespace PcapDotNet.Packets.Test
Assert.IsNotNull(layer.GetHashCode()); Assert.IsNotNull(layer.GetHashCode());
} }
[TestMethod]
public void IpV4PayloadNotTcp()
{
Packet packet = PacketBuilder.Build(DateTime.Now,
new EthernetLayer(),
new IpV4Layer()
{
Protocol = IpV4Protocol.InternetControlMessageProtocol
},
new PayloadLayer()
{
Data = new Datagram(new byte[5])
});
packet = PacketBuilder.Build(DateTime.Now,
packet.Ethernet.ExtractLayer(),
packet.Ethernet.IpV4.ExtractLayer(),
packet.Ethernet.IpV4.Payload.ExtractLayer());
Assert.IsNotNull(packet);
}
private static Packet HexToPacket(string hexString, DataLinkKind dataLinkKind) private static Packet HexToPacket(string hexString, DataLinkKind dataLinkKind)
{ {
return Packet.FromHexadecimalString(hexString, DateTime.MinValue, dataLinkKind); return Packet.FromHexadecimalString(hexString, DateTime.MinValue, dataLinkKind);
......
...@@ -224,7 +224,12 @@ namespace PcapDotNet.Packets.IpV4 ...@@ -224,7 +224,12 @@ namespace PcapDotNet.Packets.IpV4
/// </summary> /// </summary>
public Datagram Payload public Datagram Payload
{ {
get { return Tcp; } get
{
if (_payload == null && Length >= HeaderLength)
_payload = new Datagram(Buffer, StartOffset + HeaderLength, Length - HeaderLength);
return _payload;
}
} }
/// <summary> /// <summary>
...@@ -449,6 +454,7 @@ namespace PcapDotNet.Packets.IpV4 ...@@ -449,6 +454,7 @@ namespace PcapDotNet.Packets.IpV4
private bool? _isHeaderChecksumCorrect; private bool? _isHeaderChecksumCorrect;
private bool? _isTransportChecksumCorrect; private bool? _isTransportChecksumCorrect;
private IpV4Options _options; private IpV4Options _options;
private Datagram _payload;
private IpV4Datagram _ipV4; private IpV4Datagram _ipV4;
private IcmpDatagram _icmp; private IcmpDatagram _icmp;
private IgmpDatagram _igmp; private IgmpDatagram _igmp;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment