diff --git a/conn.go b/conn.go index 33d96b76..0a20f866 100644 --- a/conn.go +++ b/conn.go @@ -53,6 +53,14 @@ func Connect(options map[string]string) (c *conn, err error) { return c, nil } +func (c *conn) Close() (err error) { + buf := c.getBuf(5) + buf[0] = 'X' + binary.BigEndian.PutUint32(buf[1:], 4) + _, err = c.conn.Write(buf) + return +} + func (c *conn) rxMsg() (msg interface{}, err error) { var t byte var bodySize int32 diff --git a/conn_test.go b/conn_test.go index 493d7e87..75122ee6 100644 --- a/conn_test.go +++ b/conn_test.go @@ -5,8 +5,13 @@ import ( ) func TestConnect(t *testing.T) { - _, err := Connect(map[string]string{"socket": "/private/tmp/.s.PGSQL.5432"}) + conn, err := Connect(map[string]string{"socket": "/private/tmp/.s.PGSQL.5432"}) if err != nil { t.Fatal("Unable to establish connection") } + + err = conn.Close() + if err != nil { + t.Fatal("Unable to close connection") + } }