sniffing: full websocket frame recording

This commit is contained in:
ginuerzh
2024-10-19 20:40:07 +08:00
parent 6b932e35bf
commit 41f527aa46
4 changed files with 76 additions and 34 deletions
+19 -8
View File
@@ -673,12 +673,9 @@ func (h *httpHandler) sniffingWebsocketFrame(ctx context.Context, rw, cc io.Read
errc := make(chan error, 1)
sampleRate := h.md.sniffingWebsocketSampleRate
if sampleRate <= 0 {
if sampleRate == 0 {
sampleRate = sniffing.DefaultSampleRate
}
if sampleRate > sniffing.MaxSampleRate {
sampleRate = sniffing.MaxSampleRate
}
d := time.Duration(1 / sampleRate * 1e9)
go func() {
@@ -686,8 +683,15 @@ func (h *httpHandler) sniffingWebsocketFrame(ctx context.Context, rw, cc io.Read
*ro2 = *ro
ro = ro2
ticker := time.NewTicker(d)
defer ticker.Stop()
ticker := &time.Ticker{}
if d > 0 {
ticker = time.NewTicker(d)
defer ticker.Stop()
} else {
tc := make(chan time.Time)
close(tc)
ticker.C = tc
}
buf := &bytes.Buffer{}
for {
@@ -719,8 +723,15 @@ func (h *httpHandler) sniffingWebsocketFrame(ctx context.Context, rw, cc io.Read
*ro2 = *ro
ro = ro2
ticker := time.NewTicker(d)
defer ticker.Stop()
ticker := &time.Ticker{}
if d > 0 {
ticker = time.NewTicker(d)
defer ticker.Stop()
} else {
tc := make(chan time.Time)
close(tc)
ticker.C = tc
}
buf := &bytes.Buffer{}
for {
+19 -8
View File
@@ -413,12 +413,9 @@ func (ep *entrypoint) sniffingWebsocketFrame(ctx context.Context, rw, cc io.Read
errc := make(chan error, 1)
sampleRate := ep.websocketSampleRate
if sampleRate <= 0 {
if sampleRate == 0 {
sampleRate = sniffing.DefaultSampleRate
}
if sampleRate > sniffing.MaxSampleRate {
sampleRate = sniffing.MaxSampleRate
}
d := time.Duration(1 / sampleRate * 1e9)
go func() {
@@ -426,8 +423,15 @@ func (ep *entrypoint) sniffingWebsocketFrame(ctx context.Context, rw, cc io.Read
*ro2 = *ro
ro = ro2
ticker := time.NewTicker(d)
defer ticker.Stop()
ticker := &time.Ticker{}
if d > 0 {
ticker = time.NewTicker(d)
defer ticker.Stop()
} else {
tc := make(chan time.Time)
close(tc)
ticker.C = tc
}
buf := &bytes.Buffer{}
for {
@@ -459,8 +463,15 @@ func (ep *entrypoint) sniffingWebsocketFrame(ctx context.Context, rw, cc io.Read
*ro2 = *ro
ro = ro2
ticker := time.NewTicker(d)
defer ticker.Stop()
ticker := &time.Ticker{}
if d > 0 {
ticker = time.NewTicker(d)
defer ticker.Stop()
} else {
tc := make(chan time.Time)
close(tc)
ticker.C = tc
}
buf := &bytes.Buffer{}
for {