diff --git a/conn.go b/conn.go index 9bf9f21..b18cda7 100644 --- a/conn.go +++ b/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