Skip to content

Commit a6084e6

Browse files
Merge pull request #34 from fullstorydev/VAL-7571/suppress-noisy-relay-error
Suppresse relay error for 0 content-length responses
2 parents 3e6d531 + c7dcef5 commit a6084e6

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
/dist
77

88
/.vscode
9+
/.idea

relay/traffic/handler.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package traffic
33
import (
44
"bytes"
55
"crypto/tls"
6+
"errors"
67
"fmt"
78
"io"
89
"log"
@@ -137,7 +138,12 @@ func (handler *Handler) handleHttp(clientResponse http.ResponseWriter, clientReq
137138
} else if targetResponse.ContentLength < 0 {
138139
clientResponse.WriteHeader(targetResponse.StatusCode)
139140
if _, err := io.CopyN(clientResponse, targetResponse.Body, handler.config.MaxBodySize); err != nil {
140-
logger.Printf("Error relaying response body with unknown content-length: %s", err)
141+
// NOTE: it is highly likely the server would come back without a content-length especially with
142+
// mobile traffic. In this case, full copy happens but we get an EOF error that can be safely
143+
// ignored. See this example: https://go.dev/play/p/xotsgkwhJis
144+
if !errors.Is(err, io.EOF) {
145+
logger.Printf("Error relaying response body with unknown content-length: %s", err)
146+
}
141147
}
142148
} else {
143149
clientResponse.WriteHeader(targetResponse.StatusCode)

0 commit comments

Comments
 (0)