Set BasicAuth in http.go only if username and password are not empty (#914)

This prevents error "read/write on closed pipe".

Go's http.client::send() always closes req.Body, so if the first request attempt
is unsuccessful, any subsequent requests after calling the `CredentialsCallback`
will attempt to read/write on a closed pipe.

(cherry picked from commit 9db5de109c)
This commit is contained in:
Calin 2022-07-13 05:50:31 -06:00 committed by lhchavez
parent ea4c8f5916
commit ea645bc456
1 changed files with 3 additions and 1 deletions

View File

@ -203,7 +203,9 @@ func (self *httpSmartSubtransportStream) sendRequest() error {
req.ContentLength = -1
}
req.SetBasicAuth(userName, password)
if userName != "" && password != "" {
req.SetBasicAuth(userName, password)
}
resp, err = http.DefaultClient.Do(req)
if err != nil {
return err