diff options
author | Adam Langley <agl@golang.org> | 2010-10-11 10:41:01 -0400 |
---|---|---|
committer | Adam Langley <agl@golang.org> | 2010-10-11 10:41:01 -0400 |
commit | 1268bcf5ad35b839c820b6c80a5ee12fa9ecb5f1 (patch) | |
tree | 5ced12fc7566b2cf18551ddeb4dc3cc5e231b9f1 | |
parent | a88930fd356db29a2b994543c0b6bb9af85cb477 (diff) | |
download | go-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.go | 5 |
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 |