Commit df042104 authored by Brickner_cp's avatar Brickner_cp

Wireshark 1.4.4.

Added Reserved property to TcpDatagram (currently read only - not supported in TcpLayer).
parent 74a03367
......@@ -132,7 +132,7 @@ namespace PcapDotNet.Core.Test
const int PacketSize = 100;
// Test normal mode
TestReceiveSomePackets(0, 0, int.MaxValue, PacketSize, false, PacketCommunicatorReceiveResult.Ok, 0, 1, 1.03);
TestReceiveSomePackets(0, 0, int.MaxValue, PacketSize, false, PacketCommunicatorReceiveResult.Ok, 0, 1, 1.06);
TestReceiveSomePackets(NumPacketsToSend, NumPacketsToSend, int.MaxValue, PacketSize, false, PacketCommunicatorReceiveResult.Ok, NumPacketsToSend, 0, 0.02);
TestReceiveSomePackets(NumPacketsToSend, 0, int.MaxValue, PacketSize, false, PacketCommunicatorReceiveResult.Ok, NumPacketsToSend, 0, 0.02);
TestReceiveSomePackets(NumPacketsToSend, -1, int.MaxValue, PacketSize, false, PacketCommunicatorReceiveResult.Ok, NumPacketsToSend, 0, 0.02);
......@@ -167,7 +167,7 @@ namespace PcapDotNet.Core.Test
// Break loop
TestReceivePackets(NumPacketsToSend, NumPacketsToSend, 0, 2, PacketSize, PacketCommunicatorReceiveResult.BreakLoop, 0, 0, 0.027);
TestReceivePackets(NumPacketsToSend, NumPacketsToSend, NumPacketsToSend / 2, 2, PacketSize, PacketCommunicatorReceiveResult.BreakLoop, NumPacketsToSend / 2, 0, 0.045);
TestReceivePackets(NumPacketsToSend, NumPacketsToSend, NumPacketsToSend / 2, 2, PacketSize, PacketCommunicatorReceiveResult.BreakLoop, NumPacketsToSend / 2, 0, 0.046);
}
[TestMethod]
......@@ -319,7 +319,7 @@ namespace PcapDotNet.Core.Test
// Wait for less statistics
TestGetStatistics(SourceMac, DestinationMac, NumPacketsToSend, NumStatisticsToGather / 2, int.MaxValue, 5, PacketSize,
PacketCommunicatorReceiveResult.Ok, NumStatisticsToGather / 2, NumPacketsToSend, NumStatisticsToGather / 2, NumStatisticsToGather / 2 + 0.05);
PacketCommunicatorReceiveResult.Ok, NumStatisticsToGather / 2, NumPacketsToSend, NumStatisticsToGather / 2, NumStatisticsToGather / 2 + 0.053);
// Wait for more statistics
TestGetStatistics(SourceMac, DestinationMac, NumPacketsToSend, 0, int.MaxValue, 5.5, PacketSize,
......
......@@ -132,8 +132,9 @@ namespace PcapDotNet.Core.Test
IpV4OptionTimestampAndAddress timestampPrespecifiedOption = (IpV4OptionTimestampAndAddress)option;
foreach (IpV4OptionTimedAddress timedAddress in timestampPrespecifiedOption.TimedRoute)
{
yield return "Time stamp = " + timedAddress.Address.ToValue();
yield return "Time stamp = " + timedAddress.TimeOfDay.MillisecondsSinceMidnightUniversalTime;
yield return string.Format("Address = {0}, time stamp = {1}",
timedAddress.Address,
timedAddress.TimeOfDay.MillisecondsSinceMidnightUniversalTime);
}
break;
......
......@@ -504,7 +504,7 @@ namespace PcapDotNet.Core.Test
switch (field.Name())
{
case "arp.hw.type":
field.AssertShowDecimal((ushort)arpDatagram.HardwareType);
field.AssertShowHex((ushort)arpDatagram.HardwareType);
break;
case "arp.proto.type":
......@@ -520,7 +520,7 @@ namespace PcapDotNet.Core.Test
break;
case "arp.opcode":
field.AssertShowDecimal((ushort)arpDatagram.Operation);
field.AssertShowHex((ushort)arpDatagram.Operation);
break;
case "arp.src.hw":
......@@ -1248,7 +1248,9 @@ namespace PcapDotNet.Core.Test
break;
case "tcp.flags":
field.AssertShowHex((byte)tcpDatagram.ControlBits);
field.AssertShow("0x" +
((tcpDatagram.ControlBits & TcpControlBits.NonceSum) == TcpControlBits.NonceSum ? "1" : "") +
((byte)tcpDatagram.ControlBits).ToString("x" + 2 * sizeof(byte)));
foreach (var flagField in field.Fields())
{
switch (flagField.Name())
......@@ -1561,7 +1563,8 @@ namespace PcapDotNet.Core.Test
case "http.transfer_encoding":
data.Append(field.Value());
Assert.AreEqual(httpDatagram.Header.TransferEncoding.TransferCodings.SequenceToString(',').ToWiresharkLiteral(), fieldShow.ToWiresharkLowerLiteral());
Assert.AreEqual(fieldShow.ToWiresharkLowerLiteral(),
httpDatagram.Header.TransferEncoding.TransferCodings.SequenceToString(',').ToWiresharkLiteral());
break;
default:
......
......@@ -102,6 +102,7 @@ namespace PcapDotNet.Packets.Test
Assert.AreEqual((tcpLayer.ControlBits & TcpControlBits.Reset) == TcpControlBits.Reset, packet.Ethernet.IpV4.Tcp.IsReset, "IsReset");
Assert.AreEqual((tcpLayer.ControlBits & TcpControlBits.Synchronize) == TcpControlBits.Synchronize, packet.Ethernet.IpV4.Tcp.IsSynchronize, "IsSynchronize");
Assert.AreEqual((tcpLayer.ControlBits & TcpControlBits.Urgent) == TcpControlBits.Urgent, packet.Ethernet.IpV4.Tcp.IsUrgent, "IsUrgent");
Assert.AreEqual(0, packet.Ethernet.IpV4.Tcp.Reserved);
Assert.IsFalse(packet.Ethernet.IpV4.Tcp.IsChecksumOptional, "IsChecksumOptional");
Assert.AreEqual(TcpDatagram.HeaderMinimumLength + tcpLayer.Options.BytesLength + payloadLayer.Length, packet.Ethernet.IpV4.Tcp.Length, "Total Length");
Assert.IsTrue(packet.Ethernet.IpV4.IsTransportChecksumCorrect, "IsTransportChecksumCorrect");
......
......@@ -49,6 +49,18 @@ namespace PcapDotNet.Packets.Transport
public const int Options = 20;
}
private static class Mask
{
public const byte Reserved = 0x0E;
public const ushort ControlBits = 0x01FF;
}
private static class Shift
{
public const int HeaderLength = 4;
public const int Reserved = 1;
}
/// <summary>
/// The sequence number of the first data octet in this segment (except when SYN is present).
/// If SYN is present the sequence number is the initial sequence number (ISN) and the first data octet is ISN+1.
......@@ -83,7 +95,7 @@ namespace PcapDotNet.Packets.Transport
/// </summary>
public int HeaderLength
{
get { return 4 * (this[Offset.HeaderLengthAndFlags] >> 4); }
get { return 4 * (this[Offset.HeaderLengthAndFlags] >> Shift.HeaderLength); }
}
/// <summary>
......@@ -94,12 +106,17 @@ namespace PcapDotNet.Packets.Transport
get { return Math.Min(HeaderLength, Length); }
}
public byte Reserved
{
get { return (byte)((this[Offset.HeaderLengthAndFlags] & Mask.Reserved) >> Shift.Reserved); }
}
/// <summary>
/// A collection of bits for the TCP control.
/// </summary>
public TcpControlBits ControlBits
{
get { return (TcpControlBits)(ReadUShort(Offset.HeaderLengthAndFlags, Endianity.Big) & 0x01FF); }
get { return (TcpControlBits)(ReadUShort(Offset.HeaderLengthAndFlags, Endianity.Big) & Mask.ControlBits); }
}
/// <summary>
......
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