What version of Go are you using (go version)?
go version go1.7.3 linux/amd64
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build126580691=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
What did you do?
I tried to establish a tls connection to an smtp server and call client.Auth to authenticate, code may look like this:
conn, _ := tls.Dial("tcp", host+":"+port, nil)
client, _ := smtp.NewClient(conn, host)
err := client.Auth(smtp.PlainAuth("", user, password, host))
What did you see instead?
When the incorrect username/password is provided the function Auth took 1 minute to return. I found it was due to this line:
https://github.com/golang/go/blob/master/src/net/smtp/smtp.go#L221
that the client tries to send "*" to server and expects "501" which is "Syntax Error", it took very long for server to respond. If I comment this line and rebuild. I can get the error very quickly.
Could anyone let me know why is this line necessary? And is it common the server took 1 minute to respond "*"?
What version of Go are you using (
go version)?go version go1.7.3 linux/amd64
What operating system and processor architecture are you using (
go env)?GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build126580691=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
What did you do?
I tried to establish a tls connection to an smtp server and call client.Auth to authenticate, code may look like this:
What did you see instead?
When the incorrect username/password is provided the function Auth took 1 minute to return. I found it was due to this line:
https://github.com/golang/go/blob/master/src/net/smtp/smtp.go#L221
that the client tries to send "*" to server and expects "501" which is "Syntax Error", it took very long for server to respond. If I comment this line and rebuild. I can get the error very quickly.
Could anyone let me know why is this line necessary? And is it common the server took 1 minute to respond "*"?