summaryrefslogtreecommitdiff
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
commit1268bcf5ad35b839c820b6c80a5ee12fa9ecb5f1 (patch)
tree5ced12fc7566b2cf18551ddeb4dc3cc5e231b9f1
parenta88930fd356db29a2b994543c0b6bb9af85cb477 (diff)
downloadgo-1268bcf5ad35b839c820b6c80a5ee12fa9ecb5f1.tar.gz
crypto/tls: make SetReadTimeout work.
Fixes issue 1181. R=rsc, agl1, cw, r2 CC=golang-dev http://codereview.appspot.com/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 9bf9f2185..b18cda7bb 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