public void ProcessSynPacket(RdpeudpPacket eudpPacket)
{
if (eudpPacket.fecHeader.uFlags.HasFlag(RDPUDP_FLAG.RDPUDP_FLAG_SYN)
|| eudpPacket.fecHeader.uFlags.Equals(RDPUDP_FLAG.RDPUDP_FLAG_SYN | RDPUDP_FLAG.RDPUDP_FLAG_SYNLOSSY)) // Make sure this packet is a SYN Packet
{
UDownStreamMtu = (ushort)(Math.Min(Math.Min(eudpPacket.SynData.Value.uUpStreamMtu, UDownStreamMtu), (ushort)1232));
UUpStreamMtu = (ushort)(Math.Min(Math.Min(eudpPacket.SynData.Value.uDownStreamMtu, UUpStreamMtu), (ushort)1232));
USendWindowSize = eudpPacket.fecHeader.uReceiveWindowSize;
TransMode = eudpPacket.fecHeader.uFlags.HasFlag(RDPUDP_FLAG.RDPUDP_FLAG_SYNLOSSY) ? TransportMode.Lossy : TransportMode.Reliable;
SnSourceAck = eudpPacket.SynData.Value.snInitialSequenceNumber;
InSnAckOfAcksSeqNum = eudpPacket.SynData.Value.snInitialSequenceNumber + 1;
ReceiveWindowStartPosition = eudpPacket.SynData.Value.snInitialSequenceNumber + 1;
}
}