aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Langley <agl@golang.org>2010-10-11 10:41:01 -0400
committerAdam Langley <agl@golang.org>2010-10-11 10:41:01 -0400
commit2d8e2482cc0f290042f49dc3628922dcf40db5c9 (patch)
treeb2f274b1311e785d88d2d6826c4cd87e82eaea5a
parentf6e2eab8e02c3797d03987b5f394b2cb775b5518 (diff)
downloadgo-2d8e2482cc0f290042f49dc3628922dcf40db5c9.tar.gz
go-2d8e2482cc0f290042f49dc3628922dcf40db5c9.zip
crypto/tls: make SetReadTimeout work.
Fixes #1181. R=rsc, agl1, cw, r2 CC=golang-dev https://golang.org/cl/2414041
-rw-r--r--src/pkg/crypto/tls/conn.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pkg/crypto/tls/conn.go b/src/pkg/crypto/tls/conn.go
index 9bf9f21851..b18cda7bba 100644
--- a/src/pkg/crypto/tls/conn.go
+++ b/src/pkg/crypto/tls/conn.go
@@ -598,7 +598,10 @@ func (c *Conn) Read(b []byte) (n int, err os.Error) {
defer c.in.Unlock()
for c.input == nil && c.err == nil {
- c.readRecord(recordTypeApplicationData)
+ if err := c.readRecord(recordTypeApplicationData); err != nil {
+ // Soft error, like EAGAIN
+ return 0, err
+ }
}
if c.err != nil {
return 0, c.err