Conversation
Issues is that Go built-in net.Interfaces function in newer Windows versions return wrong interface names, which libpcap can't consume. Now we use pcap.FindDevices instead of net.Interfaces. See this Article for deep understanding of the issue https://haydz.github.io/2020/07/06/Go-Windows-NIC.html Additionally found a bug causing big memory allocations, for large requests, when we perform check if messages finished or not. Because of this bug chunked body encoding check was not working properly. Was not catched in tests, because test was working on packet array level, and this issue happens when deailng with TCP messag object. Additionally added a small fix for windows Makefile task, it now generate proper file name.
houndci-bot
reviewed
Jun 10, 2021
| import ( | ||
| "bufio" | ||
| "bytes" | ||
| _ "fmt" |
Collaborator
There was a problem hiding this comment.
a blank import should be only in a main or test package, or have a comment justifying it
| import ( | ||
| "encoding/binary" | ||
| "encoding/hex" | ||
| _ "fmt" |
Collaborator
There was a problem hiding this comment.
a blank import should be only in a main or test package, or have a comment justifying it
xingren23
referenced
this pull request
in xingren23/goreplay
Sep 4, 2021
Issues is that Go built-in net.Interfaces function in newer Windows versions return wrong interface names, which libpcap can't consume. Now we use pcap.FindDevices instead of net.Interfaces. See this Article for deep understanding of the issue https://haydz.github.io/2020/07/06/Go-Windows-NIC.html Additionally, found a bug causing big memory allocations, for large requests, when we perform check if messages finished or not. Because of this bug chunked body encoding check was not working properly. Was not caught in tests, because test was working on packet array level, and this issue happens when dealing with TCP message object. Additionally, added a small fix for windows Makefile task, it now generates proper file name.
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.
Issues is that Go built-in net.Interfaces function in newer Windows versions return wrong interface names, which libpcap can't consume.
Now we use pcap.FindDevices instead of net.Interfaces.
See this Article for deep understanding of the issue https://haydz.github.io/2020/07/06/Go-Windows-NIC.html
Additionally, found a bug causing big memory allocations, for large requests, when we perform check if messages finished or not. Because of this bug chunked body encoding check was not working properly.
Was not caught in tests, because test was working on packet array level, and this issue happens when dealing with TCP message object.
Also a small fix which helps map "localhost" host name to the loopback interface. Previously if you set smth like:
--input-raw localhost:80if will continue using all interfaces, now it will do capture only for singe interface.Added a small fix for windows Makefile task, it now generates proper file name.