private void UpdateOutSnAckOfAcksSeqNum(RdpeudpPacket eudpPacket)
{
if (newOutSnAckOfAcksSeqNum == null
&& SendWindowStartPosition - 1 - OutSnAckOfAcksSeqNum > this.SocketConfig.changeSnAckOfAcksSeqNumInterval)
{
Monitor.Enter(updateAckOfAckLock);
if (newOutSnAckOfAcksSeqNum == null
&& SendWindowStartPosition - 1 - OutSnAckOfAcksSeqNum > this.SocketConfig.changeSnAckOfAcksSeqNumInterval)
{
newOutSnAckOfAcksSeqNum = SendWindowStartPosition - 1;
RDPUDP_ACK_OF_ACKVECTOR_HEADER ackOfAckVector = new RDPUDP_ACK_OF_ACKVECTOR_HEADER();
ackOfAckVector.snAckOfAcksSeqNum = newOutSnAckOfAcksSeqNum.Value;
eudpPacket.ackOfAckVector = ackOfAckVector;
eudpPacket.fecHeader.uFlags = RDPUDP_FLAG.RDPUDP_FLAG_ACK_OF_ACKS | eudpPacket.fecHeader.uFlags;
seqNumofPacketWithAckOfAckVector = eudpPacket.sourceHeader.Value.snSourceStart;
}
Monitor.Exit(updateAckOfAckLock);
}
}