Repository navigation
ipv4: add Header.ParseWire and Header.MarshalWire - #271
Open
denisvmedia wants to merge 1 commit into
Open
denisvmedia wants to merge 1 commit into
denisvmedia wants to merge 1 commit into
Conversation
Header.Parse and Header.Marshal use the format of a raw IP socket on the local system. On Darwin, iOS, DragonFly BSD, NetBSD and older FreeBSD the TotalLen and FragOff fields are in host byte order there, and TotalLen may exclude the header length. A header captured on Linux, which is in the wire format, is therefore parsed incorrectly on those systems, and there is no way to parse it portably. Add ParseWire and MarshalWire, which always use the wire format defined in RFC 791. Describe the per-system differences with an internal rawFormat type so that Parse/Marshal and the new methods share one implementation. The behavior of Parse, Marshal and ParseHeader does not change. Fixes golang/go#43386
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Author
|
(don't won't to include my email in a publicly visible commit for CLA, but anyone can use this code freely) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Header.Parse and Header.Marshal use the format of a raw IP socket on
the local system. On Darwin, iOS, DragonFly BSD, NetBSD and older
FreeBSD the TotalLen and FragOff fields are in host byte order there,
and TotalLen may exclude the header length. A header captured on Linux,
which is in the wire format, is therefore parsed incorrectly on those
systems, and there is no way to parse it portably.
Add ParseWire and MarshalWire, which always use the wire format defined
in RFC 791. Describe the per-system differences with an internal
rawFormat type so that Parse/Marshal and the new methods share one
implementation. The behavior of Parse, Marshal and ParseHeader does not
change.
Fixes golang/go#43386