Esempio n. 1
0
        private SNISMUXHeader SetupSMUXHeader(int length, SNISMUXFlags flags)
        {
            Debug.Assert(Monitor.IsEntered(this), "must take lock on self before updating smux header");

            SNISMUXHeader header = new SNISMUXHeader();

            header.Set(
                smid: 83,
                flags: (byte)flags,
                sessionID: _sessionId,
                length: (uint)SNISMUXHeader.HEADER_LENGTH + (uint)length,
                sequenceNumber: ((flags == SNISMUXFlags.SMUX_FIN) || (flags == SNISMUXFlags.SMUX_ACK)) ? _sequenceNumber - 1 : _sequenceNumber++,
                highwater: _receiveHighwater
                );
            _receiveHighwaterLastAck = header.Highwater;

            return(header);
        }