private void TryParseRouting() { if (this._routing != null || !this.RoutingPresent) { return; } List <GreSourceRouteEntry> list = new List <GreSourceRouteEntry>(); int num1 = this.StartOffset + this.OffsetRouting; int offset = num1; int num2 = this.StartOffset + this.Length; while (num2 >= offset) { if (offset == num1 + (int)this.RoutingOffset) { this._activeSourceRouteEntryIndex = new int?(list.Count); } GreSourceRouteEntry entry; if (!GreSourceRouteEntry.TryReadEntry(this.Buffer, ref offset, num2 - offset, out entry)) { this._isValidRouting = false; break; } if (entry != null) { list.Add(entry); } else { break; } } this._routing = new ReadOnlyCollection <GreSourceRouteEntry>((IList <GreSourceRouteEntry>)list); }
private void TryParseRouting() { if (_routing != null || !RoutingPresent) { return; } List <GreSourceRouteEntry> entries = new List <GreSourceRouteEntry>(); int routingStartOffset = StartOffset + OffsetRouting; int entryOffset = routingStartOffset; int totalLength = StartOffset + Length; while (totalLength >= entryOffset) { GreSourceRouteEntry entry; if (entryOffset == routingStartOffset + RoutingOffset) { _activeSourceRouteEntryIndex = entries.Count; } if (!GreSourceRouteEntry.TryReadEntry(Buffer, ref entryOffset, totalLength - entryOffset, out entry)) { _isValidRouting = false; break; } if (entry == null) { break; } entries.Add(entry); } _routing = new ReadOnlyCollection <GreSourceRouteEntry>(entries); }
protected override bool EqualsPayloads(GreSourceRouteEntry other) { return(Enumerable.SequenceEqual <IpV4Address>((IEnumerable <IpV4Address>) this.Addresses, (IEnumerable <IpV4Address>)((GreSourceRouteEntryIp)other).Addresses)); }
/// <summary> /// True iff the IP addresses are equal. /// </summary> protected override bool EqualsPayloads(GreSourceRouteEntry other) { return(Addresses.SequenceEqual(((GreSourceRouteEntryIp)other).Addresses)); }
protected override bool EqualsPayloads(GreSourceRouteEntry other) { return(Enumerable.SequenceEqual <ushort>((IEnumerable <ushort>) this.AsNumbers, (IEnumerable <ushort>)((GreSourceRouteEntryAs)other).AsNumbers)); }
protected override bool EqualsPayloads(GreSourceRouteEntry other) { return(this.Data.Equals((DataSegment)((GreSourceRouteEntryUnknown)other).Data)); }
/// <summary> /// True iff the AS numbers are equal. /// </summary> protected override bool EqualsPayloads(GreSourceRouteEntry other) { return(AsNumbers.SequenceEqual(((GreSourceRouteEntryAs)other).AsNumbers)); }