internal static void WriteReportVersion3(byte[] buffer, int offset, IEnumerable <IgmpGroupRecord> groupRecords) { ByteArrayExtensions.Write(buffer, offset, (byte)34); ushort num = (ushort)0; int offset1 = offset + 8; foreach (IgmpGroupRecord igmpGroupRecord in groupRecords) { IgmpGroupRecordDatagram.Write(buffer, ref offset1, igmpGroupRecord.RecordType, igmpGroupRecord.AuxiliaryData, igmpGroupRecord.MulticastAddress, igmpGroupRecord.SourceAddresses); ++num; } ByteArrayExtensions.Write(buffer, offset + 6, num, Endianity.Big); IgmpDatagram.WriteChecksum(buffer, offset, offset1 - offset); }
internal static void WriteReportVersion3(byte[] buffer, int offset, IEnumerable <IgmpGroupRecord> groupRecords) { // MessageType buffer.Write(offset + Offset.MessageType, (byte)IgmpMessageType.MembershipReportVersion3); ushort numGroupRecords = 0; int recordOffset = offset + Offset.GroupRecords; foreach (IgmpGroupRecord record in groupRecords) { IgmpGroupRecordDatagram.Write(buffer, ref recordOffset, record.RecordType, record.AuxiliaryData, record.MulticastAddress, record.SourceAddresses); ++numGroupRecords; } // NumberOfGroupRecords buffer.Write(offset + Offset.NumberOfGroupRecords, numGroupRecords, Endianity.Big); // Checksum WriteChecksum(buffer, offset, recordOffset - offset); }