Jelajahi Sumber

Merge pull request #137 from Zariel/always-handle-error

Whenever the connection is closed always call cluster.HandleError
Ben Hood 11 tahun lalu
induk
melakukan
e6ccb9722d
1 mengubah file dengan 2 tambahan dan 0 penghapusan
  1. 2 0
      conn.go

+ 2 - 0
conn.go

@@ -249,6 +249,7 @@ func (c *Conn) execSimple(op operation) (interface{}, error) {
 	f.setLength(len(f) - headerSize)
 	f.setLength(len(f) - headerSize)
 	if _, err := c.conn.Write([]byte(f)); err != nil {
 	if _, err := c.conn.Write([]byte(f)); err != nil {
 		c.conn.Close()
 		c.conn.Close()
+		c.cluster.HandleError(c, err, true)
 		return nil, err
 		return nil, err
 	}
 	}
 	if f, err = c.recv(); err != nil {
 	if f, err = c.recv(); err != nil {
@@ -284,6 +285,7 @@ func (c *Conn) exec(op operation, trace Tracer) (interface{}, error) {
 
 
 	if n, err := c.conn.Write(req); err != nil {
 	if n, err := c.conn.Write(req); err != nil {
 		c.conn.Close()
 		c.conn.Close()
+		c.cluster.HandleError(c, err, true)
 		c.uniq <- id
 		c.uniq <- id
 		if n > 0 {
 		if n > 0 {
 			return nil, ErrProtocol
 			return nil, ErrProtocol