Jelajahi Sumber

Merge pull request #194 from goodinc/master

Enable TCP Keepalives on TCP connections to MySQL
Julien Schmidt 12 tahun lalu
induk
melakukan
45271d0947
2 mengubah file dengan 10 tambahan dan 0 penghapusan
  1. 1 0
      AUTHORS
  2. 9 0
      driver.go

+ 1 - 0
AUTHORS

@@ -11,6 +11,7 @@
 
 # Individual Persons
 
+Aaron Hopkins <go-sql-driver at die.net>
 Arne Hormann <arnehormann at gmail.com>
 Carlos Nieto <jose.carlos at menteslibres.net>
 DisposaBoy <disposaboy at dby.me>

+ 9 - 0
driver.go

@@ -56,6 +56,15 @@ func (d *MySQLDriver) Open(dsn string) (driver.Conn, error) {
 	if err != nil {
 		return nil, err
 	}
+
+	// Enable TCP Keepalives on TCP connections
+	if tc, ok := mc.netConn.(*net.TCPConn); ok {
+		if err := tc.SetKeepAlive(true); err != nil {
+			mc.Close()
+			return nil, err
+		}
+	}
+
 	mc.buf = newBuffer(mc.netConn)
 
 	// Reading Handshake Initialization Packet