Sfoglia il codice sorgente

Merge pull request #298 from methane/fix-panic-on-connect-fail

Fix panic when SetKeepAlive() fails
Julien Schmidt 11 anni fa
parent
commit
04cf947760
2 ha cambiato i file con 4 aggiunte e 1 eliminazioni
  1. 1 0
      AUTHORS
  2. 3 1
      driver.go

+ 1 - 0
AUTHORS

@@ -19,6 +19,7 @@ Frederick Mayle <frederickmayle at gmail.com>
 Gustavo Kristic <gkristic at gmail.com>
 Hanno Braun <mail at hannobraun.com>
 Henri Yandell <flamefew at gmail.com>
+INADA Naoki <songofacandy at gmail.com>
 James Harr <james.harr at gmail.com>
 Jian Zhen <zhenjl at gmail.com>
 Julien Schmidt <go-sql-driver at julienschmidt.com>

+ 3 - 1
driver.go

@@ -72,7 +72,9 @@ func (d MySQLDriver) Open(dsn string) (driver.Conn, error) {
 	// Enable TCP Keepalives on TCP connections
 	if tc, ok := mc.netConn.(*net.TCPConn); ok {
 		if err := tc.SetKeepAlive(true); err != nil {
-			mc.Close()
+			// Don't send COM_QUIT before handshake.
+			mc.netConn.Close()
+			mc.netConn = nil
 			return nil, err
 		}
 	}