-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Benchmarking, packaging, and fix issues, tests and perfomance #797
Conversation
eb3eb07
to
fae93a5
Compare
186ab87
to
16fbbea
Compare
8bb1b2a
to
fc533bc
Compare
fc533bc
to
936ddeb
Compare
func TestSetInterfaces(t *testing.T) { | ||
l := &Listener{} | ||
l.host = "127.0.0.1" | ||
l.setInterfaces() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check for errors. This is at multiple places.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we handled the check at line 30
} | ||
origin := &http.Server{ | ||
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}), | ||
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||
w.Write([]byte("ab")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Error check. Multiple places.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I handled them with other functionalities to avoid unnecessarily allocation
|
||
func testPcapDumpEngine(f string, t *testing.T) { | ||
defer os.Remove(f) | ||
l, err := NewListener(f, 8000, "", EnginePcapFile, true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check if err != nil
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's checked at the line 134
0f46a8c
to
4f0e08f
Compare
### performance - handling of the very big packet(any size that can be buffered) - speeding up TCP sessions by using message hints: Added **proto.HasFullPayload** that helps to validate the entire HTTP request, it supports `Chunked` encoding too! Added **proto.HasRequestTitle** and **proto.HasResponseTitle** for validating the beginning of HTTP request. Those methods are used `input_raw.go` with `TCP`. - supports Keep-Alive: the above functions helps to support keep-alive ### Packaging - **capture:** engines(capture/doc.go) - **tcp:** tcp message parser (tcp/doc.go) ### benchmarking - **capture.BenchmarkPcapDump:** the benchmarks regarding dumping packets in a pcap file - **capture.BenchmarkPcapFile:** the benchmarks of reading packets from a pcap file - **capture.BenchmarkPcap:** the benchmarks of parsing packets from the loopback interface with pcap handles - **proto.BenchmarkHasFullPayload:**: benchmarking this function which validates the HTTP payload - **tcp.BenchmarkPacketParseAndSort:** benchmarks of parsing and sorting packets - **tcp.BenchmarkMessageParserWithoutHint:** benchmarks of message reasembling by using `SYN` and `FIN` flag - **tcp.BenchmarkMessageParserWithHint:** benchmarks of message reasembling by using `proto.HasRequestTitle` and `proto.HasFullPayload` flag ### issues see linked issues ### tests - fixed input raw and engine tests **Most of the changed of the files, was about using functionalities of** `tcp` **and** `capture` **in existing functionalities**
performance
Chunked
encoding too! Added proto.HasRequestTitle and proto.HasResponseTitle for validating the beginning of HTTP request. Those methods are usedinput_raw.go
withTCP
.Packaging
benchmarking
SYN
andFIN
flagproto.HasRequestTitle
andproto.HasFullPayload
flagissues
see linked issues
tests
Most of the changed of the files, was about using functionalities of
tcp
andcapture
in existing functionalities